6. Настройка разрешения
Всё, что написано ниже горизонтальной черты оставлено для истории.
С 15 августа 2015 App Inventor предоставляет возможность масштабировать программы под разные разрешения, в штатном режиме. Достаточно выбрать Responsive в настройке экрана в режиме Design:
После такого выбора во Viewer становится доступна галка, позволяющая макетировать интерфейс программы на якобы планшетном экране (Check to see Preview on Tablet size):
Использование различных улучшайзеров для оптимизации разрешения не требуется.
Всё, что написано ниже горизонтальной черты оставлено для истории!
Штатным разрешением для всех программ AppInventor является разрешение 480х320.
Это значит, что на различных устройствах создаваемая программа будет выглядеть как показано в таблице ниже в колонке "Начальное", а хотелось бы, чтобы она выглядела как в колонке "Правильное".
Кроме того, хотелось бы скрыть занимающую лишнее место строку с название программы.
Устройство
Google/HTC Nexus One
Motorola Moto G
Asus EEPad TF700T
Экран
800x480
1280x720
1920x1200
Начальное
Правильное
Дизайн кнопок в программе был немного изменён. В статус бар lbl_status_l стали выводиться значения высоты и ширины всего экрана программы и компонента браузера.
Как видно в колонке "Начальное" практически нет изменений в положениях и размере элементов программы, а разрешение экрана возросло с 800x480 до 1920х1200. На экране планшета программа выглядит жутко "мыльно".
К сожалению, штатными средствами положение дел не исправить.
Однако энтузиастами разработано несколько решений (см. Модификации), например - инструмент AppToMarket.
К сожалению и этот инструмент не делает всё автоматически так, как нужно, и нужно будет немного поправить AndroidManifest.xml. Но обо всём по порядку.
Процесс такой:
проект компилируется в AppInventor и скачивается на компьютер,
скачивается и устанавливается JRE 1.7 или выше (javase/downloads),
скачивается, разархивируется и запускается AppToMarket_v4.0.jar,
заполняется вкладка Certificate Details (понадобится для подписи приложения),
на вкладке De/Re compile and wrap-up распаковывается скачанный apk,
на той же вкладке устанавливаются нужные параметры и обновляется AndroidManifest,
в любом текстовом редакторе AndroidManifest подправляется ещё раз,
apk собирается обратно, подписывается и выравнивается.
Можно загружать в Google Play.
Чуть подробнее.
Установив JRE или JDK и скачав AppToMarket (ссылки см. на странице Модификации) и распаковав его, сохраняем apk созданного приложения на компьютер. На верхней панели AppInventor выбираем Built -> App (Save .apk to my computer):
Запускаем AppToMarket, переходим на вторую вкладку (1>) и заполняем данные для подписи приложения. Это обязательное условие, без ключа созданного на этом этапе приложение не возможно будет запаковать обратно. За недостоверность данных программу могут заблокировать в Google Market.
При наведении мыши на поля в поле Information появляются подсказки, помогут сориентироваться. Кроме того, все поля изначально заполнены, кто-то использует это.
Заполнив поля и нажав кнопку Generate, получим ключ, которым приложение будет подписано.
Можно нажать Save Config, чтобы программа запомнила какой ключ использовать и где он лежит.
Переходим на вкладку 2>. Тут все пункты пронумерованы, не ошибёшься.
указываем какой файл нужно обработать (Browse),
декомпилируем его 1> Decompile (может потребоваться время),
устанавливаем нужные атрибуты в нужные значения (Orientation в sensor, Screen в No TitleBar, ползунок в значение перемещаем со значения X-Large в значение Any, Resizeble в Yes),
жмём 2> Update Manifest.
Дальше нужно вручную подредактировать пару строк в манифесте, т.к. AppToMarket работает криво.
Идём в папку где лежит AppToMarket, в подпапку temp_myDecompiles
Открываем AndroidManifest.xml в текстовом редакторе и ищем строку:
<supports-screens android:resizeable="true" android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:anyDensity="false" />
и меняем её на строку:
<supports-screens android:resizeable="true" android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true" />
Т.е., добавили xlargeScreens="true" и изменили android:anyDensity="false" на "true".
Всё это можно сделать нажав 3> Edit Manifest, но лучше использовать текстовые редакторы с подсветкой кода Notepad++, например, чтобы не ошибиться.
Сохраняем манифест, переходим в AppToMarket и продолжаем по пунктам:
3> Create New .apk,
4> Sign (может потребоваться время),
5> Verify,
6> Zip Align.
После этих операций рядом с исходным apk будут лежать ещё 2:
Последний файл (_new_zipAlign) будет содержать требуемую функциональность.
Можно грузить в Google Market.
Далее: Загрузка в Google Play.