From e8ad737db6b35bfe342dc0a1674f1200d08e45f5 Mon Sep 17 00:00:00 2001 From: Joe Fernandez Date: Thu, 30 Oct 2014 23:59:28 -0700 Subject: [PATCH] docs: multidex - building apps with over 65K method references Change-Id: I822cdc54d0f2df34a89d5294ff7ea1f5f83b25f9 --- .../images/tools/studio-build-variant.png | Bin 0 -> 20405 bytes docs/html/tools/building/multidex.jd | 458 ++++++++++++++++++ docs/html/tools/support-library/features.jd | 29 ++ docs/html/tools/tools_toc.cs | 13 +- 4 files changed, 497 insertions(+), 3 deletions(-) create mode 100644 docs/html/images/tools/studio-build-variant.png create mode 100644 docs/html/tools/building/multidex.jd diff --git a/docs/html/images/tools/studio-build-variant.png b/docs/html/images/tools/studio-build-variant.png new file mode 100644 index 0000000000000000000000000000000000000000..a400ad4591826a228fd17e31236ee2336c7ef46c GIT binary patch literal 20405 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 + +@jd:body + + + + +

+ As the Android platform has continued to grow, so has the size of Android apps. When your + application and the libraries it references reach a certain size, you encounter build errors that + indicate your app has reached a limit of the Android app build architecture. Earlier versions of + the build system report this error as follows: +

+ +
+Conversion to Dalvik format failed:
+Unable to execute dex: method ID not in [0, 0xffff]: 65536
+
+ +

+ More recent versions of the Android build system display a different error, which is an + indication of the same problem: +

+ +
+trouble writing output:
+Too many field references: 131000; max is 65536.
+You may try using --multi-dex option.
+
+ +

+ Both these error conditions display a common number: 65,536. This number is significant in that + it represents the total number of references that can be invoked by the code within a single + Dalvik Executable (dex) bytecode file. If you have built an Android app and received this error, + then congratulations, you have a lot of code! This document explains how to move past this + limitation and continue building your app. +

+ +

+ Note: The guidance provided in this document supersedes the guidance given in + the Android Developers blog post Custom Class + Loading in Dalvik. +

+ + +

About the 65K Reference Limit

+ +

+ Android application (APK) files contain executable bytecode files in the form of Dalvik Executable (DEX) files, which + contain the compiled code used to run your app. The Dalvik Executable specification limits the + total number of methods that can be referenced within a single DEX file to 65,536, including + Android framework methods, library methods, and methods in your own code. Getting past this limit + requires that you configure your app build process to generate more than one DEX file, known as a + multidex configuration. +

+ + +

Multidex support prior to Android 5.0

+ +

+ Versions of the platform prior to Android 5.0 use the Dalvik runtime for executing app code. By + default, Dalvik limits apps to a single classes.dex bytecode file per APK. In order to get around + this limitation, you can use the + multidex support library, which becomes part of the primary DEX file of your app and then + manages access to the additional DEX files and the code they contain. +

+ + +

Multidex support for Android 5.0 and higher

+ +

+ Android 5.0 and higher uses a runtime called ART which natively supports loading multiple dex + files from application APK files. ART performs pre-compilation at application install time which + scans for classes(..N).dex files and compiles them into a single .oat file for execution by the + Android device. For more information on the Android 5.0 runtime, see Introducing ART. +

+ + +

Avoiding the 65K Limit

+ +

+ Before configuring your app to enable use of 65K or more method references, you should take steps + to reduce the total number of references called by your app code, including methods defined by + your app code or included libraries. The following strategies can help you avoid hitting the dex + reference limit: +

+ +
    +
  • + Review your app's direct and transitive dependencies - Ensure any large library + dependency you include in your app is used in a manner that outweighs the amount of code + being added to the application. A common anti-pattern is to include a very large library + because a few utility methods were useful. Reducing your app code dependencies can often help + you avoid the dex reference limit. +
  • +
  • + Remove unused code with ProGuard - Configure the ProGuard settings for your app to run ProGuard and + ensure you have shrinking enabled for release builds. Enabling shrinking ensures you + are not shipping unused code with your APKs. +
  • +
+ + +

+ Using these techniques can help you avoid the build configuration changes required to enable more + method references in your app. These steps can also decrease the size of your APKs, which is + particularly important for markets where bandwidth costs are high. +

+ + +

Configuring Your App for Multidex with Gradle

+ +

+ The Android plugin for Gradle available in Android SDK Build Tools 21.1 and higher supports + multidex as part of your build configuration. Make sure you update the Android SDK Build Tools + tools and the Android Support Repository to the latest version using the SDK Manager before attempting to configure your app + for multidex. +

+ +

+ Setting up your app development project to use a multidex configuration requires that you make a + few modifications to your app development project. In particular you need to perform the + following steps: +

+ +
    +
  • Change your Gradle build configuration to enable multidex
  • +
  • Modify your manifest to reference the {@link android.support.multidex.MultiDexApplication} + class
  • +
+ +

+ Modify your app Gradle build file configuration to include the support library and enable + multidex output, as shown in the following Gradle build file snippet: +

+ +
+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'
+}
+
+ +

+ Note: You can specify the multiDexEnabled setting in the + defaultConfig, buildType, or productFlavor sections of + your Gradle build file. +

+ + +

+ In your manifest add the {@link android.support.multidex.MultiDexApplication} class from the + multidex support library to the application element. +

+ +
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.example.android.multidex.myapplication">
+    <application
+        ...
+        android:name="android.support.multidex.MultiDexApplication">
+        ...
+    </application>
+</manifest>
+
+ +

+ When these configuration settings are added to an app, the Android build tools construct a + primary dex (classes.dex) and supporting (classes2.dex, classes3.dex) as needed. The build system + will then package them into an APK file for distribution. +

+ +

+ Note: If your app uses extends the {@link android.app.Application} class, you + can override the attachBaseContext() method and call MultiDex.install(this) to enable multidex. + For more information, see the {@link android.support.multidex.MultiDexApplication} reference + documentation. +

+ +

Limitations of the multidex support library

+ +

+ The multidex support library has some known limitations that you should be aware of and test for + when you incorporate it into your app build configuration: +

+ +
    +
  • The installation of .dex files during startup onto a device's data partition is complex and + can result in Application Not Responding (ANR) errors if the secondary dex files are large. In + this case, you should apply code shrinking techniques with ProGuard to minimize the size of dex + files and remove unused portions of code. +
  • + +
  • Applications that use multidex may not start on devices that run versions of the platform + earlier than Android 4.0 (API level 14) due to a Dalvik linearAlloc bug (Issue 22586). If you are targeting API levels earlier than 14, make + sure to perform testing with these versions of the platform as your application can have issues + at startup or when particular groups of classes are loaded. Code shrinking can reduce or possibly + eliminate these potential issues. +
  • + +
  • Applications using a multidex configuration that make very large memory allocation + requests may crash during run time due to a Dalvik linearAlloc limit (Issue 78035). The allocation limit was increased in Android 4.0 (API + level 14), but apps may still run into this limit on Android versions prior to + Android 5.0 (API level 21). +
  • + +
  • There are complex requirements regarding what classes are needed in the primary dex file when + executing in the Dalvik runtime. The Android build tooling updates handle the Android + requirements, but it is possible that other included libraries have additional dependency + requirements including the use of introspection or invocation of Java methods from native code. + Some libraries may not be able to be used until the multidex build tools are updated to allow you + to specify classes that must be included in the primary dex file. +
  • +
+ + +

Optimizing Multidex Development Builds

+ +

+ A multidex configuration requires significantly increased build processing time because the build + system must make complex decisions about what classes must be included in the primary DEX file + and what classes can be included in secondary DEX files. This means that routine builds performed + as part of the development process with multidex typically take longer and can potentially slow + your development process. +

+ +

+ In order to mitigate the typically longer build times for multidex output, you should create two + variations on your build output using the Android plugin for Gradle + + {@code productFlavors}: a development flavor and a production flavor. +

+ +

+ For the development flavor, set a minimum SDK version of 21. This setting generates multidex + output much faster using the ART-supported format. For the release flavor, set a minimum SDK + version which matches your actual minimum support level. This setting generates a multidex APK + that is compatible with more devices, but takes longer to build. +

+ +

+ The following build configuration sample demonstrates the how to set up these flavors in a Gradle + build file: +

+ +
+android {
+    productFlavors {
+        // Define separate dev and prod product flavors.
+        dev {
+            // dev utilizes minSDKVersion = 21 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 21
+        }
+        prod {
+            // The actual minSdkVersion for the application.
+            minSdkVersion 14
+        }
+    }
+          ...
+    buildTypes {
+        release {
+            runProguard true
+            proguardFiles getDefaultProguardFile('proguard-android.txt'),
+                                                 'proguard-rules.pro'
+        }
+    }
+}
+dependencies {
+  compile 'com.android.support:multidex:1.0.0'
+}
+
+ +

+ After you have completed this configuration change, you can use the devDebug variant + of your app, which combines the attributes of the dev productFlavor and the + debug buildType. Using this target creates a debug app with proguard disabled, + multidex enabled, and minSdkVersion set to Android API level 21. These settings cause the Android + gradle plugin to do the following: +

+ +
    +
  1. Build each module of the application (including dependencies) as separate dex files. This is + commonly referred to as pre-dexing. +
  2. + +
  3. Include each dex file in the APK without modification. +
  4. + +
  5. Most importantly, the module dex files will not be combined, and so the long-running + calculation to determine the contents of the primary dex file is avoided. +
  6. +
+ +

+ These settings result in fast, incremental builds, because only the dex files of modified modules + are recomputed and repackaged into the APK file. The APK that results from these builds can be + used to test on Android 5.0 devices only. However, by implementing the configuration as a flavor, + you preserve the ability to perform normal builds with the release-appropriate minimum SDK level + and proguard settings. +

+ +

+ You can also build the other variants, including a prodDebug variant + build, which takes longer to build, but can be used for testing outside of development. + Within the configuration shown, the prodRelease variant would be the final testing + and release version. If you are executing gradle tasks from the command line, you can use + standard commands with DevDebug appended to the end (such as ./gradlew + installDevDebug). For more information about using flavors with Gradle tasks, see the + Gradle Plugin User + Guide. +

+ +

+ Tip: You can also provide a custom manifest, or a custom application class for each + flavor, allowing you to use the support library MultiDexApplication class, or calling + MultiDex.install() only for the variants that need it. +

+ + +

Using Build Variants in Android Studio

+ +

+ Build variants can be very useful for managing the build process when using multidex. Android + Studio allows you to select these build variants in the user interface. +

+ +

+ To have Android Studio build the "devDebug" variant of your app: +

+ +
    +
  1. Open the Build Variants window from the left-sidebar. The option is located next to + Favorites. +
  2. + +
  3. Click the name of the build variant to select a different variant, as shown in Figure 1. +
  4. +
+ + +

+ Figure 1. Screen shot of the Android Studio left panel showing a build variant. +

+ +

+ Note: The option to open this window is only available after you have + successfully synchronized Android Studio with your Gradle build file using the Tools > + Android > Sync Project with Gradle Files command. +

+ + +

Testing Multidex Apps

+ +

+ Testing apps that use multidex configuration require some additional steps and configuration. + Since the location of code for classes is not within a single DEX file, instrumentation tests do + not run properly unless configured for multidex. +

+ +

+ When testing a multidex app with instrumentation tests, use + + MultiDexTestRunner from the multidex testing support library. The following sample + {@code build.gradle} file, demonstrates how to configure your build to use this test runner: +

+ +
+android {
+  defaultConfig {
+      ...
+      testInstrumentationRunner "android.support.multidex.MultiDexTestRunner"
+  }
+}
+
+dependencies {
+    androidTestCompile 'com.android.support:multidex-instrumentation:1.0.0'
+}
+
+ +

+ You may use the instrumentation test runner class directly or extend it to fit your testing + needs. Alternatively, you can override onCreate in existing instrumentations like this: +

+ +
+public void onCreate(Bundle arguments) {
+    MultiDex.install(getTargetContext());
+    super.onCreate(arguments);
+    ...
+}
+
+ +

+ Note: Use of multidex for creating a test APK is not currently supported. +

\ No newline at end of file diff --git a/docs/html/tools/support-library/features.jd b/docs/html/tools/support-library/features.jd index 44c504547db81..3ebfc8989fc8d 100644 --- a/docs/html/tools/support-library/features.jd +++ b/docs/html/tools/support-library/features.jd @@ -8,6 +8,7 @@ page.title=Support Library Features

In this document

  1. v4 Support Library
  2. +
  3. Multidex Support Library
  4. v7 Support Libraries
    1. v7 appcompat library
    2. @@ -145,6 +146,34 @@ com.android.support:support-v4:21.0.+

      This dependency notation specifies the release version 21.0.0 or higher.

      +

      Multidex Support Library

      + +

      + This library provides support for building apps with multiple Dalvik Executable (DEX) files. + Apps that reference more than 65536 methods are required to use multidex configurations. For + more information about using multidex, see + Building Apps with Over 65K Methods. +

      + +

      + This library is located in the {@code <sdk>/extras/android/support/multidex/} directory + after you download the Android Support Libraries. The library does not contain user interface + resources. To include it in your application project, follow the instructions for Adding libraries without + resources. +

      + +

      + The Gradle build script dependency identifier for this library is as follows: +

      + +
      +com.android.support:multidex:1.0.+
      +
      + +

      This dependency notation specifies the release version 1.0.0 or higher.

      + +

      v7 Support Libraries

      There are several libraries designed to be used with Android 2.1 (API level 7) and higher. diff --git a/docs/html/tools/tools_toc.cs b/docs/html/tools/tools_toc.cs index 8eb9cbfcc1167..ac331858273b1 100644 --- a/docs/html/tools/tools_toc.cs +++ b/docs/html/tools/tools_toc.cs @@ -66,10 +66,17 @@