Пишем на Харбор для Андроид
Здесь представлено одно небольшое простое приложение для Андроид, которое, тем не менее, может оказаться полезным:Загрузить h4aFirstApp_v6.zip - исходники.
Загрузить h4aFirstApp.apk - пакет, готовый к установке на Андроид-устройство.
Это демонстрационная программа, но вы можете создать на ее основе что-то полезное для себя. Для этого надо переписать под свои нужды \h4aFirstApp\source\testhrb.prg - исходный файл на Harbour и пересобрать пакет h4aFirstApp.apk с помощью \h4aFirstApp\build.bat (Windows) или \h4aFirstApp\build.sh (Linux).
Но предварительно придется скачать и установить Java Development Kit - JDK ( не путать с JRE - Java Runtime ) и Android SDK Tools. При желании можно установить полное Android Studio, но в этом нет необходимости. После установки Android SDK Tools надо запустить SDK Manager и доустановить некоторые компоненты.
После этого потребуется поправить \h4aFirstApp\h4a\setenv.bat - прописать там ваши пути к установленным продуктам.
Testhrb.prg должен содержать, как минимум, 2 функции:
- FModList() - возвращает строку, которая отображается на главном экране программы как меню. Элементы меню должны быть обрамлены с двух сторон символами **
- FModExec( iMod ) - Реализует пункты меню, должна возвратить строку, которая отобразится на экране приложения.
- h4a_HomeDir() - возвращает домашний каталог приложения
- h4a_CalcExp( cExp ) - возвращает результат вычисления cExp, которое может содержать любые разрешенные в Harbour функции и операторы.
- h4a_LS( cDir ) - возвращает строку - список файлов, находящихся в cDir
- h4a_isInternetOn() - проверяет, есть ли подключение к Интернет
- h4a_wrlog( cString ) - запись в журнал ( ее можно потом выловить, если программа запущена на эмуляторе )
- h4a_webload( cHtmlPage ) - загружает новый контент в уже созданный WebView
- h4a_getsysdir( cType ) - возвращает доступный общий каталог заданного типа ( "ext" - базовый каталог External Storage, "doc" - Documents, "pic" - Pictures, "mus" - Music, "mov" - Movies, "down" - Downloads, "ring" - Ringtones )
Даже такая простая структура может реализовать полезные функции - например,
набор оперативных отчетов о текущем состоянии дел ( данные по отгрузке продукции,
полученные на расчетные счета суммы, какая-то информация по остаткам на складах и пр. )
Одним из пунктов меню можно сделать обновление программы - и копировать новый
testhrb.hrb с сервера для последующего использования вместо того, что в apk
- это, кстати, реализовано здесь с версии 2, именно так работает пункт меню
Update program . Начиная с версии 5 стало возможным обращаться к Harbour-коду
из Javascript, что позволяет реализовывать интерфейс программы на базе веб-интерфейса
и связки Javascript + Harbour.
- Версия 6: Добавлены функции h4a_webload( cHtmlPage ) и h4a_getsysdir( cType ).
- Версия 5: Теперь программа нормально отрабатывает при смене ориентации устройства. Добавлено простейшее меню. Добавлена возможность вызова Harbour - кода из Javascript из окна Webview.
- Версия 4: Осваиваем технику вызова Java методов из Harbour и методы отладки - добавлены Harbour-функции h4a_isInternetOn() для определения, есть ли подключение к Интернет и h4a_Wrlog( sText ) - запись отладочных сообщений в журнал для последующего сохранения в файл с помощью adb shell logcat. Немного подправлены скрипты.
- Версия 3a: Добавлены скрипты построения пакета под Linux, чуть исправлены скрипты под Windows.
- Версия 3: Теперь, если возвращаемая FModExec() строка начинается с <html, она отображается не в простом TextView, а в WebView, т.е. стала доступна любая html разметка, включая применение css и javascript. В титульной строке открываемого модуля отображается текст соответствующего пункта меню. Стандартная иконка заменена на логотип Harbour.
- Версия 2: Добавлена дополнительная поддержка для обновлений hrb. В текст testhrb.prg включен модуль обновления, он настроен на получения новых hrb с этого сайта. Кроме того, решена проблема, связанная с тем, что, как оказалось, Андроид не завершает приложение после закрытия (уничтожения) главного окна.
И еще пара ссылок. Это проекты на Github: h4aFirstApp и набор скриптов для создания libharbour.so под Android.
Tweet
Ваше имя:
Адрес электронной почты:
(не предназначено к показу)
  |