Программирование для Андроид Документация: Введение Интерфейс Команды Классы Функции Cкачать: HDroidGUI 0.4 build 6 HDroidGUI на Github Поддержка: Форум на Github Примеры приложений: hdDemo-1.1.zip hdDemo 1.1 apk HdDemo на Github hdcalcul-1.5.zip hdCalcul 1.5 apk HdCalcul на Github hddbf-1.3.zip HdDbf на Github |
HDroidGUIКороткое введениеЭто фреймворк для Андроид, инструмент, предназначенный для того, чтобы писать на Harbour приложения для Андроид-устройств - точно так же, как HwGUI позволяет писать на Harbour GUI приложения для Windows и Linux. Я даже думал о нем сначала, как об HwGUI для Андроид, но по ходу решил, что лучше отказаться от мысли обеспечить совместимость на уровне prg с приложениями под другие ОС - слишком специфична и платформа, и интерфейс, и характер устройств, на которых используется Андроид. Взять хотя бы размер мобильных устройств, который, кстати, вряд ли будет существенно меняться по мере развития технического прогресса - добавят туда нормальную клавиатуру или увеличат вдвое экран - и устройство просто перестанет быть мобильным. Так вот, представьте, как на таком устройстве будет выглядеть привычное десктопное приложение с кучей виджетов... Понятно, что интерфейс приложения придется переписывать под стандарты мобильных устройств. А если так, то зачем держаться за полную совместимость с GUI - библиотеками для Windows и Linux ? Код приложений, использующих HDroidGUI, в той их части, которая отвечает за интерфейс, будет отличаться от кода HwGUI приложений, хотя я стараюсь использовать максимально похожий синтаксис. С чего начать ?Инструменты, которые вам надо скачать и установить перед тем, как начать пользоваться HDroidGUI, перечислены в разделе "Андроид". Скачиваем HDroidGUI отсюда или с репозитория на Github, распаковываем и смотрим, что там внутри. А внутри там:
|
Первым делом правим setenv.bat
( или setenv.sh
, если у вас - Линукс ),
прописывая там свои пути и запускаем buildall.bat
( или buildall.sh
) -
HDriudGUI должен быть скомпилирован - в противном случае будут выданы сообщения о проблемах.
Хочу обратить ваше внимание на входящую в дистрибутив динамическую библиотеку jni/libharbour.so
.
Я включил в нее практически все Харбор-модули кроме тех, что отвечают за консольный ввод/вывод и
нескольких кодовых страниц плюс Letodb RDD. Скрипты для построения библиотеки лежат в
репозитории на Github, вы
можете при желании включить туда что-нибудь еще и перестроить libharbour.so
. Вам
может это понадобиться и в случае, если вы захотите воспользоваться самой последней версией Харбор.
В результате компиляции у вас должны появиться следующие файлы:
- lib/armeabi/libh4droid.so, lib/armeabi/libharbour.so - динамические библиотеки "нативной" части фреймворка.
- lib/libh4droida.a - статическая библиотека "нативной" части фреймворка.
- libs/su/harbour/hDroidGUI/* - скомпилированные Java классы.
Теперь мы готовы к тому, чтобы создать свое первое приложение под Андроид на Харборе.
Для этого нам надо создать новый каталог с проектом, где будет все необходимое для последующей
сборки apk - и AndroidManifest.xml
, и Java-исходники, и
командные скрипты для сборки, и make-файлы для сборки динамических библиотек, входящих в состав
пакета - да, с Java и Андроид все не так просто, как с простым Harbour-приложением.
Но, к счастью :), у нас есть специальная утилита, входящая в состав HDroidGUI -
уже упоминавший здесь utils/newproject.prg
- вам надо откомпилировать его
с помощью Харбора или даже просто запустить с необходимыми параметрами с помощью hbrun.
Создаем свой проект для Андроид:
newproject [-hrb] [-path=PATHtoHDROIDGUI] [-pass=cPassword] cFullPackageName
Начнем разбор параметров с конца:
- cFullPackageName - полное имя нашего приложения.
- В Java для обеспечения уникальности имен классов и методов принято помещать
их в пакеты. Пакет - это такой контейнер, который используется для изоляции имен классов,
во избежание возможных конфликтов с другими классами с такими же именами. Имена пакетам
для обеспечения их уникальности принято присваивать в соответствии с именами ваших доменов
( доменов вашего сайта ), причем указываются они в обратном порядке. Так, если ваш сайт -
www.zzz.org, а приложение называется MyApp, то полное имя пакета рекомендуется указать
как org.zzz.MyApp. При этом Java - исходники должны быть размещены в каталоге
src/org/zzz/MyApp/
. Поэтому важно указать именно полное имя приложения. Если там не будет хотя бы одной точки,newproject
откажется создавать проект. - -pass=cPassword - пароль для подписи apk.
- Каждый apk должен быть подписан, поэтому надо указать
пароль для подписи -
newproject
включит ее в командный скрипт, который он создаст. Если вы не укажете пароль в командной строкеnewproject
, утилита попросит вас ввести его при старте. - [-path=PATHtoHDROIDGUI] - полный путь к HDroidGUI.
- Для компиляции вашего приложения и создания apk необходим HDroidGUI,
поэтому надо указать
newproject
, где он находится, чтобы включить этот путь в создаваемый командный скрипт (setenv.bat
,setenv.sh
). Если вы не укажете его в командной строкеnewproject
, утилита попросит вас ввести его при старте. - [-hrb] - тип проекта.
- HDroidGUI позволяет создать проект двух типов:
- prg-файл компилируется в hrb.
- prg-файлы компилируются обычным образом - в объектные файлы и собираются в бинарник.
В первом случае скомпилированный hrb копируется в каталог
asset/
apk - пакета, а при старте программы копируется изasset/
в домашний каталог приложения на Андроид-устройстве и запускается - точно так, как это сделано в h4aFirstApp - моей первой попытке создать Харбор-приложение для Андроид. Особых преимуществ этого типа проекта я не вижу, разве что он быстрее и проще собирается и, возможно, может быть удобнее для маленьких приложений. Чтобы задать такой тип проекта, укажите в командной строке параметр-hrb
.Второй вариант - вариант по умолчанию. Весь ваш Харбор-код собирается в бинарный модуль - динамическую библиотеку
libh4droid.so
, включаемую в состав apk. Если вам, как и мне, нравится использовать hrb-файлы, вы можете это делать и при этом варианте - никто не мешает вам создавать hrb во время исполнения программы, или скачивать заранее подготовленнные из вашего веб-хранилища.
Итак, запустив newproject org.zzz.MyApp
и указав по ходу исполнения
утилиты путь к HDroidGUI и пароль для подписи пакета, мы получим каталог MyApp
с таким содержимым:
- build.bat (build.sh) - командный скрипт для компиляции и сборки готового пакета.
- clear.bat (clear.sh) - командный скрипт для удаления результатов компиляции.
- run.bat (run.sh) - командный скрипт для запуска готового приложения на запущенном эмуляторе.
- setenv.bat (setenv.sh) - командный скрипт, устанавливающий переменные окружения для компиляции и сборки.
- AndroidManifest.xml - файл с информацией о проекте, необходимый для сборки.
- jni/Android.mk, jni/Application.mk - make-файлы для сборки динамических библиотек из нашего prg-кода и статической библиотеки от HDroidGUI.
- src/main.prg - заготовка для главного исходного файла вашего проекта.
- src/org/zzz/MyApp/* - Java-исходники вашего проекта.
- res/ - стандартный каталог для ресурсов Андроид.
- bin/ каталог, куда будет помещен построенный apk.
- lib/, libs/, obj/ - каталоги для хранения объектников и библиотек в процессе компиляции.
Теперь можно начинать писать программу. Главный исходный файл может носить любое название,
не обязятельно main.prg
- но если вы его измените, не забудьте отредактировать
build.bat(build.sh)
- то же самое в случае, если вы добавите новые файлы
в свой проект.
Еще надо бы изучить команды и классы HDroidGUI. Пока описание не готово, смотрите текст примера HdCalcul и prg - исходников HDroidGUI.
Tweet
Ваше имя:
Адрес электронной почты:
(не предназначено к показу)
  |