android 빌드과정
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 작성은 귀찮아 ㄷㄷ