Переупаковать файл APK, чтобы он содержал пользовательские ресурсы - какой инструмент сборки использовать?

Обновление : это старый пост, и приведенные ниже ссылки на сломанные версии aapt будут устаревшими.


Основываясь на предыдущих отзывах, я сохраняю пользовательские текстовые поля в каталоге ресурсов моего приложения.

Я напишу приложение, используя данные пользователя по умолчанию в файле ресурсов, и клиент хотел бы перестроить приложение для каждого пользователя, включая данные этого пользователя в файл ресурсов.

(Я знаю, что у этого метода есть серьезные недостатки, но клиент все еще стремится сделать это таким образом - см. Вставить данные для входа в файл APK, разные для каждого пользователя (или другие варианты?) )

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

  1. aapt - Android sdk tool: К сожалению, документация Android по «Использование aapt» на Документы для Android [ссылка 2 ниже] очень ограничены. Консольная команда -help показывает немного больше информации. При попытке использовать его, чтобы просто добавить файл в test.apk, он в конечном итоге удаляет оригинал и создает новый файл test.apk. zip, содержащий только файл, который я пытался добавить. Мне не удалось найти правильную комбинацию командной строки, чтобы взять разархивированный apk и перепаковать его - это был бы мой первый приз.

  2. apkbuilder - инструмент Android sdk: во-первых, этот инструмент устарел, что является для него отрицательным моментом. . Я также не могу заставить его работать с тем, что у меня есть в этой распакованной папке. Я думаю, что мне не хватает шага до создания apkbuilder, потому что apkbuilder запрашивает zip-архив ресурсов, а у меня есть папка ресурсов.

  3. ant - build tool: В других подобных сообщениях говорится, что нужно создавать с помощью ant, а не с помощью инструментов Android . Мне сложно заставить муравья работать. Одна конкретная ссылка на получение Ant для работы с Android [ссылка 3 ниже] выглядит многообещающей, но похоже, что она предназначена для другого SDK Android (мой build.xml, созданный Android, отличается от его). В дополнение к приведенному ниже решению NickT - запуск сценария ant дает мне ошибку
    taskdef class com.android.ant.SetupTask не может быть найден с помощью загрузчика классов AntClassLoader [] .
    Я нашел несколько ссылок на эту ошибку в Интернете, подтвердил, что local.properties имеет параметр sdk.dir, указывающий на мою установочную папку android sdk (sdk.dir = / Applications / android-sdk-mac_86).

  4. ? ????: Могут быть другие варианты, которые я не перечислил / не обнаружил, о которых мне было бы интересно услышать.

Я понимаю, что копание в шестеренках, которые обычно прикрываются моей идеей, может привести к затруднениям. Но я знаю, что многие пользователи SO могут делать многие из этих вещей, и я надеюсь, что я заинтересуюсь некоторыми из них. Спасибо за любую помощь.

(Eclipse 3.6 на Mac Snow Leopard 10.6 64 бит)

PS, я пока не могу разместить более 1 гиперссылки, поэтому я включил эти адреса, чтобы показать больше информации по моему вопросу.

(1): переполнение стека. com / questions / 4783160 / embed-login-details-in-apk-file-different-for-each-user-or-other-options

(2): developer.android.com/guide/developing/tools/ aapt.html

(3): www.disgruntledrats.com/?p=27

9
задан Community 23 May 2017 в 10:28
поделиться