赞
踩
实际项目开发中,FWK需要阅读全部的源码,如果直接用AS打开所有源码会很卡,大多数情况下会直接卡死(公司电脑配置如此),体验感极差;如果使用VS Code阅读,有一个缺点就是无法实现AS里的方法跳转,只能搜索,相对会麻烦一些。
所以介绍AS导入Android.ipr的方式阅读Android源码。
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
- #更新库
- apt update
- #查看jdk版本
- apt search openjdk
- #安装jdk
- apt install openjdk-11-jdk
- #查看已存在安装版本的jdk
- update-alternatives --list java
- #选择要使用的版本
- update-alternatives --config java
编译器同上,
- #查看java编译器版本
- update-alternatives --list javac
- #更改java编译器版本
- update-alternatives --config javac
查看当前Java版本
java -version
导入整个源码时需要根据自己的需求来定,打开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即可。
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。