На днях cделал прототип сборщика простых приложений Android, написанных на Oberon. Работает он только под Ubuntu 18.04, так как в этой версии есть возможность установки Android SDK из стандартного репозитория, что позволяет легко ссылаться на нужные файлы без дополнительных действий.
Получить исполняемый файл сборщика можно из каталога транслятора командой:
$ result/ost to-bin AndroidBuild.Go result/osa -infr . -m source
При вызове
$ result/osa install-toolsсборщик выдаст команду, которую нужно выполнить для установки утилит, достаточных для сборки Android приложений с помощью него.
Apk файл для Android 2.3 можно собрать командой build:
$ result/osa build ColorCells.Go result/cells.apk -infr . -m example/android
Можно и сразу запустить приложение на телефоне:
$ result/osa run ColorCells.Go -infr . -m example/androidДанный пример создаёт такую картинку:

Второй пример создаёт приложение, рисующее звезду, количество лучей которой настраивается при сборке:
$ result/osa run 'Star.Go(5, 0.38)' -infr . -m example/android

Обёртки API Андроид, предоставляющие в Обероне доступ к возможностям мобильной ОС существенно неполны, по сути, являясь минимальными обвязками для указанных выше примеров.
К звёздам!
$ result/osa run Rocket.Fly -infr . -m example/android
Обновление - cборка на самом Android.
Ништяк. Радуешь, Комдив!)) Так держать)))
ОтветитьУдалить"Дорогие друзья,напишите по-русски,что качать,куда устанавливать,а то я не совсем программист,точнее совсем не программист..."
ОтветитьУдалитьСостояние проекта такое, что рассчитано, всё-таки, на программистов, например, сборка для Android - это хотя и вполне рабочий, но концепт.
Исходный код транслятора вместе с описанными в заметке примерами доступен на github - https://github.com/Vostok-space/vostok/blob/master/README-RU.md
Проще всего получить работоспособную среду можно воспользовавшись репозиторием для Ubuntu/Mint/Debian - https://wiki.oberon.org/repo . Тогда установить сборщик Android приложений можно будет командой /usr/bin/sudo apt install osa
Пообщаться можно в https://chat.oberon.org/channel/vostok https://forum.oberoncore.ru/viewtopic.php?f=115&t=6217 https://t.me/oberon_vostok
А возможно ли с помощью данного сборщика получить java-class-ы, чтобы собрать Java midlet?
ОтветитьУдалитьС целью чтобы потом упаковать этот midlet в apk для Андроида.
Вот статья об этом.
Вот по этой ссылке:
https://microemu.blogspot.com/2009/08/converting-javame-applications-to.html?m=1
Получить .class-ы, чтобы собрать из них другими средствами Java Midlet можно, но делать это для того, чтобы потом всё равно преобразовать его в apk, немного бессмысленно, потому что легче делать apk напрямую. Чем интересен более длинный путь через Java Midlet?
УдалитьНасколько я понимаю в Java midlet-ах можно использовать готовые графические модули для Андроида и некоторые элементы управления.
УдалитьВ этом случае можно попробовать создавать программы на Component Pascal, у которых GUI интерфейс будет более разнообразным.
И будет приближаться к стандартному GUI обычного приложения Андроид - с кнопками, меню и т.д.
Без ручной отрисовки каждого элемента.
Для теста, например, можно взять пример калькулятора из BlackBox.
Потому что там есть кнопки, обработка событий нажатия на них и дисплей для ввода-вывода результатов работы алгоритмов.
Как в стандартном шаблоне для apk приложения в Android Studio.
Конечно в идеале было бы вообще отлично подтянуть через расширение палитру компонентов из Android Studio. Чтобы создавать из GUI интерфейс. С обработкой событий на языке Component Pascal. И дальнейшей сборкой Apk. Как например сделано в расширении для Lazarus IDE. Называется оно LAMW. Вот ссылка https://github.com/jmpessoa/lazandroidmodulewizard?ysclid=mdlzu0xsph84853943
УдалитьТак ведь готовые графические модули для Android можно использовать напрямую в apk, не прибегая к сборке через Java MIDlet. MicroEmulator нужен исключительно для портирования уже написанных MIDlet'ов, а не для создания кода с начала.
УдалитьНо пока, для начала, я думаю хватит и графических возможностей Java midlet-а.
ОтветитьУдалитьХотя бы не будет ручной отрисовки компонентов библиотеки GTK.
На которой базируется пример калькулятора из BlackBox-а.
И, как мне кажется, данный путь хоть и более длинный, но при этом более понятный и быстрый. Потому что возможностей транслятора на этот путь вроде уже хватает. Если транслятор сможет выразить графику GTK в Java class-ы. Хотя могу ошибаться. Надеюсь получить Ваш ответ по данной теме.
Статью про MicroEmulator привел только как подтверждение о том, что можно преобразовать Java midlet в Apk приложение Андроид. И в качестве возможного пути такого преобразования. Не единственного, конечно. Есть и другие.
УдалитьДа, согласен с тем, что готовые графические модули для Android можно использовать напрямую в apk. Но вручную это делать не удобно. Без визуального контроля. Поэтому в идеале конечно было здорово как то эти модули визуализировать.
УдалитьПоэтому если идти от BlackBox-а, то в нем уже видно визуально все составляющие калькулятора. Но они основаны на библиотеке GTK, которую напрямую не поддерживает Android.
УдалитьПоэтому я и решил, что быстрее и понятнее было бы выразить для начала на Java все графические компоненты, которые уже есть в BlackBox-е и которыми в нем же можно манипулировать - составлять наглядный GUI интерфейс нового приложения для Андроид.
0. Пример калькулятора в BlackBox завязан исключительно на каркас BlackBox и не привязан к GTK. В Windows используется WinAPI, а пример калькулятора не требует даже перекомпиляции при работе BlackBox поверх разных API.
Удалить1. Путь через JavaME более длинный в том же смысле, что и менее понятный и быстрый.
2. Транслятор Восток не связан с BlackBox и имеет минимум общего API. Даже входной язык — не Компонентный Паскаль, а обычный Оберон. И для Android нет большого смысла в повторении каркаса BlackBox
Все ясно. Благодарю. Я все понял.
Удалить