http://developer.android.com/tools/building/index.html
android project 는 .apk로 패키징 되는데
.apk는
클래스파일을 dalvik byte code로 변환한 .dex 파일과
AndroidManifest.xml 의 바이너리버전
컴파일된 리소스 resources.arsc
컴파일되지 않은 리소스 파일이 들어있다
빌드과정은
1. aapt (Asset Packaging Tool)
- 리소스를 보고 R.java 생성
- AndroidManifest.xml이나 XML파일들을 컴파일
2. aidl tool
- .aidl 파일을 java interfaces 로 만들어줌
3. java compiler
- aapt로 생성된 R.java, aidl로 생성된 java interfaces, 그리고 작성한 소스코드를
컴파일해서 .class 파일로 만들어줌
4. dex
- .class 파일들과 3rd party libraries 클래스파일들을 모두 .dex 파일로 만듬
5. apkbuilder
- 1번에서 생성된 컴파일된 리소스와 4번에서 생성된 .dex 파일과 그외 리소스들을 패키징함
- .apk 파일 생성
6. jarsigner
- debug 또는 release 용 keystore로 sign
- sigend .apk가 됨
7. zipalign (release mode)
- 릴리즈 모드로 sign하면 이거 zipalign 해야함
* proguard 는 3번과 4번 사이.
proguard관련 링크
http://developer.android.com/tools/help/proguard.html
http://www.androidengineer.com/2010/07/optimizing-obfuscating-and-shrinking.html
http://code.google.com/p/maven-android-plugin/wiki/ProGuard
http://proguard.sourceforge.net/
* 여담
ant build 작성은 귀찮아 ㄷㄷ
'지식쌓기 > 개발-Android' 카테고리의 다른 글
| Android - Tasks and Back Stack (1) (0) | 2012.09.24 |
|---|---|
| Android Library Update: (58%) (0) | 2012.09.09 |
| adb 관련 이런저런 명령어들 (0) | 2012.07.11 |
| Activity, Fragment lifecycle (0) | 2012.07.10 |
| Android - Convert to Dalvik format failed (0) | 2010.08.24 |