Документация для элемента aapt в скрипте Ant - PullRequest
9 голосов
/ 25 июля 2011

Я работаю над некоторыми сценариями Ant для системы сборки Android и наткнулся на элемент для вызова aapt.Я видел много примеров с

exec executetable = "$ {aapt}"

, но те, которые выходят из файла main_rules.xml, используют другой формат

    <aapt executable="${aapt}"
            command="package"
            debug="${build.packaging.debug}"
            manifest="AndroidManifest.xml"
            assets="${asset.absolute.dir}"
            androidjar="${android.jar}"
            apkfolder="${out.absolute.dir}"
            resourcefilename="${resource.package.file.name}"
            resourcefilter="${aapt.resource.filter}">
        <res path="${resource.absolute.dir}" />
        <!-- <nocompress /> forces no compression on any files in assets or res/raw -->
        <!-- <nocompress extension="xml" /> forces no compression on specific file extensions in assets and res/raw -->
    </aapt>

Я бы хотел переименовать пакет, используя этот элемент, но не могу найти никакой документации о том, как его использовать.Кто-нибудь знает, где я могу найти некоторые?

Спасибо

Ответы [ 3 ]

7 голосов
/ 26 июля 2011

Я не смог ничего найти и в итоге использовал следующее, которое, кажется, работает

    <exec executable="${aapt}" failonerror="true">
      <arg value="package" />
      <arg value="-f" />
      <arg value="-v" />
      <arg value="-M" />
      <arg path="AndroidManifest.xml" />
      <arg value="-A" />
      <arg path="assets" />
      <arg value="-I" />
      <arg path="${android.jar}" />
      <arg value="-m" />
      <arg value="-J" />
      <arg path="${out.absolute.dir}" />
      <arg value="-F" />
      <arg path="${out.absolute.dir}/${resource.package.file.name}" />
      <arg value="-S" />
      <arg path="res" />
      <arg value="--rename-manifest-package" />
      <arg value="my.new.package.name" />
    </exec>
7 голосов
/ 02 февраля 2012

В новой (er) версии Android SDK скрипт сборки ant работает по-другому. Он напрямую не вызывает команду aapt через элемент exec, а скорее определяет Удачная задача. Последний реализуется Java-классом com.android.ant.AaptExecTask. Этот класс предоставляет только подмножество параметров командной строки aapt.

Ниже вы можете найти краткое описание соответствия между параметрами командной строки aapt и параметрами ant, как показано в исходном документе Java:

Aapt Option             Ant Name        Type
---------------------------------------------------------------------------------
path to aapt            executable      attribute (Path)
command                 command         attribute (String)
-v                      verbose         attribute (boolean)
-f                      force           attribute (boolean)
-M AndroidManifest.xml  manifest        attribute (Path)
-I base-package         androidjar      attribute (Path)
-A asset-source-dir     assets          attribute (Path
-S resource-sources     <res path="">   nested element(s)
                                        with attribute (Path)
-0 extension            <nocompress extension="">  nested element(s)
                        <nocompress>               with attribute (String)
-F apk-file             apkfolder                  attribute (Path)  
                        outfolder                  attribute (Path) deprecated
                        apkbasename                attribute (String)
                        basename                   attribute (String) deprecated

-J R-file-dir       rfolder         attribute (Path)
                                    -m always enabled

Насколько я узнал, нет способа предоставить общие опции aapt с помощью этой новой задачи сборки. Кажется, что это возможно только при использовании модифицированной копии файла build.xml SDK с заменами на вызовы aapt.

Если кто-нибудь знает лучшее решение, я тоже буду рад прочитать; -)

РЕДАКТИРОВАТЬ: В еще более новых версиях SDK снова введены пакеты переименования:

Aapt Option   --rename-manifest-package package-name 
Ant Name      manifestpackage
Type          attribute (String)
1 голос
/ 25 июля 2011

Я очень сомневаюсь, что есть какая-либо документация помимо исходного кода.

...