27 February 2021
© Денис Колисниченко
Нужно убедиться, что ваше приложение нормально работает на разных смартфонах. Для этого понадобится несколько устройств различных производителей, желательно с разной версией Android и разными разрешениями экрана. Где взять телефоны? Решать вам и только вам. Один из вариантов — купить. Второй вариант — одолжить телефоны у друзей. Одно только можно сказать: не стоит выкладывать ваше приложение на Play Market, если оно не протестировано хотя бы на 3—4 телефонах разных производителей.
Не забудьте проверить, как выглядит ваше приложение на экране, размер которого отличается от размера экрана эмулятора по умолчанию. Здесь все намного проще: создайте несколько эмуляторов с разными размерами экрана и запустите приложение на каждом из них.
Чтобы расширить аудиторию вашего приложения и, следовательно, заработать больше денег на нем, нужно выполнить локализацию, т. е. перевод приложения на разные языки.
С технической точки зрения, выполнить локализацию довольно просто. Создайте в каталоге res несколько каталогов values-*, например, values-en для английского языка, values-de — для немецкого и т. д. (рис. 1). Затем скопируйте в эти каталоги оригинальный файл strings.xml из res/values. Ясно, что локализацией нужно заниматься, когда приложение уже создано, все ошибки исправлены и больше не планируется добавлять в strings.xml новые строковые ресурсы.
Далее в настройки приложения добавляете параметр Язык (Language), позволяющий выбрать язык. Выбранный язык будет сохраняться с помощью предпочтений. При запуске приложения оно проверяет предпочтение и загружает соответствующие строковые ресурсы.
Кроме строковых ресурсов не забудьте также локализовать изображения (из каталогов res/drawable-*), если они содержат надписи, и меню приложения.
Вот только, чтобы не опростоволоситься, вам нужно нанять профессионального переводчика, который и выполнит перевод файлов strings.xml для каждого языка (© Денис Колисниченко). Возможно, понадобится несколько переводчиков.
Рис. 1. Созданы отдельные ресурсные файлы для каждого поддерживаемого языка
Довольно часто начинающие разработчики забывают изменить пиктограмму приложения. Согласитесь, коммерческое приложение за 5—10 долларов с пиктограммой по умолчанию выглядит, по меньшей мере, смешно.
Изменить пиктограмму приложения очень просто. Подготовьте файл пиктограммы и поместите его в каталог res/drawable. Затем измените атрибут android:icon элемента <application> в файле манифеста:
<application anroid:icon="@drawable/my_icon" ...
Чтобы перенаправить пользователя на Play Market (например, для покупки полноценной версии программы или для покупки другой программы), используйте URI market://. Например:
Intent i = new Intent(Intent.ACTION_VIEW,
Uri.parse("market://search?q:имя_моей_программы"));
startActivity(i);
Прежде чем вы опубликуете свой 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 |
Псевдоним в
базе данных ключей. Чтобы вам было понятнее, используйте |
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 будет создан ключ, а ваше приложение будет подписано эти ключом и помещено в каталог, указанный на последнем этапе экспорта.
Рис. 3. Информация о создаваемом ключе
Рис. 4. Информация о разработчике
Рис. 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. Уверен, что в Интернете вы найдете дополнительные сайты.