1 1 1 1 1 1 1 1 1 1 Рейтинг 0.00 (0 Голоса(ов)

Пишем первую программу под Андроид на Delphi XE5

Говорю сразу: я никогда ранее не писал под Android, либо iPhone. Также не пользовался версией XE5 Delphi. Поэтому я не могу идти "уверенно поступью" к созданию этой самой "первой программы под Android" хотя бы потому, что она и для меня самого первая. Как результат, все мои "косяки" и метания будут видны читателю. Впрочем, мне скрывать нечего, и строить из себя "крутого" я тоже не планирую.

Наверное, правильнее было бы назвать эту статью "Первые впечатления от Delphi XE5", или "Знакомство с Delphi XE5". Но я планирую написать что-то типа стандартного приветственного "хелоуворда", потому, наверное, выбрал именно такое название. Забегая вперед скажу, что мне доступны не все компоненты. С чем это связано, пока не знаю... Может быть потому, что они не применимы для мобильной программы, а может из-за того, что требуется полноценная лицензия.

Почему не Delphi XE 10.2? Да, в Tokyo добавлена возможность написания программ для Линукс, но с этим я, вроде, справляюсь с помощью Lazarus. А тут что было под рукой... Надо будет, и до 10.2 доберусь...

Итак, запускаем Delphi XE5. Говорим "Создать новый проект". Вот что нам предлагается создать (из именно мобильным приложений"):

FireMonkey Mobile Form

Blank Application

3D Application

Я решил выбрать для начала "Blank Application".

Перед нами появляется такой вот "виртуальный смартфончик". По умолчанию стоит Google Nexus 4. Причем можно выбрать тип. Единственный нехороший вопрос, который у меня сразу закрался в голову: а что, разрабатывать приложения, которые не будут зависеть от размера экрана нельзя? Думаю, что можно, будем разбираться.

Виртуальный смартфон в Delphi XE5

Вот какие еще виды смартфона можно выбрать

Первое, что мне захотелось сделать, глядя на это все - понажимать на кнопочки слева от списка выбора. Что я с радостью и сделал. Самая левая кнопка вращает виртуальный смартфон с шагом в 90 градусов.

Custom Device - поворот 0 градусов

Custom Device - поворот 90 градусов

Custom Device - поворот 180 градусов

Custom Device - поворот 270 градусов

Вторая слева кнопочка отключает "виртуальные элементы управления", оставляя только рамку экрана.

Отключили элементы управления у виртуального смартфона

Вторым моим желанием стало посмотреть, какие же инструменты для разработки мобильных приложений нам предлагаются. Повторюсь: инструментарий огромен, но некоторые пункты у меня недоступны. Вероятно из-за того, что они не подходят для именно мобильного программирования.

Для тех, кому не понятен мой "щенячий восторг", скажу: я сравниваюсь с Delphi 2007, думаю, это многое объясняет. Для тех же, кому мой восторг понятен и кому тоже хочется его испытать, я выложил под спойлер много картинок с палитрой инструментов.

Палитра инструментов Delphi XE5

Свернуть

Tool Pallete - Additional Tool Pallete - Data Access Tool Pallete - Datasnap Client
Tool Pallete - Datasnap Server Tool Pallete - dbExpress Tool Pallete - Dialogs
Tool Pallete - Standard Tool Pallete - System Tool Pallete - Live Bindings
Tool Pallete - LiveBindings Misc Tool Pallete - FireDAC Tool Pallete - FireDAC UI
Tool Pallete - FireDAC Links Tool Pallete - FireDAC Services Tool Pallete - Internet
Tool Pallete - Grids Tool Pallete - Common Controls Tool Pallete - Animations
Tool Pallete - Colors Tool Pallete - EffectsTool Pallete - Effects Tool Pallete - Viewports
Tool Pallete - Gestures Tool Pallete - Shapes Tool Pallete - 3D Scene
Tool Pallete - 3D Shapes Tool Pallete - 3D Layers Tool Pallete - Materials
Tool Pallete - Layouts Tool Pallete - Services Tool Pallete - Sensors
Tool Pallete - TeeChart Lite Tool Pallete - Indy ClientsTool Pallete - Indy Clients Tool Pallete - Indy ServersTool Pallete - Indy Servers
Tool Pallete - Indy I/O Handlers Tool Pallete - Indy Intercents Tool Pallete - Indy Misc
Tool Pallete - WebServices Tool Pallete - REST Client Tool Pallete - Metropolis UI
Tool Pallete - Indy SASL Tool Pallete - IntraWeb Standard Tool Pallete - IntraWeb Control
Tool Pallete - IntraWeb Authentication Tool Pallete - InterBase Tool Pallete - dbGo
  Tool Pallete - Cloud  

Накидал на форму компонентов, большинство из них "лишь бы были"...

Компоненты на форме

Набросал примитивной код:

Код Delphi:
procedure TForm1.Button1Click(Sender: TObject); begin ProgressBar1.Value:=ProgressBar1.Value+1;  Label1.Text:='Привет мир!!'; end;

По привычке попытался запустить на исполнение и получил ошибки:

Код :
[PAClient Error] Error: E2312 Unable to execute '"D:\Program Files\Embarcadero\RAD Studio\12.0\PlatformSDKs\adt-bundle-windows-x86-20130522\sdk\build-tools\android-4.2.2\Aapt.exe" package -f -M "D:\Delphi\Delphi XE5\HelloWord\Android\Debug\HelloWord\AndroidManifest.xml" -F "D:\Delphi\Delphi XE5\HelloWord\Android\Debug\HelloWord\bin\HelloWord-unsigned.apk" -I "D:\Program Files\Embarcadero\RAD Studio\12.0\PlatformSDKs\adt-bundle-windows-x86-20130522\sdk\platforms\android-17\android.jar" -S "D:\Delphi\Delphi XE5\HelloWord\Android\Debug\HelloWord\res" -A "D:\Delphi\Delphi XE5\HelloWord\Android\Debug\HelloWord\assets" "D:\Delphi\Delphi XE5\HelloWord\Android\Debug\HelloWord\library" "D:\Delphi\Delphi XE5\HelloWord\Android\Debug\HelloWord\classes"' (Error 1)   [PAClient Error] Error: E2312 ERROR: resource directory 'D:\Delphi\Delphi XE5\HelloWord\Android\Debug\HelloWord\res' does not exist

Однако, собрать код удается вполне успешно... 

Код успешно собрался

После чего в папке проекта появился манифест "\Android\Debug\AndroidManifest.xml" (а может он и раньше был, не обратил внимания), объектный файл "\Android\Debug\HelloWord.o", библиотека "\Android\Debug\libHelloWord.so" и еще пару файлов, включая объектник главной формы размером аж в 4 мегабайта. Все замечательно... Но для моих целей бесполезно...

Пришлось спрашивать у Гугла (хотя хотелось бы разобраться самому, но не судьба). По нескольким ссылкам я прочитал, что Delphi XE5 сам генерирует apk-файл. И находится он по пути \папка проекта\Android\Release\имя проекта\bin\Имя проекта.apk. Наверное, там он и находится... У кого-нибудь. У меня папка bin просто пустая. Как в Release, так и в Debug сборке.

Значит, придется лезть в свойства проекта.

Сразу говорю, изучал свойства я относительно долго, но никакой пользы для себя (в данном случае) не нашел... Кому интересно, я спрятал их под спойлер (сначала я старался раскрывать все максимально подробно, но потом понял, что это пустая трата времени и трафика от картинок и бросил).

Свойства проекта Delphi XE5

Свернуть

  opt02 
 opt02a  opt03
 opt03a  opt03b
opt04 opt05
opt06 opt07
opt08 opt09
opt09a opt09b
opt10 opt11
opt11a opt12
opt13 opt14
opt15 opt16
opt17 opt18
opt18a opt19

Не буду растекаться мыслью по древу... Меня "осенило", что "может что-то в консерватории Android SDK надо менять?". Тем более, что я к тому времени уже успел понять, что для отладки программы нужно подключить Android-устройство к компьютеру (разрешив на нем отладку по USB). Но мой телефон тоже упорно отказывался видиться средой. Я поставил все недостающие драйвера, но и это не помогало...

Поиск в настройках Android SDK также не воодушевил.

 Идем в настройки Android SDK  Идем в настройки Android SDK

 Настройки Android SDK

И снова я пошел просить помощи у Гугля...

Как выяснилось, я был отчасти прав, подумав на Android SDK. Только идти надо было совершенно по другому пути...

Итак, идем [диск на котором стоит Delphi XE5]:\Program Files\Embarcadero\RAD Studio\12.0\PlatformSDKs\adt-bundle-windows-x86-20130522\sdk\tools и находим файл android.bat

Файл android.bat

Запускаем его...

 Установленные по умолчанию пакеты Android SKD

Пользуюсь рекомендацией по умолчанию (от себя добавил только Android SDK Build-tools версии 19.1). Менеджер довольно быстро скачивает все это из репозитория и устанавливает.

Пакеты установлены, рекомендуется перезапустить менеджер Android SDK

Как мы видим, нам рекомендуется перезапустить менеджер. Что я и делаю. И не зря... Список того, что можно обновить, либо добавить, значительно вырос. Я снова прошу скачать мне дополнительно последнюю версию Android SDK Build-tools и API к Android 6.0.

Второй этап обновления

Второй этап обновления

... а главное, что появляется - Google USB Driver!!

Второй этап обновления. Мне предлагают установить Google USB Driver

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

— И они посидели ещё немного. А потом еще немного... и ещё немного... пока, увы, совсем ничего не осталось!

В итоге я таки достиг некоего равновесия...

Снова подключаю телефон через USB... Никаких изменений... Перевожу его (телефон) из режима "Зарядка" в режим "Передача файлов". Компьютер вдруг начинает хотеть поставить ADB-драйвера (хотя я сам их ставил буквально полчаса назад и телефон виделся в диспетчере устройств)... После этого и на самом телефоне вылезает запрос, мол, а стоит ли разрешить отладку через USB на данном компьютере. Я, естественно, разрешаю. После чего аппарат становится виден в Delphi (нужно нажать на Target правой кнопкой мыши и сделать Refresh).

Delphi XE5 "увидел" мой телефон

Уже хорошо... Тем не менее, отлаживать программу на телефоне Delphi все еще отказывается. Выдает ошибки.

Продолжение следует...

Оставьте свой комментарий

Оставить комментарий как гость

0
  • Комментариев нет
BuyInCoins WW