用AndroidStudio查看源码

一,准备工作

在使用Android Studio查看源码之前,你需要做下面几件事:

下载Android源码
进行过一次完整编译(不编译是无法进行源码导入工作的)
以上操作可以参考Google 官方教程 以确保万无一失(呵呵).上面的几个链接需要翻墙才可以访问,不过有兴趣看这篇文章的人,大部分应该都是知道VPN的.
或者没有VPN不会翻墙的,速度去卖一个VPN,能花钱解决的事情,就不要花时间.

二,开始

进入Android 源码根目录
执行
. build/envsetup.sh
再执行
mmm development/tools/idegen/
这行命令的意思是编译idegen这个项目,生成idegen.jar文件.生成成功后,会显示这个jar包的位置,并显示 #### make completed successfully (43 seconds) #### ,如果编译失败了,后面会讲到这种情况(比较少见)
执行
sh ./development/tools/idegen/idegen.sh
这行命令的意思是生成对应的文件:android.iws, android.ipr, android.iml .如果生成失败,后面也会讲到这种情况.
生成对应的文件后,打开Android Studio,选择打开一个现有的Android Studio项目,选择Android源码的根目录,导入即可(起作用的是android.irp文件).在配置sdk版本之后就可以查看Android 源码了.

三,异常情况

执行第一个命令的时候编译不过,出现这种情况的原因有好几种:

	Android 源码没有下载完全
	没有进行全部编译
	环境变量配置有问题

	解决方法依问题而定,网上对应的帖子很多,可以自己去找. 推荐这种问题还是去Google 和StackOverFlow 上去问.

执行第二个命令的时候,碰到下面的问题:

	Exception in thread "main" java.io.FileNotFoundException: ./out/target/product/hammerhead/obj/GYP/shared_intermediates/res.java (Is a directory)
	at java.io.FileInputStream.open(Native Method)
	at java.io.FileInputStream.<init>(FileInputStream.java:138)
	at java.io.FileReader.<init>(FileReader.java:72)
	at Configuration.parsePackageName(Configuration.java:204)
	at Configuration.rootOf(Configuration.java:180)
	at Configuration.traverse(Configuration.java:140)
	at Configuration.traverse(Configuration.java:167)
	at Configuration.traverse(Configuration.java:167)
	at Configuration.traverse(Configuration.java:167)
	at Configuration.traverse(Configuration.java:167)
	at Configuration.traverse(Configuration.java:167)
	at Configuration.traverse(Configuration.java:167)
	at Configuration.traverse(Configuration.java:167)
	at Configuration.<init>(Configuration.java:72)
	at Main.main(Main.java:37)		

	解决办法是将
	./out/target/product/hammerhead/obj/GYP/shared_intermediates/res.java
	修改为:
	./out/target/product/hammerhead/obj/GYP/shared_intermediates/res.j
	即可.

还可能会碰到

./development/tools/idegen/idegen.sh: 8: ./development/tools/idegen/idegen.sh: [[: not found
find: `/M7_8321': No such file or directory
Couldn't find idegen.jar. Please run make first.

错误
尝试用

./development/tools/idegen/idegen.sh

编译即可

发布了45 篇原创文章 · 获赞 23 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/Easyhood/article/details/53466648