Как использовать aapt2, где находится документация?
я использовал aapt p
для упаковки ресурсов и генерации R.java
.
но когда я обновился до Android 24, я нашел aapt2.exe
.
должен ли я использовать aapt2.exe
? Как его использовать? Я не смог найти никаких документов об этом.
3 ответов
есть некоторые большие различия между тем, как AAPT и AAPT2 работы.
компиляция и ссылка
основная идея AAPT2, помимо новых функций, заключается в том, что он делит шаг "пакет" на два: "компиляция" и "ссылка". Это повышает производительность, так как если изменяется только один файл, вам нужно только перекомпилировать этот файл и связать все промежуточные файлы с командой "link".
более строгим
AAPT2 пытается поймать большинство ошибок как можно раньше. Вот почему при переключении с AAPT на AAPT2 может возникнуть много ошибок, указывающих, что некоторые элементы вложены неправильно или что некоторые ссылки неверны. Для получения дополнительной информации о новой ограниченности посмотрите на документация для Android Studio 3.0.
использование
Android Studio 3.0 поставляется с aapt2 включен по умолчанию (с Android Gradle плагин 3.0.0). Но если вы хотите использовать AAPT2 в своем собственном скрипте, вы нужно изменить способ обработки ваших ресурсов.
Для команды "package"с AAPT вы передадите каталог ресурсов с-S. С AAPT2 вам нужно сначала скомпилировать каждый ресурс с помощью команды "compile" и только затем передать все скомпилированные файлы с флагом-R.
например:
aapt package -S app/src/main/res/ ...
вместо этого использовать:
aapt2 compile -o compiled/res/ app/src/main/res/values/values.xml
aapt2 compile -o compiled/res/ app/src/main/res/drawable/myImage.png --no-crunch
...
aapt2 link -R compiled/res/values_values.arsc.flat -R compiled/res/drawable_myImage.flat ...
флаги
есть больше различий в использовании флага, например, как "-- pseudo-localize " и "--no-crunch" флаги используются для каждого файла на этапе компиляции. Для получения полной информации о флагах aapt2 введите:
aapt2 compile -h
aapt2 link -h
Примечание: рассматривайте это как дополнение к ответу Изабелы
Это (по состоянию на февраль 2018 года) довольно плохо документировано. Недавно авторы сервиса Overlay Manager В Android O представили свою работу и рассказали об AAPT2 в своих слайдах (см. слайды 12-14 для контекста).
кроме того, когда вы сомневаетесь, посмотрите на исходный код: https://android.googlesource.com/platform/frameworks/base/+/android-7.0.0_r7/tools/aapt2.
в дополнение к приведенным выше ответам, документация для AAPT2, наконец, вышла. Вы можете найти документацию здесь. Если вы обнаружите какие-либо ошибки, пожалуйста сообщить об ошибке против этих ошибок.