Android Studio导入Android源码

来源:互联网 发布:淘宝溢价是什么意思 编辑:程序博客网 时间:2024/05/17 17:56


Android Studio导入android源码

android源码编译官方指南
清华大学TUNA镜像源

  1. 预备工作
    根据android源码编译官方指南完成在Ubuntu或者Mac上的部署,由于网络原因,需要TUNA提供的初始化包(压缩包大约24G),后续只要执行repo sync同步源码树即可。向导默认初始化的是最新版Android系统的Master分支,如果后续想切换分支的话,只需要介入:
     repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.0.1_r1
    注意:其中android-4.0.1_r1是android版本的编号,具体的编号可以在官网的向导中查询。此外请求的地址已经换成TUNA提供的。
    之后按照官网的步骤完成漫长的编译(未完成编译将无法进行第二步)。
  2. 生成AS的配置文件
    为了能够成功将源码导入到AS中,我们需要先生成AS能识别的工程配置文件,在源码目录依次执行:
     source build/ensetup.sh make idegen && development/tools/idegen/idegen.sh
    这里我出现了JDK的报错:
    Error: could not find jdk tools.jar at /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/../lib/tools.jar, please check if your JDK was installed correctly. Stop.
    但在终端中却能够查询到JDK已经安装了。再看错误定位的文件是config.mk的第604行:
     HOST_JDK_TOOLS_JAR:= $(shell $(BUILD_SYSTEM)/find-jdk-tools-jar.sh)
    其中find-jdk-tools-jar.sh应该就是寻找本地JDK中tool.jar的执行脚本,在找到这个文件,发现:

    原来必须在环境变量中指定ANDROID_JAVA_HOME才能顺利执行。
    最后执行完的结果是:

    Read excludes: 4ms
    Traversed tree: 120353ms

  3. 导入Android Studio并完善配置
    这时会在源码的根目录下生成android.ipr,android.iws和android.iml三个文件,其中android.ipr文件就是工程的入口。
    导入之后会出现这个

    先给出Filesystem Case-Sensitivity Mismatch官方说明
    解决方法:在idea.properties中加入
     idea.case.sensitive.fs=true
    初次导入需要建立庞大的索引,预计在半个小时。几个优化和配置点说一下:
    • 修改AS的内存配置,修改studio.vmoptions配置文件中-Xms和-Xmx的值
    • 在Project Structure的Module中设置source的Mark情况,我们可以根据需求Exclude掉不需要的项目,也可以加快后续打开工程的速度,而且我们看源码的重点目录也主要集中在framework里。

    • 这一点感觉无效,而且会搅乱已有的android配置,不建议)设置JDK和SDK,删除Classpath的列表,添加Sourcepath到源码目录,这样可以保证跳转不会进入AS自动反编译的文件中,而是进入真正的源码。
    • 设置modules中的依赖,根据需要删除一些jar包的依赖,并加入源码目录中frameworks和external的依赖。

后续会补充更多坑点和优化点。
参考以下:
使用Android Studio导入源码
如何使用Android Studio开发/调试Android源码
Android Studio导入Android源码
Sublime Text配合CTags阅读Android源码
可参考:Sublime Text2/3怎样在Mac OSX中配置CTags插件
首先下载安装ctags
在Preferences(设置)菜单中打开Package Control(插件管理器),打开菜单后找到install packages,之后搜索CTags回车安装CTags在sublime中的插件,然后在CTags的配置文件中写入其可执行文件的路径即可。这边我导入的是android / platform / frameworks / base目录下的lollipop-release分支,最后通过Rebuild Tags构建代码的索引。

0 0
原创粉丝点击