본문 바로가기

About Programing/05. Android

Android system 구축 및 설계 필기

일시 : 2010년 11월 21일 9시 ~ 18시
강사 : 이우성


□ Android platform
- OS 기능
- Middleware 기능 : Database, Graphic library 등
- Application framework : class 환경, 실행 환경 등

총 4개 계층 중 제일 아래 Linux kernel이 있음.

□ Linux kernel이 제공하는 기능
- Memory 관리
- Process 생성 / 소멸 / 스케쥴링
- 전원 관리 : Android 용에서 추가.
- Application 강제 종료

□ Java virtual machine


- *.class가 Load되면 Memory에 탑재 된다.
- I/O 관련 부분은 Native library에 도움을 받아야 한다.
- 실행 모듈에선 Native OS용 Code가 나온다.
- Google에서는 License를 피하기 위해 Java virtual machine이랑 조금 다른 Dalvik virtualmachine을 Android에 탑재 하였다.
- Dalvik virtual machine은 Instance type이다. 즉, Application마다 하나씩 생성 된다.

□ Application 생성 순서
Linux process 생성 → 그 안에 Dalvik virtual machine 생성 → 그 안에 Application 생성

□ Java version
- EE : Server에서 주로 사용
- SE : PC에서 사용. Android의 기반이 된다.
- ME : Embedded에서 사용. License가 필요하다. Android가 무료로 공개되고 나서 입지를 잃었다.


□ Application framework : Application이 동작 할 수 있는 환경.

□ Activity manager : Application 하나가 실행되는 것을 관리.

□ Application의 종류
- Key application : 이미 내장되어 있는 Application. Android나 제조업체에서 제공.임의 삭제 불가.
- Download application : 사용자가 설치하는 Application. 2.2 부터는 외부 Memory에 저장 가능.

□ Application 개발 형태
- Java 기반 Application : Android에서 제공하는 Java 기능만 사용하여 개발.
- Java 기반 C 함수 사용
- Linux system program : C언어 사용
- Android platform porting

□ Android booting 과정
Bootloader에 의해서 Linux kernel이 먼저 호출 → init 이라는 Linux 최상위 Process 생성 → Zygote process 생성(Android의 부모 Process)

□ Android Application 구조
- 동적 구조 : Program 동적 수행 code.*.java → java compiler → *.class → Dalvik에서 지원하지 않음.Android SDK에서 classes.dex로 변환.
- 정적 구조(Resource) : 고정된 형태의 값. *.xml화면 구성 정보. Image. *.png 권장.Resource compiler 사용.각종 값(문자열, 색상, 크기, 스타일 정보)
- Application 정보 : Android Manifest.xml
□ Application 구성 요소
- Activity : 사용자 화면 구성 및 Event 처리.
- Service : Background 상태에서 처리.
- Content provider : Data 공유를 위한 Interface.
- Broadcast receiver : System에서 전달되는 Message 수신.
- Component : Activity, Service, Broadcast receiver
- Intent : Message object. Component간 Message 전달용.


□ Activity 상태
- 활성화 상태 : 화면에 보여지면서 사용자 Message 수신 가능 상태.
- 일시정지 상태 : 화면은 보이는데 Event 수신이 안되는 상태.
- 정지 상태


□ Message 종류
1. Component name
2. Action
3. Category
4. Data / Mime type
5. Extra
6. Flag

□ Intent 사용 방법
- 명시적 Intent 사용 : Component name
- 암시적 Intent 사용 : Action, Category, Data/Mime type다른 Activity가 가진 요소를 활용 한다.