NOW OR NEVER

[Android] Application 개발의 개요 본문

Android

[Android] Application 개발의 개요

LAURA 2023. 6. 7. 09:03
반응형

Application

모바일 발전 역사

  • 1995년 부터 모바일 컨텐츠 개발 시작
    • 컨텐츠 개발 시 각 기업이 사용했던 언어: J2ME(java 기반) :LG telecom, Brew(C 기반) : KT, SKVM(J2ME 확장) - SKT
    • 컨텐츠 개발 완료 후 단말기를 맞추는 작업을 해야 했다.
  • 1997년대
    • 한국
      • 김대중 정부 당시 손정의가 중요하다고 한 인터넷, 벤처, 모바일을 중심으로 IT정책 시작
      • 김대중 정부 당시처음으로 전국 각지에 인터넷 망이 설치 됨(KT가 설치)
    • 일본
      • 일본 개발 점유율 가장 높은 것은 도코모 NTT(J2ME)였다
      • COC 게임을 일본의 소프트 뱅크가 사가서 안드로이드 버전을 사서 중국에 또 팜
  • 모바일이 큰 힘을 갖게 된 이유 : 모바일 컨텐츠 시장을 활발하기 위해서 김대중 정부에서 TDMA(통신방식, 직선 방식) ,WIPI(모바일 컨텐츠 보조금), 고사양의 핸드폰을 살 수 있는 정부보조금 정책을 해서 모바일 시장이 변화하면서 한국의 게임 시장이 급성장하게 된다.
  • 전세계 27개 국가에서 WIPI 사용 중
  • Apple-1이 개인용 피씨 시장을 염
  • 스티브 잡스가 세계 최초로 아이 맥 만듦

관련 단어

  • TDMA 통신 방식 : 직선 방식이여서 한국의 경우 산과 건물이 많아서 사용 불가 했음
  • CDMA 통신 방식: 정부, KT, SKT가 모여 TDMA를 연구해서 CDMA를 만들어냄, 장애물이 있으면 전파를 휘게 만들어서 통신이 가능한 통신 방식
  • WIPI : 한국형 3개 통신사 통합 모바일 플랫폼, 원래 한국의 모든 단말기에 있어야 한다는 법안이 있어 해외 휴대폰 브랜드가 팔지 않는다고 거부했었다. 스마트폰이 한국에 들어오는 데 방해가 됐었다. 이후 법안이 폐지되면서 아이폰이 들어와 안드로이드와 함께 사용할 수 있어짐

앱 개발 방식

  • Native
    • 애플, 구글에서 사용
    • 성능이 좋고 만들지 못하는 게 없다.
    • hybrid보단 비용 증가
  • Hybrid
    • codova, Asure(MS), React Native, Flutter 등
    • native로 만들어진 후(앱스토어에 올라올 수 있고 사용자가 단말기에 설치 가능) 웹페이지를 통해서 보여줌
    • native보다 웹페이지를 통해서 보여주는 것이기 때문에 성능면에서 떨어져서 애니메이션와 컨텐츠 등을 넣지 못하는 제약이 있다.
    • 한번만 만들면 모든 서비스 가능
    • native를 잘 알아야지만 개발 가능
    • 개발 시간과 개발 비용이 줄어듦


Android

개요

  • 정해진 방식대로 작업을 해야함
  • 여러 양식의 음원들과 동영상 포맷 지원(기본은 음악 mp3, 영상은 mp4)
  • 안드로이드 스튜디오라는 개발도구 제공
  • 보안 상의 이유로 아무 디바이스나 통신이 가능하지는 않다.

구조

  • H/W -application - VM(가상머신) - > OS/Linux
  • 숫자가 높아질 수록 하단 단계이다
    1. 시스템 앱
      • 단말기에 기본 탑재되어 있는 것들
      • 해당 기능들 뿐만 아니라 다른 어플리케이션의 기능들을 어플리케이션에서 가져다 쓸 수 있다.
      • 쉽고 편하게 개발할 수 있게 도와준다.
    1. Java/Kotlin API
      • 개발하기 위한 라이브러리
  • 3.ART
    • 가상머신
    • 계속해서 설치하지 않아도 돼서 속도가 빠름
    • 단점 : 컨텐츠의 용량이 증가
  • 3.Native C/C++
    • 구동하기 위한 라이브러리
  • 4.HAL
    • 구글이 만든 하드웨어 규격
    • OS영역(구글이 만듦)과 하드웨어 영역(단말기 회사가 만듦)을 나눠진다
    • 안드로이드 뿐만 아니라 컴퓨터, 냉장고 등에 장착되어 있음
    • 컴퓨터의 드라이버 역할을 한다고 생각하면 됨
    • 애플의 경우는 하드웨어부터 OS부분을 다 만들기 때문에 이부분이 없다.
    • 단말기의 하드웨어가 전달하는 명령어를 받아서 변환해서 전달하여 어플리케이션에 사용할 수 있게 함
    • 단말기 제조사와 OS를 만든 곳이 다르기 때문에 존재해야 하는 것이다.
    • 윈도우의 경우 드라이버라고 생각하면 된다
    1. 리눅스 커널
      • 단말기의 하드웨어를 직접 제어
      • OS 부분이라고 생각하면 됨
      • 안드로이드에서 컨텐츠를 운영할 수 있는 플랫폼이라고 생각 하면 됨, 하드웨어를 컨트롤하는 부분은 구글이 만들어서 배포

Android X 라이브러리

  • supported Library였다가 변화
  • 어플을 만들 때 라이브러리를 포함시켜서 사용자가 다운로드 받으면 단말기 하위 버전도 다 지원하게 할 수 있게 함
  • OS를 업데이트 하지 않아도 똑같은 모습으로 앱 서비스를 제공할 수 있게 도와주는 라이브러리

Android Studio

  • Activity : 눈에 보이는 화면을 관리하는 요소

    • Activity 여러 개 = 화면이 여러 개
    • 수많은 activity 중 가장 먼저 뜨는 게 알아야 한다
      • 이름을 자유롭게 정할 수 있다.
      • AndroidManifest.xml에서 activity들 중 android.intent.action.main이 붙어져 있는 intent filter인 activity를 찾아 첫 화면으로 띄운다 - 찾은 클래스의 객체를 생성하여 onCreate 메서드를 호출
  • 패키지 이름

    • 구글 플레이 스토어 어플리케이션의 중복된 이름으로 하면 안된다.
    • 보통 패키지 이름은 회사 도메인으로 한다.(도메인은 겹칠 수 없으므로)
  • Minimum SDK : 지원 할 수 있는 최소의 하위 버전

  • activityMain.xml : 화면 디자인 왼쪽이 눈에 보이는 모양, 오른쪽이 설계도(배치도)

    • linear layout - vertical
    • id : 화면에 배치된 요소들을 지칭하기 위한 이름(R.id.button : 배치된 요소들 중 id가 button이라는 요소를 지칭)
  • device manager

    • virtual에 있는 기본으로 추가 되어있는 emulator 점 세개 버튼 눌러서 지우기(속도가 느려서 별로 안좋음)
      • create Device - pixel2(플레이스토어 표시 있는 걸로 선택 - Triramisu(API Level 보기) 옆 다운로드 버튼 누르기
    • physical : 단말기
  • settings - tool - emulator - Launch in a tool window를 체크 해제 : emulator가 별도의 창으로 실행한다.

  • manifest 폴더 - AndroidManifest.xml : ART 가상머신한테 정보를 알려주기 위한 파일 , 안드로이드 4대 구성 요소는 무조건 여기 기록이 되어 있어야 실행이 가능하다.

  • res 폴더 : 어플리케이션에 사용되는 음악, 이미지 등이 들어 가 있는 리소스 폴더

ETC

  • lateinit : 변수 앞에 작성해놓으면 일단 초기화 해놓고 나중에 값을 넣어놓는 것
  • 안드로이드 어플리케이션은 독립된 개체가 아니어서 가상머신 art를 실행시켜야 한다.

'Android' 카테고리의 다른 글

[Android] UI 요소 - View 2  (0) 2023.06.14
[Android] Compound Component  (0) 2023.06.12
[Android] UI 요소 - View  (0) 2023.06.11
[Android] LogCat & UI 요소 - Widget  (0) 2023.06.08
[Android] UI 요소  (1) 2023.06.07
Comments