Android Studio导入Android源码(推荐)

慈云数据 2024-04-02 技术支持 50 0

实际项目开发中,FWK需要阅读全部的源码,如果直接用AS打开所有源码会很卡,大多数情况下会直接卡死(公司电脑配置如此),体验感极差;如果使用VS Code阅读,有一个缺点就是无法实现AS里的方法跳转,只能搜索,相对会麻烦一些。

所以介绍AS导入Android.ipr的方式阅读Android源码。

一、生成Android.ipr

1、进入项目根目录,执行:

source build/envsetup.sh
lunch 项目版本号
make idegen -j8

编译完成后有idegen.jar生成(编译成功会有 jar包输出路径

2、再执行

development/tools/idegen/idegen.sh
// 如果直接执行没有权限,需要sudo + 以上命令

会生成android.ipr 和android.iml文件

注:如果在该步骤中出现以下报错,是本地JDK版本较低的原因:

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: 
Main has been compiled by a more recent version of the Java Runtime 
(class file version 53.0), 
this version of the Java Runtime only recognizes class file versions up to 52.0

Ubuntu下JDK安装

#更新库
apt update
#查看jdk版本
apt search OpenJDK
#安装jdk
apt install openjdk-11-jdk

Ubuntu多版本JDK管理

#查看已存在安装版本的jdk
update-alternatives --list java

#选择要使用的版本
update-alternatives --config java

编译器同上,

#查看java编译器版本
update-alternatives --list javac
#更改java编译器版本
update-alternatives --config javac

查看当前Java版本

java -version

二、导入Android.ipr

导入整个源码时需要根据自己的需求来定,打开android.iml文件,把自己不需要导入工程的目录添加进去,将以下内容复制到标签内




















打开Android Studio,File -> Open...,选择对应的android.ipr文件

三、关联项目源码

因为AS默认会关联SDK里面的源码,为方便查看项目的源码,需要把SDK源码关联解除,这样我们点击查看某个class时就会打开项目源码的 .java文件,而不是SDK的 .class文件

1、File->Projects Structure->SDKs,新建JDK并任取一个名字,然后清空Classpath、Sourcepath、Annotations、Documentation Paths,也就是新建一个空的JDK路径

2、选择Android API xx Platform(版本不要太低),然后在Java SDK栏选择刚刚新建的JDK,并清空Classpath,Sourcepath,Annotations,Documentation Paths

3、点击Project,SDK栏选择Android API xx Platform

4、点击Modules,点击android,在Dependencies栏删除 和 Android API xx Platform以外的所有 jar

最后Apply -> OK即可。

参考文章:Android Studio导入Android源码 - 掘金 (juejin.cn)

微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon