Некоторое время воюю с функционалом для сбора полноценного мобильного приложения.
Я конечно повторю уже существующие мануалы наверное, но кое что и от себя добавлю.
У меня была чистая свежеустановленная Ubuntu 14.
Установим Яву
INSTALL JDK
Open Applicaction -> Accessories -> Terminal
Type commandline as below…
sudo apt-get install openjdk-7-jdk
Type commandline as below…
apt-cache search jdk
(Note: openjdk-6-jdk is symbolically used here. You can choose the JDK version as per your requirement.)
For “JAVA_HOME” (Environment Variable) type command as shown below, in “Terminal” using your installation path…
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk
(Note: “/usr/lib/jvm/java-6-openjdk” is symbolically used here just for demostration. You should use your path as per your installation.)
For “PATH” (Environment Variable) type command as shown below, in “Terminal” using your installation path…
export PATH=$PATH:/usr/lib/jvm/java-7-openjdk/bin
(Note: “/usr/lib/jvm/java-6-openjdk” is symbolically used here just for demostration. You should use your path as per your installation.)
Check for “open jdk” installation, just type command in “Terminal” as shown below
javac
additionally For Ubuntu x64 → sudo apt-get install lib32z1 lib32stdc++6
Создаем проект и заходим в папку проекта
meteor create BlaBlaBla
cd BlaBlaBla
Устанавливаем среду разработки с эмулятором и добавляем платформу в проект
meteor install-sdk android (wait a moment till the package will be downloaded)
meteor add-platform android
Пробуем запускать в эмуляторе
meteor run android
Что интересное пригодилось уже
Настройки приложения, наследуемые от PhoneGap можно установить путем использования файла mobile-config.js и директивы App.setPreference. Я использовал ее для фиксации своего приложения в режиме Landscape
App.setPreference(‘Orientation’, ‘landscape’);
Ссілка на док -> http://docs.meteor.com/#/full/App-info
С билдом .apk приложения пока не успешно, танцы с бубном продолжаются.
До конечной точки пока не добрался, остановился на разработке для эмулятора, пока в интернете не появится побольше мануалов. Если кто то сбилдит удачно и запустит на Девайсе, напишите плиз.
Я попробую сбилдить снова уже без виртуальной машины и напишу поподробнее.
Сейчас заметил интересную штуку.
После перезагрузки компьютера, хром успешно продолжает отображать контент страницы на localhost:3000
Сервер не запущен.
А в консольке сообщение
Document was loaded from Application Cache with manifest http://localhost:3000/app.manifest (index):1
Application Cache Checking event
Я хочу сбилдить apk файл, который я могу установить/запустить на своем телефоне и протестить.
Я делаю деплой meteor deploy blabla.meteor.com
Я делаю билд meteor build /build --server http://blabla.meteor.com:80 (пробовал сервер просто blabla.meteor.com)
Я запускаю преобразование unaligned.apk в production.apk
~/.meteor/android_bundle/android-sdk/build-tools/20.0.0/zipalign 4 /build/android/unaligned.apk production.apk
Далее, заливаю production.apk на телефон, и при попітке установить вижу “приложение не установлено”
На телефоне разрешена установка любых “непонытных” приложений.
Возможно я не до конца понимаю, действительно ли этот apk и есть мое приложение.
Из нового - при попытке запуска на подключенном мобильном девайсе путем команды
meteor run android-device
получаю в результате ошибку :
ERROR: Failed to launch application on device: ERROR: Failed to install apk to device: pkg: /data/local/tmp/Bog-debug-unaligned.apk
Failure [INSTALL_FAILED_INVALID_APK]
Could not start the app on your device. Is it plugged in?
Try running again with the --verbose option.
Возможно что конфиг приложения неправильный, хотя странно что в эмуляторе работает.
Нагуглить ответ пока не получилось, много чего перепробовал, продолжаю мучать.
Ну меня больше интересует копирование и запуск apk на устростве.
Да, в dev тулзах на телефоне Дебаг по USB включен.
Там с этим дебагом через шнут ваще в интернете много историй курьезных. В плоть до того, что “usb кабель короткий” или “переключил в другой usb порт и все ок”.
Для билда использовал и build-tools/20.0.0 и build-tools/21.0.0
Не знаю где проверить в Метеоре “SDK4”.
Платформа в папке метеора .meteor/android_bundle/android-sdk/platforms/android-19
А какой смысл использовать JS для создания Android приложений? Будет проседать перфоманс в разы по сравнению с нативными приложениями. И еще, если понадобится использовать С/C++ код в приложении(использование FFMpeg или OpenCV) то как быть с метеором ?
Иметь единую кодовую базу для андроид, айос, и (или) мобильного сайта. Производительность действительно страдает, зато снижаются издержки на разработку, при этом охватывается больший рынок.