Страницы

суббота, 26 октября 2013 г.

1. Пишем детскую программку под Android: план

Delphi для Android. О сколько радостных предвкушений вызывает у меня сочетание этих слов. Я давно хотел сделать что-нибудь под Android. Для начала что-нибудь простенькое, но свое.

Дочке сейчас полтора года, и ей очень нравятся телефоны, компьютеры и планшеты. Любая чёрненькая коробочка с кнопочками и лампочками влечёт её почище магнита. Но особое предпочтение доча отдаёт устройствам с тачскрином. “Папа, дай мне пожалуйста свой телефон, я хочу с ним поиграть, а заодно я раскидаю твои иконки так, что не сможешь потом ничего найти, поменяю звонок, переставлю время, запущу тебе кучу разных программ и позвоню парочке случайных знакомых”, хочет она сказать, но произносит только “Алё-алё! На-на-на!”. Ключевое для дочки, конечно, поиграть. Больше всего она любит программки с картинками, которые издают звуки.

Её требования к играм очень простые:

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

У меня требований чуть больше:

  • там не должно быть змей, говорящих ссссс, страшно рычащих тигров, обезьянок, и других тварей, которые не водятся в нашей местности и в детских книжках
  • программка должна быть проста в использовании:
    • картинки должны быть большими
    • программа должна чётко понимать, что прикосновение к экрану на 3 сантиметров в стороне от картинки это на самом деле прикосновение к картинке
    • а если на экран нажали ладошкой, то не это никакой не мультитач, а обычное нажатие, и если на экране есть несколько животных издающих звуки, то совершенно излишне заставлять всех животных вопить благим матом, а то родители пугаются
    • крайне желательно, чтобы программка умела блокировать нажатия кнопок home, back и menu (в некоторых детских программах это кстати реализовано). (сенсорные кнопки на телефонах/планшетах – это зло)
  • Никакой рекламы во время игры, разумеется

Таких программ очень много в Google Play Market-e. Но у всех у них есть какой-нибудь фатальный недостаток.

<

воскресенье, 20 октября 2013 г.

Легкий способ проверить Android устройство на совместимость с Delphi XE5.

Как узнать будет ли работать программа сделанная в Delphi XE5 на Android устройстве.

Начну сразу с простейшего способа. Официальная спецификация – ниже.

All-the-Myriad-Androids-Animoca

Неофициальные способы

Легкий способ проверить своё устройство

  1. Надо установить на телефон маленькую программку SysCheck от Christopher Moeller (не требует никаких прав).
  2. Запустить.
  3. И посмотреть на первые 3 строчки отчёта.

Там будет указана версия ARM (нужна v7), версия OS (2.3.3-2.3.7 и 4.0.3-4.3)  и указано поддерживается ли NEON (должно быть yes).

Источник

Список из 118 проверенных устройств

Jim McKeeth опубликовал список из 118 протестированных устройств (зеркало, html версия). Список получен с помощью сервиса Apkudo. Этот сервис позволяет загрузить свой APK, и проверить его работу на большом количестве разных устройств.

Для проверки Jim использовал простейшую программку типа Hello World.

Из 118 устройств APK установился только на 108 (на остальных был либо тайм-аут либо не хватило свободного места). Из 108 устройств, программка не запустилась только на 3.

  • Проверено устройств: 118
  • Не установилось на: 10
  • Зависло (Application not responding) на: 3
  • Успешно запустилось на: 105
  • Процент успеха: 89%

Источник

Официальные способы

Соответствие спецификации

Поддерживаются устройства архитектуры ARMv7 и ОС:

Название ОС Android

Версия ОС Android

API Levels

Jelly Bean

Android 4.1.x, 4.2.x, 4.3.x

API Levels 16, 17, 18

Ice Cream Sandwich

Android 4.0.3 and 4.0.4

API Level 15

Gingerbread

Android 2.3.3 - 2.3.7

API Level 10

Не поддерживается:

  • Honeycomb (Android 3.x)
  • Эмулятор Gingerbread
  • Устройства на процессоре Tegra 2 (поддержка NEON обязательна)

Ссылка на официальную документацию.

Список проверенных устройств от Embarcadero

Список можно найти в официальной документации от Эмбаркадэро.

Сюда копировать не буду. Если интересно – сходите по ссылке.

http://docwiki.embarcadero.com/RADStudio/XE5/en/Android_Devices_Supported_for_Application_Development#Results_of_Our_Android_Device_Testing

p.s. Забавно, но в Google Play уже появились и платные программки для проверки устройств на совместимость с Delphi ХЕ5. Стервятники, такие стервятники.

пятница, 11 октября 2013 г.

Ссылка: Почему веб-приложения на мобильных платформах работают медленно

 

Delphi XE5 дает возможность создавать нативные приложения и для десктопа и мобильных платформ (пока что Android и iOs). Единый код, UI, все дела.

Но зачем мне для этого покупать Delphi, воскликнет искушенный читатель? Я возьму какой-нибудь бесплатный мобильный Javascript фреймворк (Cordova, PhoneGap и другие) и сделаю то же самое. Не спеши, читатель, отвечу ему я. Ведь Javascript может оказаться слиииииишком медленным.

И вот одна статья на эту тему. Только сегодня! Только на нашей арене! Javascript против нативного кода! Сравнение производительности и предсказании будущего! Статья опубликована на Хабре 8 августа 2013.

Почему веб-приложения на мобильных платформах работают медленно

 

Статья по ссылке реально большая. И я позволю себе скопировать сюда выводы.

Вот что следует помнить:
* в 2013 году JavaScript является слишком медленным, чтобы его можно было использовать на мобильных устройствах для создания приложений типа обработки фотографий и пр.:
— он в 5 раз медленнее нативного кода;
— он сравним с IE8;
— он медленнее, чем x86 C/C++, примерно в 50 раз;
— он медленнее, чем серверные Java/Ruby/Python/C# примерно в 10 раз, если программа выделяет не больше 35 Мб памяти и резко замедляется при дальнейшем выделении памяти;
* Наиболее реальный способ его разогнать — это увеличить производительность процессора до уровня десктопа. Возможно это и произойдет, но не в ближайшем будущем;
* Сам язык последнее время нисколько не ускорился и его разработчики утверждают, что при сохранении языка и API, производительность никогда не догонит нативный код;
* Сборщик мусора сильно тормозит при ограниченном количестве доступной памяти. Он ведет себя сильно хуже, чем на декстопах или серверах;
* Каждый мобильный разработчик, независимо от того — использует он сборку мусора или нет — тщательно продумывает работу с памятью;
* JavaScript в настоящий момент фундаментально против того, чтобы даже попробовать оценить расход памяти на мобильных устройствах;
* Даже если они захотят дать эту возможность, опыт подсказывает, что сделать это будет очень трудно;
* Есть надежда на asm.js, но он, скорее, напоминает C\C++, чем что-то динамическое типа JS.

четверг, 3 октября 2013 г.

Delphi XE5 с поддержкой Андроида. Первые впечатления.

Delphi XE5 art

Не то, чтобы я очень ждал выхода Delphi XE5. Поначалу. На самом деле я даже не следил за новостями. Но за пару недель до релиза (как это выяснилось позднее) ситуация поменялась. Только-только стали появляться первые обзоры от бета тестеров XE5. А я решил проверить будет ли мой Lazy Delphi Builder работать с компиляторами от XE5.

Зарегистрировался на участие в бета тесте, стал следить за новостями и как-то потихоньку втянулся в активное ожидание, с ежедневной проверкой DelphiFeeds на тему новостей. Я как-то даже не верил, что у Embarcadero получится. Уж очень амбициозная цель была поставлена. Но у них получилось. Молодцы!

Доступа к бете я тогда так и не дождался – через неделю вышла полная версия.

Попытка первая.

Очень интересно, заработает ли у меня. Будет ли всё действительно просто – или придётся сначала потанцевать с бубном.

Trial установлен. В наличии имеется пара часов свободного времени и старенький Samsung Galaxy Mini, который как выяснилось позже, просто не поддерживается.

Времени читать документацию нет. Пара часов пролетает в лихорадочной доустановке Android SDK, NDK, настройке IDE и попытках запустить какую-нибудь демку на телефоне (Oppa-Delphi-Style!). Сначала получил ошибку о несовпадающей версии API. Потом выяснилось, что в телефоне не хватает места. Пара часов пролетела как пара минут оставив за собой дымный след несбывшихся надежд.

Попытка вторая.

Ко второй попытке я подошел основательнее. Скачал и установил наисвежаиший Android SDK. Взял другой телефонный аппарат, которые точно поддерживается Delphi XE5. На этот раз экспериментировал с Gigabyte GSmart Aku A1. Телефон тоже бюджетный но вышедший в августе 2013.

И засел за эксперименты.

В этот раз всё прошло как по маслу. Единственная проблемка с которой пришлось столкнуться связана с телефоном. Поиск USB драйвера для телефона превратился в квест. Windows 7 его сам не нашёл, стандартный USB драйвер из ASDK тоже не покатил. Нашёлся же драйвер "в самом неожиданном месте" - на сайте производителя (но тоже не сразу - спасибо форуму 4pda за наводку на правильный линк).

p.s. Собирал и устанавливал в телефон из IDE. Теперь интересно, можно ли это сделать из командной строки. (Lazy Delphi Builder тут бессилен, так как умеет только компилировать)