寫在前面
在座的各位大佬一般都是怎么查看源碼的呢?應(yīng)該是說怎么分析源碼的呢?
1、直接查看在線源碼,如果是只看某一個(gè)文件的話,可以的,方便快捷,打開瀏覽器就可以看。推薦幾個(gè)在線鏈接吧。
http://aospxref.com
http://androidxref.com
https://www.androidos.net.cn/sourcecode
2、下載源碼,用SourceInsight等工具,我覺得很麻煩,不知道各位大佬怎么看。也推薦個(gè)下載源碼的博客。
https://blog.csdn.net/qiantujava/article/details/102847414
3、直接在AndroidStudio查看。新建一個(gè)Android項(xiàng)目,都會引用到android.jar這個(gè)包的,然后AS自動(dòng)反編譯,可以用最熟悉的工具跳來跳去看,爽歪歪。但是這個(gè)包是閹割過的,只有非常少量的源碼。但是如果你SDK有下載到sources,雙擊shift鍵搜索file,可以直接打開sources里面的源碼,也是很方便的。這個(gè)方法有個(gè)超誘惑的點(diǎn),就是可以直接斷點(diǎn)調(diào)試。
4、上面說android.jar是閹割過的,所以如果搞個(gè)完整的android.jar替換掉不就可以了么,完整android.jar傳送門:https://github.com/anggrayudi/android-hidden-api,選擇你要的版本下載,然后替換掉本地SDK中對應(yīng)的版本的android.jar文件即可。親測看源碼可行,但是正常的項(xiàng)目編譯不了了,,,
5、新建JAVA項(xiàng)目,把source里的源碼復(fù)制到項(xiàng)目里面,用IDEA打開。這么多方法中,我覺得這個(gè)是響應(yīng)最快的,不用雙擊shift搜索file了,也沒有那么多紅線了,基本上就是一個(gè)完整的項(xiàng)目。痛點(diǎn)就是不能調(diào)試,只能查看、分析。此文就是介紹這個(gè)方法,估計(jì)全網(wǎng)只有我醬紫看源碼吧。
下載IDEA
官網(wǎng)鏈接:http://www.jetbrains.com/idea/
官網(wǎng)有點(diǎn)慢,自己汁生。
點(diǎn)擊DOWNLOAD后可以選在下載試用版或者社區(qū)版,社區(qū)版是免費(fèi)的。
新建JAVA項(xiàng)目
打開新建項(xiàng)目對話框,如下:
插一句,AndroidStudio也支持Kotlin DSL build script了,就是用kotlin寫build.gradle,不用groovy了,我試了一下,爽到爆,各種語法都看的懂了,也可以直接點(diǎn)擊到源碼。但是支持還不夠完美,有些功能還沒有。以后會是個(gè)趨勢吧。
下一步,寫好
GroupId和ArtifactId,你只是看下源碼而已,所以隨便填。再下一步,項(xiàng)目名,路徑等等,隨便填。
然后就建好項(xiàng)目了,可以直接運(yùn)行main方法了。
把源碼復(fù)制到項(xiàng)目中
這里說的源碼是SDK中下載的源碼,我看的是API28的,路徑為D:\android-sdk\sources\android-28中,把里面的代碼全部復(fù)制到剛才創(chuàng)建的項(xiàng)目中即可,我項(xiàng)目名為Api28,路徑為:Api28\src\main\java。
效果
如下圖,各個(gè)方法隨便跳。
寫在最后
一個(gè)好的工具,和一個(gè)好的方法,真的會事半功倍。這大概就是磨刀不誤砍柴工,砍柴一世一只弓。