?

Log in

No account? Create an account

Previous Entry | Next Entry

I. HTC Desire и Android

HTC DesireУже довольно давно я порывался уйти с WM платформы (Samsung i780). Останавливала, главным образом, необходимость синхронизации с MS Exchange, а также возможность на WM телефоне более-менее нормально смотреть doc/xls, письма с html разметкой.

С появлением  Android 2.1, а также приличных телефонов с ним: Nexus One и HTC Desire (которые, по сути, почти одно и то же), а также со всё более интенсивным использованием различных гуглосервисов было решено, что ждать уже хватит.

После некоторых размышлений был выбран HTC Desire. Во-первых, из-за оптического тачпада (у Nexus'a нечто типа джойстика - мне не понравилось), во-вторых из-за официальной  гарантии. Как выяснилось позже - HTC Sense (надстройка над Android'ом) тоже является большим плюсом. Кстати, если кого волнует - рецепты по отключению Sense в Desire работают только для ранних версий телефонов.

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

Наибольшее опасение у меня вызывало отсутствие физической клавиатуры и, безусловно, экранная менее удобна (особенно на ярком свете). Однако, неудобства оказались не настолько критичны. Понравился feedback при нажатии на кнопку, который имитируется вибрацией.
Большой, очень качественный экран. С него даже приятно читать книжки, в отличие от всех телефонов, которые мне встречались ранее.
Тормозит только в очень редких конкретных местах. В целом всё быстро и удобно. Мультитач работает, но только в специфических ситуациях (например, масштабирование картинки в _некоторых_ приложениях и страниц в браузере)
Использование аппаратных кнопок довольно странное. В частности, центральная кнопка как правило вообще ничего не делает (что мешало повесить на неё ответ на звонок или запуск телефонного приложения - неясно). Да, аппаратные кнопки нельзя назначить на что угодно - нет таких приложений (видимо, ограничения ОС).
Что касается поддержки MS Exchange, которая меня волновала - почта и календарь синхронизируются совершенно нормально.
Качество Фото / Видео - приемлимое (хуже ультракомпактов, конечно).
От аккумулятора работает столько, сколько большинство смартфонов - примерно раз в сутки надо заряжать. Но то, что он заряжается по USB (там microUSB разъем) - отчасти решает проблему. Качество звука - так себе, прямо скажем. Чуть погромче - начинает дребезжать. Впрочем, есть стандартный разъем для наушников. Еще, встроено FM радио (требует подключенных наушников - в качестве антенны).

В целом, я охарактеризовал бы Android телефон как "IPhone для гиков/фриков". С одной стороны, у него человеческий удобный интерфейс, похожий на IPhone'овский (только несколько кривее - до некоторых вещей пришлось долго догадываться и спрашивать знакомых, в то время как на IPhone всё было интуитивно понятно).
С другой - нет ограничений на установку приложений из левых источников - хоть с карточки ставь что угодно, хоть из Интернет-а. Опять же - если есть желание, можно скачать SDK, написать что нужно и совершенно бесплатно и без одобрений использовать или распространять.

Один ньюанс, который мной не вполне осознавался, заключается в резком увеличении трафика (соответственно, платы за телефон). Это связано с наличием различных виджетов, приложений которые регулярно синхронизируются с сервисами в Интернете, а также из-за более частого использования браузера на телефоне, т.к. теперь это удобно и быстро. В итоге сейчас счётчик трафика прогнозирует мне что-то в районе 500mb суммарного трафика в месяц (отчасти это обусловлено тем, что после покупки хочется всё посмотреть, но всё равно уже ясно, что по сравнению с WM трафик увеличится минимум раз в десять).

Большой проблемой является тот факт, что в гугломаркете для России (и некоторых других стран) запрещена покупка платных приложений (т.е. в каталоге видны только бесплатные). Уж не знаю, чем это обусловлено, но ситуация совершенно глупая - на варезных форумах народ хакает прошивки, чтобы получить возможность отдавать за приложения деньги :) И, естественно, российские авторы приложений также не могут их официально продавать через гугломаркет.

Такая, в принципе, давно известная вещь как QR коды приобрела самый, что ни на есть, практический смысл. Вместо того, чтобы вбивать побуквенно в телефон URL веб страниц или приложений - достаточно навести камеру телефона на экран (под углом, на расстоянии и т.п.) и код мгновенно считается и браузер откроет нужную страницу.

II. РАЗРАБОТКА

Естественно, я не удержался от сооблазна попробовать что-нибудь написать под Android. Под WM у меня такого желания не было, но здесь мне понравилась идеология системы - несмотря на кое в чём кривую реализацию, идеологически всё задумано очень хорошо.
Ядро системы - линуксовое. Но для разработчика приложений это, в принципе, ничего не означает. Т.е. не определяет идеологию системы. Приложения пишутся на Java. Однако, есть важный ньюанс - код, который получается в результате, к Java особого отношения не имеет. Выполняет его их собственная VM - _регистровая_, а не стековая, причём даже без JIT компилятора. [2dz: skip next sentence :-]  Что решает проблему с характерными для Java тормозами.

Короче говоря, я скачал Android SDK (Win) с эмулятором, поставил Eclipse, необходимые плагины, скомпилил Hello World, порадовался, задумался что бы такого написать.

Одной из приятных фич Android'а являются так называемые "виджеты". Это приложения, которые можно размещать на desktop'e называемом home screen (он виртуальный, прокручивается влево и вправо). Такое приложение может периодически выполнять какие-то действия (например, получать из Интернета данные) и отображать полученную информацию внутри виджета. Его размеры задаются в относительных единицах - грубо говоря, в условных клетках экрана и после того как виджет размещен, не могут меняться.
Виджет можно перемещать по десктопу, удалять и т.п.
Одним словом, это показалось мне наиболее интересным направлением действий.
Было решено для примера сделать виджет (см. фото), показывающий последние несколько сообщений из группы одного сервиса (Smster). С возможностью настраивать период обновления информации и, собственно, группу.
Про серверную часть говорить нечего - просто делается SELECT из базы и кодируется JSON'ом.

С написанием же виджета возникли кое-какие проблемы. По сравнению с любимым мной Flex'ом, здесь бросился в глаза глючный эмулятор и SDK, а также весьма немногословная и местами просто устаревшая документация и очень небольшое количество примеров виджетов в исходниках, которые удалось нагуглить (всего штук 5, плюс масса модификаций этих пяти. Причём, все они довольно простые).

Чтобы не быть голословным:
К примеру, из документации следует, что есть некий параметр android:updatePeriodMillis , в котором можно задать период вызова обработчика для обновления информации в виджете. И приводится пример. Я этот пример скомпилил, поставил туда что-то в районе 5 секунд - эффекта нет. Ничего не обновляется. Всё перепроверил - вроде должно работать, но не работает. Полез гуглить. Через некоторое время начал натыкаться на аналогичные стоны других начинающих разработчиков. Что выяснилось: Начиная с версии, кажется, 1.6, гугл вдруг решил, что установка маленьких значений в этом параметре будет сильно жрать батарею Поэтому любое значение меньше 30 _минут_ равно 30 минутам :) В документации об этом ни слова. Ну отлично, что я могу сказать. Вписать в документацию строчку конечно очень сложно (тикет от сентября 2009).
Погуглил ещё, переписал через AlarmManager, чтобы можно было установить любое время.

(то, как разнообразно глючит Eclipse я опускаю, чёрт с ним - я уже привык, да и Гугл тут слабо виноват)

Эмулятор. Стартует около 2 минут (не только у меня). Чего он там всё это время делает -  не знаю. Наверное, образ ROM читает побайтно, с fopen/fclose на каждый байт :)
Но если бы только это. Далее он начал постепенно умирать. Т.е. с каждым часом какие-то вещи происходили всё медленнее, потом он начал петь песни про app not responding [abort/wait] и т.п. Что с этим делать - неясно, причём всякие перезапуски/перезагрузки не помогают. Иногда он оживает в совершенно непонятные моменты, потом начинает тормозить опять. Кстати, у них в тикете от 2008 года о похожих вещах писали, но, как видно, починить не судьба (всё это не только у меня происходит - на форумах тоже народ стонет).

И еще об особенностях виджетов в Android'e. Я не знаю, особенность ли это текущей версии SDK или самой ОС, но существуют очень большие ограничения на контролы, которые можно использовать в виджете. По большому счёту, там можно лишь выводить текст с очень простой HTML разметкой (без таблиц и прочего), картинки и кнопки.
Если хочется какого-то скроллинга, анимации, нормального HTML (чтобы вывести вебстраничку) - уже не выйдет.
Именно этим объясняется такой бедный интерфейс большинства виджетов.

Владельцы HTC девайсов могут сказать - но вот у меня-то есть виджеты, которые и со скроллингом и с анимацией (например, тот который почту показывает).
Оказывается, это нечестные виджеты. Фактически, это что-то типа хака home screen.
(кстати, лишний плюс в сторону девайсов с HTC Sense и против Nexus One, скажем).

Мда, что-то я разошёлся.

В целом, всё это воскресило во мне воспоминания о написании первого приложения под Google App Engine. С одной стороны понимаешь, что всё это круто и правильно, с другой - постоянные глюки, недоделки, умолчания и прочее - очень напрягают.

Впрочем, если вы не собираетесь писать под Android, какая разница? Телефоны хорошие, приложений появляется всё больше. Интеграция с гуглосервисами достойная (кроме Google Tasks, который Google упорно игнорирует ).

Да, кто не понял - пост в целом задумывался позитивным :)

P.S. Мой Samsung i780 случайно никому не нужен? С запасным аккумулятором. Недорого.

Comments

amavlyanov
May. 6th, 2010 09:46 am (UTC)
а я поюзал Hero и пересел на N900. вот сейчас топчусь вокруг Desire - но понимаю что получу кучу проблем (и плюсов тоже много получу) вроде тотальной привязки всего и вся к сервисам гугла, отсутсвия нормального мульти-IM приложения (под N900, впрочем, оно тоже отвратительно - но хотя бы есть!), отсутсвия стандартного skype и sip приложения.

может что-то поменялось и я пропустил?
cr_it
May. 6th, 2010 12:24 pm (UTC)
skype и мульти-ИМ - да, проблема.
Просто лично я скайпом вообще не пользуюсь (никогда не понимал, зачем через компьютер говорить голосом :) а с точки зрения IM волнует только jabber и icq. Jabber (в смысле google talk) там штатный, а icq - есть ICQLive вполне работоспособный. Чтобы два в одном - что-то есть, но видимо сырое. Но это поправится со временем, наверняка.
Насчёт привязки к гуглосервисам - я бы рекомендовал расслабиться и получать удовольствие :)
Вообще, основной софт вот здесь перечислен, можно общее представление составить:
http://4pda.ru/forum/index.php?showtopic=112220
amavlyanov
May. 6th, 2010 01:44 pm (UTC)
всё-таки я привык пользоваться сервисами которые стоят на моём собственном сервере. удобнее напимер делать сортировку, да и читать мне почту лучше по imap и не зависеть от google-падений. вот это-то мне и не нравится в android: если календарь - то гугл-календарь, если почта - то гугл-почта. а поскольку google-сервисы предельно ущербны и нацелены на типичного мудака.
amavlyanov
May. 6th, 2010 01:47 pm (UTC)
вот это я по-фрейду написал. думал об одном, а писал другое %)
cr_it
May. 6th, 2010 01:53 pm (UTC)
Нам, мудакам, очень нравятся ущербные сервисы :)

p.s. вероятность падения серверов гугла заведомо ниже, чем твоих.
rdia
May. 6th, 2010 02:30 pm (UTC)
Через гугл майл, как выяснилось, совершенно невозможно переслать инсталляционный пакет разработанной софтины заказчику. Приходится на рапидшару заливать :-).
cr_it
May. 6th, 2010 02:36 pm (UTC)
Да, мы с этим сталкивались когда не могли на CC интру получить - exe'шник не доходил. В zip'e дошло без проблем.
Вообще, в Google Docs скоро можно будет любые файлы заливать и шарить:
------
Upload any file
Over the next couple of weeks, we're rolling out the ability to upload, store, and share any file in Google Docs. Your files will be stored in their original format and downloadable from anywhere. Uploading files to the cloud allows them to be safely stored and accessible at all times.
rdia
May. 6th, 2010 04:12 pm (UTC)
> В zip'e дошло без проблем.

Это уже исправили :-). Я позавчера пытался послать zip архив с невинными файлами, но необычными расширениями (файлы моделей для нашей редкой программы). Не дошло - пишет, что я гад, террорист и латентный хаскер - даже tar.gz слать бесполезно.

Я сомневаюсь, что в Google.Docs будет по-другому. В Google.Mail ведь тоже никто про цензуру не орёт. :-)
thedeemon
May. 7th, 2010 03:00 am (UTC)
В zip'e тоже не дает. Если только шифровать еще..
cr_it
May. 7th, 2010 03:51 am (UTC)
Проверил сейчас .zip в обе стороны - мгновенно дошло.
Да и не могло быть иначе - кто бы стал пользоваться почтой, в которой обычные аттачи не доходят.. Видимо, это какие-то локальные или временные глюки.
Скорее всего какие-нибудь спамофильтры по дороге зарезали.
rdia
May. 7th, 2010 04:41 am (UTC)
Проверил, посылаю со своего раб. ящика (на xxxxx.ru) на mail.goog
----- The following addresses had permanent fatal errors -----
(reason: 552-5.7.0 Our system detected an illegal attachment on your message.
Please)

----- Transcript of session follows -----
... while talking to aspmx.l.google.com.:
>>> DATA
<<< 451 4.3.0 Mail server temporarily rejected message. n7si6766600mue.15
... while talking to alt2.aspmx.l.google.com.:
>>> DATA
<<< 552-5.7.0 Our system detected an illegal attachment on your message. Please
<<< 552-5.7.0 visit http://mail.google.com/support/bin/answer.py?answer=6590 to
<<< 552 5.7.0 review our attachment guidelines. 2si1336239ywh.35
554 5.0.0 Service unavailable
Но архив не простой. - rdia - May. 7th, 2010 04:45 am (UTC) - Expand
Re: Но архив не простой. - cr_it - May. 7th, 2010 12:43 pm (UTC) - Expand
Re: Но архив не простой. - rdia - May. 7th, 2010 01:54 pm (UTC) - Expand
thedeemon
May. 7th, 2010 05:39 am (UTC)
А в архиве был исполняемый файл? Мне он именно на exe'шник в zip'e ругался.
amavlyanov
May. 29th, 2010 06:54 am (UTC)
интересно. а вообще-то через почту не стоит слать файлы. для этого есть файл-хостинги и ftp...
rdia
May. 29th, 2010 03:57 pm (UTC)
Да, да. А для пересылки DVD есть отечественная почта.

Вы регулярно сексом стоя в гамаке занимаетесь?
amavlyanov
May. 29th, 2010 04:39 pm (UTC)
слать аттачи - это как раз и есть "стоя в гамаке".
(no subject) - rdia - May. 30th, 2010 09:17 am (UTC) - Expand