aosp源码导入android studio无法跳转-学员答疑

背景:

在学习framework入门课时候,一个很重要环节就是导入aosp的源码到android studio,这样有了IDE之后开发起来就很方便了,但是很多学员朋友对编译出来的ipr,iml文件改造不知道该怎么搞,导致android studio导入了源码后发现无法进行跳转,没办法跳转到系统源码,都是跳都一些奇奇怪怪的jar中。

生成相关ipr,iml等工程文件

执行以下四条命令:

". build/envsetup.sh" (source可以用 .代替,即". build/envsetup.sh")

"lunch",并选择要编译的项目

"make idegen -j4" (这里的 -j4表示用 4线程来编译,可以不加)

"development/tools/idegen/idegen.sh" (报错find: 'out/target/product/generic_x86_64/root/d': Permission denied没有关系不影响ipr和iml文件生成,注意这里不要因为有权限问题就随意用sudo)

上面命令生成关键的来说android.ipr和android.iml文件

bash 复制代码
-rw-rw-r--   1 test test  16569 Aug 21 10:42 android.ipr
-rw-rw-r--   1 test test 516724 Aug 21 10:42 android.iml

如果直接在android studio导入这ipr,iml文件,那么就会问题较多,主要有以下几个问题

1、源码文件太多,全部进行导入,android studio加载负担太大,加载时间太久基本上无法使用,而且加载太多也非常非常卡顿

2、加载源码后,因为依赖moudle不是源码而是一堆jar,所以导致aosp源码无法正确跳转源码,也就是失去了android studio看源码意义

解决以上两个痛点问题,那就是要对android.iml进行改造。

修改android.iml文件

1、排除一些不需要加载的目录

这里可以看到其实自带excludeFolder目录很少,其实对于我们来说主要就只需要framework,packages目录既可以,所以这里大家可以自己添加较多的excludeFolder,具体看下面我的iml源码,大家可以参考我的来。

2、源码依赖orderEntry只留下sourceFolder

可以看到orderEntry其实就是依赖顺序,一大堆的jar等排在sourceFolder前面,所以这个就是跳转不了的根源,这里大家可以把 前面的orderEntry全部删除。

附带改造后的android.iml文件

android 8.1的改造iml文件,主要修改部分如下:

具体详细iml文件可以直接下载和你原生编译进行对比然后修改,偷懒也可以直接使用我提供的。

文件下载地址:
https://share.weiyun.com/T8UwF3U3 密码:r3hept

导入后观察android studio的Project Structure

所以跳转如果有问题,也可以通过上面界面进行检查问题。

内存设置

有些同学反馈ide容易自己闪退,我这边建议是内存设置大一点

总结

1、针对导入后要加载代码很久,卡顿等问题,减少导入的sourceFolder,加大内存

2、针对源码无法跳转问题,就是需要修改依赖,让orderEntry只剩下sourceFolder,不要其他jar

投屏专题部分:
https://mp.weixin.qq.com/s/IGm6VHMiAOPejC_H3N_SNg

更多framework详细代码和资料参考如下链接

hal+perfetto+surfaceflinger

https://mp.weixin.qq.com/s/LbVLnu1udqExHVKxd74ILg

其他课程七件套专题:

点击这里
https://mp.weixin.qq.com/s/Qv8zjgQ0CkalKmvi8tMGaw

视频试看:
https://www.bilibili.com/video/BV1wc41117L4/

参考相关链接:

https://blog.csdn.net/zhimokf/article/details/137958615

更多framework假威风耗:androidframework007

相关推荐
浩浩乎@4 分钟前
【openGLES】安卓端EGL的使用
android
Kotlin上海用户组1 小时前
Koin vs. Hilt——最流行的 Android DI 框架全方位对比
android·架构·kotlin
zzq19962 小时前
Android framework 开发者模式下,如何修改动画过度模式
android
木叶丸2 小时前
Flutter 生命周期完全指南
android·flutter·ios
阿幸软件杂货间2 小时前
阿幸课堂随机点名
android·开发语言·javascript
没有了遇见2 小时前
Android 渐变色整理之功能实现<二>文字,背景,边框,进度条等
android
没有了遇见3 小时前
Android RecycleView 条目进入和滑出屏幕的渐变阴影效果
android
站在巨人肩膀上的码农4 小时前
去掉长按遥控器power键后提示关机、飞行模式的弹窗
android·安卓·rk·关机弹窗·power键·长按·飞行模式弹窗
LIN-JUN-WEI4 小时前
[ESP32]VSCODE+ESP-IDF环境搭建及blink例程尝试(win10 win11均配置成功)
c语言·开发语言·ide·vscode·单片机·学习·编辑器
呼啦啦--隔壁老王4 小时前
屏幕旋转流程
android