Android Studio导入Android源码(推荐)

本文介绍了在实际项目开发中,为解决FWK工具打开大量源码卡顿问题,如何通过生成Android.ipr文件并配置AS,以及如何关联项目源码,以便于在AS中更有效地阅读和管理Android源码的过程。

实际项目开发中,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文件,把自己不需要导入工程的目录添加进去,将以下内容复制到<content>标签内

<excludeFolder url="file://$MODULE_DIR$/.repo" />
<excludeFolder url="file://$MODULE_DIR$/abi" />
<excludeFolder url="file://$MODULE_DIR$/art" />
<excludeFolder url="file://$MODULE_DIR$/bionic" />
<excludeFolder url="file://$MODULE_DIR$/bootable" />
<excludeFolder url="file://$MODULE_DIR$/build" />
<excludeFolder url="file://$MODULE_DIR$/cts" />
<excludeFolder url="file://$MODULE_DIR$/dalvik" />
<excludeFolder url="file://$MODULE_DIR$/developers" />
<excludeFolder url="file://$MODULE_DIR$/development" />
<excludeFolder url="file://$MODULE_DIR$/docs" />
<excludeFolder url="file://$MODULE_DIR$/libcore" />
<excludeFolder url="file://$MODULE_DIR$/libnativehelper" />
<excludeFolder url="file://$MODULE_DIR$/ndk" />
<excludeFolder url="file://$MODULE_DIR$/out" />
<excludeFolder url="file://$MODULE_DIR$/pdk" />
<excludeFolder url="file://$MODULE_DIR$/prebuilt" />
<excludeFolder url="file://$MODULE_DIR$/prebuilts" />
<excludeFolder url="file://$MODULE_DIR$/sdk" />
<excludeFolder url="file://$MODULE_DIR$/tools" />

打开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栏删除 <Module source>和 Android API xx Platform以外的所有 jar

最后Apply -> OK即可。

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值