Java를 이용해서 Android app을 만들어 본 적은 있었지만
만들었다기 보다 인터넷에 돌아다니는 코드들을 내가 원하는 형태로 조합해서 엮어놓았다고나 할까.
전반적인 Android app에 대한 이해가 부족하여서 인지 간단한 프로그램은 작성이 가능했어도
조금만 어려워지면 헤매는 시간이 많아졌다.
developer.android를 보면서 정리를 좀 해 보았다.
App. apk 기본 구성 요소
Android app에는 4가지 기본 구성 요소가 존재한다.
Activity, Service, Contents Provider, Broadcast receiver
Activity
-. 사용자 인터페이스가 있는 하나의 화면을 의미. Activity Class를 상속해서 구현.
Service
-. Background에서 동작/실행되는 구성 요소. 사용자 인터페이스는 제공하지 않는다.
Activity 에서 Service를 실행, 혹은 Activity 에서 Service를 binding 해서 호출하게 된다.
Service Class를 상속해서 구현.
Contents Provider
-. App data 집합을 관리
여기서 의미하는 data는 파일시스템의 파일, SQLite의 database, Web, 기타 저장소 등
App이 access할 수 있는 곳이라면 어디든 저장됨.
접근 가능한 permission이 있다면 다른 App에서도 접근이 가능하다.
ContentProvider Class를 상속해서 구현.
Broadcast receiver
-. 시스템 전체에 대한 broadcast에 응답하는 구성 요소.
App, System에서 intent를 날리게 되면 Broadcast receiver가 받아서 처리하게 된다.
예를 들어, 사진 캡쳐등이 발생해서 intent가 날아가게 되면 해당 intent 처리가 필요한 앱에서 이를 받아 원하는 동작을 구동하게 된다.
BroadcastReceiver Class를 상속해서 구현.
각 기본 구성 요소를 시작하는 방법
Activity, Service, Broadcast receiver는 Intent를 argument로 넘겨서 활성화.
-. Activity -> startActivity(), startActivityForResult()
-. Service -> startService(), bindService()
-. Broadcast receiver -> sendBroadcast(), sendOrderedBroadcast(), sendStickyBroadcast()
Contents Provider는 ContentResolver로 부터 요청받으면 활성화.
-. query() on a ContentResolver
AndroidManifest.xml
용도 : App의 구성요소에 대한 정의, 권한 정의, 지원하는 최소 API 정의, 필요한 HW, SW 기능 선언, Library 링크 선언
위치 : App 프로젝트 디렉토리의 최상위에 존재.
'Android' 카테고리의 다른 글
Android - Services (서비스) (0) | 2016.01.05 |
---|---|
Android - Tasks (작업) 그리고 BackStack (0) | 2016.01.05 |
Android - Fragment (플래그먼트) (0) | 2016.01.04 |
Android - Activity (액티비티) - Activity 이해 및 Lifecycle (0) | 2016.01.02 |
Google Play는 디버그 인증서로 서명된 APK를 허용하지 않습니다. 최소 50년 동안 유효한 새 인증서를 만드세요. (0) | 2015.05.23 |
자동으로 import class 추가 (0) | 2015.05.23 |
Installation failed due to invalid URI (0) | 2015.05.23 |
error generating final archive debug certificate expired on android packaging problem (0) | 2015.05.23 |