menu

16:50
Автоматическое генерирование APK с различными данными из командной строки с помощью Ant

 

 

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

Итак задача — дать пользователю возможность загрузить из интернета динамически генерируемое Андроид приложение которые буду вести себя по разному в зависимости от переданных параметров (в данном случае разные сервера загрузки данных). 

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

Сначала настраиваете Java и Ant, Android SDK на вашем удаленном сервере. Убедитесь, что прописаны пути к ним или вводите полный путь при запуске приложений из этих пакетов. Скопируйте исходники проекта на сервер.

 

 

Порядок выполнения команд


Я привожу данный пример для Ubuntu. Для Windows сервера нужно будет заменить только команду создания файла в командной строке.

Создаете пакетный файл который будет генерировать apk файл с переменными адресами сервера. Естественно вы можете его использовать и для других переменных.

Сначала создаете файл ваших данных указал в качестве пути к данным папку /assets в вашем проекте…

cat<<ЕОF>путь_к_данным/файл_данных.txt
здесь любые ваши данные, в моем случае просто адрес сервера
ЕОF


Сгенерируйте файла build.xml в корне проекта, причем название проекта <project_name> вы можете указывать любое, это будет названием apk файла. Если вам нужно делать различные релизы, то вы можете указывать к примеру project_name_release_number_version_number и т.д.

android update project --name <project_name> --path <path_to_your_project>

Затем из корня проекта запускаете команду

ant release

в результате вы получите готовую apk в каталоге /bin. В данном случае вы получите файл с суффиксом -unsigned.apk, поскольку вы не подписали ваше приложение. Чтобы подписать ваше приложение нужно убедиться что в файлеlocal.properties прописаны пути к вашему хранилищу сертификатов. Как создать сертификат для подписи вашего приложения описано здесь. Это выходит за рамки этой заметки.

key.store=/Path/to/my/keystore/MyKeystore.ks
key.alias=myalias


Для уверенности мы можем вставить код генерации этого файла.

cat<<ЕОF >каталог_проекта/local.properties
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must *NOT* be checked in Version Control Systems,
# as it contains information specific to your local configuration.
# location of the SDK. This is only used by Ant
# For customization when using a Version Control System, please read the
# header note.
sdk.dir=/путь_к_sdk/Android-sdk
key.store=/Path/to/my/keystore/MyKeystore.ks
key.alias=myalias
ЕОF



В вашем Java коде достаете нужные для работы данные из сгенерированного файла в /assets. Используйте их как вам необходимо. В моем случае просто читаю адрес сервера с которого нужно производить загрузку.
Пользователю для загрузки даете ссылку на готовую apk.

Полный пакетный файл приведен ниже. Пути данных и названия файлов вы можете передавать в скрипт/пакетный файл при помощи параметров.

ВНИМАНИЕ! В тексте заметки везде EOF написано при помощи русских букв Е и О — иначе некорректно отображалось.

cat<<ЕОF >путь_к_данным/файл_данных.txt
здесь любые ваши данные, в моем случае просто адрес сервера
ЕОF
android update project --name <project_name> --path <path_to_your_project>
cat<<ЕОF>каталог_проекта/local.properties
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must *NOT* be checked in Version Control Systems,
# as it contains information specific to your local configuration.
# location of the SDK. This is only used by Ant
# For customization when using a Version Control System, please read the
# header note.
sdk.dir=/путь_к_sdk/Android-sdk
key.store=/Path/to/my/keystore/MyKeystore.ks
key.alias=myalias
ЕОF
ant release

 
об этом и многом другом так же можно прочитать в официальной документации developer.android.com/guide/developing/building/building-cmdline.html
Category: Android | Views: 27055 | Added by: tsvetkov | Tags: command line, Android, Ant, apk | Rating: 0.0/0
Total comments: 5
5 Nathanlat  
0
viliminj@gmail.com

4 Fishcica  
0
FISH-EMPIRE.NET - азартная игра с выводом денег. Старт игры 31.03.2014.

Для обзора нажмите по ссылке: http://fish-empire.net/

Наши Приемущества: Видимая статистика - Вы всегда будете осведомлены о реальном состоянии золота в игре. В игре не имеется никаких ограничений для продажи золота.

Идеальные условия - возможность во много раз увеличить свои вклады. Мы предлагаем от 30% до 100% в месяц.

Рост резерва системы - за счет определения денег на рекламу и привлечения в игру новых игроков - игроками, работающих по реферальной програме. Оперативная поддержка на дружественном форуме. Не забываемая среда и ещё куча различных приемуществ.

Об Игре: FISH-EMPIRE.NET - азартная игра с выводом денег. Окунитесь в среду экономической онлайн игры и возведите свою Рыбную Империю, которая каждый день будет давать Вам реальные деньги.

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

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

Начинай Игру: Начать играть можно без вложений. При регистрации Всем Щука в подарок. Каждый день бонусы, лотерея, конкурсы, акции. Так же существует реферальная програма. Приглашайте в проект своих друзей и родных.

За каждое пополнение счета партнерами, Вы будете иметь 30% от суммы их инвестиций. Автоматический ввод в игру и вывод денег на Ваш электронный кошелек. Мизерная минималка на Паеер, всего 3 RUB. Ваша Рыбная Империя будет давать прибыль всегда.

Курс игрового инвентаря: 100 гр. икры = 1 гр. золота. 100 гр. золота = 1 RUB.

Рыбы-------------------Стоимость----------------Доход в день-----------Окупаемость
Щука--------------------90 RUB--------------------1 RUB--------------------90 дней
Минтай-----------------270 RUB------------------3,6 RUB--------------------75 дней
Лосось-----------------810 RUB------------------13,5 RUB-------------------60 дней
Осетр------------------2430 RUB-----------------54 RUB---------------------45 дней
Белуга-----------------7290 RUB-----------------243 RUB--------------------30 дней

3 Atypical pics  
0
Geek Girls:
http://prettygirls.blognet.pw/?ken
updates every day

2 дівчатка  
0
Міс фото :
http://fashion.blognet.pw/?louella
  Нове фото кожної простої

1 Парування блог  
0
Порно блог :
http://arabgirls.adultgalls.com/?pansy
 кращі Джессі Джейн втрьох коли-небудь повинен це побачити зрілого Галереї Відео Кінотеатр Apollo Leamington Spa на те , що з великою дупою Мамочки Таїланду Тайська кухня Fairfax , VA голих знаменитостей Milly виробників безкоштовне відео для дорослих сайти авто синю книгу Канаді