如何使用Android Studio开发⼀调试Android源码

2025-03-22 23:43:24
推荐回答(1个)
回答1:

一、修改Android Studio(以下简称AS)的内存配置 因为在导入源码时需要消耗大量内存,所以先修改IDEA_HOME/bin/studio64.vmoptions(x86的机器修改studio.vmoptions)中-Xms和-Xmx的值。文档中使用的是748m, 可自行修改。 二、配置AS的JDK、SDK 在IDE中添加一个没有classpath的JDK, 这样可以确保使用源码里的库文件 三、生成导入AS所需配置文件(*.ipr) ①编译源码(为了确保生成了.java文件,如R.java;如果编译过,则无需再次编译) ②检查out/host/linux-x86/framework/目录下是否有idegen.jar 如果idegen.jar不存在,执行: mmm development/tools/idegen/ 在5.0.1的源码中会生成res.java的文件夹,导致idegen.jar运行时抛FileNotFoundException,这是idegen的代码不够严谨造成的。 我的分享里有修改这个bug的patch,或者直接使用我分享的idegen.jar。 ③执行 development/tools/idegen/idegen.sh 等待出现类似下面的结果: Read excludes: 5msTraversed tree: 44078ms 这时会在源码的根目录下生成android.ipr和android.iml两个IntelliJ IDEA(AS是基于IntelliJ IDEA社区版开发的)的配置文件 Tips: AS在导入代码时比较慢,建议先修改android.iml,将自己用不到的代码exclude出去.可以仿照过滤.repo文件夹的语法,如: 这样在导入时就会跳过abi和art文件夹.过滤的越多,AS的处理速度就会越快. ④在AS中打开源码根目录下新生成的android.ipr 如果在导入时AS出现 则建议按照其给定的解决方法来解决 四、解决源码中跳转错误问题 ①为当前工程设置正确的SDK和JDK ②设置'Modules'的依赖 先将所有依赖删掉,只留下上图'1'所指向的两个(注意:这里删除全部只是为了方便。如果确实用到了.jar,在将它们的路径添加进来就可以了. 如:5.0.1的ContactsCommon用到了geocoder-2.9.jar和libphonenumber-6.2.jar) 点击上图中'2'指向的'+'并选择上图'3'指向的'Jars or directories'选项,依次将frameworks和external文件夹添加进来.如: 其它版本的代码在添加frameworks时可能会显示成: