티스토리 뷰

 

1. 안드로이드 코드명과 버전

1.0 Apple Pie (비공식) & 1.1 Banana Bread (비공식) ==> 테스트용

1.5 Cupcake (API level 3)

1.6 Donut (API level 4)

2.0 Eclair (API level 5)

2.0.1 Eclair (API level 6)

2.1 Eclair (API level 7)

2.2–2.2.3 Froyo (API level 8) 안드로이드 폰을 일찍 쓰기 시작했다면 이쯤(프로요,진저) 부터 사용

2.3–2.3.2 Gingerbread (API level 9)

2.3.3–2.3.7 Gingerbread (API level 10)

3.0 Honeycomb (API level 11)

3.1 Honeycomb (API level 12)

3.2 Honeycomb (API level 13)

4.0–4.0.2 Ice Cream Sandwich (API level 14)

4.0.3–4.0.4 Ice Cream Sandwich (API level 15)

4.1 Jelly Bean (API level 16)

4.2 Jelly Bean (API level 17)

4.3 Jelly Bean (API level 18)

4.4 KitKat (API level 19)

 

*업데이트 주기가 짧아지면서 윈도우도 년도 수로 하지 않고 (95 98 등등) 버전으로 이름을 붙이는 추세. 버전은 통상 네자리 1.0.0.0 (뒤에 두자리는 패치) 앞 두자리는 일반적으로 우리가 잘 듣는 버전.

*코드명 : 새로운 버전이 나오는데 숫자로 부르긴 어색하여 모든 제품에는 이름을 붙임. 임의적으로 붙여지는 이름. 태명 같은 개념. ==> 보통 소프트웨어에서는 코드명이 실제 이름으로도 불리는 경우가 많음. 윈도우 Vista, XP등도 버전이 존재하지만 우리는 이름으로 부르듯.

*L 6월 말경에 베타버전이 출시됨. 이제껏 구글은 os를 발표하면서 사전에 베타를 제공한적이 한번도 없으나 유일하게 출시. ? 애플을 견제하기 위함 <= 애플이 이번에 iOS8을 냈기 때문에 애플이 발표하자마자 그냥 안드로이드L이라며 발표


안드로이드 플랫폼 부팅 과정


커널이 실행되기 전의 단계는

전원 딱! 키면 가장 먼저

1) POST : Power On Self Test 어떤 기기든 다 거치는 단계

2) CMOS / ROM : 이 마지막으로 하는 역할이 부트로더에게 실행에 대한 권한을 넘겨줌

3) 부트로더 : MBR(HDD 0번째 섹터) 존재


**모바일에는 HDD가 없음. 대신에 플래시 메모리가 있음. 플래시 메모리 속 부트로더가 커널을 올림.

부트로더가 가장 처음으로 하는 역할 : Init을 실행 ==> 리눅스커널을 그대로 쓰고 있기 때문에 리눅스 부팅 과정과 같음

리눅스에서 Init의 가장 기본적인 역할은 서비스를 올리는 것 (서비스 기동)

각종 디바이스를 초기화하는 작업을 비롯해서 안드로이드 프레임워크 동작에 필요한 각종 데몬, 컨텍스트 매니저, 미디어 서버, Zygote 등을 실행하는 역할

서비스(윈도우) = 데몬(리눅스 유닉스) 유사 (조금 다르긴 하지만) ====> 런레벨결정.

런레벨은 0~6이 있으나 3(멀티유저, CLI버전) 5(멀티유저,GUI버전)을 많이 씀

런레벨 결정하고 나면 init.rc라는 곳에 있는 모든 것들을 올리기 시작.

리눅스에서는 가장 먼저 rcx.d (x에 오는게 숫자) / S01 숫자대로, Start가 있으면 Kill도 있음
                       K01..

BUT 안드로이드에서는 런레벨 지정할 필요X 그냥 바로 서비스 기동. 안드로이드에서는 1) usb 데몬 usbd이 가장 먼저 올라감! 하드웨어 개발자 위주로 만들어졌기 때문에 안드로이드를 동작되고 하는것을 디버깅하고 모니터링 하기 위해서는 외부와 인터페이스 통신을 하기 위한 가장 기본적인 usb로 연결해서 봐야하기 때문에. 그래서 안드로이드 기기는 반드시 usb가 있음

그 후에 2) 안드로이드 디버그 브릿지 데몬 abdb 3) 디버그 데몬 rild,

그 후에 무선 인터페이스 레이어 데몬

==> 하드웨어에서 이루어지는 모든것들이 pc의 로그 문서로 볼 수 있도록 함

서비스 메니저 : 밑에 여러가지 서페이스 메니저, 오디오 메니저, 액티비티 메니저..등등을 전체 관리. 총괄. (카메라, 오디오, 비디오처리에서부터 각종 애플리케이션 제작에 필요한 중요 API 제공)

시스템서비스를 이용하고자 하는 애플리케이션이나 프레임워크의 내부모듈은 이를 서비스매니저에 요청한 후 바인더(Binder)라는 IPC(Inter Process Communication) 메커니즘을 통해 시스템서비스를 이용

미디어 서버프로세스는 안드로이드에서는 Audio Flinger(오디오 출력) 또는 Camera 서비스와 같이 C/C++기반으로 작성돼 있는 네이티브 시스템서비스를 실행하는 역할

Zygote : 안드로이드 애플리케이션의 로딩 시간을 단축하기 위한 프로세스로 모든 자바기반 안드로이 드애플리케이션은 Zygote를 통해 포크(fork)된 프로세스 상에서 동작

Dalvik : 애플리케이션 샌드 박스를 만들기 위해 구 글이 선택한 기술로 모든 자바기반 안드로이드 애플리케이션을 처리

ART (Android Run Time) : 4.4버전부터 시험 적용, L버전 부터는 달빅 대신으로 기본으로 탑재되기로 함. ==> 기존에 달빅으로 사용하던 앱개발자가 ART에서 사용가능하도록 하러면 따로 만들던가 두개를 계속 만들어야함.. 그래서 L버전의 베타 버전을 만든 이유기도 함!

-----------------여기까지 데몬!

달빅머신에서 올라가는건 자바, 밑에 있는 매니저들은 씨나 씨쁠쁠, 내부통신 (IPC통신)을 어떻게 하는가? 그냥 하면 구조가 달라서 할 수가 없음!

==> JNI : Java Native Interface 이용



안드로이드 SDK

안드로이드 애플리케이션의 개발, 테스트, 디버그를 수행 하는데 필요한 모든 API들과 도구를 포함하고 있는 소프트웨어 개발킷. 안드로이드 SDK플러그인을 사용하여 Eclipse IDE에 적용 가능.

**MS가 제공하고있는 SDK MFC

예전에는 SDK + JDK + Eclipse각각이 다 필요하고 연결하기 위해 ADT도 필요했음..불편..

=> 구글에서 SDK+Eclipse+ADT를 통합 배포, JDK만 따로 설치하면 됨!


 sdk 폴더


1.5부터 플랫폼과 플랫폼툴즈, 샘플들

윗줄은 버전별로 폴더가 만들어짐 => 모든 버전이 다 들어가있으면 용량이 커지므로 개발자가 선택적으로 다운받아 쓸 수 있도록 만듬 (SDK Manager를 이용)

 

PC환경 중요! 1. intel CPU이며 2. 가상화 지원해야함 (VT) ==> AVD만들 때 intel x86을 쓸 수 있어야함 (안그러면 ARM 써야하는데 너무 느림..)

http://ark.intel.com/products/72164/Intel-Core-i5-3230M-Processor-3M-Cache-up-to-3_20-GHz-rPGA cpu 가상화 지원하나 확인 (VT-x)

**JAVA SE Standard, EE Enterprise. 실무에서는 Web+DB뿐만이 아님! 중간에 Middleware가 있고 서버를 각각 쓰고 최소 두개씩 (웹은 사용자 수에 따라 n개까지) 있음. 이 미들웨어를 구성할때 쓰는게 JEE, 웹은 JSE

우리가 쓰는건 JAVA SE 1.7하위 버전 (1.8이 나왔지만 안드로이드는 아직 상위버전 X)

http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html#JDK7

64비트여도 32비트를 받아야하는 이유 : 4.4버전까지는 안드로이드 자체가 32비트, L버전부터 64비트로 바뀜.

설치 디렉터리를 C:\JDK 로 바꾸기

JRE는 설치 Cancel (JDK안에 이미 JRE설치 되어있음)

안드로이드SDK(ADT bundle) 32비트로 다운로드 http://developer.android.com/sdk/index.html#download

C:\밑에 Android라는 폴더 만들어서 압축 해제

인텔 cpu에 대해서만 지원하는 가상화 실행하기 위해 haxm-windows_r04.zip 다운로드 후 설치
https://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager

실제 메모리의 4분의1정도가 디폴트로 잡히는데 그걸 그대로 설치

workspace C:\Android\workspace

 

환경설정 잘 되었는가 확인후

SDK Manager  Android SDK Build-tools 17 다운받고

4.0.3 Extras 설치

댓글
댓글쓰기 폼