Вопросы по android target билдинг

  1. 3 г. назад

    Было бы не плохо, а даже очень полезно, если бы кто-нибудь написал пару статей про билдинг манки приложений в разные таргеты, ато беда!

    Вчера накидал на манки одно приложение под андроид, скачал и распаковал все android-sdk, android-ndk, apache-ant в папочку C:\monkey_targets. Скачал и установил jdk-7u40-windows-x64. Зашел в c:\monkey_targets\android-sdk-windows\ и запустил SDK Manager.exe. К галочкам, что стоят по дефолту, добавил галочки с API13, поскольку манки хотела именно их, и заинсталил все эти пакеджи.
    -image-

    Дальше AVD Manager.exe, дальше New, называю наш вирт. девайс, девайс выбираю Nexus S, таргет — Android 3.2 — API Level 13, дальше жму Ок.
    -image-

    Дальше зашел в переменные среды и прописал там путь к JAVA_HOME.
    -image-

    Прописываем в MonkeyPro76d\bin\config.winnt.txt все наши пути:

    ANT_PATH="${SYSTEMDRIVE}\monkey_targets\apache-ant-1.9.2"
    JDK_PATH="${PROGRAMFILES}\Java\jdk1.7.0_40"
    ANDROID_PATH="${SYSTEMDRIVE}\monkey_targets\android-sdk-windows"
    ANDROID_NDK_PATH="${SYSTEMDRIVE}\monkey_targets\android-ndk-r9"

    Вроде все… идем в TED и открываем наш проджект, выставляем таргет андроид/релиз.
    -image-

    Нажимаю кнопку Build и тут начинается самое интересное… проект экспортировался (создалась папка андроид в папке билд папки проекта, там внутри куча папок и файлов в том числе и апк-шки), но что это? манки пытается заинсталить проект на устройство
    -image-

    хотя я нажимал Билд, не Билд/Ран, а просто Билд, но почему???
    Ну да ладно, ждем..., ждем..., ждем…

    Да сколько можно ждать? Куда он там пытается заинсталлить эту апк-шку, при этом виртуальный девайс который мы создали двумя десятками строк выше не запускается. Как сделать чтоб манки инсталлил проект на созданный нами вирт. девайс?

    Короче нам ничего не остается как нажать Kill и этим остановить процесс инсталляции. И даже после килла я не могу запустить Билдинг поновой, поскольку пишет что файлы заблокированны другим процессом, ждать бесполезно — перегружаем компьютер. Почему так и как это побороть?

    Чо делать — беру файлик myapp.build\android\bin\MonkeyGame-debug.apk, и ставлю эту апк-шку на планшетку — вроде все работает.

    Вконце еще пару интересующих меня вопросов:

    1. Достаточно ли заменить иконки в папках myapp.build\android\bin\res\drawable-hdpi\icon.png и в TED еще раз нажать Build или заменить иконки нужно в \MonkeyPro76d\targets\android\template\res\drawable-hdpi\, или есть еще варианты?
    2. Где можно исправить остальные параметры андроид проекта (название,screen orientation и т.д.) и как этот проект потом запулить в апк-шку?
    3. Как настроить чтобы иконка приложения создавалась не только в приложениях но и на рабочем столе?

    Буду рад не только ответам но и ссылка по данной теме и не только по android.

    UPDATE
    И что это за куча апк-шек?:
    -image-

  2. devolonter

    6 Jun 2014 Администратор

    Если посмотреть код сборщика, то можно заметить, что установка идет вне зависимости от того была ли выбрана просто сборка или сборка и запуск. Что в целом логично, ведь после сборки запускать вы будете на девайсе.

    Транслятор имеет проблемы с запуском виртуального устройства. Не знаю причиной ли тому неправильная конфигурация ant или сам ant ерундит, но без ручного запуска вирт. устройства процесс установки зависает. Выход — запускать виртуальной девайс самостоятельно перед сборкой, или лучше отлаживать на реальном устройстве с включенным режимом отладки.

    Блокирующих файлы процессов может быть два — это или ant или adb. Следовательно, чтобы разрешить проблемы с блокировкой файлов нужно «убить» их вручную.

    1. Иконку нужно заменять в .build в папках drawable-xhdpi, drawable-hdpi, drawable-mdpi и drawable-ldpi. Менять в targets очень не рекомендуется. Если уж очень хочется, то можно скопировать папку и создать на основе нее свой таргет.

    2. Для настройки проекта используйте параметры конфигурации:
    #ANDROID_APP_LABEL — название приложения
    #ANDROID_APP_PACKAGE — уникальное имя пакета
    #ANDROID_SCREEN_ORIENTATION — ориентация. Значение может быть одним из следующих: user, portrait, landscape
    #ANDROID_VERSION_CODE — цифровой код версии
    #ANDROID_VERSION_NAME — строковое имя версии

    Для публикации приложения в маркете будут полезны след. параметры:
    #ANDROID_SIGN_APP = True — включить подписывание приложения
    #ANDROID_KEY_STORE — хранилище ключей для публикации
    #ANDROID_KEY_ALIAS — псевдоним ключа для подписи
    #ANDROID_KEY_STORE_PASSWORD — пароль хранилища
    #ANDROID_KEY_ALIAS_PASSWORD — пароль псевдонима

    3. Без добавления нативного кода никак. В целом добавить несложно.

    4. Из этих апк-шек нам интересны только два:
    MonkeyGame-debug. Приложение подписанное debug ключом. Используется для отладки
    MonkeyGame-release. Приложение подписанное реальным ключом и именного его нужно загружать на маркет

или зарегистрируйтесь чтобы комментировать!