http://devmaze.wordpress.com/2011/01/18/using-com-android-internal-part-4-customizing-adt/
Summary of steps
1. Choose your target android platform (in my examples I used API Level 9 platform)
2. Create emulator that targets your platform.
3. Start emulator, download /system/framework/framework.jar file from it.
4. Rename framework.jar to framework.zip
5. Extract classes.dex from framework.zip
6. Using dex2jar convert classed.dex to classes.jar
7. Rename classes.jar as class.zip, extract folder com/android/internal
8. Merge com/android/internal folder and android.jar into android-internal.jar file.
9. Delete android.jar from android-9-internals folder.
10. Copy android-internals.jar (created by instructions from this post) as android.jar.
11. Modify build.prop file:
12. Stop eclipse.
13. Get adt plugin’s jar file from eclipse plugin folder
14. Rename .jar to .zip, then unzip to separate folder
15. Find com/android/ide/eclipse/adt/internal/project/AndroidClasspathContainerInitializer.class
16. Replace string “com/android/internal/**” with “com/android/internax/**” in this file.
17. Zip all files back (make sure you did this correctly).
18. Rename .zip to .jar .
19. Replace original adt’s jar file with modified version in eclipse’s plugin folder.
20. Start eclipse.
요약하자면
1. 원하는 플랫폼을 지정하고
2. 원하는 플랫폼에 에뮬레이터를 만들고
3. 에뮬을 실행해 adb pull 이나 ddms 에 download 기능을 이용해 /system/framework/framework.jar 를 받는다.
(역자, 풀 소스를 다운하였다면 빌드 후 mydroid/out/target/product/generic/system/framework/framework.jar 에서 받을 수 있다.)
4. framework.jar 에 확장자를 zip 으로 변경한다.
(역자, 왠만한 압축 프로그램들은 모두 jar 압축 해제를 지원하므로 이름 변경없이 가능 하다.)
5. framework.zip 에 압축을 푼다.
6. 다음 파일을 다운 받는다. http://dex2jar.googlecode.com/files/dex2jar-0.0.7.9-SNAPSHOT.zip 이 파일은 dex 를 jar 로 변경시켜주는 역할을 한다.
7. framework.zip 이 압축 해제 된 곳에 dex2jar-0.0.7.9-SNAPSHOT.zip 에 압축을 푼다.
8. setclasspath.bat 를 실행 한다.
9. dex2jar classes.dex 명령을 실행해 dex 를 jar 로 변경한다 (반드시 dex2jar 를 이용해야 된다.)
10. 변경된 classes.dex.dex2jar.jar 에 압축을 해제 한다.
11. classes.dex.dex2jar.jar 의 압축푼 경로 안으로 들어가면 com/android/internal 을 발견 할 수 있다.
12. android sdk 폴더 내에 platform 폴더를 찾을 수 있고 원하는 플랫폼에 데이터를 복사해 android-8-internal 식으로 만든다.
13. android-8-internal 내에 android.jar 를 압축 해제 한다.
14. 11 에 데이터와 13 에 압축 해제한 데이터를 merge 한다.
15. 14에 데이터를 zip 으로 압축 한 뒤 확장자를 android.jar 로 변경 한다.
16. android-8-internal 폴더 내에 build.prop 파일을 에디트 프로그램으로 연 뒤 다음을 수정한다.
[code]
ro.build.version.sdk=8 을 ro.build.version.sdk=99 로
ro.build.version.release=2.2 -> ro.build.version.release=2.2.internal 로
[/code]
17. eclipse 플러그인 폴더에서 adt 관련 library 를 찾는다. 파일명은 대략 다음과 같다. com.android.ide.eclipse.adt_*.jar
18. 17에 파일을 압축 해제 한뒤 com/android/ide/eclipse/adt/internal/project 폴더 내에 AndroidClasspathContainerInitalizer.class 파일을 수정할 준비를 한다. (역자는 Editplus 를 이용했더니만 오류가 발생하였고 원작자와 동일하게 Notepad++ 을 다운받아 수정하니 올바르게 작동 하였다. 에딧 플러스 돈주고 산건데 -_ -; 흠..)
19. AndroidClasspathContainerInitalizer.class 에서 "internal/*" 으로 검색해 internal 을 internax 으로 변경한다. 즉 "internax/*" 으로 변경 한다.
20. 저장 후 상위 폴더로 이동해 변경한 데이터를 zip 으로 압축하고 확장자를 jar 로 변경한 뒤 eclipse 에 plugin 폴더에 Overwrite 시킨다.
21. eclipse 를 실행 한 뒤 새 프로젝트를 만들 때 새로 만든 android-8-internal 을 선택 한다
22. 잘 사용한다 +_+
Summary of steps
1. Choose your target android platform (in my examples I used API Level 9 platform)
2. Create emulator that targets your platform.
3. Start emulator, download /system/framework/framework.jar file from it.
4. Rename framework.jar to framework.zip
5. Extract classes.dex from framework.zip
6. Using dex2jar convert classed.dex to classes.jar
7. Rename classes.jar as class.zip, extract folder com/android/internal
8. Merge com/android/internal folder and android.jar into android-internal.jar file.
9. Delete android.jar from android-9-internals folder.
10. Copy android-internals.jar (created by instructions from this post) as android.jar.
11. Modify build.prop file:
12. Stop eclipse.
13. Get adt plugin’s jar file from eclipse plugin folder
14. Rename .jar to .zip, then unzip to separate folder
15. Find com/android/ide/eclipse/adt/internal/project/AndroidClasspathContainerInitializer.class
16. Replace string “com/android/internal/**” with “com/android/internax/**” in this file.
17. Zip all files back (make sure you did this correctly).
18. Rename .zip to .jar .
19. Replace original adt’s jar file with modified version in eclipse’s plugin folder.
20. Start eclipse.
요약하자면
1. 원하는 플랫폼을 지정하고
2. 원하는 플랫폼에 에뮬레이터를 만들고
3. 에뮬을 실행해 adb pull 이나 ddms 에 download 기능을 이용해 /system/framework/framework.jar 를 받는다.
(역자, 풀 소스를 다운하였다면 빌드 후 mydroid/out/target/product/generic/system/framework/framework.jar 에서 받을 수 있다.)
4. framework.jar 에 확장자를 zip 으로 변경한다.
(역자, 왠만한 압축 프로그램들은 모두 jar 압축 해제를 지원하므로 이름 변경없이 가능 하다.)
5. framework.zip 에 압축을 푼다.
6. 다음 파일을 다운 받는다. http://dex2jar.googlecode.com/files/dex2jar-0.0.7.9-SNAPSHOT.zip 이 파일은 dex 를 jar 로 변경시켜주는 역할을 한다.
7. framework.zip 이 압축 해제 된 곳에 dex2jar-0.0.7.9-SNAPSHOT.zip 에 압축을 푼다.
8. setclasspath.bat 를 실행 한다.
9. dex2jar classes.dex 명령을 실행해 dex 를 jar 로 변경한다 (반드시 dex2jar 를 이용해야 된다.)
10. 변경된 classes.dex.dex2jar.jar 에 압축을 해제 한다.
11. classes.dex.dex2jar.jar 의 압축푼 경로 안으로 들어가면 com/android/internal 을 발견 할 수 있다.
12. android sdk 폴더 내에 platform 폴더를 찾을 수 있고 원하는 플랫폼에 데이터를 복사해 android-8-internal 식으로 만든다.
13. android-8-internal 내에 android.jar 를 압축 해제 한다.
14. 11 에 데이터와 13 에 압축 해제한 데이터를 merge 한다.
15. 14에 데이터를 zip 으로 압축 한 뒤 확장자를 android.jar 로 변경 한다.
16. android-8-internal 폴더 내에 build.prop 파일을 에디트 프로그램으로 연 뒤 다음을 수정한다.
[code]
ro.build.version.sdk=8 을 ro.build.version.sdk=99 로
ro.build.version.release=2.2 -> ro.build.version.release=2.2.internal 로
[/code]
17. eclipse 플러그인 폴더에서 adt 관련 library 를 찾는다. 파일명은 대략 다음과 같다. com.android.ide.eclipse.adt_*.jar
18. 17에 파일을 압축 해제 한뒤 com/android/ide/eclipse/adt/internal/project 폴더 내에 AndroidClasspathContainerInitalizer.class 파일을 수정할 준비를 한다. (역자는 Editplus 를 이용했더니만 오류가 발생하였고 원작자와 동일하게 Notepad++ 을 다운받아 수정하니 올바르게 작동 하였다. 에딧 플러스 돈주고 산건데 -_ -; 흠..)
19. AndroidClasspathContainerInitalizer.class 에서 "internal/*" 으로 검색해 internal 을 internax 으로 변경한다. 즉 "internax/*" 으로 변경 한다.
20. 저장 후 상위 폴더로 이동해 변경한 데이터를 zip 으로 압축하고 확장자를 jar 로 변경한 뒤 eclipse 에 plugin 폴더에 Overwrite 시킨다.
21. eclipse 를 실행 한 뒤 새 프로젝트를 만들 때 새로 만든 android-8-internal 을 선택 한다
22. 잘 사용한다 +_+
'Android' 카테고리의 다른 글
enable the built-in zoom (0) | 2013.10.08 |
---|---|
android.webkit (0) | 2013.10.08 |
event mechanism for android (0) | 2013.10.08 |
running apps on one process (0) | 2013.10.08 |
2D OpenGL game engine for Android (0) | 2013.10.08 |