Показаны сообщения с ярлыком Android. Показать все сообщения
Показаны сообщения с ярлыком Android. Показать все сообщения

вторник, 26 марта 2013 г.

Google/Android, what....? слоупок в действии

Понадобилось сделать экран настроек в андроидном приложении. Все стандартно, нативно и довольно просто, если верить документации...казалось бы что может быть проще дропдауна со списком возможных значений? Делал это уже сто раз, но вот только в этот раз все было не так как всегда. Механизм создания списка довольно прост: даем массив для титлов и даем массив значений. И вот тут-то и начинается веселье. Если верить документации, ну и здравому смыслу, в массив значений мы можем закинуть все, что хотим: цифири, буквы, или тот же булеан. И вот все это замечательно работает до тех пор пока платформа не решает, что вы хотите ее обмануть. А решает это она в тот самый момент, когда после парсинга значения, она обнаруживает, что вы ей подсунули не строку, а число!!!, или булеан!!!(true, false). Как только вы добавляете любую букву к провинившемуся значению, т.е. делаете его не-числом, то все сразу начинает работать.

Сижу...курю...чухаю макушку....

Ну, думаю, наверное нужно вынести этот цифровой массив значений в отдельный файл-ресурс, где конкретно лежат числа. Сделал, запустил - то же самое, тупо крашится приложение. Полез искать корни и первым же результатом поиска сам Гугль выдал мне всю скорбь и боль моих братьев по оружию(как раз эту песню слушал в это время) - официальный тикет по этому багу . И, о майн гот, этому багу 4!!! года и никто его не чинит. Более того, в системе у него средний приоритет и тип "улучшение"...Народ там друг друга поздравляет с очередной годовщиной тикета. Ну и я не удержался и тоже отметился.

Т.е. чтобы сохранить число и с ним потом работать, мне придется добавлять к нему какой-то символ, который потом от него отрезать...вот даже не могу сказать, когда я последний раз на столько извращался, чтобы всего лишь иметь возможность получить корректное значение из дропдауна. Но спасибо Гуглю и Ко - они не дают нам, зажравшимся разработчикам, скучать и обрастать жирком. Очередной им низкий поклон за это...жизнь была бы скучна, а так я почти час мозг тренировал и заставлял серое вещество похлюпывать между ушными раковинами...Ну ничего, я им это еще припомню:)

воскресенье, 17 февраля 2013 г.

Андроидный официоз

Хорошо все-таки иметь официальные девайсы от производителя. В этом случае обнова операционки приходит в течение недели. Это замечательно. В такие моменты понимаю владельцев официальных iPhone и искренне жалею джейл-брейщиков:) Вот и у меня на двух Нексусах теперь стоить 4.2.2
Что делать с этим счастьем, еще не знаю:), но душа радуется.

четверг, 11 октября 2012 г.

Incredible Android

Все больше и больше поражаюсь многообразию андроид-платформы, а именно тому, как на свое усмотрение производители девайсов отключают важные элементы системы или доводят их до невменяемого состояния.
Сейчас плотно работаю с двумя вещами: камера и сеть.
Камера - это боль и стоны и анальный секс кекс андроид-разработчиков. Базовые примеры из SDK могут запросто(а зачастую они так и делают) не работать чуть ли не на топово-флагманских девайсах. Вот, например краткий список:
- Samsung Galaxy S3 - фронтальная камера пишет зеленое видео, хак на это пока не нашел
- Samsung Galaxy S2 и Note - задняя камера пишет зеленое видео пока не поставишь хардкодный параметр в "1" в определенный момент времени
- LG3D, Optimus и еще какой-то  - зум на фронтальной камере не работает, хотя метод isZoomSupported железобетонно возвращает true
- Motorolla DEFY + - зум вроде как бы работает, но при начале записи он просто сбрасывется в 0.
И еще много, много аналогичных примеров, которые просто ставят в тупик. В результате чего некоторые фичи приходится отключать не просто для конкретных девайсов, а чуть ли не для всей линейки конкретного производителя. Так, например, у меня для всех LG отключен контрол зума для фронтальной камеры.
Во время тестирования таких вещей очень хорошо делать отсылку к приложению Camera, которое идет с firmware. Я задаю тогда один каверзный вопрос и, мысленно вознося молитву к Гуглу, надеюсь, что в нативном приложении эта фийча не работает. В 90% случаях именно так и происходит, тогда вопрос реализации таких вещей на девайсах, которые не поддерживают этого аут-оф-зе-бокс сразу отпадает. А вообще меня очень сильно умиляет момент, когда на телефоне за 600уе невозможно сделать видео-съемку с использованием зума.

Теперь поговорим о сети. Есть задача написать пингер, который будет выцеплять из сети девайсы с запущенным "нашим" приложением. "Ну что ж тут сложного?", подумал я и, вспомнив курс Сетей из универа, написал небольшой пингер, которы по UDP шлет броадкаст. Но и тут вмешались могучие и злющие производители телефонов и, в казалось бы такой фундаментальной вещи как работа с сетью, тоже наваляли дров. К примеру:
- на моем Galaxy Nexus(флагмане от Google) я не могу параллельно читать и писать из/в UDP сокет, но я спокойно могу это делать на Samsung Ace, на девайсе, который на порядок проще/дешевле/хуже моей "прелести"
- HTC Desire попросту отказывается принимать броадкасты. Как оказалось, таким образом HTC заботится о своих пользователях, дабы их батареечки не разряжались. Чинится это только кастомными проишвками, например cyanogenmod. И так делают не только они.

Одним словом, чем больше педалю под Андроид, тем больше я уверен в том, что сделал правильный выбор. Ну разве можно представить себе такие проблемы под iPhone? Та ни в жизнь.

пятница, 10 августа 2012 г.

На выходных приобщился к прекрасному и, наконец-то, заполучил в свою собственность Asus Transformer TF300 в купе с SD карточкой на 32Gb, док-клавиатурой и замечательным кейсом, в который это все складывается и получается нетбука с временем работы минимум 10 часов.

Что меня больше всего интересовало в такой комплектации - это как оно юзать планшет в качестве нетбука, и могу сказать, что просто замечательно. На клаве можно делать практически все то же самое, что и на PCшной, точпад замечательно помогает в навигации по окружению(я уже молчу, что можно подключить мышку к USB-порту и использвать ее).

Сразу же после зарядки-включения-сборки подключил внешний винт и преспокойно открыл mkvшный видос в HD кач-ве...."лепота" одним словом. Теперь я его ласково называю "моя прелесть":)
Малому выделил отдельный рабочий стол с его игрушками и запаролил все приложения, дабы не шарился и не сбрасывал настройки:)

Рекомендую всем страждущим и неопределившимся с выбором планшета.

среда, 25 июля 2012 г.

один вечер из жизни Android-девелопера-оптимиста

Вот не могу я понять Гугл...Как мальчишка я радостно с криками "ура! наконец-то!" встретил сообщение о том, что в 4.1 наконец-то появилось API для работы с видео/аудио на уровне кодеков.

Запасся попкорном и начал смотреть конфу по этой теме заново(во время Google IO 2012 не получилось в онлайне ейную глянуть)! Я сладко похрюкивал, когда рассказывали о mediaextractore и форматах данных, у меня уже чесались руки писать код, когда дело зашло о кодеках, но периодически вырывалось WTF, когда объясняли, что по timeline нужно идти почему-то не по-кадрово, а с оффсетом в милисекундах. Даже ffmpeg знает, что по видео/аудио трекам нужно ходить по-фреймово, так какого хрена, мы должны это делать с оффсетом в милисекундах?!!!

Ну ладно, думаю, проехали, разберемся, посмотрим, что будет дальше....а дальше ничего больше не было...все. Т.е. ребятки, мы вам дали механизму извелечение треков, т.е. банальный демюксер, какой-то набор кодеков, который зависит от производителя девайсов и галимый воркераунд енкодинга/декодинга данных. А что, вам разве еще что-то нужно? Да вы совсем о.ерели что ли?!!! Вы хотите в файл это обратно сохранять? Ну, блин, у вас и запросы, нет уж, пишите это сами, мы такого не знаем.

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

Гуглу слава, и будьте вы прокляты....

вторник, 14 июня 2011 г.

Андроид приложение

Не прошло и трех месяцев с даты моего поста про первое приложение на маркете, как я решил-таки и выложил свое второе приложение под названием Naughty Cities.
В двух словах о приложении: каталог злачных мест по разным городам:)
Используются следующие технологии:
- XML
- Google Maps
- Google Routes
- Google Street View
- Wikitude
- Sqlite
- Multi-Threading
- GPS

Вот такая у меня сегодня радость!:)

вторник, 12 апреля 2011 г.

первое приложение на Android Market

Как-то совсем забыл сообщить общественности о своем первом удачном запущенном приложении на маркете.
Называется оно RCHobby и направлена на моделистов. Аппликуха довольно простая - читает данные с нескольких твиттер-аккаунтов и выводит их в единый список. Так же есть баннеро-крутилка и разные кнопочки внизу, которые в зависимости от активности аккаунтов позволяют слать письмы, смотреть видео и все-такое разное.

Одним словом - первый нах!:)

суббота, 26 марта 2011 г.

Android emulator, GPS...

Ребята, будете вдруг педалить что-нить связанное с ЖПСом на эмуляторе, имейте в виду - эта гадость не будет придимать координаты от DDMS, если эмулятор и проект настроены на версию платформы меньше чем 2.2.
Убил на это уйму времени.
Полезнные ссылки на эту тему:
1. ссылка раз
2. ссылка два, в которой собсна и говорится об этой проблеме.

Ай да Андроид, ай да сукин сын!

четверг, 10 марта 2011 г.

Android и C/C++

Очень полезная статейка про то, как же все-таки поставить и запустить у себя проект под Андроид с использованием нативного кода на С/С++.

Больше всего убивает то, что Гугль про это ну ни мур-мур.