Android-приложения в Lazarus

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

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

Android-приложения в Lazarus

Сообщение wwswowsogon » 03.12.2023 18:37:12

Доброго времени суток всем участникам уважаемого сообщества!

Наконец-то дошли руки до научных исследований на тему создания приложений для Android.

На данный момент возникают следующие вопросы:

- Каково положение дел с разработкой Android-приложений в Lazarus в текущий момент времени? Какой инструментарий использовать? Я нашёл несколько статей и мануалов, но все они довольно старые, многое уже поменялось (например, Android SDK уже вроде как нет, а вместо него рекомендуется использовать Android Studio).
- Написано, что FPC умеет генерировать нативный код под Android. Как различается разработка под JVM от разработки нативного кода под Android? Или я здесь чего-то не понимаю?
- Я пошёл по пути laz4android. Там можно выбрать тип создаваемого приложения: GUI или libGDX. Чем они отличаются?
- Насколько реально создать несложное приложение вида "Разместить std контролы, повесить картинки, соединиться с MySQL на удалённом сервере, записать / прочитать / вывести данные" ? Может быть, разумнее сразу осваивать Android Studio / Java / Kotlin? (честно говоря, делать этого не хочется :))
wwswowsogon
постоялец
 
Сообщения: 152
Зарегистрирован: 23.12.2008 20:41:37

Re: Android-приложения в Lazarus

Сообщение WAYFARER » 03.12.2023 21:57:35

wwswowsogon писал(а):Может быть, разумнее сразу осваивать Android Studio / Java / Kotlin?

Если собираетесь серьезно заниматься разработкой под андроид, то да, разумнее.
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 517
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: Android-приложения в Lazarus

Сообщение Seenkao » 04.12.2023 02:17:13

https://forum.lazarus.freepascal.org/in ... ,43.0.html - лучше было этот вопрос задать на этом форуме.
https://wiki.freepascal.org/Portal:Android - советую заглянуть сюда.

Ну и прежде всего надо установить всё необходимое для разработки под android:
- SDK manager
- NDK manager
- FPC/Lazarus + кросскомпилятор.

И определиться какие приложения собираетесь делать. Для многих приложений подойдёт установить LAWM в Lazarus и использовать его. Если чисто нативные приложения, то это немного сложнее поначалу, а потом не так и сложно, просто по накатанной уже всё делается, как и везде.

Я создаю практически нативные приложения с помощью ZenGL (пока в основном демонстрационные). Но для этого надо добавочно установить Android Studio для окончательной сборки проекта, а все нативные библиотеки собираются с помощью FPC/Lazarus.

если интересно, то:
- здесь видео по последним сборкам под Android используя Eclipse.
- здесь видео по последним сборкам под Android используя Android Studio.
- здесь видео где в первый раз собираю полностью нативное приложение, код ещё с 2012-го года лежит. Под видео ссылка на код оставлена.

На самом деле смысла создавать нативный код под Android очень мало. потому что Android поддерживает множество разных архитектур, и для каждой архитектуры надо создавать свой нативный код (если есть желание поддерживать своё приложение в свободном доступе).

Так что, решать тебе. )))
Seenkao
постоялец
 
Сообщения: 499
Зарегистрирован: 01.04.2020 03:37:12

Re: Android-приложения в Lazarus

Сообщение wwswowsogon » 04.12.2023 19:08:46

Seenkao писал(а):https://forum.lazarus.freepascal.org/index.php/board,43.0.html - лучше было этот вопрос задать на этом форуме.
https://wiki.freepascal.org/Portal:Android - советую заглянуть сюда.

Ну и прежде всего надо установить всё необходимое для разработки под android:
- SDK manager
- NDK manager
- FPC/Lazarus + кросскомпилятор.

И определиться какие приложения собираетесь делать. Для многих приложений подойдёт установить LAWM в Lazarus и использовать его. Если чисто нативные приложения, то это немного сложнее поначалу, а потом не так и сложно, просто по накатанной уже всё делается, как и везде.

Я создаю практически нативные приложения с помощью ZenGL (пока в основном демонстрационные). Но для этого надо добавочно установить Android Studio для окончательной сборки проекта, а все нативные библиотеки собираются с помощью FPC/Lazarus.

если интересно, то:
- здесь видео по последним сборкам под Android используя Eclipse.
- здесь видео по последним сборкам под Android используя Android Studio.
- здесь видео где в первый раз собираю полностью нативное приложение, код ещё с 2012-го года лежит. Под видео ссылка на код оставлена.

На самом деле смысла создавать нативный код под Android очень мало. потому что Android поддерживает множество разных архитектур, и для каждой архитектуры надо создавать свой нативный код (если есть желание поддерживать своё приложение в свободном доступе).

Так что, решать тебе. )))


Спасибо большое, полезная информация, ознакомлюсь.
wwswowsogon
постоялец
 
Сообщения: 152
Зарегистрирован: 23.12.2008 20:41:37

Re: Android-приложения в Lazarus

Сообщение Alex2013 » 10.12.2023 13:00:19

Я в прошлом году пробовал собирать андроид приложения в лазарусе .
В принципе все работает (дальше сборки примеров дело не пошло но ясно что собрать что-то не сложное даже я вполне могу )

Lazarus и Android - обмен опытом

Основная проблема там не в сложности программирования, а в отсутствии идей и заказов ( в рамках полу-любительской разработки особенно ) .
Alex2013
долгожитель
 
Сообщения: 2900
Зарегистрирован: 03.04.2013 11:59:44

Re: Android-приложения в Lazarus

Сообщение wwswowsogon » 11.12.2023 11:29:49

Да, оказывается, есть уже такая тема. Спасибо. Можно их даже объединить. :)
Задача не слишком срочная, и я пока в раздумьях, что для этого использовать. Подумываю о Python+Kivy. Но, конечно, использовал бы Lazarus, если бы мог.
Пару дней поупражнялся с настройкой laz4android, достиг некоторого прогресса, но в итоге при сборке Lazarus ругается на пути к android-ndk, непонятно, почему, и в сообщениях проекта получаю вот что:

Код: Выделить всё
Fatal: [EStringListError] Failed: List index (0) out of bounds

Пока не понял, что с этим делать.
wwswowsogon
постоялец
 
Сообщения: 152
Зарегистрирован: 23.12.2008 20:41:37

Re: Android-приложения в Lazarus

Сообщение Alex2013 » 11.12.2023 19:41:14

В принципе могу закинуть куда нибудь в облако полностью готовую самодельную сборку "Лазарус Студио для Андройд". ( Правда что там с "переносимостью" будет точно не скажу привязка к букве диска там точно есть но это не проблема )
Alex2013
долгожитель
 
Сообщения: 2900
Зарегистрирован: 03.04.2013 11:59:44

Re: Android-приложения в Lazarus

Сообщение wwswowsogon » 11.12.2023 20:30:24

Alex2013 писал(а):В принципе могу закинуть куда нибудь в облако полностью готовую самодельную сборку "Лазарус Студио для Андройд". ( Правда что там с "переносимостью" будет точно не скажу привязка к букве диска там точно есть но это не проблема )


Буду признателен, если не затруднит. :)

Если я правильно понимаю, в целом достаточно сделать следующее:

1 установить laz4android
2 установить пакеты tfpandroidbridge_pack.lpk, lazandroidwizardpack.lpk, amw_ide_tools.lpk
3 Установить AndroidSDK, AndroidNDK, OpenJDK, ApacheAnt, Gradle,
4 Прописать пути к вышеуказанному ПО.

Вроде бы я всё это сделал, но при сборке проекта получаю вот это:

и потом сообщение, которое выше.

Добавлено спустя 38 секунд:
Здесь даже пути не видны полностью, поэтому не совсем понятно, что делать.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
wwswowsogon
постоялец
 
Сообщения: 152
Зарегистрирован: 23.12.2008 20:41:37

Re: Android-приложения в Lazarus

Сообщение Alex2013 » 11.12.2023 21:15:46

Сейчас проверю работает ли моя "студия" вообще !
Собирается...
Эмулятор запустился ...
Пример установился...
Работает !
Вообщем вроде работает хотя возни даже с примерами много пути компоненты модули медленная сборка .
(Особенно запуск эмулятора выбешивает ( его нужно каждый раз запускать заново) )
Но за то "родной" Лазарус .
( В прочем дополнительная сложность сборки и запуска это общее явление для кросс-компиляции и в Лазарусе все еще вполне терпимо )

Добавлено спустя 19 минут 51 секунду:
Упс 17 гигабайт все целиком 5 гигабайт инсталляции laz4android 3 гига... :roll: Мда !
( laz4android еще потяну а прочие увы )
Да вот что я точно помню так это laz4android 2.2.2 у меня не работает так что поставил себе 2.0.12
(почти такой как в мануале )

Добавлено спустя 5 минут 54 секунды:
Пакую ...

Добавлено спустя 6 минут 4 секунды:
Мануал ...
Lazarus, Android и LAMW-мастер
Alex2013
долгожитель
 
Сообщения: 2900
Зарегистрирован: 03.04.2013 11:59:44

Re: Android-приложения в Lazarus

Сообщение Seenkao » 11.12.2023 22:52:05

wwswowsogon писал(а):Здесь даже пути не видны полностью, поэтому не совсем понятно, что делать.

в какой папке и на каком диске у тебя установлен Android NDK?

Я не помню, нужен ли для LAWM - laz4android. Возможно нужен, но устанавливается сразу вместе с LAWM. Читай здесь и по ссылке на GitHub там же переходи.
Seenkao
постоялец
 
Сообщения: 499
Зарегистрирован: 01.04.2020 03:37:12

Re: Android-приложения в Lazarus

Сообщение Alex2013 » 11.12.2023 22:54:56

Структура "студии" (Все в одном каталоге )
I:\LAMW
-----------------------------
android-ndk-r22b
android-sdk-windows
apache-ant-1.9.6
gradle-6.6.1
Java
lamw_manager
laz4android2.0.12
-----------------------------------
Примеры лежат в laz4android2.0.12\components\lazandroidmodulewizard-master\demos
(Часть примеров нужно "допиливать напильником" но часть работает сразу )
( Сначала нужно собрать а потом есть "спец кнопка" пересобирающая в apk и пускающая менеджер эмуляторов )
( Эмулятор нужно создать, запустить (не забыв загрузив ос в "рабочий режим" ) нажать ОК и apk установится и запустится )
( Если воткнуть в USB реальный гаджет и закрыть менеджер-эмуляторов не нажимая ок установится прямо на гаджет)

А вот и сам laz4android2.0.12.7zp 439 МБ

Удачи ! :idea:
Зы
Насколько я помню LAWM нужен для примеров.
Alex2013
долгожитель
 
Сообщения: 2900
Зарегистрирован: 03.04.2013 11:59:44

Re: Android-приложения в Lazarus

Сообщение Seenkao » 12.12.2023 08:28:22

Alex2013 писал(а):Насколько я помню LAWM нужен для примеров.

LAWM - это полноценный набор инструментов для Lazarus. Он позволяет как создавать проект под Android, так и использовать визуальные компоненты LAWM в проектах для Android.
Seenkao
постоялец
 
Сообщения: 499
Зарегистрирован: 01.04.2020 03:37:12

Re: Android-приложения в Lazarus

Сообщение wwswowsogon » 12.12.2023 22:53:15

Alex2013 писал(а):Да вот что я точно помню так это laz4android 2.2.2 у меня не работает


Возможно, в этом и проблема, я его и пытаюсь использовать.

Добавлено спустя 3 минуты 22 секунды:
Seenkao писал(а):
wwswowsogon писал(а):Здесь даже пути не видны полностью, поэтому не совсем понятно, что делать.

в какой папке и на каком диске у тебя установлен Android NDK?


На системном диске C: стоит обычный Lazarus 1.8.4. Там же стоит OpenJDK и AndroidSDK с AndroidStudio.
На диске E: стоит laz4android2.2.2, у него внутри, в корне, android-ndk-r26b, apache-ant-1.9.16-bin, gradle-7.6, в папке components папка с LAMW.
wwswowsogon
постоялец
 
Сообщения: 152
Зарегистрирован: 23.12.2008 20:41:37

Re: Android-приложения в Lazarus

Сообщение Seenkao » 13.12.2023 13:28:45

wwswowsogon писал(а):Здесь даже пути не видны полностью, поэтому не совсем понятно, что делать.

проверь пути в настройках проекта. Может показать.
Узнай какой Gradle нужно использовать, зачастую LAWM не умеет работать с последней версией Gradle и надо устанавливать не выше определённой версии.

Есть вариант, когда путь слишком длинный (но в данном случае маловероятно) и лучше NDK "выкинуть" наружу.
Seenkao
постоялец
 
Сообщения: 499
Зарегистрирован: 01.04.2020 03:37:12

Re: Android-приложения в Lazarus

Сообщение wwswowsogon » 13.12.2023 20:01:47

Seenkao писал(а):
wwswowsogon писал(а):Здесь даже пути не видны полностью, поэтому не совсем понятно, что делать.

проверь пути в настройках проекта. Может показать.


Бинго! Да, прописано два пути в параметрах проекта:

E:\laz4android2.2.2\android-ndk-r26b\toolchains\llvm\prebuilt\windows\sysroot\usr\lib\arm-linux-androideabi\22\;
E:\laz4android2.2.2\android-ndk-r26b\toolchains\arm-linux-androideabi-4.9\prebuilt\windows\lib\gcc\arm-linux-androideabi\4.9.x\

И они оба действительно не существуют.
Почему там прописано два пути? так должно быть?

Нашёл такой путь, по аналогии:

E:\laz4android2.2.2\android-ndk-r26b\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\lib\aarch64-linux-android\22;

Прописал, но ничего не поменялось.

Чего-то похожего на toolchains\arm-linux-androideabi не обнаружил в AndroidNDK.

Seenkao писал(а):
wwswowsogon писал(а):Здесь даже пути не видны полностью, поэтому не совсем понятно, что делать.

проверь пути в настройках проекта. Может показать.
Узнай какой Gradle нужно использовать, зачастую LAWM не умеет работать с последней версией Gradle и надо устанавливать не выше определённой версии.

Есть вариант, когда путь слишком длинный (но в данном случае маловероятно) и лучше NDK "выкинуть" наружу.


Seenkao писал(а):
wwswowsogon писал(а):Узнай какой Gradle нужно использовать, зачастую LAWM не умеет работать с последней версией Gradle и надо устанавливать не выше определённой версии.

Как это узнать? В описании LAMW сказано - Install * Gradle 6.6.1. Её поставить, что ли.
wwswowsogon
постоялец
 
Сообщения: 152
Зарегистрирован: 23.12.2008 20:41:37

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 6

Рейтинг@Mail.ru