2011. 11. 1. 23:58
이클립스에서 안드로이드 소스 보기
2011. 11. 1. 23:58 in 3. Implementation/Android
안드로이드 프로젝트를 생성한 후, Activity 와 같은 안드로이드에서 제공하는 클래스에서 F3 를 누를 경우 소스를 찾을 수 없다는 메시지가 나옵니다. jad(http://www.varaneckas.com/jad , Java Decompiler) 플러그인(http://sourceforge.net/projects/jadclipse/)을 설치하여 dummy 코드를 얻어서 멤버와 메소드 정도는 확인할 수 있지만 왠지 성에 차지 않습니다.
우선 안드로이드 소스를 가지고 있다고 가정하겠습니다. 그리고 물론 빌드도 하였구요.
(이에 대한 글은 http://codemuri.tistory.com/entry/VirtualBox-를-이용하여-안드로이드-빌드하기 를 참고하세요)
해당 버전의 소스를 하기 링크에서 원하는 버전의 Framework 소스를 다운받으시면 됩니다. 용량이 크지 않습니다. lol
http://grepcode.com/snapshot/repository.grepcode.com/java/ext/com.google.android/android/2.3.3_r1/
OS 버전과 API Number 는 Android 공식 사이트에 나와 있습니다. (http://source.android.com/source/build-numbers.html)
안드로이드 자체가 Open Source 인 만큼, 소스를 볼 수 있으면 더 좋겠지요. 다음과 같이 하면 됩니다.
해당 버전의 소스를 하기 링크에서 원하는 버전의 Framework 소스를 다운받으시면 됩니다. 용량이 크지 않습니다. lol
http://grepcode.com/snapshot/repository.grepcode.com/java/ext/com.google.android/android/2.3.3_r1/
OS 버전과 API Number 는 Android 공식 사이트에 나와 있습니다. (http://source.android.com/source/build-numbers.html)
Code name | Version | API level |
---|---|---|
(no code name) | 1.0 | API level 1 |
(no code name) | 1.1 | API level 2 |
Cupcake | 1.5 | API level 3, NDK 1 |
Donut | 1.6 | API level 4, NDK 2 |
Eclair | 2.0 | API level 5 |
Eclair | 2.0.1 | API level 6 |
Eclair | 2.1 (incl. 2.1-update 1) | API level 7, NDK 3 |
Froyo | 2.2.x | API level 8, NDK 4 |
Gingerbread | 2.3 - 2.3.2 | API level 9, NDK 5 |
Gingerbread | 2.3.3 - 2.3.7 | API level 10 |
Honeycomb | 3.0 | API level 11 |
Honeycomb | 3.1 | API level 12 |
Honeycomb | 3.2 - 3.2.2 | API level 13 |
android.jar 의 경우,
android.jar 는 소스 링크를 변경하지 못하게 되어 있습니다. 그래서 빌드 당시의 위치에 소스가 존재하도록 해주어야 합니다.
ANDROID-SDK/platforms/ 폴더 밑에 버전별로 sources 폴더를 만들어 복사해 주면 됩니다. (복사한 후 이클립스를 한번 죽였다가 다시 뛰워주는 센스를 발휘하세요.)
만약 android-7 에 해당하는 소스를 복사한다면,
안드로이드 소스의 framework 폴더를
ANDROID-SDK/platforms/android-7/sources 하위에다가 복사해 주면 됩니다.
복사후에는,
ANDROID-SDK/platforms/android-7/sources/framework/...
와 같이 되겠지요.
혹, ddmlib.jar 와 같은 라이브러리를 이용하는 경우,
ddmlib.jar 는 소스 위치만 지정해 주면 됩니다. 소스의 위치를 external folder 로 하여,
소스위치/sdk/ddms/libs/libs/ddmlib/src
로 지정해주기만 하면 이클립스에서 안드로이드 소스를 바로 확인할 수 가 있습니다.