本文來我在知乎話題Android開發時你遇到過什么相見恨晚的工具或網站?下的回答!
在實際Android開發過程確實會有很多相見恨晚的工具或網站出現,下面是我自己的一些分享。
1、源碼網站
https://github.com/googlesamples
Android系統每次推出一些新特性,Google都會寫一些Demo放在Github上,對於想要了解新特性怎么玩的同學,肯定不能錯過它。
https://www.codota.com/
如果你不知道一個Android的類怎么用,可以在Codota上面快速的找到很多不錯的示例代碼。
https://android-arsenal.com/
你是否還在為找不到合適的開源庫而苦惱,Android Arsenal這個網站已經幫你做了一定的分類,可以幫你提高不少效率。
https://android.googlesource.com/
Android所有的源代碼都在這里,只需找到對應想要的模塊,用Git克隆下來即可。比如,我想要的framework代碼。
http://androidxref.com/
克隆Android一個模塊的代碼量是很多的,有時候我只想要幾個類的代碼怎么辦?AndroidXRef這個網站可以讓你單獨搜索某個類,要哪幾個下載哪幾個即可。
http://grepcode.com/
除了AndroidXRef可以查看某個類的源代碼外,GrepCode同樣也能做到。而且GrepCode不限於Android的源碼,這里也推薦一下。
2、源碼分析
源碼分析的網站很多,這里舉幾個比較經典的網站。
http://a.codekk.com/
國內Android源碼分析的先驅,由滴滴的技術專家Trinea發起,坦白的講,這個項目對我的影響很大,我也從這里開始體會源碼解讀的魅力的。
http://0xcc0xcd.com/p/index.php
老羅,羅升陽的個人博客站點,很多人看過他博客里面是如何分析Android和Chrome的源代碼的。非常好的一個網站,以前功力不夠沒能看懂文章,經過一段時間后再回去翻看一些文章,不得不贊。
http://gityuan.com/
GitYuan,MIUI系統工程師,他的博客經常分享Android系統源碼解讀的文章,質量很高。而且,更新頻率也很高!
https://github.com/LittleFriendsGroup/AndroidSdkSourceAnalysis
CJJ,豬場(網易)的開發者,由他帶領發起的Android SDK源碼解析,同樣推薦。
3、酷炫動畫
https://github.com/airbnb/lottie-android
Airbnb開源的動畫庫,為什么推薦它,是因為它讓復雜酷炫的動畫效果輕松實現了,不僅提高工程師的效率而且性能非常客觀。我在YY工作,內部已經有一套和它實現原理一樣的框架,所以看到Lottie的時候,一點不覺得奇怪,考慮可能還有不少童鞋應該還不知道它,這里再推薦一下。(PS:Lottie還有iOS、React Native、Web端的實現哦)
4、Crash搜集
https://bugly.qq.com
Bugly,騰訊出品的SDK,對Crash搜集的體驗非常贊,能搜集到JNI層的奔潰以及監控線上的ANR問題。
https://try.crashlytics.com/
Crashlytics,國外的一個SDK,我自己沒用過,但是用過的朋友對它的評價頗高。
https://github.com/ACRA/acra
ARCA,一個開源的崩潰日志搜集器,輕松讓你實現客戶端的崩潰日志上傳到后台,如果你不喜歡接入別人家的SDK,可以使用它。有一個不足之處,就是它搜集不到JNI層的奔潰。
5、逆向分析
逆向分析工具太多,舉幾個經典的做例子。
https://github.com/skylot/jadx/
Jdax,輕輕一下,立馬讓apk寬衣解帶,下面是我拿知乎開刀的例子。
https://github.com/google/android-classyshark
Classyshark,輕松查看apk內部每個包的方法數,用了哪些開源庫,同樣拿知乎開刀做例子。
https://github.com/JesusFreke/smali/wiki/smalidea
smali代碼調試插件,你以為沒有拿到安卓Java源碼就不能調試了嗎?圖樣圖森破了吧。
https://www.hex-rays.com/products/ida/
IDA Pro,逆向大利器,不管你是smali還是so文件,照樣動態調試你。
注意,這些用來漲知識就好,別干壞事!
6、AS插件
Android Studio插件很多,只推薦兩個我常用的。
https://github.com/mcharmas/android-parcelable-intellij-plugin
幫助繼承Parcelable的類自動生成相應代碼,在沒遇見它之前,手動寫過大量的Parcelable實現代碼,真的好痛苦。
https://github.com/zzz40500/GsonFormat
根據JSON數據快速生成Java實體類,又一波解放生產力。
7、調試利器
http://facebook.github.io/stetho/
Stetho,來自Facebook,它能做什么?無需root,借助Chrome可以查看SharePreferences和數據庫中的數據,此外還有網絡抓包以及查看View樹等。
8、性能優化
http://hukai.me/
胡凱,騰訊開發者,翻譯了一系列的Google Android性能優化典范的文章。
https://hujiaweibujidao.github.io/
Hujiawei,魅族開發者,博客最近經常更新Android性能數據搜集統計的相關的文章,本人受益匪淺。