Android系统源码学习
在经过一系列的辛苦之后,终于把Android系统源码下载下来了,剩下的就是如何查看学习系统源码了。
这时一个问题出现了,Android系统源码如此庞大,该如何查看?
经过苦苦挣扎,然后询问广大网友,得知Android studio也可查看系统源码,立刻兴奋起来,马上搜索一下。
步骤一:
进入Android 源码根目录,当然,这个源码是在Linux环境下并且已经成功编译完成,要不然也不能编译是不是
- 在命令行终端执行
mmm development/tools/idegen/
这行命令的意思是编译idegen这个项目,生成 idegen.jar文件.生成成功后,会显示这个jar包的位置,并显示 #### make completed successfully (43 seconds) #### ,如果编译失败了,后面会讲到这种情况(比较少见)
然而问题来了,无法找到 mmm命令,出现以下提示
No command 'mmm' found, did you mean:
Command 'mwm' from package 'motif-clients' (multiverse)
Command 'mwm' from package 'lesstif-bin' (universe)
Command 'mgm' from package 'mgm' (universe)
Command 'rmm' from package 'nmh' (universe)
Command 'rmm' from package 'mailutils-mh' (universe)
Command 'mmv' from package 'mmv' (universe)
Command 'mmd' from package 'mtools' (main)
Command 'mmg' from package 'mkvtoolnix-gui' (universe)
Command 'mm' from package 'mountmanager' (universe)
Command 'mm' from package 'multimail' (universe)
或
未找到 'mmm' 命令,您要输入的是否是:
命令 'mwm' 来自于包 'motif-clients' (multiverse)
命令 'mwm' 来自于包 'lesstif-bin' (universe)
命令 'mgm' 来自于包 'mgm' (universe)
命令 'rmm' 来自于包 'nmh' (universe)
命令 'rmm' 来自于包 'mailutils-mh' (universe)
命令 'mmv' 来自于包 'mmv' (universe)
命令 'mmd' 来自于包 'mtools' (main)
命令 'mmg' 来自于包 'mkvtoolnix-gui' (universe)
命令 'mma' 来自于包 'mma' (universe)
命令 'mm' 来自于包 'mountmanager' (universe)
命令 'mm' 来自于包 'multimail' (universe)
再次搜索发现使用m、mm、mmm命令之前要在android源码目录下执行命令
. build/envsetup.sh
步骤二:
在Android源码根目录执行
sh ./development/tools/idegen/idegen.sh
或
development/tools/idegen/idegen.sh
就会得到以下结果:
Read excludes: 1ms
Traversed tree: 3114ms
这行命令的意思是生成对应的文件(在android系统源码的根目录下):android.iws, android.ipr, android.iml 。
其中上面的 sh 命令指的是运行shell脚本
步骤三:
导入 Android studio
打开Android studio,点击File > Open,选择刚刚生成的android.ipr就好了。
过一会儿可以在android studio完美打开了
参考文章:
http://www.jianshu.com/p/c85984cf99e2
http://www.cnblogs.com/qianxudetianxia/p/3721202.html