前言
相信大家都知道安卓應用開發的大量難題,其實最後都需要插件技術去解決。
現今插件技術的使用非常普遍,比如微信、QQ、淘寶、天貓、空間、攜程、大衆點評、手機管家等等這些大家在熟悉不過的應用都在使用。
插件技術可以給項目開發帶來巨大的好處,比如:並行高效開發、模塊解耦、解除單個dex函數不能超過65535的限制、動態更新升級、按需加載等等。
掌握好插件技術,需要如下的安卓基礎和相關知識,例如:
-
Android應用程序安裝,加載過程
-
Android應用運行機制,生命週期調用原理
-
Android應用資源編譯打包原理
-
Android應用讀取資源原理
-
Android系統AMS、PMS、NMS等系統服務的運作原理
-
增量更新
- HOOK等技術
本文將從基礎的插件化原理到Android插件化初探再到大廠架構演化實戰應用,總結出了較爲全面與完整的安卓插件技術與插件化對 Android開發的重要性。
插件化原理
1.類加載
2.雙親委託機制
3.資源加載
4.四大組件支持
5 ProxyActivity代理
6 hook方式
7 其他組件
8 Android動態加載框架DL的架構與基本原理解析
9 Android 插件化框架 DynamicLoadApk 源碼分析
Android插件化初探
1.從零開始實現一個插件化框架(1)
-
概念
-
插件化解決的問題
-
各插件化框架對比
-
插件化實現
- ClassLoader實現類
2.從零開始實現一個插件化框架(2)
-
Activity的啓動流程
-
尋找Hook點
-
擼碼階段
-
代理對象
-
偷天換日,替換原來的Intent
-
ActivityThread
-
將代理的intent替換回來
- 注意
3.從零開始實現一個插件化框架(3)
-
插件資源加載
-
Android中資源加載流程
-
ActivityManager
-
ActivityThread
-
AppCompatActivity
- 總結
大廠架構演化
1.360插件開發之DroidPlugin
-
插件開發之360 DroidPlugin源碼分析
-
Hook機制類圖關係
-
Hook機制的時序圖關係
-
Manifest權限申請
-
基類Hook做了什麼?
-
ProxyHook
-
BaseHookHandle
-
HookedMethodHandler
-
ReplaceCallingPackageHookedMethodHandler
-
IO重定向
-
遞歸遍歷
-
以IPackageManager爲例
- 插件開發之360 DroidPlugin源碼分析之Binder代理
2. 滴滴VirtualApk實戰
-
配置
-
應用
-
原理
-
總結
- 問題
3.基於VirtualAPK Android重構之插件化
-
Plug-in Hello World
-
插件化框架的選擇
-
插件化原理
-
引入插件化之痛
- 總結
4.愛奇藝插件化原理分析之 Neptune框架
-
插件化基礎知識點
-
類加載
-
插件化中資源使用限制
-
Apk打包流程
-
四大組件的插件化
-
Neptune源碼分析
-
插件Activity任務棧
- 處理插件中的廣播
5. 360開源全面插件化框架RePlugin 實戰
-
RePlugin 介紹
-
宿主接入步驟
-
插件接入步驟
- 使用插架
6. 騰訊插件化框架 Shadow項目解析
-
框架簡單介紹
-
框架結構分析
-
sample 示例代碼 AndroidManifest.xml 分析
-
Activity 實現
-
替換插件 Activity 的父類
-
Service 實現
-
BroadcastReceiver 實現
-
ContentProvider 實現
-
框架自身動態化
- 總結
總結:
插件化技術可以說是Android高級工程師所必須具備的技能之一,從2012年插件化概念的提出(Android版本),到2016年插件化的百花爭豔,直至現在拆件化已成爲Android開發必不可少的重點,可以說,插件化技術引領着Android技術的進步。
我相信一個高級程序員一定是勤奮的,可以快速地掌握大量 的新技術、新框架,不僅懂得原理,還能把新的技術落地到公司的產品中去。這是衡量程序員 工作能力的一個重要標準,那麼怎樣才能將技術運用自如呢?唯有實踐。
如果你正好需要這份完整版Android高級插件化強化實戰文檔,只需你多多支持我這篇文章。
整理不易,覺得有幫助的朋友可以幫忙點贊分享支持一下小編~
你的支持,我的動力;祝各位前程似錦,offer不斷!!!