Как написать приложение для android на delphi

Продолжаем нашу серию статей по Delphi. В предыдущем материале мы скачали и установили бесплатную версию Delphi и запустили простейшую программу под Windows, сегодня наша цель: разработать первое приложение на платформе Android и запустить его на своём телефоне.

Содержание

  • 1. Подготовка среды разработки Delphi для создания Android-приложений
  • 2. Подготовка проекта Android-приложения
  • 3. Настройка телефона для разработки Android
  • 4. Запуск приложения на Android
  • 5. Ввод данных в Android-приложении
  • 6. Нажатие кнопки

1. Подготовка среды разработки Delphi для создания Android-приложений

Установим все необходимые инструменты для разработки. Нажмите в главном меню Tools — Manage Platforms

Настройка Delphi для разработки Android

Выберите вкладку Additional Options и там отметьте галочками Java Development Kit 1.8 и Android SDK 25.2.5 — NDK r17b. Нажмите Apply — это запустит процесс скачивания и установки компонентов.

Установка JDK, SDK и NDK для Delphi

Процесс довольно длительный, может потребоваться перезапуск среды разработки. Старайтесь не нагружать компьютер другими операциями. После успешного завершения вы увидеть надпись Operation Completed.

Android SDK, NDK и JDK установились успешноНажмите Start working — среда разработки готова к созданию Android-приложений.

ЗАМЕЧАНИЕ. Я протестировал разные варианты установки компонентов Android на нескольких компьютерах и операционных системах. В том числе: когда SDK уже установлено (с Android Studio), когда компоненты ставились вручную с серверов Google, когда использовалась виртуальная машина AdoptOpenJDK. Если вы хотите пойти таким же сложным путём (ручная установка), вот некоторые параметры работающих версий: AdoptOpenJDK (Windows 64-bit OpenJDK 8 (LTS) with HotSpot JVM), Android SDK (sdkmanager «build-tools;29.0.0» «extras;google;usb_driver» «platforms;android-26» «tools» «platform-tools» ), Android NDK r17b.

Если автоматическая установка не сработает, пишите вопросы в комментариях — я постараюсь ответить и дополнить статью.

2. Подготовка проекта Android-приложения

Нажимаем на главном экране (Welcome Page) Create a new Multi-Device Application — Delphi.Создаем проект на Delphi для Android приложения

Выбираем Header/Footer (шаблон приложения с шапкой и подвалом) и жмём ОК.

Выбираем шаблон проекта для Android-приложения на Delphi

Создаем папку проекта, я рекомендую поместить её в каталог C:work и назвать HelloAndroidСоздаем папку проекта для Android-приложения на Delphi

Внесем небольшие изменения в наше приложение. В шапке формы напишем Привет Android. Для этого нажмём на метку HeaderLabel на форме и слева внизу найдём параметр Text.

Изменим его значение на  Привет Android — и увидим, что изменился текст на форме.

Изменение шапки приложения Android

Запустите эту программу под Windows (нажмите F9) — вы увидите обычную форму. Программа работает.

Переключим целевую платформу для компиляции приложения на Android в правом верхнем углу экрана (дважды щёлкните названии платформы).

Переключим компилятор на работу с Android

Без телефона запустить приложение не получится. Давайте его настроим.

3. Настройка телефона для разработки Android

К сожалению, каждый телефон настраивается по-своему. Я расскажу общую схему на примере моего Xiaomi Redmi Note 4.

Для начала нужно включить режим разработчика. Необходимо зайти в Настройки — О телефоне и семь раз тапнуть пункт — версия MIUI (для телефонов Huawei, например, нужно сделать следующее: окне «О телефоне» необходимо не менее 7 раз нажать по строчке «Номер сборки»).

После этой процедуры зайдите в пункт меню Расширенные настройки, там нажмите Для разработчиков.

Включение режима для разработчиков

В меню разработчиков нужно включить кнопку Отладка по USB и затем Установка через USB. (Нюанс: для Redmi Note 4 в этот момент должна быть вставлена SIM-карта. После включения этих опций симку можно вынуть).

Включение отладки и установки через USB

На других телефона процедура выглядит примерно также. Для вашей модели телефона инструкцию включения режим разработчика ищите в Google по запросу: «как включить режим разработчика для *название телефона*» или «как включить отладку по USB для *название телефона*».

После включения этих опций берёте хороший USB-кабель (например, которым заряжаете ваш телефон) и подключаете к компьютеру. На Windows 10 драйвера не потребовались, телефоны Android система определяла сама. Для Windows 8 потребовалось скачать ADB-драйвера для конкретной модели телефона. Они также гуглятся. Скачать подошедший мне adb-драйвер можно с нашего сайта.

При подключении устройства телефон может попросить разрешить отладку через USB для конкретного компьютера. Ставим галку и соглашаемся, нажав ОК. Если не успели, вытаскиваем кабель и вставляем снова.

Разрешить отладку через USB при подключении устройства AndroidНо может и не попросить, зависит от модели. Теперь важно, чтобы телефон увидела Delphi.
Скорее всего, после успешного подключения среда разработки подхватит устройство автоматически. Если этого не произойдёт, попробуйте нажать кнопку Refresh devices (обновление устройств). Справа от надписи Android вы увидите название вашего смартфона.

Подключение смартфона Android к Delphi

Всё готово к запуску приложения.

4. Запуск приложения на Android

Нажмите F9 (зелёный треугольник в панели управления) для запуска приложения.

Пока программа будет компилироваться, внимательно следите за вашим устройством Android. После создания файла apk (установочного файла Android-приложения) на компьютере он будет передан на ваш смартфон. Например, мой Xiaomi Redmi Note 4 даёт только 10 секунд на подтверждение установки. Если вы не уложитесь в это время (не успеете нажать Установить), установка будет отклонена и её нужно будет запускать заново, нажав F9 в Delphi.

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

Разрешить установку приложения Android

Подождите ещё немного — и приложение запустится! Ура!

Скриншот работающего приложения Delphi AndroidЗначок приложения появится также на рабочем столе вашего смартфона — вы можете запустить его снова или удалить. Для продолжения работы удалять его не нужно, при запуске новых версий из среды разработки Delphi будет заменять его на более свежую версию.

НЮАНС. Если один раз приложение установилось, а потом появляется ошибка, попробуйте удалить его с устройства. Это может быть связано с изменениями настроек телефона, подключением телефона к другому компьютеру и т.д.

Приложение на экране смартфонаПока приложение совсем простое. Усовершенствуем его — добавим ввод данных.

5. Ввод данных в Android-приложении

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

Добавление текстового поля

Под ним добавьте компонент кнопки TButton, как в предыдущем уроке. На самой кнопке напишите слово Приветствие, использовав его поле Text в инспекторе объектов. Ваш экран будет выглядеть примерно так: Программа с кнопкой и полем ввода

И для текстового поля, и для кнопки измените в инспекторе объектов следующие свойства:

  • Align = Top
  • Height = 44

Элементы прижмутся к верхней части формы и станут в 2 раза выше, это сделает работу с программой удобнее (особенно на Android). Выглядеть в среде разработки это будет вот так:

6. Нажатие кнопки

Теперь напишем обработчик события — нажатия кнопки. Для этого дважды щёлкните на кнопке с надписью Приветствие — откроется редактор кода. Впишите (или скопируйте с этой страницы) туда следующий текст:

ShowMessage(‘Привет тебе, ‘ + Edit1.Text);

В этой строке с помощью функции ShowMessage мы показываем простое диалоговое окно, которое содержит текст «Привет тебе, » и содержимое текстового поля Edit1.

Экран должен выглядеть так:

Код на экране Delphi

Кстати, чтобы обратно переключиться на режим редактирования формы (окна приложения), нажмите Design в правом нижнем углу текстового редактора.

Переключите целевую платформу разработки на Windows и запустите приложение (F9)

Переключить платформу разработки на Windows

Я рекомендую отрабатывать алгоритм приложения и тестировать его под Windows, чтобы ускорить процесс разработки. Компиляция и запуск происходит в этом случае намного быстрее. После того, как вы получите работающую версию, переключайтесь обратно на Android и запускайте приложение снова.

Посмотрим, как программа работает под Windows. Введите текст и нажмите Приветствие.

Запуск программы под Windows в DelphiОтлично! Теперь переключитесь обратно на Android и запускайте вашу программу на устройстве. Там тоже всё работает:

Пример программы для Android, написанной на DelphiПоздравляем! Ваше приложение заработало на смартфоне! (Если не заработало, пишите вопросы в комментариях).

Домашнее задание: поменяйте надпись на метке Привет Android на Введите своё имя  и измените цвет метки (свойство TextSettings — Font — Style — fsBold = True).

уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.

До официального релиза RAD Studio XE5 остается совсем немного времени и, скорее всего, уже в сентябре каждый желающий сможет оценить новые возможности по разработке приложений под Android с использованием Delphi. Пока же каждый желающий может поучаствовать в бета-тестировании или ознакомиться с возможностями новой версии RAD Studio, перейдя по этой ссылке. Как и в случае с Delphi XE4, перед официальным релизом Embarcadero решала дать возможность MVP немного приоткрыть завесу тайны относительно того, что же нас ждет в новой версии RAD Studio. 20 августа 2013 года было дано официальное разрешение на ограниченную публикацию материалов относительно RAD Studio XE5 в блогах, опубликованных на этой странице сайта Embarcadero. Это означает, что до официального релиза я ни слова не скажу о том насколько быстро/медленно, качественно/не качественно работают приложения под Android (даже в комментариях не отвечу), разработанные в Delphi XE5. Более того я ни слова не скажу о каких-либо ошибках, если таковые встретятся на моем пути исследования новой версии Delphi (правила участия в бета-тестировании никто не отменял). Но зато я могу без проблем показывать и рассказывать о новых возможностях/настройках среды, скриншотить приложения, показывать процесс сборки приложений и т.д. И в этой статье я рассмотрю, пусть и кратко, но весь процесс разработки приложения для Android — от выбора шаблона приложения и настройки Android-устройства до загрузки готового приложения на устройство.

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

Для начала, пройдем по порядку все шаги для создания простенького Android-приложения в Delphi XE5, попутно заскриншотив все, что можно.

«Hello, Android»

В главном меню нам теперь предлагается создать 5 различных типов приложений, в том числе и «FireMonkey Mobile Application«:

main_menu Как и в случае с iOS, запрос на создание мобильного приложения запускает небольшой симпатичный мастер создания заготовки нового приложения:

master

Для начала посмотрим как вообще собираются приложения под Android, не вникая особенно в саму суть программирования под эту ОС, поэтому я выбрал самый первый и самый простой шаблон под названием «Blank Application». После нажатия кнопки «Ок» Delphi создает нам новый проект мобильного приложения и уже в окне дизайнера мы можем выбрать необходимый размер окна приложения. И, если с iOS все было относительно просто — мы могли выбрать, по-моему, три типа устройств: iPhone, iPhone 5 и iPad, то теперь список устройств стал намного больше и выглядит вот так:

SkinsДля примера, возьмем в качестве «шкуры» Google Nexus 4:

IDE

Теперь напишем свой вариант самой популярной в мире программы «Hello, world». Кидаем на главную форму кнопочку, устанавливаем её свойство Align в значение alCenter и пишем обработчик OnClick:

procedure TForm13.Button1Click(Sender: TObject);
begin
 ShowMessage('Hello, Android');
end;

Теперь мы подошли к самому главному моменту в сегодняшней статье — сборке и запуску Android-приложения.

Как известно, не так-то просто и легко в iPhone закинуть свое приложение — надо покупать какие-то лицензии разработчика, потом что-то настраивать и т.д. и т.п. С Android в этом плане все намного проще — могу залить в свой девайс все, что посчитаю нужным, не спрашивая при этом ни у кого разрешения и, тем более, не платя при этом не копейки. Правда для этого надо немного настроить свой девайс, чем мы собственно сейчас и займемся.

Сразу скажу, что все скриншоты, которые будут представлены ниже, сделаны на трех устройствах:

  • HTC One с Android 4.2.2 и HTC Sense 5.0
  • HTC Desire S c Android 2.3.5 и HTC Sense 3.0
  • Планшет Prestigio c Android 4.0.4

и на вашем устройстве настройки могут выглядеть немного по другому.

Первым делом, после подключения аппарата через USB-кабель к компьютеру, необходимо включить опцию «Отладка по USB»

Опция «Отладка по USB» в HTC One (Android 4.2.2) 

Для HTC One включение этой опции немного смахивает на квест. Для того, чтобы попасть в настройки для разработчиков необходимо выполнить следующие действия:

Заходим в «Настройки»

Screenshot_2013-08-22-01-32-51

Перейти в раздел «О телефоне» -> «Версия ПО» -> «Дополнительно»

Несколько раз быстро нажать на строку «Номер сборки»

Secret

Вернуться в «Настройки» — там появится новый раздел «Для разработчиков»

developers

Заходим в этот раздел и включаем искомую опцию — «Отладка по USB«. Здесь же, кстати, можно настроить и другие настройки для разработчиков, но об этом, если возникнет необходимость, я расскажу потом.

Опция «Отладка по USB» в HTC Desire S (Android 2.3.5)

Здесь включение настройки происходит проще. Заходим в «Настройки»—>»Приложения»:

desire_s_1

Заходим в раздел настроек «Разработка»:

desire_s_2

Включаем опцию «Отладка по USB»

desire_s_3

Опция «Отладка по USB» в планшете Prestigio (Android 4.0.4)

Здесь ещё проще. Заходим в «Настройки» и ищем раздел «Для разработчиков»:

prestigio

Где, собственно, и включаем необходимую нам «Отладку по USB».

Теперь устройства готовы к работе и можно приступать к следующему шагу — настройке Delphi XE5.

Настройки Android SDK в Delphi XE5

Скорее всего, что после установки Delphi XE5 у Вас уже будут настроены все необходимые опции для Android SDK по умолчанию. Я же в этой статье показываю настройку «с нуля».

Заходим в «Project Manager» и добавляем новую платформу:

add_platform

В открывшемся диалоговом окне выбираем «Android» и жмем «Ок»:

add_platform_2

При этом, если настройка SDK проходит «с нуля», то вы должны попасть в «SDK Manager». Если этого не произошло, то до раздела «SDK Manager» можно добраться через главное меню «Tools —> Options —> SDK Manager». Пустой менеджер выглядит следующим образом:

SDK_Manager

Жмем кнопку «Add» и добавляем новый «Android SDK»:

SDK_Manager_2

Для начала нам предлагают указать путь к Java, Android SDK и NDK. О том, как устанавливать эти инструменты Android-разработчика читайте в предыдущей статье. Я же укажу необходимые пути:

SDK_Manager_3

Если на этом шаге Вы все сделали правильно и правильно указали пути к SDK и NDK, то на следующем шаге Вам ничего не придется делать, кроме как подтвердить настройки путей к необходимым для сборки приложения инструментам. Например, у меня мастер показал следующие настройки инструментов:

SDK_Manager_4

При этом мастер сам выбрал необходимый API Level (в прошлый раз я устанавливал 17 и 18 уровни API и мастер взял самый последний — 18-й).

Жмем «Finish» и закрываем менеджер SDK. Теперь в окне «Project Manager» можно увидеть  нашу платформу:

project_manager

Необходимые настройки сделаны. Остается собрать наше приложение и загрузить его на все три устройства.

Сборка и загрузка приложения на Android-устройство

Для того, чтобы собрать и загрузить приложение на Android-устройство ничего сложного делать нам не придётся — разработчики Delphi XE5 постарались сделать эти операции максимально быстрыми и удобными.

И, раз уж первым я настраивал HTC One, то этому же аппарату и предстоит первому принять наше приложение. Подключаем смартфон к компьютеру, переходим в «Project Manager» и раскрываем раздел «Target» и видим там новое устройство:

project_manager_2Теперь жмем F9 и ожидаем появления нашего собранного приложения на экране Android-устройства. В списке приложений HTC One наш «Hello, Android» выглядит так:

app

Само приложение:

app_2Переходим к следующему девайсу — HTC Desire S. Подключаем смартфон к ПК и обновляем список Target в Delphi XE5:

project_manager_3

Иконка приложения в списке:

desire_s_4

Приложение

desire_s_5Проверка приложения на планшете. Планшет Prestigio в списке Target:

prestigio_2Приложение в списке:

prestigio_3

Запущенное приложение

device-2013-08-22-033937Как видите, приложение собралось и успешно было запущено на трех различных устройствах.

Помниться, ещё когда разработка под Android в Delphi стояла в далеких планах Embarcadero, где-то в Сети (а может даже и у меня в блоге) кто-то высказывал мнение, что скорее всего поддерживаться будут только устройства с последними версиями Android, а старье типа Android 2.x вообще не будет рассматриваться.

Как видите, в этой статье я собирал приложение для устройств с самыми разными версиями Android, в том числе и с таким «динозавром» как Android 2.3.5 — никаких проблем со сборкой у меня не возникло и при этом я использовал API Level 18 (для Android 4.x). Так что,в части поддержки различных версий Android в Delphi XE5 никаких проблем нет.

На сегодня все. В следующий раз попробуем рассмотреть что-нибудь по-сложнее, чем «Hello, Android»

Книжная полка

Описание Подробно рассматривается библиотека FM, позволяющая создавать полнофункциональное программное обеспечение для операционных систем Windows и OS X, а также для смартфонов и планшетных компьютеров, работающих под управлением Android и iOS

купить книгу delphi на ЛитРес

Описание: Рассмотрены практические вопросы по разработке клиент-серверных приложений в среде Delphi 7 и Delphi 2005 с использованием СУБД MS SQL Server 2000, InterBase и Firebird. Приведена информация о теории построения реляционных баз данных и языке SQL. Освещены вопросы эксплуатации и администрирования СУБД.

купить книгу delphi на ЛитРес

3
2
голоса

Рейтинг статьи

уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.

Go Up to Android Mobile Application Development

Contents

  • 1 Component Restrictions for FireMonkey Android Apps
  • 2 Style Selector
  • 3 View Selector
  • 4 Using Frameworks in Android Apps
    • 4.1 FireMonkey
    • 4.2 VCL (not available for Android)
    • 4.3 RTL
    • 4.4 Android API and Java Libraries
  • 5 Android Core Lib Names Cannot Be Used as App Names
  • 6 Alignment Recommendations for Mobile Toolbars and Other FireMonkey Components
  • 7 Using Custom Fonts in Android Apps
  • 8 Setting the Required Uses Permissions for Your Android Apps
  • 9 Using the Android Device’s Back Button
  • 10 Making Your Application Run in Fullscreen Mode
  • 11 Settings for Virtual Keyboard in TEdit and TMemo Controls
  • 12 Using Icons and Images in Multiple Resolutions
  • 13 Loading and Deploying Files
  • 14 Creating Applications for Google Glass
  • 15 Creating Applications for Android Smart Watches
  • 16 Implementing Android-Specific Features
  • 17 See Also
    • 17.1 Samples

This page describes how to develop multi-device applications that target the Android platform. See Android Mobile Application Development for topics that are not specific to the development phase, such as configuring your PC and Android devices to work with RAD Studio.

To create a multi-device app that supports Android:

File > New > Multi-Device Application — Delphi
File > New > Multi-Device Application — C++Builder

Then select a multi-device application type in the Multi-Device Application wizard.

Component Restrictions for FireMonkey Android Apps

While you are designing your Android app in RAD Studio, you can only use components that are supported on Android devices. When Android is the active target platform of your project, unsupported components are grayed out on the Tool Palette.

Style Selector

At the top of the multi-device Form Designer is the style selector:
StylesFormDes.png

The style selector’s drop-down menu lists all the styles that you can apply to the Master view.

Select the Android style from the style selector to see all the properties on the components according to the target platform.

View Selector

At the top of the multi-device Form Designer is the view selector:
ViewsFormDes.png

The view selector’s drop-down menu lists all the available views, which show the different platforms, such as iOS, Android, Windows and macOS.

Use the Master form for a general design of your application. Then you can add new views to your project in order to customize your application for a specific device type. You can even create new customized views; see Adding a Customized View to the View Selector. The predefined Android device views are:

  • Android 3.5″ Phone
  • Android 4″ Phone
  • Android 5″ Phone
  • Android 7″ Tablet
  • Android 10″ Tablet
  • Google Glass

Note: For more information about the resolution of the predefined views see Display Specifications.

Note: Select the Android target platform to see all the available components for Android, otherwise they appear grayed out.

Add new views to your project in order to customize your application for a specific Android device type. All the views inherit the components and properties from the Master form. For more information see Form Designer.

If you want to customize some aspects of your application for all Android devices you can do it using the Master form, provided you do not want to propagate to the rest of platforms. Otherwise use the Code Editor, for example:

// You will see the changes applied at run-time.
{$IFDEF ANDROID}
    SpeedButton1.StyleLookup := priortoolbutton;
{$ENDIF}

For more information:

  • Mobile Tutorial: Using Layout to Adjust Different Form Sizes or Orientations (iOS and Android)
    (shows how to use the Master form for different form factors (such as phone or tablet), without using different views for each form factor)

Using Frameworks in Android Apps

FireMonkey

The FireMonkey framework is ideal for the Android target platform, and it supports other target platforms as well.

VCL (not available for Android)

The Visual Component Library (VCL) is available only on Windows (32-bit or 64-bit).

RTL

Some run-time library (RTL) units that provide basic functionality are common for every supported target platform (including Android), such as System.pas or System.SysUtils.pas.

A number of RTL units are Android-only (see Android API and Java Libraries). These units are prefixed with the Androidapi unit scope.

See also Android C RTL.

Android API and Java Libraries

The RTL contains a number of units that provide Delphi and C++ interfaces to the Android native API. These units are scoped with Androidapi and are typically located in the sourcertlandroid directory of your RAD Studio installation. The FireMonkey framework relies on some of these units. You may also use them directly if you want.

You can also use parts of the Android API that are not mapped by the RTL, or use your own Java libraries in your project:

  • Using Java Libraries in Your RAD Studio Android Apps
    • Using a Custom Set of Java Libraries In Your RAD Studio Android Apps
    • Using the Built-in RAD Studio Java Libraries for Android

Android Core Lib Names Cannot Be Used as App Names

You cannot assign a name to your project if the name conflicts with the name of a core library shared object file, such as <libNAME>.so.

For example, you cannot use any of the following as project names:

  • c (conflicts with libc.so)
  • m (conflicts with libm.so)
  • z (conflicts with libz.so)
  • ssl (conflicts with libssl.so)
  • ui (conflicts with libui.so)
  • gui (conflicts with libgui.so)
  • camera_client (conflicts with camera_client.so)

And so forth.

Alignment Recommendations for Mobile Toolbars and Other FireMonkey Components

To ensure that the toolbar in your app behaves and looks the same on the iOS and Android platforms, you should set specific alignment properties in the Object Inspector, as follows:

  • Set the Align property for all controls that are children of a TToolbar. For example, the following are Align property values:
    (Left, Right, Center, Contents)
  • To maintain space between controls, or to maintain space between the left and right borders of toolbars, set the following properties:
    • Margins: (left, right)
    • Padding: (left, right)
    For example, assume you have a toolbar with a child TLabel as the Title, and two left-aligned speedbuttons with space between each button:

    1. On the TToolbar, set:
      • Align = Top
    2. On the child TLabel, set:
      • Align = Contents
    3. Send the TLabel to the back using the context menu.
    4. On the two child TSpeedButtons, set:
      • Align = Left, Right, Center, Contents, VertCenter
        For descriptions of these properties, see FMX.Types.TAlignLayout.
      • Margins Left = 5
  • To format a segmented control (styled TSpeedButtons with a shared group name) so that it is centered on the toolbar:
    1. Add a TLayout control to the TToolBar.
    2. Set TLayout.Align to Center.
    3. Add buttons to the TLayout and set alignment properties and margins for each button (that is, Align = Left, Margins = Left, Margins = Right, and so forth).
      • For an example, see Mobile Tutorial: Using a Button Component with Different Styles (iOS and Android).
  • To use TLabel, you must set TLabel.AutoSize = False and set the Align property.
    • To center the label on a toolbar that already has buttons, you must set TLabel.Align = Contents and select Send to Back on the context menu.

Similar alignment rules pertain to other controls. For example, assume you have added a TSwitch to a ListBox item; to have the switch aligned to the right and centered vertically, set the following properties for TSwitch:

  • Align= Right
  • Margins Right = 5

Using Custom Fonts in Android Apps

You can use custom fonts in your Android apps. One use for custom fonts is as icons in your mobile applications. True-type fonts have advantages over raster image files in that fonts are light-weight and vector-based, so they scale well to high resolutions. You can install your own custom fonts into your system font library on your development system. Then the custom fonts should be available in the IDE for you to select at design time.

However, if you deploy the app at this point to a target device, the fonts in the app are rendered using only the installed fonts available on the device. You need to add the font to your project using the Deployment Manager to ensure that the fonts you see at design time in the IDE are copied over to the device.

Here are the basic steps for incorporating a custom font in your Android app::

  1. Install the custom font on your Windows system.
    • See the Windows Help and Support on your system for instructions.
    • For example, right-click the font file, and click Install.
  2. Add the font file to the root directory of your project.
  3. In the Object Inspector, assign the font to the Text Settings/Font property for the controls that use the font.
  4. Add the font file to your project in the Deployment Manager.

Full instructions and downloadable files for creating a mobile project that uses a custom installed font (Font Awesome) are available here:

  • http://community.embarcadero.com/index.php/blogs/entry/true-type-font-iconography-for-android-and-ios-apps

To know whether a font might be available at run time on a specific mobile device, you need to check whether the font you are using at design time is supported on your target devices:

  • Fonts on Android: http://developer.android.com/design/style/typography.html

Setting the Required Uses Permissions for Your Android Apps

Some basic Android permissions are pre-set for all FireMonkey Android apps.
You should verify that specific access permissions are enabled for your Android device on the Uses Permissions page in Project Options.

For example:

  • To use the Android device’s camera, ensure that the following permissions are enabled:
    • Camera
    • Read/Write external storage
  • To use GPS location on the Android device, ensure that one or more of the Location Access permissions are enabled:
    • Access coarse location
    • Access fine location
    • Access location extra commands
  • To record audio on the Android device, ensure that the following permission is enabled:
    • Record audio

Using the Android Device’s Back Button

To make your application handle when users press the Back button on their Android device, add an event handler to your form for OnKeyUp, and use the following code within your event handler:

Delphi:

if Key = vkHardwareBack then
begin
  // Do whatever you want to do here
  Key := 0; // Set Key = 0 if you want to prevent the default action
end;

C++:

if (Key == vkHardwareBack) {
    // Do whatever you want here
    Key = 0; // Set Key = 0 if you want to prevent the default action
}

Tip: The Tabbed with Navigation mobile template implements this event handling.

Making Your Application Run in Fullscreen Mode

By default, Android applications display the Android status bar/title bar.

If you want your application to run in fullscreen mode and hide the Android status/title bar, select Project > Options > Version Info and change the value of the theme key to No TitleBar.

For more information, see Version Info.

Settings for Virtual Keyboard in TEdit and TMemo Controls

On mobile platforms that support virtual keyboards, the virtual keyboard automatically displays when a TEdit or TMemo control is displayed.

To enable the user to hide the virtual keyboard by clicking the Return key, set KillFocusByReturn = True.

Using Icons and Images in Multiple Resolutions

  • On Android, the following resolutions are supported:
    1x, 1.5x, 2x, 3x (Small, normal, large, extra large)
  • On iOS, the following resolutions are supported:
    1x and 2x (Non-Retina and Retina)

Multiple resolutions can be supported by creating a MultiResBitmap using the MultiResBitmap Editor.
For more information, see Using Multi-Resolution Bitmaps.

  • MultiResBitmap supports the following resolutions on Android: 1x, 1.5x, 2.5x
    (iOS supports 1x and 2x)

Loading and Deploying Files

When you deploy your application for the Android target platform, if you plan to provide files along with your application to load those files at run time, you must first decide whether you want to have them on the internal device memory or on a external memory (for example, an SD card). After you decide, use the Deployment Manager to place those files in the assetsinternal (internal) or assets (external) folder during deployment.

AddDBforAndroidAssets.png

Use the following code to locate those files at run time:

Delphi:

TPath.Combine(TPath.GetDocumentsPath, 'filename')  { Internal }
TPath.Combine(TPath.GetSharedDocumentsPath, 'filename')  { External }

C++:

System::Ioutils::TPath::Combine(System::Ioutils::TPath::GetDocumentsPath(), L"filename") // Internal
System::Ioutils::TPath::Combine(System::Ioutils::TPath::GetSharedDocumentsPath(), L"filename") // External

Here filename is the name of your file, such as ‘dbdemos.gdb’ in the screenshot above. The TPath record is declared in System.IOUtils unit, so you need to add System.IOUtils in the uses clause.

Creating Applications for Google Glass

The Form Designer provides a Google Glass view, which enables you to create apps for Google Glass:

GoogleGlassDesignTimeDevice.png

If you are creating an app for Google Glass, use the custom Google Glass style that RAD Studio provides:

C:UsersPublicDocumentsEmbarcaderoStudio21.0StylesAndroidGoogleGlass.fsf

The Google Glass style is optimized for the Google Glass user interface and resolution.

For steps to follow in using the Google Glass style in your FireMonkey apps, see Adding a Custom Style to Your Mobile Application.

For general information about developing applications for Google Glass using RAD Studio, see First Steps with Google Glass.

Creating Applications for Android Smart Watches

The Form Designer provides two different views for Android smart watches: the Sony SmartWatch 3 and the Motorola Moto 360. Both views cover the typical shapes of the Android smart watches. Therefore, you can define the most suitable design depending on the smart watch where the application is running. You can also create your own custom views for other devices, including additional Android smart watches.

SmartWatchesDesignTimeDevice.png

The Multi-Device Preview window provides a design time view of what your application is going to look like on four different Android smart watches, in addition to a wide range of other devices.

SmartWatchesMultiDevicePreview.png

If you are creating an app for an Android smart watch, RAD Studio provides the Android Wear style, which is optimized for the user interface and different resolutions of Android smart watches.

The Android Wear style is available at C:UsersPublicDocumentsEmbarcaderoStudio21.0StylesAndroidAndroidwear.fsf.

For general information about developing applications for Android smart watches using RAD Studio, see Creating an Android Smart Watch App with RAD Studio.

Implementing Android-Specific Features

The following topics describe how to implement some Android-specific features in your applications:

  • Creating Android services
  • Using the Google Play In-app Billing Service
  • Using the AdMob Service
  • Using 9-patch Images

Find documentation about other, platform-agnostic features in the FireMonkey Applications Guide.

See Also

  • Rules for Naming Multi-Device Projects and Files
  • Migrating Delphi Code to Mobile from Desktop
  • Migrating C++ Code to Mobile from Desktop
  • Multi-Device Application Templates
  • Mobile Tutorials: Mobile Application Development (iOS and Android)
    • Mobile Tutorial: Creating an Application for Mobile Platforms (iOS and Android)
  • Configuring Your System to Detect Your Android Device
  • Creating a FireMonkey Component (Delphi)
  • FireMonkey Application Design
  • Creating an iOS App

Samples

  • FireMonkey Device Info sample

Данная статья посвещана знакомству с Rad Studio 10.4 от Embarcadero.

В ходе знакомство со средой мы создадим простое приложение, которое соберём под android.

Знакомство и Установка.

Для начала, при вбивании языка Delphi в поисковые машины, нас перебрасывают на страницы Embarcadero. Когда- то, 10 лет назад Delphi разрабатывала компания Borland, но последние пять лет вся разработка перешла в Embacadero.

Предыдущие версии языка были заточены под разработку приложений под windows.
Современный вариант языка развивается в сторону мультиплатформенности.
 

Теперь можно собираать наши приложения под самые известные операционные системы: Windows, MacOS, Android, iOS, Linux…
 

Rad Studio

Последняя на данний момент версия Rad Studio 11.1. Официальный сайт.

Embacadero развивает множество продуктов для разботки как платные, так и бесплатные.

Рассмотрим варианты бесплатных приложений (посетите страницу и выберите нужный софт):

Delphi

Многие бесплатные продукты бесплатны на определённый срок и до тех пор пока ваши приложения не начнут приносить доход, примерно, 5000$  за год и более.

Сейчас рассмотрим вариант Delphi — Community Edition — это бесплатная студия для разработки кода. На момент написания статьи это RAD Studio 10.4 Community.

При скачивании программы вас попросят пройти регистрацию, чтобы привязать вашу почту к данному продукту и лицензионному ключу, который позволит вам работать с программой целый год. 
Обычно в течении года выходит новый релиз Community программы с более новыми решениями.

Во время установки студии вам предложат установитьпакеты под различные операционные системы. Для теста выберем Windows и Android.

android

Скачав и установив программу вы можете запустить её.
Результат представлен ниже.

Delphi_app

В стартовом окне можно выбрать вариант приложения под определённые задачи:

— создание приложения только под windows

— создание мультиплатформенного приложения

— создание модуля, библиотеки, кустарного проекта.

Справа есть ссылки на видеоанонсы и вебинары по продуктам Embacadero.

Разработка мультиплатформенного приложения.

Выберим разработку приложение под мультиплатформенную реализацию.

В качестве теста создадим приложение таймер.

При нажатии кнопки «Старт» запускается таймер, а при нажатии «Стоп» — останавливается.

Для этого нам понадобиться поле для отображения текста — Tlabel

Понадобятся две кнопки — TButton

И главный компонент системный инструмент таймер — TTimer

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

multapp

Для TTimer изменим свойство Enabled на false. 

Для поля TLabel изменим поле «Text» на значение «0».

Кликнув два раза по значку TTimer перейдём к написанию кода. Здесь мы должны отправлять данные с таймера на текстовое поле Label и перезаписывать его с новым значением.

Label1.Text:=IntToStr(StrToInt(Label1.Text)+1); 

Прописываем это в том месте где замигает курсор — в созданной процедурной функции для таймера.

Полный код 

procedure TForm4.Timer1Timer(Sender: TObject);

begin

    Label1.Text:=IntToStr(StrToInt(Label1.Text)+1);

end;

Нажав F12, перейдём к окну приложения и кликнем два раза по кнопке «Старт».

Пропишем код для обнуления значений в TLabel и запуска TTimer.

Label1.Text := ‘0’;

Timer1.Enabled:=true;

Далее, нажав F12 и перейдя в окно, кликнем два раза по кнопке «Стоп». Пропишем для неё остановку таймера.

Timer1.Enabled:=false;

Всё, наше приложение готово.

Скомпилируем его, нажав на зелёный треугольничек. Дождёмся компиляции и наслаждаемся нашей первой программой.
Ниже, под цифрой 2 представлено скомпилированное приложение.

app

По умолчанию мы скомпилировали под Windows.

Для того чтобы скомпилировать приложение под android необходимо сделать несколько шагов:
Читать далее

Где-то в начале 2014-ого года, узнал про новую поделку от эмбаркадеро, которая ещё оказывается и под мобильные платформы писать умеет. И вот, совсем недавно я это скачал. По началу впечатления были что ни есть положительные, за исключением непривычного расположения объектов. Сидел я значит, не спеша портировал один проект на мобильную платформу. Заметил, что на тяжёлых циклах этот чёрт вешается. Приложения весят очень, очень много. Всё же, сохранил проект и приостановился. Думаю, нужно мне его ещё поизучать. Всё-таки, это вам уже не тот старый добрый Delphi-7 от борланд…
И вот, решил написать пару статей, пока изучаю сам это чудовище. Не претендую на то, что мои варианты единственно-верно правильные и допускаю критику.

Как обычно, начнём с простейшего и самого бесполезного. Сделаем приветствовалку. Легко, примитивно, бесполезно. В бонус к этому, покажу как можно достаточно неплохо на первое время оптимизировать приложения под разные экраны.

Начнём. Подключаем девайс к компьютеру в режиме отладки. Если компьютер «плохо видит» вашего китайца, рекомендую заглянуть сюда: Не видно телефон / планшет в режиме отладки. Решение.
Эмулировать девайс я крайне не советую. Это очень грузит компьютер и местами очень тяжело даже хорошим ПК.
Запускаем оружие массового уничтожения андроид девайсов делфи.
Нашему взору открывается какое-то ужасно непонятное окно. Сейчас разберёмся, что тут к чему.

Создаём новый мобильный проект. Что к чему в этом окне разобраться успеете.
Как создать такой проект? Во, смотрите.


Следом откроется ещё одно окно. Это будет выбор шаблона. Сейчас нам нужен пустой. (Blank Application)


Теперь, открылось окошко в котором мы и будем работать. Разберём его подробней:

1. Это здесь теперь находятся компоненты. Весьма непривычное расположение. Но здесь есть очень приятный поиск по названиям компонентов. Приятен ещё он тем, что можно помнить название компонента частично. Скажем только конец. Написать его, и поиск его тебе легко найдёт.
2. Непосредственно, форма. её вид, (и сам размер формы касаемо размеров экрана. Если накидать компонентов, то они будут располагаться совершенно по разному на разных «формах») можно выбрать в раскрывающемся меню, отмеченным на рисунке цифрой 6.
3. Инспектор объектов. Место у него святое. Никуда его не сдвинули, и даже не видоизменили. В нём изменяются свойства для различных объектов.
4. Дерево проекта. Расположение его тоже не затронуто эмбаркадеровцами. В нём можно посмотреть какие компоненты присутствуют в нашем проекте. Удобная штука.
5. Менеджер проекта. Я ещё не до конца въехал в его суть. Но я так понял здесь можно просматривать, выбирать все подключенные к компьютеру девайсы, а так же эмуляторы этих самих девайсов. Ещё я так понимаю, можно глянуть из каких файлов состоит проект.
6. Как я уже сказал — это выезжающее меню для видоизменения формы.

Во. Примерно разобрались. Значит что, разворачиваем спойлёр «Standard» в компонентах, и вытаскиваем оттуда TButton и TLabel. Вытащить их можно как зажав левую клавишу мыши, так и нажав просто дважды на него. Опускаемся ниже, и повторяем тоже самое с TEdit’ом.

Наверняка, у вас на форме творится бардак. Вот, вроде моего:


Раскидал я компоненты по форме более-менее. Кстати, их можно «вытягивать» во все стороны для получения оптимального размера. Но, наверняка, хочется чтобы было ровно по центру, по феншую. Сейчас сделаем ровно.


Значит что делаем. Давим правой кнопкой мыши по компоненту, открываем «Position», клацаем на «Align…»


Откроется вот такое окошко. Отмечаем центр по горизонтали и радуемся.


Повторяем со всеми компонентами. Получается что-то вроде этого:

Теперь, нажимаем на компонент Tlable один раз левой кнопкой мыши. Идём в инспектор объектов и изменяем свойство «Text». С «label1» на «Ваше имя:».


Повторяем с Button1. Пускай «Text» станет равным «Приветствовать».


Ну всё. С оформлением закончено. Теперь, давайте-ка, перейдём к части кода. Нажимаем на компонент кнопки два раза. Откроется скромненький редактор кода с уже сгенерированной функцией OnClick, которая отрабатывает при нажатии на кнопку в уже запущенном приложении.


Впишем туда что-то типа этого:

Значит, разбираем.
showmessage — функция открытия окошка с сообщением. Всё, что в скобочках: «()» — она и покажет.
Edit1.Text — это что-то вроде переменной. Он за пределами кавычек, по этому считается кодом. Вместо Edit1.Text в сообщении будет показано то, что человек ввёл в поле.
+ — это как бы сложение значения в едите, и значения в кавычках в единое сообщение.
‘ приветствую!’ — и есть значение в кавычках. Окончание строки.
; — обязательный символ, означающий окончание действия. Ставится почти во всех строчках в конце.

Теперь, давайте вернёмся к нашей форме и закрепим положения элементов, для нормального отображения приложения на всех (или почти всех) экранах. К форме можно вернуться, нажав «Design» внизу страницы.


Нажимаем на какой-нибудь компонент один раз, и в инспекторе объектов разворачиваем список «якорей» — анкоров.


Это и есть те самые крепления для объектов. Все их включать вовсе не нужно. Ибо при одновременном akTop и akBottom (сверху и снизу), компоненты на маленьких экранах может сплюснуть до пиксельной полоски, не видной человеческому глазу. По этому оставляем включенными только akLeft, akRight, и один из двух — akTop, или akBottom. (Я предпочитаю akTop оставлять выключенным, а акBottom — включённым)


Повторяем это дело со всеми объектами.

Теперь, сохраняем наш проект куда-нибудь.

Ну всё. Осталось только запустить этот огромный комплекс. Подключаем девайс в режиме отладки (Если уже не подключили).
Разворачиваем вот такое дерево в менеджере проектов, активируем подключённый девайс двойным нажатием левой кнопки мыши. Он должен стать жирным.


Следом, давим F9 и ждём полной сборки проекта и установки его на устройстве. Запуститься на девайсе приложение должно само.

После запуска, пишем в поле наше имя и нажимаем на кнопку.

Продолжение: вот здесь

Понравилась статья? Поделить с друзьями:
  • Как написать приложение для android для чайников
  • Как написать прикрыть рогожей
  • Как написать прикольное сообщение мужчине
  • Как написать прикольно чтобы не хлопали дверью
  • Как написать прикольно спокойной ночи другу