功能升級最好用增量更新。
**dex分包**
一般一個APP只有一個dex文件,但是通過dex分包技術,可以有多個dex文件。
原因:
1. 解決65536的問題,如果一個項目非常大,模塊較多,函數的數量就超過65536,這時Google就提出了[MultiDex方案](https://developer.android.com/reference/android/support/multidex/MultiDex.html),即一個apk文件可以包含多個dex文件。不過值得注意的是,除了第一個dex文件以外,其他的dex文件都是以資源的形式被加載的, 換句話說就是在Application初始化前將dex文件注入到系統的ClassLoader中的。
方法數量過多,編譯時出錯,提示:
~~~
Conversion to Dalvik format failed:Unable to execute dex: method ID not in [0, 0xffff]: 65536
~~~
2. 熱修復
根據Android虛擬機的類加載機制,同一個類只會被加載一次,所以熱修復也使用了這樣的機制,要讓修復后的類替換原有的類就必須讓補丁包的類被優先加載,也就是插入到原有dex之前。
關于MultiDex方案可參考[美團Android DEX自動拆包及動態加載簡介](https://tech.meituan.com/mt-android-auto-split-dex.html)
- 前言
- Android 熱補丁技術——資源的熱修復
- 插件化系列詳解
- Dex分包——MultiDex
- Google官網——配置方法數超過 64K 的應用
- IMOOC熱修復與插件化筆記
- 第1章 class文件與dex文件解析
- Class文件解析
- dex文件解析
- class與dex對比
- 第2章 虛擬機深入講解
- 第3章 ClassLoader原理講解
- 類的加載過程
- ClassLoade源碼分析
- Android中的動態加載
- 第4章 熱修復簡單講解
- 第5章 熱修復AndFix詳解
- 第6章 熱修復Tinker詳解及兩種方式接入
- 第7章 引入熱修復后代碼及版本管理
- 第8章 插件化原理深入講解
- 第9章 使用Small完成插件化
- 第10章 使用Atlas完成插件化
- 第11章 課程整體總結
- DN學院熱修復插件化筆錄
- 插件化
- 熱修復
- Android APP開發應掌握的底層知識
- 概述
- Binder
- AIDL
- AMS
- Activity的啟動和通信原理
- App啟動流程第2篇
- App內部的頁面跳轉
- Context家族史
- Service
- BroadcastReceiver
- ContentProvider
- PMS及App安裝過程