Lazarus - > Android . Погружение ))

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

скалогрыз
долгожитель
Сообщения: 1804
Зарегистрирован: 03.09.2008 02:36:48

Сообщение скалогрыз »

Проблему вроде бы решил. Jarsigner по-умолчанию делает неполные подписи.

build_debug_apk.bat скрипт (на который кстати многие люди ссылаются)
в "lazarus\examples\androidlcl\android\build_debug_apk.bat"

Подписывает следующим образом:
jarsigner -verbose -keystore bin\LCLDebugKey.keystore -keypass 123456 -storepass 123456 -signedjar bin\%APP_NAME%-unaligned.apk bin\%APP_NAME%-unsigned.apk LCLDebugKey


для JDK 1.7.0_25 этого похоже недостаточно и нужно ещё указывать алгоритм
jarsigner -verbose ^
-sigalg SHA1withRSA ^
-digestalg SHA1 ^
-keystore bin\LCLDebugBKKey.keystore -keypass 123456 -storepass 123456 -signedjar bin\%APP_NAME%-unaligned.apk bin\%APP_NAME%-unsigned.apk LCLDebugBKKey

(символ ^ - это перенос строки в .bat файлах)

Скачать можно здесь: https://i.diawi.com/hDgFmq
kazalex
постоялец
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Сообщение kazalex »

скалогрыз писал(а):а если вот эту версию попробовать: https://i.diawi.com/4rwDp5 ?

Screenshot_2016-08-14-12-34-46.png

скалогрыз писал(а):В настройках безопасности нужно разрешить устанавливать из неизвестного источника.

Разрешено:
Screenshot_2016-08-14-12-35-24_2.png

скалогрыз писал(а):Проблему вроде бы решил. Jarsigner по-умолчанию делает неполные подписи.

Вот же я тормоз :mrgreen:
Установилось. Работает.
Screenshot_2016-08-14-12-58-52_2.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
скалогрыз
долгожитель
Сообщения: 1804
Зарегистрирован: 03.09.2008 02:36:48

Сообщение скалогрыз »

kazalex писал(а):Установилось. Работает.

спасибо!
kazalex
постоялец
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Сообщение kazalex »

Пара замечаний:
1. Не реагирует на скрытие панели - чёрная полоса справа
2. Нажатие Back всегда приводит к завершению приложения

В целом, игрушка приятная.
скалогрыз
долгожитель
Сообщения: 1804
Зарегистрирован: 03.09.2008 02:36:48

Сообщение скалогрыз »

kazalex писал(а):1. Не реагирует на скрытие панели - чёрная полоса справа

а что за панель-то такая? :shock: (андроид в руках первый раз держу)
kazalex
постоялец
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Сообщение kazalex »

скалогрыз писал(а):а что за панель-то такая? :shock: (андроид в руках первый раз держу)

Панель навигации с софтовыми кнопками back, home, menu. На некоторых аппаратах её можно сворачивать/восстанавливать свайпом или кнопкой.
скалогрыз
долгожитель
Сообщения: 1804
Зарегистрирован: 03.09.2008 02:36:48

Сообщение скалогрыз »

kazalex писал(а):Пара замечаний: 1. Не реагирует на скрытие панели - чёрная полоса справа

а если эту версию попробовать? https://i.diawi.com/cfigjk

kazalex писал(а):2. Нажатие Back всегда приводит к завершению приложения

сейчас просто глушится
kazalex
постоялец
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Сообщение kazalex »

скалогрыз писал(а):а если эту версию попробовать? https://i.diawi.com/cfigjk

Теперь при скрытии/восстановлении панели игрушка падает.
скалогрыз
долгожитель
Сообщения: 1804
Зарегистрирован: 03.09.2008 02:36:48

Сообщение скалогрыз »

kazalex писал(а):Теперь при скрытии/восстановлении панели игрушка падает.

Понятно. Малой кровью обойти не удасться, придёться пилить zengl.

Для справки: в отличии от остальных систем (win, x-windows (linux), osx), где отрисовка происходит в основном потоке.
Отрисовка OpenGL(ES) на Андроиде происходит в собственном потоке. Движок изначльно заточенный на основой поток, не очень хорошо справляется с дополнительным потоком.

Любые неосторожные изменения (например поддержка изменения размера экрана) могут причинить падение программы.
stanilar
постоялец
Сообщения: 289
Зарегистрирован: 09.03.2010 18:09:02

Сообщение stanilar »

скалогрыз писал(а):придёться пилить zengl

А никак нельзя положить с игрой полноценный OpenGL и просто запускать его в режиме программной эмуляции?
скалогрыз
долгожитель
Сообщения: 1804
Зарегистрирован: 03.09.2008 02:36:48

Сообщение скалогрыз »

stanilar писал(а):А никак нельзя положить с игрой полноценный OpenGL и просто запускать его в режиме программной эмуляции?

хм... а что есть "полноценный OpenGL" и "режим программной эмуляции"?
stanilar
постоялец
Сообщения: 289
Зарегистрирован: 09.03.2010 18:09:02

Сообщение stanilar »

скалогрыз писал(а):что есть "полноценный OpenGL" и "режим программной эмуляции"?


Если мне все правильно понятно, то OpenGL - это прежде всего набор dll (so), которые предоставляют апи, являющимся декоратором работы с железом. В режиме программной эмуляции за декоратором скрываются собственные функции библиотеки.

Добавлено спустя 18 минут 9 секунд:
Кстати, немного погуглил тему и нашел пару интересных проектов, один называется Mesa, другой - SoftGL.
Второй выглядит дохлым, а вот первый имеет шанс портировать на мобильную платформу если не ZenGL, то хотя-бы GlScene. Вобщем, вопрос пока выглядит интересным...
скалогрыз
долгожитель
Сообщения: 1804
Зарегистрирован: 03.09.2008 02:36:48

Сообщение скалогрыз »

stanilar писал(а):которые предоставляют апи, являющимся декоратором работы с железом. В режиме программной эмуляции за декоратором скрываются собственные функции библиотеки.

я останусь старомодным любителем аппаратного ускорения.
stanilar
постоялец
Сообщения: 289
Зарегистрирован: 09.03.2010 18:09:02

Сообщение stanilar »

В процессе исследования вопроса, до меня дошло, почему нужен OpenGL ES, вместо обычного OpenGL - аndroid это не просто линух, но линух на арм, для него наработки по 86 не совсем подходят. Как говорится, инертность сознания во всей красе.
Mirage
энтузиаст
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

Сообщение Mirage »

stanilar писал(а):В процессе исследования вопроса, до меня дошло, почему нужен OpenGL ES, вместо обычного OpenGL - аndroid это не просто линух, но линух на арм, для него наработки по 86 не совсем подходят.


ARM тут не причем. На x86 андроидах тоже OpenGL ES.
Он нужен для мобильных устройств. Наверное, чтобы всю кучу унаследованных API не реализовывать на относительно новом классе устройств, а только то, что действительно нужно.
Ответить