分析應用的技術框架和開源庫

歡迎Follow我的GitHub, 關注我的簡書. 其余參考Android目錄.

Shark

本文的合集已經編著成書,高級Android開發強化實戰,歡迎各位讀友的建議和指導。在京東即可購買:https://item.jd.com/12385680.html

Android

App應用本質上是一個apk包, 即一個zip包, 可以直接顯示其中的內容. 通過apk文件, 我們可以獲知apk的版本信息, so庫和第三方庫, 并了解一些主流公司的應用框架. 分析工具主要是ApkToolClassyShark, 本人比較喜歡Shark工具. 我使用ClassyShark分析一下美團的框架, 也可以按照這個原理, 分析其他App的基本架構.

本文是ClassyShark的官方唯一中文參考文檔.

讓我們看看, 有什么好玩且有用的架構信息?


1 框架

框架

美團的編譯版本非常新, 緊跟時代, 23版本(Android 6.0).
但是TargetSdkVersion仍然是22版本(Android 5.1), 推薦使用5.1.
最低版本是16(Android 4.1), 4.1以下的手機無法運行.

使用MultiDex, 而且竟然有三個, 說明方法非常之多, 可能引入了大量第三方庫.


2 方法

方法

文件非常之多, 共有9萬多個, 使用了大量的主流開源庫, 非常易于管理.
我來介紹一下這些庫, 不認識的朋友最好學習一下, 這些都是非常流行的開源庫.

2.1 com

sankuai, 美團的核心類;
xiaomi, 小米推送(xiaomi);
squareup, Squareup的EventBus(otto), okhttp, picasso;
readystatesoftware, 狀態欄沉浸效果庫;
dianping, 大眾點評, 已經合并一家, 東西也得用;
baidu, 百度地圖;
viewpagerindicator, viewpager的滾動效果, 早期實現toolbar效果的方式;
weibo, 新浪微博;
fasterxml, 即jackson, json解析庫;
iflytek, 科大訊飛的語音集成;
flurry, 統計庫;
actionbarsherlock, actionBar的Tab效果, 和viewpagerindicator一起用.
meituan, 美團的核心類;
alipay, 支付寶;
handmark, 下拉刷新;
ms, Square的TextView文字擴展庫, ExpandableTextView;
facebook, 圖片處理庫, 美團有大量的圖片需求;
google, Gson解析庫, ZXing二維碼識別庫, Dagger依賴注入;
unionpay, 銀聯支付;
tencent, 騰訊的QQ和微信;
ta, utdid2, 消息推送;
huawei, 華為手機的推送機制;
umpay, 聯動優勢支付;
amap, 高德地圖;
nineoldandroids, ListView項的左右刪除;
sina, 新浪登錄;

2.2 其他

其他

de.greenrobot, EventBus, 又一個, 看來代碼開發還很混亂, 沒有統一;
retrofit, 網絡庫, 2.x版本, 升級很及時;
javax, java注釋, 配合dagger2使用;
org, apache的一些庫;
rx, rxjava異步請求處理;
okio, square的存儲數據讀寫庫;
uk, photoview實現圖片放大縮小功能;
android, 這個才是android提供的支持庫;
bolts, 異步task關聯庫.
roboguice, Google Guice, Google的依賴注入庫, 和Dagger2重復;
net, lingala, 處理zip壓縮的庫.


3 總結

美團是一個技術非常Open的公司, 使用主流的開源框架, 減少開發成本.
這些開源庫, 我也均有涉獵, 都是非常優秀的庫, 不了解的朋友可以學習一下.
雖然方法很多, 但是使用開源庫, 會大大減少開發成本, 增強應用穩定性.
Dagger+Retrofit+RxJava的業內標配, 美團也有所涉獵, 非常不錯.

備注:
ClassyShark是查看Apk信息的軟件, 功能非常強大, 省去反編譯的步驟. 主要功能: 查看MultiDex的dex信息, 使用的NativeLibrary, 類和方法的數量統計.


通過分析App的開源庫, 是不是感覺架構其實也不是那么難, 多涉獵些東西, 使用起來才會得心應手. 武器庫里多些趁手的武器, 打仗才會無往不勝.

OK, that's all! Enjoy it.

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,908評論 6 541
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,324評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,018評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,675評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,417評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,783評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,779評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,960評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,522評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,267評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,471評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,009評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,698評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,099評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,386評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,204評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,436評論 2 378

推薦閱讀更多精彩內容