Android Studio导入AOSP项目

* 编辑development/tools/idegen/excluded-paths文件, 可以使idegen.sh排除不需要的路径
* 执行: make idegen生成idegen.jar


* 执行development/tools/idegen/idegen.sh将生成: android.ipr和android.iml文件


* 你仍然可以通过在android.iml中添加类似: <excludeFolder url="file://$MODULE_DIR$/bionic" />的内容来排除不需要的路径


* 当然, 也可以用更简单的方式, 在使用Android Studio打开项目后, 在Project路径上右击不需要的目录后选择"Mark Directory as"->"Exclude"来排除这些目录
* 你也可以Project Structure中"Modules"->"Android"->"Sources"中点选需要排除的路径后, 点击"Exclude"


* 为了正常的调试, 需要对JDK进行配置: 点击"File"->"Project Structure"->"SDKs"配置项目的JDK、SDK。 创建一个新的JDK,这里取名为"1.8(No Libraries)",删除其中classpath标签页下面的所有jar文件.


* 创建一个新的Android SDK, "Name"设置为: "Android API 28 Platform (No Libraries JDK)", "Java SDK"设置为: "1.8(No Libraries)"


* 配置"Project"中的"Project SDK"为: "Android API 28 Platform (No Libraries JDK)"


* 配置* 配置"Modules"->"android"中的"Dependencies", 点选"+", 点选"JARs or direcotries", 选择framework和external所在的路径, 添加完成后, 会出现在底部, 选择所有前面的库, 点下箭头移动所有项目到底部, 然后勾选新添加的库


* 配置"Modules"->"android"->"Android"中的各个patch: 
** Manifest file: ~/aosp/frameworks/base/core/res/AndroidManifest.xml
** Resource directory: ~/aosp/frameworks/base/core/res/res
** Assets direcotry: ~/aosp/frameworks/base/core/res/assets
** Native libs directory: <空>

* 新增一个调试选项:

* 连接手机, 测试一下, 点选: "Attach Debuger to Android Process", 选择"system_process":

* 打开: frameworks/base/services/core/java/com/android/server/am/ActivityStarter.java文件, 在startActivityMayWait()处下断点:

* 此时, 在Launcher上点击Gallary图标, 可以看到成功停止在目标断点处:

发布了9 篇原创文章 · 获赞 0 · 访问量 2576

猜你喜欢

转载自blog.csdn.net/liyangzmx/article/details/104035701