ClassyShark分析App信息
ClassyShark是Google開發的一個用於Android App分析的工具,可以分析jar, class, apk, dex, so, aar類型的文件。利用Classyshark對App進行分析,可以瞭解到該App採用了什麼樣的框架,用到哪些開源組件和技術,從而瞭解技術趨勢,做到學以致用。
Classyshark下載地址https://github.com/google/android-classyshark/releases。
使用文檔:https://github.com/google/android-classyshark/blob/master/CommandLine.pdf
使用起來很簡單,通過如下命令啓動:
java -jar ClassyShark.jar
然後將需要分析的apk拖進去就行了。本文分析了滴滴出行用戶端,春雨醫生用戶端和醫生端apk,分析結果展示如下。
嘀嘀出行用戶端
總結:
兩個Dex文件
網絡通信:OkHttp(Square)
圖片加載:UniversalImageLoader,Glide
支付:阿里支付,微信支付
數據格式:Json,Protocol Buffer
Json解析:Gson(Google)
Protocol Buffer解析:Protobuf(Google),Wire(Square)
地圖導航:高德地圖,騰訊地圖
推送:個推
語音識別:科大訊飛
人臉識別和運動識別:曠世科技
事件訂閱發佈:AndroidEventBus
Crash信息收集:騰訊Bugly
代碼防反編譯:阿里
內存泄露檢測:LeakCanary(Square)
加密算法:conceal(Facebook)
二維碼掃描:ZXing (Google)
壓縮圖片:WebP(Google)
UI組件:joooonho(四角矩形),materialishprogress(進度條),android-Ultra-Pull-To-Refresh(下拉刷新),Gif顯示控件
開發模式:MVP
春雨醫生診所端App
HttpClient網絡庫,HttpClient 是 Apache Jakarta Common 下的子項目,可以用來提供高效的、最新的、功能豐富的支持 HTTP 協議的客戶端編程工具包。HttpClient 用到了 Apache Jakarta common 下的子項目 codec commons-codec是Apache下面的一個加解密開發包,提供了Base64/MD5/SHA1/SHA256加密算法。
PhotoView:
支持單點/多點觸摸,即時縮放圖片;
支持平滑滾動;
在滑動父控件下能夠運行良好;(例如:ViewPager)
當用戶的觸點改變時可以觸發通知。
總結:
兩個dex文件
定位:高德地圖
推送:個推
網絡:OkHttp+HttpClient
性能監控:聽雲
視頻聊天:菊風
三方登錄/分享:新浪,騰訊
SqlLite數據庫DAO:GreenDao
事件訂閱/發佈:EventBus,AndroidEventBus
圖片縮放:ImageViewZoom,PhotoView
注意:這不是用到的所有的庫,有些庫做了代碼混淆,不能識別出是什麼庫,比如圖片加載的Picasso庫。
春雨醫生用戶端
除了上述醫生端用到的組件外,還用到了:
總結:
兩個dex文件
定位:高德地圖
推送:個推
網絡:OkHttp+HttpClient
圖片加載:Picasso
性能監控:聽雲
視頻聊天:菊風
三方登錄/分享:新浪,騰訊
支付工具:阿里支付,微信支付,銀聯支付
事件訂閱/發佈:EventBus
圖片縮放:ImageViewZoom,PhotoView
二維碼掃描:ZXing
數據收集:Countly,Flurry
語音識別:百度語音
圖標繪製:MPAndroidChart