我最近從Android中發現了新的MultiDex功能,用於處理具有超過65,000個引用的應用程序。請參閱:https://developer.android.com/tools/building/multidex.htmlAndroid MultiDex - 關於內部工作的問題
有人可以幫助我瞭解以下問題:
1)如何在搖籃建立插件決定要放什麼東西在主DEX文件(classes.dex)與二級DEX文件?基於文檔,某些東西需要在主要的dex中,但它沒有給出任何示例。所有活動都需要在主要的dex文件中嗎?
引用的文字:
有關於在Dalvik運行時執行時 需要什麼類的主DEX文件複雜的要求。 Android 構建工具更新處理Android要求,但它是 其他包含的庫可能具有附加依賴關係 要求,包括使用內省或調用本地代碼的Java 方法。有些庫可能無法使用 ,直到multidex構建工具更新爲允許您指定 必須包含在主dex文件中的類。
2)當僅針對Android API Level 21(Android L)及更高版本構建時,Gradle Build Plugin中存在不同的行爲。它說速度要快得多,因爲它「將應用程序的每個模塊(包括依賴項)構建爲單獨的dex文件,這通常稱爲預分離。」 Android中模塊的定義是什麼?這是這裏提到的Java庫,Android庫和Android應用程序模塊:http://developer.android.com/sdk/installing/studio-build.html#projectModules?遠程或本地二進制相關性(例如:Jars)是否作爲單獨的模塊計算,從而被放入不同的dex文件中,還是根據它們被包含在模塊中?
很棒的回答。基於collect {variant} MultiDexComponents任務,活動是否始終保留在主要dex中? – AnDev123 2014-11-25 17:02:38
還有一個問題:此功能是否嘗試獲取低於極限的方法數量,以便二級dex文件中的方法儘可能小?又名它刪除的方法數量是否明智? – AnDev123 2014-11-25 18:13:47
它只存儲*第一個jar/dex中保留列表中指定的類。在我的保存文件中,我可以看到這至少是所有活動,服務,BackupAgents和您的應用程序以及註釋。 – thoutbeckers 2014-11-25 18:22:31