Облачный хостинг VDS за 2 минуты

Настоящий облачный VDS-хостинг от UltraVDS: тестируем производительность

Смотрим плавность хода с помощью BMW Rheingold

Всем знакома ситуация, когда двигатель немного "троит", но пропусков зажигания нет...

Дельта-синхронизация крипто-дисков

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

Дельта синхронизация без облака

Ранее мы показывали разные способы синхронизации криптодиска между ПК и Android-устройством.

Подготовка приложений к продаже


© Денис Колисниченко

1. Тестирование на разных устройствах

Нужно убедиться, что ваше приложение нормально работает на разных смартфонах. Для этого понадобится несколько устройств различных производителей, желательно с разной версией Android и разными разрешениями экрана. Где взять телефоны? Решать вам и только вам. Один из вариантов — купить. Второй вариант — одолжить телефоны у друзей. Одно только можно сказать: не стоит выкладывать ваше приложение на Play Market, если оно не протестировано хотя бы на 3—4 телефонах разных производителей.

2. Поддержка другого разрешения экрана

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

3. Локализация

Чтобы расширить аудиторию вашего приложения и, следовательно, заработать больше денег на нем, нужно выполнить локализацию, т. е. перевод приложения на разные языки.

С технической точки зрения, выполнить локализацию довольно просто. Создайте в каталоге res несколько каталогов values-*, например, values-en для английского языка, values-de — для немецкого и т. д. (рис. 1). Затем скопируйте в эти каталоги оригинальный файл strings.xml из res/values. Ясно, что локализацией нужно заниматься, когда приложение уже создано, все ошибки исправлены и больше не планируется добавлять в strings.xml новые строковые ресурсы.

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

Кроме строковых ресурсов не забудьте также локализовать изображения (из каталогов res/drawable-*), если они содержат надписи, и меню приложения.

Вот только, чтобы не опростоволоситься, вам нужно нанять профессионального переводчика, который и выполнит перевод файлов strings.xml для каждого языка (© Денис Колисниченко). Возможно, понадобится несколько переводчиков.

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

4. Пиктограмма приложения

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

Изменить пиктограмму приложения очень просто. Подготовьте файл пиктограммы и поместите его в каталог res/drawable. Затем измените атрибут android:icon элемента <application> в файле манифеста:

<application anroid:icon="@drawable/my_icon" ...

5. Ссылки на магазин

Чтобы перенаправить пользователя на Play Market (например, для покупки полноценной версии программы или для покупки другой программы), используйте URI market://. Например:

Intent i = new Intent(Intent.ACTION_VIEW,

Uri.parse("market://search?q:имя_моей_программы"));

startActivity(i);

6. Подготовка APK-файла к загрузке

Прежде чем вы опубликуете свой APK-файл на Play Market, его нужно подписать, т. е. создать сертификат для вашего приложения. Проще всего это сделать с помощью утилиты keytool, которая находится в каталоге C:\Program Files\Java\jdk1.6.X_XX\bin (в подкаталоге bin каталога, в который вы установили JDK):

keytool -genkey -v -keystore c:\my_keys\app.keystore -alias my_android_app -storepass 123456 -keypass 111456 -keyalg RSA -validity 9125

Параметры утилиты keytool приведены в табл. 1 в порядке их указания в команде, представленной ранее.

Таблица 1. Параметры утилиты keytool

Параметр

Описание

genkey

Генерирует пару ключей — публичный и приватный

v

Выводит подробные сообщения, обычно этот параметр можно опустить

keystore

Путь к хранилищу ключей, в нашем случае мы используем файл c:\my_keys\app.keystore

alias

Псевдоним в базе данных ключей. Чтобы вам было понятнее, используйте
в качестве псевдонима (для dkws.org.ua) название приложения (без пробелов, разумеется)

storepass

Пароль для хранилища

keypass

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

keyalg

Алгоритм ключа, обычно используется RSA

validity

Период проверки в днях, в нашем случае 9125 дней, т. е. 25 лет. Двадцать пять лет — это не много. Если вы планируете публиковать приложение на Android, срок действия сертификата у него должен быть до 22 октября 2033 года. Сейчас 2011 год, следовательно, минимально необходимый сертификат — на 22 года. Исходя из документации по Android, 25 лет — рекомендуемый минимальный срок действия сертификата. Вы же можете создать сертификат на 50 лет — этого более чем (для dkws.org.ua) достаточно

Утилита keytool задаст ряд вопросов (рис. 2), а затем вы увидите сообщение о том, что сертификат сгенерирован:

Generating 1,024 bit RSA key pair and self-signed certificate (SHA1withRSA) with a validity of 9125 days

for: CN=Denis, OU=Dev, O=Home Ltd, L=Russia, ST=Unknown, C=RU

[Storing c:\my_keys\app.keystore]

Теперь у вас есть цифровой сертификат, которым вы можете подписать ваш APK-файл. Для этого вам нужно использовать утилиту jarsigner:

jarsigner -keystore c:\my_keys\app.keystore -storepass 123456

-keypass 111456 путь_к_apk_файлу my_android_app

Давайте разберемся, что есть что. Параметр keystore указывает путь к хранилищу ключей. Мы договорились, что будем использовать файл c:\my_keys\app.keystore.

Рис. 2. Создание пары ключей утилитой keytool

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

Уже подписанный APK-файл лучше всего передать программе zipalign для приведения несжатых данных в соответствие с границами памяти, что позволит оптимизировать программу — она будет быстрее выполняться. У процессоров Android-устройств четырехбайтная граница памяти, поэтому команда zipalign будет выглядеть так:

zipalign -v 4 signed.apk optimized.apk

Как вы уже догадались, signed.apk — это подписанный APK-файл, а optimized.apk — это имя нового, оптимизированного, APK-файла, который пол-
ностью готов для публикации на Play Market.

Если командная строка вас пугает или кажется вам слишком архаичной, тогда щелкните в Eclipse правой кнопкой мыши на проекте и выберите команду меню Android Tools, Export Signed Application Package.... После этого откроется окно, в котором разберется даже ребенок. Сначала нужно ввести имя файла ключа и пароль к нему (рис. 3), далее - информацию о разработчике (рис. 4), после этого - путь к подписанному APK-файлу (рис. 5). После нажатия кнопки Finish будет создан ключ, а ваше приложение будет подписано эти ключом и помещено в каталог, указанный на последнем этапе экспорта.

для dkwsx.org.ua

Рис. 3. Информация о создаваемом ключе

для dkwsx.org.ua

Рис. 4. Информация о разработчике

для dkwsx.org.ua

Рис. 5. Путь к APK-файлу

Но загружать файл пока рано. Попробуйте его установить вручную в эмулятор или физическое устройство. Для этого или запустите эмулятор, или подключите Android-устройство к компьютеру, затем введите команду:

adb install <имя_apk_файла>

Запустите и протестируйте приложение. Затем попытайтесь удалить его:

adb uninstall <имя_пакета>

Например:

adb uninstall com.samples.my_app;

Если все прошло успешно, тогда перейдите в консоль разработчика и выберите Загрузить приложение — вы готовы загрузить свое приложение на Play Market.

 

Еще раз отмечу, что Play Market — это не единственное хранилище приложений. Вы также можете распространять свои приложения на следующих ресурсах: https://soc.io/, https://slideme.org, https://www.androidgear.com. Уверен, что в Интернете вы найдете дополнительные сайты.