Как запустить встроенный DEX-код непосредственно из APK

#android #gradle #dex #android-10.0

#Android #gradle #dex #android-10.0

Вопрос:

Выпущена первая альфа-версия Android Q. Он поддерживает запуск встроенного DEX-кода непосредственно из APK. Как включить его в файле gradle?

Ответ №1:

Согласно документации разработчиков Android:

Теперь вы можете указать платформе запускать встроенный DEX-код непосредственно из APK-файла вашего приложения. Эта опция может помочь предотвратить атаку, если злоумышленнику когда-либо удавалось подделать локально скомпилированный код на устройстве.

Чтобы включить эту функцию, установите значение атрибута android:useEmbeddedDex равным true в элементе файла манифеста вашего приложения. Вы также должны создать APK, содержащий несжатый DEX-код, к которому ART сможет получить прямой доступ. Добавьте следующие параметры в файл конфигурации Gradle или Bazel, чтобы создать APK с несжатым DEX-кодом:

Gradle

 aaptOptions {
   noCompress 'dex'
}
  

В файле манифеста:

 <application
        ...
        android:useEmbeddedDex="true">
...
</application>
  

Имейте в виду, что атрибут this используется только в API 28 уровня и выше.