Multidex(分包)實現簡要分析
1、Multidex的產生
在android5.0之前,每一個android應用中只會含有一個dex檔案,但是因為Android系統本身的BUG,使得這個dex的方法數量被限制在65535之內,這就是著名的"64K(641024)"*事件。為了解決這個問題,Google官方推出了這個類似於補丁一樣的support-library。關於這個庫的詳細使用,可以參考官方文件,當然使用起來也會有些坑的,美團填坑記或者這位老兄。使用這個庫後,我們的APP不再只會僅有一個dex檔案,可能會產生多個dex檔案,這樣就避免了64K問題。
2、使用方式
用Gradle配置使用Multidex
Android 的 Gradle外掛在 Android Build Tool 21.1開始就支援使用multidex了。
設定你的應用程式開發專案中使用multidex配置,要求你做出一些修改您的應用程式開發專案。
- 修改Gradle的配置,支援multidex
- 修改你的manifest。讓其支援multidexapplication類
- 修改Gradle的build如下:
android {
compileSdkVersion 21
buildToolsVersion "21.1.0"
defaultConfig {
...
minSdkVersion 14
targetSdkVersion 21
...
// Enabling multidex support.
multiDexEnabled true
}
...
}
dependencies {
compile 'com.android.support:multidex:1.0.0'
}
對於Multidex的使用,大致有以下幾種方式
直接繼承MultiDexApplication
public class MyApplication extends MultiDexApplication{
// ...........
}
直接呼叫MultiDex.install(Context);
public class MyApplication extends Application{
public void onCreate(){
MultiDex.install(this);
}
}
這兩種使用方式,其實本質是一樣的,都是通過MultiDex.install(this)來完成dex的載入,看看MultiDexApplication的實現:
public class MultiDexApplication extends Application {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
}
3、錯誤
- 一、錯誤型別是: Could not resolve com.android.support:multidex:1.0.2 時,解決方法如下
buildscript {
repositories {
jcenter()
mavenLocal()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0'
}
}
allprojects {
repositories {
jcenter()
google()
}
}
相關文章
- Mybatis實現分包定義資料庫MyBatis資料庫
- 磁碟原理簡要分析
- 簡要實現vue雙向繫結Vue
- 對網易雲性格主導色實現與演算法的簡要分析演算法
- ReactNative分包實踐React
- redux簡單實現與分析Redux
- Android Hal層簡要分析Android
- Access Animation破解的簡要分析
- LayaAir IDE如何實現快遊戲分包與載入AIIDE遊戲
- 分包基礎概念+使用分包
- spycop5.5簡要註冊分析
- 夢想CMS(lmxcms)1.4 簡要分析
- AsyncTask與Thread+Handler簡要分析thread
- 簡單分析用SPI實現防火牆 (轉)防火牆
- Laravel 使用者認證最簡單的實現 比 Jetstream 要簡單很多Laravel
- hashCode()方法原始碼執行簡要分析原始碼
- linux程式管理子系統簡要分析Linux
- 簡要分析近幾年商業軟體開發平臺的現狀
- 依存句法分析器的簡單實現
- 簡要說明jquery+jcrop實現的圖片裁剪儲存jQuery
- 簡單演算法---A Speeder V2.5破解的簡要分析!演算法
- Exception_android_java.util.zip.ZipException: duplicate entry:android/support/multidex/MultiDexExceptionAndroidJavaIDE
- 其實你不知道MultiDex到底有多坑IDE
- mpvue 分包方案Vue
- 簡要分析Hacking Team 遠端控制系統
- 圖靈4本新書版式的簡要分析圖靈新書
- ORACLE關於執行計劃的簡要分析Oracle
- 影像處理軟體XFader的簡要分析
- Java 實現《編譯原理》簡單詞法分析功能Java編譯原理詞法分析
- 簡要說明,實時資料分析將面臨哪些問題和挑戰?
- 轉轉:微信小程式分包載入實戰微信小程式
- 簡要分析ZooKeeper基本原理及安裝部署
- 簡要分析Android手機為啥不好用?Android
- Android 分包策略Android
- 微信小遊戲分包遊戲
- Android實現錄屏直播(一)ScreenRecorder的簡單分析Android
- 單件模式的實現要點模式
- LevelDB 實現分析