안드로이드 프로그래밍 개요

이수민·2022년 10월 19일
post-thumbnail

안드로이드의 특징

  • 재사용이 가능한 애플리케이션 프레임워크
    - 최적화된 달빅 가상머신 (Dalvik Virtual Machine)
    - WebKit 기반의 내장된 웹 브라우저
    - SQLite 데이터베이스 지원
    - 각종 오디오, 비디오 규격 지원 (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
    - 블루투스, EDGE, 3G, WiFi 지원
    - 카메라, GPS, 나침반, 가속도계 지원
    - 풍부한 개발환경 제공 장치
    → 이 정도가 갖추어져 있어야 프레임워크라고 볼 수 있다.
  • 오픈소스
  • Java 기반
  • 쉬운 연동

안드로이드의 구조

애플리케이션의 구성

  • 애플리케이션은 컴포넌트로 이루어진다.
    • 액티비티(Activity): UI/UX, 사용자 눈에 보이는 것들
    • 서비스(Service): 네트워크 등 백그라운드에서 돌아가는 것들
    • 방송 수신자(broadcast receiver): App간에 주고받는(방송하는) Intent를 받아서 처리
    • 컨텐츠 제공자(content provider):
  • 이 4가지를 모두 객체(class)로 디자인한다. (Java는 객체지향언어)
    • 액티비티 클래스, 서비스 클래스, 방송수신자 클래스, 컨텐츠제공자 클래스로 디자인 한다.
    • 그리고 이 클래스를 상속받으면 된다.
    • 상위 클래스의 메소드를 오버라이딩해서 쓰면 된다.

1. 액티비티(Activity)

  • 사용자가 보는 전체 화면을 하나의 Activity라고 보면 된다.
  • 어떤 이벤트가 발생하면, 어떻게 응답으로 처리할 것인지 정의하는 것이다.
  • 사용자가 보는 화면은 여러 개 이므로 Activity는 여러 개이다.
  • 이런 Activity들이 모여서 애플리케이션이 된다.
  • 맨 처음 나오는 Activity = 프론트 Activity = 최상단 Activity
  • 서비스(Service)와의 차이점: 활성화된 Activity만이 활동을 한다.

2. 서비스(Service)

  • 백그라운드에서 실행되는 컴포넌트
  • 화면없이, 오랫동안 실행되는 작업이나 원격 프로세스를 위한 작업
  • 예: 배경 음악을 연주하는 작업
  • 액티비티(Activity)와의 차이점: 활성화되지 않아도 계속 활동한다.

3. 방송 수신자(broadcast receiver)

  • 방송을 받고 반응하는 컴포넌트
  • 누가 방송? 방송 수신자가 라디오를 켜서 SMS가 수신되었다고 방송함
  • 누가 반응? SMS가 수신되었을 때 응답해야 하는 것이 처리함

4. 컨텐츠 제공자(content provider)

  • 데이터를 관리하고 다른 애플리케이션에게 제공하는 컴포넌트
  • 데이터를 가져가도 되는 건지 검증함

PC 애플리케이션과의 차이점

  • 다른 애플리케이션의 코드를 사용할 수 없다.
  • 예: 카톡에 있는 데이터를 Skype가 가져와서 쓸 수 없다.

  • 다른 애플리케이션의 컴포넌트 사용 가능
  • 예: 카메라 애플리케이션이 찍은 사진을, 보정어플 Epik에서 편집하기위해 찍었던 사진을 가져올 수 있다.

인텐트 (Intent)

  • 애플리케이션은 의도(Intent)를 적어서 안드로이드에 전달하면 안드로이드가 가장 적절한 컴포넌트를 찾아서 활성화하고 실행한다.
  • 예: 우리의 Activity가 /m/fl.jpg를 view하라는 인텐트를 받으면, 가장 적절해보이는 액티비티 #1을 실행한다.

Manifest 파일

  • 적재목록, 앱의 정보들을 기술한 것
  • XML을 사용한다.
    • <activity> 태그: 액티비티 선언
    • <service> 태그: 서비스 선언
    • <receiver> 태그: 방송 수신자
    • <provider> 태그: 컨텐트 제공자
  • Java 파일에 모든 것을 담으려면, 모든 것을 또 컴파일 해야하고 굉장히 귀찮다. 그래서 구조화된 정보를 처리하는 데에 적합한 것이 필요하다. 그게 바로 Manifest 파일.

XML 파일

  • 웹 상에서 구조화된 텍스트 형식의 문서를 전송하고 수신하며 처리가 가능하도록 만든 마크업 언어

구성

  • Java 파일 (혹은 Kotlin 파일)
  • XML 파일 (리소스)
  • 실제 자원 (아이콘과 같은 그림 파일 등)

이 3가지가 .apk 파일로 합쳐지고, 이것이 단말기에 배포되는 것이다.

0개의 댓글