8. Обновление
Прошло достаточно времени и в голову пришли новые мысли по поводу проекта.
Редактирование файлов по одиночке довольно неудобно. Часто нужно править внешние таблицы стилей или скрипты.
Таким образом, было решено обновить приложение - добавить возможность редактировать несколько файлов, при этом во встроенный браузер грузится какой-то один.
То есть, например, главный html файл просматривается, а стили и скрипты, которые используются в нём редактируются тут же, рядом.
Для удобства управления проектами создан механизм, позволяющий хранить некоторые настройки внутри одного "проекта": путь до каждого файла (3 штуки) и размер шрифта редактора.
После нескольких дней собирания кода и отлаживания, обновлённое приложение было готово.
Здесь не буду вдаваться в подробности кодописания, покажу что важно для обновления приложения в Google Play.
Кстати, ради такого дела была добавлена новая иконка.
Вот как это делается.
Иконка для программы
В графическом редакторе готовится иконка программы. Например, используя программу для создания презентации делаем набросок, копируем его, вставляем в пустой 512х512 файл Photoshop. Убираем заливку где не нужно (прозрачный фон) и сохраняем в PNG (этот формат позволяет сохранить прозрачность).
Размер 512х512 выбран чтобы обновить иконку и в Google Play. Возможно, можно использовать и меньшие размеры. (Посмотреть Andriod Design Guide).
Сама иконка может как-то описывать программу, например:
Конечно, можно сделать что-то абстрактное.
Подгружаем к программе. В списке медиафайлов (пустом) жмётся кнопка "Upload File...", в небольшом появившемся окошке жмется "Browse", выбирается нужный файл и загружается.
Далее, в окне просмотра или списке компонентов нужно выбрать главный экран программы (Screen1) и найти в его свойствах свойство "Icon", кликнув в пустое поле под ним, выбрать загруженный файл.
Готово!
Версии кода программы
Обновление программы невозможно, если не изменить коды версии программы.
Внимание!
Подписи файлов, приходящих из AI и после использования AppToMarket могут отличаться, это так же приводит к конфликту и препятствует загрузке в Google Play и простой установке на устройстве. Будьте внимательны в процессе отладки.
Итак, чтобы избежать ошибок ниже, при установке программы не из Google Play или при попытке загрузить новое приложение в Google Play нужно следить за версиями программы и использовать одну и ту же подпись.
Несовпадение подписи
Неправильно написан код версии
Обновить версию программы нужно через свойства главного экрана программы. В таблице ниже приведёны коды предыдущей и обновлённой версии.
Старая версия
Новая версия
В связи с обновлением AI, часть между горизонтальных черт не актуальна. Оставим её для истории.
При загрузке в Google Play нужно использовать версию, прошедшую через AppToMarket с теми же параметрами ключа на вкладке 1> (см. здесь).
При использовании AppToMarket (см. здесь как и зачем с ним работать) необходимо проверить какие версии записаны в файле AndroidManifest.xml и, возможно, apktool.yml.
До нажатия кнопки 2> Update Manifest в поля должны быть введены значения, соответствующие AI (Version и Version Name):
После жмём 2> Update Manifest и идём в папку где лежит AppToMarket, в подпапку temp_myDecompiles
Открываем нужные файлы (AndroidManifest.xml и apktool.yml) в текстовом редакторе и проверяем.
versionCode и versionName должны соответствовать указанным в AI.
После этой операции приложение загрузится в Google Play без проблем.
Целевые API устройств
Несмотря на оптимизацию через AppToMarket, Google Play советует оптимизировать приложение для планшетных ПК:
Предложения по оптимизации с картинки выше в порядке предложения:
http://developer.android.com/distribute/essentials/quality/tablets.html#use-extra-space
http://developer.android.com/distribute/essentials/quality/tablets.html#android-versions
http://developer.android.com/distribute/essentials/quality/tablets.html#use-tablet-icons
Посмотрев материалы по ссылкам можно увидеть, что для приложения осознано не указаны (используются какие-то из AppToMarket):
targetSdkVersion is declared with value 11 or higher (14 or higher is recommended), OR
minSdkVersion is declared with value 11 or higher.
Совет по оптимизации для планшетов: https://groups.google.com/forum/#!topic/apptomarket/Zve2pqasVxc
"Here is my solution to apps made with app inventor will be downloadable for tablets on googelplay.
1: open your apk with AppToMarket and [Decompile]
2: Update the Manifest
3: Edit the Manifest with the following
<uses-sdk android:targetSdkVersion="0" android:minSdkVersion="11"/>
AND
android: xlargeScreens = "true"
4a: Create new APK
4b: Create an xml file called assets.xml
contents of assets.xml should be (if you have two images)
<? xml version = "1.0" encoding = "utf-8">
<Bitmap xmlns: android = "http://schemas.android.com/apk/res/android"
android: src = "@ assets/image1"
android: src = "@ assets/image2" />
5a: Open your apk file and in the RES folder add
drawable-hdpi
drawable-lhdpi
drawable-xhdpi
(add all drawable folders that you need)
5b: In every drawable folder, add your new assets.xml
6: Sign
7: Verify
8: Zip Align
9: detelet "Zip Align" from the name of your apk.
myapp_Zip_Align.apk to myapp.apk
10: Upload to Google Play"
Воспользуемся им минимально (есть иконка приложения, но нужно разбираться с оставшейся частью совета, пока оставим возможно багованную версию). AndroidManifest.xml должен содержать строку:
<uses-sdk android:targetSdkVersion="0" android:minSdkVersion="11"/>
Распаковки apk добавляем в манифест после
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
Дальше процедура сборки и т.д. Можно грузить в Google Play.
Обновление в Google Play
На вкладке Файлы APK в рабочей версии жмём загрузить новый APK.
После обновления минимальной версии SDK часть устройств, для которых подходит программа, будет удалена. В том числе об этом сообщает появившаяся после загрузки форма.
После обновления советы по оптимизации перестали содержать пункт об указании минимальной и текущей версии. Однако, Google Play всё ещё предлагает оптимизировать приложение.
Будем работать над этим.
Чтобы добавить текст для очередного обновления нажимаем на загруженный файл в консоли:
И используем ссылку "Добавить сведения" для заполнения информации об обновлённой версии.
Кажется, всё.
Далее: Работа с экспериментальными версиями (beta и alpha тестирование).