Android系统开发(一)阅读安卓源代码方法——然而并不是SourceInset

Android Studio阅读源代码

    但凡大阅读大工程源代码在windows 端大都会想起一个 n多年没有更新的工具 SourceInset,说实话在阅读kernel和uboot等大工程时未必真的那么好用,但是目前无可替代。建立索引后速度还算可以,如果阅读Android源代码哪怕是老版本的 这个工具会让你产生幻觉:我的电脑是不是崩了。好吧 我们用Android Studio就是你了。

1、首先我们要做的是编译android源码:这一部分可以参考一下下面的链接,注意被了。

https://source.android.com/source/initializing

2、

1)在Android源码目录下 使用命令 mmm development/tools/idegen/

这行命令的意思是编译idegen这个项目,生成idegen.jar文件.可被用作快速的读源代码。

但是也有可能被提示:

No command 'mmm' found, did you mean:
 Command 'mm' from package 'multimail' (universe)
 Command 'vmm' from package 'vmm' (universe)
 Command 'mmv' from package 'mmv' (universe)
 Command 'mgm' from package 'mgm' (universe)
 Command 'mmg' from package 'mkvtoolnix-gui' (universe)
 Command 'mmd' from package 'mtools' (main)
 Command 'rmm' from package 'nmh' (universe)
 Command 'rmm' from package 'mailutils-mh' (universe)
 Command 'mwm' from package 'mwm' (universe)

2)

使用:. setenv 之后再次使用mmm命令

再使用 sh ./development/tools/idegen/idegen.sh 这里需要等待一会时间;

果真跟很多帖子一样出现了错误:

Exception in thread "main" java.io.FileNotFoundException: ./out/target/product/tiny4412/obj/GYP/shared_intermediates/res.java (Is a directory)

./out/target/product/xxxxxx/obj/GYP/shared_intermediates/res.java改为

./out/target/product/xxxxxx/obj/GYP/shared_intermediates/res.j

命令为:

mv ./out/target/product/xxxxxx/obj/GYP/shared_intermediates/res.java ./out/target/product/xxxxxx/obj/GYP/shared_intermediates/res.j
s
命令中  xxxxx 对应你自己开发研发设备的名称环境等

之后再次执行:sh ./development/tools/idegen/idegen.sh

截止到此处 源代码中生成了2个文件:android.iml, android.ipr

将这两个文件拷贝window下解压的Android源码目录。

Android系统开发(一)阅读安卓源代码方法——然而并不是SourceInset_第1张图片

接下来时间比较漫长是个建立链接的过程。

3、为了防止关联错误,最好自己指定自己想要关联的库操作如下:

Android系统开发(一)阅读安卓源代码方法——然而并不是SourceInset_第2张图片

Android系统开发(一)阅读安卓源代码方法——然而并不是SourceInset_第3张图片

Android系统开发(一)阅读安卓源代码方法——然而并不是SourceInset_第4张图片

由衷感谢同事提供的韦老师简短的视频,事半功倍。

你可能感兴趣的:(Android系统)