標籤:
在Android開發中,函數方法超過65k限制後,我們就常常會用到multidex分包解決,但是multidex的配置,對系統apk的構建、簽名、打包複雜性大大的增加,嚴重的降低了構建效率。那這個問題怎麼處理呢?
為解決這個問題,通常我們使用的方法就是在Gradle productFlavors建立出來一個 development flavor 和 production flavor 來滿足我們不同構建需求。
為了更直觀的給大家展示具體的操作,我們通過一個例子來示範如何設定這些flavors在Gradle build檔案中:
android { productFlavors { // Define separate dev and prod product flavors. dev { // dev utilizes minSDKVersion = <span class="hljs-number">21</span> to allow the Android gradle plugin // to pre-dex each module and produce an APK that can be tested on // Android Lollipop without time consuming dex merging processes. minSdkVersion <span class="hljs-number">21</span> } prod { // The actual minSdkVersion <span class="hljs-keyword">for</span> the application. minSdkVersion <span class="hljs-number">14</span> } } <span class="hljs-keyword">...</span> buildTypes { release { runProguard true proguardFiles getDefaultProguardFile(<span class="hljs-string">‘proguard-android.txt‘</span>), <span class="hljs-string">‘proguard-rules.pro‘</span> } } } dependencies { compile <span class="hljs-string">‘com.android.support:multidex:1.0.0‘</span> }
在你完成了傷處的配置修改之後,你配置productFlavor 和 buildType來使用 ,devDebug 變種app。使用這些變種app,可以設定proguard disable、multidex enable方便測試。
這些配置需要針對Android Gradle外掛程式做如下操作:
1、在分包前,編譯應用程式中的每一個module包括依賴項目,這個步驟稱為 pre-dexing。
2、include每一個dex檔案。
3、最重要的是,對於主dex檔案,不會做切分,以保證計算速度。
這樣設定既能夠保證我們的最終報是一個使用了multidex模式的,而又不影響我們平時開發的測試效率。
Android Studio中使用變種App
使用multidex工具構建變種App是非常方便的。在Android Studio允許我們選擇這種變種構建方式的介面。
使用Android Studio構建 “devDebug”構建變種app需要完成兩步:
1、開啟變種編輯視窗,選擇favorites選項。
2、點擊編譯不同的變種,如所示
以上就是Android相容包multidex的開發和構建的具體方法,希望對大家在使用multidex的時候有所協助。
相關閱讀:《詳談Android如何防止apk程式被反編譯》
Android相容包multidex的開發和構建方法