关于阅读源码,本号之前推送过一篇非常详尽的文章教大家如何方便的阅读framework源码:
大致为在线查看:
https://www.androidos.net.cn/sourcecode
替换adk中android.jar直接在as中查看:
https://github.com/anggrayudi/android-hidden-api
直接下载framework代码,配合一些工具查看
https://github.com/aosp-mirror/platform_frameworks_base
不过总是有偶尔缺少一些类,该来的总是要来的。
下载完整源码
大家应该都有过这样的想法:
我一定要抽时间下载一个android源码自己编一下
然后都遇上以下几种情况:
情况一:
开启百度
搜索:“如何编译android源码”
打开,兴致满满…
这么麻烦…下次吧。
情况二:
开启百度
搜索:“如何编译android源码”
打开,兴致满满…
需要存储空间几十G
我电脑好像没有这么多空间,再见。
不瞒各位,我也是上述的情况,一直拖延很久很久才第一次下载完整源码,还是一位刚入行不久的同事push了我一把,感谢!
所以…
我来push一下大家吧。
希望这一次不要给自己找借口拖延,找个时间就导入吧。
目标
下载完整源码,可以在Android Studio中自由查看。
就像这样:
image
随手搜一个我们原生系统,运行时权限弹框的Activity吧:
<pre style=”margin: 0px; padding: 0px; max-width: 100%; box-sizing: border-box !important; word-wrap: break-word !important; color: rgb(51, 51, 51); font-size: 17px;公众-style: normal; font-variant: normal; font-weight: normal; letter-spacing: 0.544000029563904px; line-height: 27.2000007629395px; orphans: auto; text-align: justify; text-indent: 0px; text-transform: none; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);”>
GrantPermissionsActivity
</pre>
这个类因为在独立的模块,所以常规的导入framework代码是看不到的。
image
步骤
本文无限感谢:
https://juejin.im/post/5bd5c42ce51d457a9b6c8387
整体下载也是按照这篇文章来的,所以这里我简单讲一下核心步骤,这篇文章应该更详细一些。
1. 下载源码
2. 下载repo工具,检出源码
3. 很多时候编译是个非常让人头大的问题,但是总有一些可爱的人帮我们完成了这些步骤
https://github.com/difcareer/AndroidSourceReader
给我们提供了各个版本导入as所需的编译产物。
于是我们clone,下来copy进去就行了。
4. 导入Android Studio
5. over…
总结下,就是下载源码,repo导出,放入编译所需产物文件,导入AS即可。
具体参考上述的文章即可,我就不重复出现太多内容了。
基本上没有特别复杂的操作,如果你还没有导入过源码,给自己设立个TODO吧,这算是一件非常有意义的事情,对你之后源码阅读有些无限的帮助。
好了,本文结束,准备在未来的文章中会出现很多类似的任务,大多数都是对大家实实在在非常有益的事情,如果愿意,不防践行下。
转微信公众号:鸿洋