2011. 11. 1. 23:58

이클립스에서 안드로이드 소스 보기

안드로이드 프로젝트를 생성한 후, Activity 와 같은 안드로이드에서 제공하는 클래스에서 F3 를 누를 경우 소스를 찾을 수 없다는 메시지가 나옵니다. jad(http://www.varaneckas.com/jad ,  Java Decompiler) 플러그인(http://sourceforge.net/projects/jadclipse/)을 설치하여 dummy 코드를 얻어서 멤버와 메소드 정도는 확인할 수 있지만 왠지 성에 차지 않습니다.

안드로이드 자체가 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 nameVersionAPI 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

로 지정해주기만 하면 이클립스에서 안드로이드 소스를 바로 확인할 수 가 있습니다.