全球旧事资料 分类
把A
droid源代码加入SDK
各位调试A
droid程序的时候遇到source
otfou
d错误应该很抓狂吧,
Goolge在发布SDK时没有把源代码包含进去着实有点让人费解,对很多人来
说Git无疑是个生涩的东西,而framework中所有Java代码加起来打个包也
就是20多MB。更要命的是,A
droidEclipseplugi
ADT不允许我们在项目
属性中attach源代码到a
droidjar上。好在EricBurke找到了把source加入
到SDK中的办法,通过分析ADT的源代码我们知道ADT是从SDK目录下的
sources目录来查找class对应的源代码,这样我们只要把源代码放到sources目
录中ADT就可以自动找到对应的源代码了。
那么接下来的问题是,我们需要把哪些源代码加入到SDK中,我们又如何
得到这些源代码呢
我之前的文章A
droidScripti
g
E
viro
me
t动手玩中提到过一个
fix_a
droid_sdkpy脚本,用来解决编译ASE的时候找不到a
droidosExec包的
问题,事实上这个脚本还做了另一件事,即遍历整个a
droidsource目录,
把其中所有的Java代码复制到了SDK的sources目录中。ASE
Wiki的
Compili
gASE中提到,编译ASE需要A
droid的代码树,而我当时告诉大
家了一个取巧的方法,即只要下载frameworksbase的a
droid15r2这个tag
的s
apshot就行,因为a
droidosExec包就在其中,这足已解决我们编译ASE
的问题。
回到我们把源代码加入到SDK上来,有了fix_a
droid_sdkpy脚本这里我们
并不需要把a
droidosExec包编译并添加到a
droidjar,所以我把脚本中的这
个功能去掉了,点击下载修改后的脚本,如果你已经通过repo下载了完整的
代码树需要注意版本的对应,那么一切都很简单。按照下面的方法,把
fa
droid源代码和SDK目录作为参数传给它即可。
fix_a
droid_sdkpya
droidsourcea
droidsdk
执行完成以后,在platformsa
droid15目录下就会生成一个sources目录,
其中包含了a
droid代码树中所有的Java代码,并且都根据包名存放各自的目
录,再次Debug代码的时候ADT就可以找到相应的源代码了。
如果手上没有完整的代码树,又想快速的把源代码添加到SDK呢看过
A
droid的代码树就会知道,除了frameworksbase以外,还
有很多
framework的代码其实是在Dalvik目录下,另外还有常用的apachehttp的包
位于exter
alapachehttp目录下,所以要获得用于调试的比较完整的framework
源代码,我们至少需要从
A
droid的代码库中下载
platformdalvikgit、platformframeworksbasegit、platformexter
alapache
httpgit这三个project。把下载回来的文件解压到同一个目录下,目录结构随
意,接下来利用fix_a
droid_sdkpy脚本就可以把Java文件提取出来r
好听全球资料 返回顶部