下载,编译,导入,配置
作为开发者,经常会对Debug工程进行调试,Android具有debug签名的应用才可以被调试,如果想调试系统源码呢?
想要调试源码,首先必须要有源码,并且保证设备运行的源码和IED里的源码是同一份.
下载和编译AOSP源码,本人使用的ubuntu LTS 16.04系统, 磁盘剩余空间至少要150G(如果编译时,提示空间不够,可以删掉".repo" 目录), 内存16G, 8G的内存,编译死慢,调试更是卡的动不了,墙裂建议用16G的内存!
注意编译源码时,如果你是64位的机器,就编译64位的目标版本,运行起来快!
编译完成后执行如下代码:
soruce build/envsetup.sh
mmm development/tools/idegen/
sudo ./development/tools/idegen/idegen.sh
注意请在源码目录下执行,如果是按照官方的教程,应该是在 ~/WORKING_DIRECTORY 目录下
"mmm development/tools/idegen/" 执行完成后会生成idegen.jar
"sodo ./development/tools/idegen/idegen.sh"则会在源码目录下生成IEDA工程配置文件:android.ipr,android.iml
android.ipr:保存工程相关的设置,比如编译器配置,入口,相关的libraries等
android.iml:主要是描述了modules,比如modules的路径,依赖关系等,在导入源码工程是,可以编辑该文件,排除一些不使用的目录文件,这样导入会快很多,因为源码文件实在是太多了,全部导入,要花很长时间,可以排除的文件为目录为(我的机器的的配置):
<excludeFolder url="file://$MODULE_DIR$/.repo" />
<excludeFolder url="file://$MODULE_DIR$/external" />
<excludeFolder url="file://$MODULE_DIR$/external/bluetooth" />
<excludeFolder url="file://$MODULE_DIR$/external/chromium" />
<excludeFolder url="file://$MODULE_DIR$/external/emma" />
<excludeFolder url="file://$MODULE_DIR$/external/icu4c" />
<excludeFolder url="file://$MODULE_DIR$/external/jdiff" />
<excludeFolder url="file://$MODULE_DIR$/external/webkit" />
<excludeFolder url="file://$MODULE_DIR$/frameworks/base/docs" />
<excludeFolder url="file://$MODULE_DIR$/out/eclipse" />
<excl