Chạy mã DEX được nhúng trực tiếp tại APK

Trên các thiết bị đang chạy hệ điều hành Android 10 (API cấp 29) trở lên, bạn có thể yêu cầu nền tảng này chạy mã DEX được nhúng trực tiếp tại tệp APK của ứng dụng. Lựa chọn này có thể giúp ngăn chặn một cuộc tấn công nếu kẻ tấn công tìm được cách để can thiệp vào mã đã biên dịch cục bộ trên thiết bị.

Nếu bạn đang sử dụng hệ thống xây dựng Gradle, để bật tính năng này, hãy làm như sau:

  • Đặt thuộc tính android::useEmbeddedDex thành true trong phần tử <application> của tệp kê khai trong ứng dụng.

  • Đặt useLegacyPackaging thành false trong tệp build.gradle.kts cấp mô-đun (tệp build.gradle nếu bạn đang sử dụng Groovy).

    Kotlin

      packagingOptions {
        dex {
          useLegacyPackaging = false
        }
      }
      

    Groovy

      packagingOptions {
        dex {
          useLegacyPackaging false
        }
      }
      

Nếu bạn đang dùng hệ thống xây dựng Bazel, để bật tính năng này, hãy đặt thuộc tính android:useEmbeddedDex thành true trong phần tử <application> của tệp kê khai trong ứng dụng và không nén tệp DEX:

android_binary(
   ...
   nocompress_extensions = [".dex"],
)