Кроссплатформенная розробка в delphi xe5

Кроссплатформенная розробка в delphi xe5

Передумови реалізації ПО

Перш за все, що ми маємо? В наявності у нас наступне обладнання і ПЗ:

1. 7 "Android-планшет LuxP @ d 3755 3G / HD (посилання не даю, оскільки більшість комерційних) від китайських Брайт з 4-м андроидом (повний фарш, скажу я вам. Крім типових функцій планшетів як Wi-Fi / GPS / Bluetooth 3.0, оно підтримує дві SIM-карти з 3G і має навіть вбудований FM-модулятор для мовлення вашого плейлиста в радіусі

До слова, про системні вимоги останнього з сайту розробника:

Проте ніяких проблем з установкою середовища і її запуском на моїй Хрюші не виникло. Однак слід зазначити кілька особливостей:

1. При установці вибирав все по дефолту, прибравши лише на самому початку пташку з Сі-білдера і вибравши тільки Delphi XE5, а далі нічого не чіпав (в мережі деякі пишуть, що якщо прибрати галочку з білдера, то надалі не буде варіанту вибору андроїда , це не так, принаймні з зазначеним ISO-образом, оскільки на сайті Embarcadero пропонується також завантажити і неповний установник на сотню мегабайт і він все інше тягне за собою з Інтернету. Ймовірно ця особливість властива йому).
2. Якщо ви відмовитеся від установки OCX-компонент і додаткових пакетів, то у вас можуть пропасти теймплети при подальшому створенні мобільного застосування, так що краще не чіпайте.
3. У корені системного диска при установці була створена папка PlatformSDKs з NDK і ADT, навіть незважаючи на те, що при завданні шляхів установки був обраний каталог 'Program Files'. Це пов'язано з тим, що SDK з NDK для Андроїда не розуміють шляху з пробілами.
4. Для порівняння, спочатку було вільно 25-ть гігабайт, після установки і перезавантаження ОС близько 13-ти, при цьому в тимчасових каталогах залишилася купа розпакованого "сміття". Пам'ятаючи про те, що цей "сміття" може використовуватися при первинному запуску і донастройку-доустановки середовища, було проведено її запуск, кілька компіляцій і після цього тимчасові папки були вичищені. Звільнилося 7 гіг. Ех, Embarcadero.
5. Розмір збирається .so ліби бланк проекту в дебаге 45 MB, а релізі 11.

Пару слів про налаштування андрофона. Для того, щоб мати можливість заливати і налагоджувати APK-додаток потрібно активувати режим налагодження по USB. Для цього треба зайти в параметри через меню андрофона і активуйте дану опцію:

Після цього ви можете підключити перехідний кабель до андрофону і комп'ютера. Якщо раніше ви не підключали свій андрофон до ПК (а до цього у мене особисто такої необхідності не виникало жодного разу, досить було підняти FTP-сервер на планшеті і мати доступ до всієї файлової системи з тотал-командер на ПК), то ОС виявить новий пристрій і запросить драйвера. У моєму випадку, було виявлено якесь MT65xx Android Phone. Пошукавши в мережі:

натрапив на універсальний драйвер MTK USB windriver for tablet (докладено до ресурсів нижче):

Після установки драйвера був виявлений Android Composite ADB Interface і диспетчер пристроїв весело плямкнул, доповівши про додавання нового гаджета:

Запустіть Delphi XE5 і відкрийте семпл 'Location' з каталогу 'MobileCodeSnippets' в demos. Цей додаток містить приклад роботи з датчиком GPS. Видаліть кнопку включення активності датчика (ми його будемо активувати при старті додатка) і перенесіть на форму модуль UDP сервера TIdUDPServer1 (для прийому широкомовних пакетів і реалізації відповідного луни, для контролю), таймер TTimer1 (для періодичного запуску передач) і дві текстових мітки для візуалізації прийнятого тексту, модуль TLocationSensor не чіпаємо. Також зі списку вгорі праворуч виберіть платформу (в нашому випадку 7 "WSVGA Android Tablet (600 dp x 1 024 dp: mdpi)):

У події OnUDPRead () модуля сервера напишемо код для прийому даних від клієнтів і реалізації луни для самоконтролю:

Отримання даних датчиком з семпли виглядає наступним чином:

Чому відсилання даних здійснена в таймері, а не в подію отримання нової локації onLocationChanged ()? Це зроблено навмисне. Уявімо, що положення об'єкта не змінюється або пропав сигнал із супутників. Як дізнатися останнім розташування, якщо подія не відбувається? Так, можна надіслати запит на отримання даних, адже зворотний зв'язок у вигляді луни ми реалізували. Як варіант для подальшого зниження трафіку теж підійде.

Тепер підключимо андрофон і перейдемо справа на вкладку 'Target Platforms / Android - Android SDK / Target' і переконаємося, що GDB-сервер його виявив:

У нашому випадку він показав пристрій під ім'ям SS707. Для заливки в яке активуйте його клікнувши лівою кнопкою миші і вибравши в контекстному меню 'Activate'. Після чого компілюємо по 'F9' модифіковане додаток-сервер:

Після закінчення компіляції * на андрофоне GDB-сервер запустить його. Досить зручно. Варто відзначити, що якщо під час налагодження натиснути скасування, то GDB-сервер вилетить з помилкою. Втім, на сам додаток це не вплине, але з процесів на комп'ютері сервер доведеться все ж вивантажити вручну. Та й при подальшій збірці інстальовані додаток теж доведеться попередньо видалити вручну (у кого-небудь автоматом вийшло?), По крайней мере в мене так.

Насправді клієнт у мене вже був з минулого тестового проекту броадкаста по UDP:

Тому справа обмежилася додаванням парсинга і візуалізації даних з використанням API Google Maps:

Після компіляції і запуску Win-клієнта, і виробничих серверах на андрофоне, отримані дані будуть відображені на мапі c зазначенням в маркері GPS-координат і іншої супутньої інформації:

Як тестів додаю скрінкасти на каналі LaboratoryW:

to Kastor:
. брав його в минулому році (до дня народження дружини) в інтернет-магазині "Микротрон" (думаю ти в курсі про такий, він у вас там є). Нині це архівна позиція, але тоді це були перші люкспади в місті. Характеристики з опису наступні:
Цитувати Планшетний ПК 7 "@LUX LuxP @ d 3755 3G HD Black / ємнісний Multi-Touch (1024x600) / MTK6575 Сortex A9 1GHz / RAM 512Mb / ROM 4Gb / GPS / 3G / Wi-Fi / BT / 2 Cam (2Mp + 0 , 3Mp) / DualSim / TV + FM / Android 4.1

p.s. за FM-передавач в описі ніде ні слова, але зате який сюрпрайз. Синтезатор частот забезпечує настройку на потрібну ділянку, крок регулюється. Якби ще вбудований же FM-тюнер авіа-діапазон хапав (так-так, розкотив губу. Хоча конвертори для перенесення спектра типу перемножителя 174ПС1 ніхто не відміняв, підійде і простий гетеродин, проте це вже захопився). Працює відмінно. ТВ теж ловить, ефірне. не цифри звичайно.

Схожі статті