Nokia 5800 XM -> HTC EVO 3D

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

HTC EVO 3D хоть и был выпущен два года назад, но до сих пор представляет из себя достойное устройство с весьма неплохой аппаратной начинкой с двухядерным процессором 1,2 ГГц и 1 ГБ оперативной памяти. Работает телефон под управлением Android 4.0.3. Ну и, конечно, его главная фича — это автостереоскопический экран и возможность съемки стереоизображений, благодаря наличию двух камер на борту. Минусом считаю слабую батарейку на 1730 mAh, которая ели-ели держит один день.

До этого момента я использовал Android-устройства только в качестве тестирования разрабатываемой в нашей фирме приложения. И теперь вот настало время использовать телефон по прямому назначению. Импорт контактов из моей Nokia 5800 XM не составил труда — в 5800 имеется возможность передачи контактов на другое устройство через Bluetooth, чем я и воспользовался. SMS-сообщения, правда, я переносить не стал, т.к. это требует дополнительных телодвижений. В новых версиях Android’а есть замечательная опция «Mobile Network», отключение которой позволяет запретить различным программам и службам использовать Интернет, если телефон использует только сотовую связь (актуально, если у вас нет подключенных тарифных опций по использованию Интернета, к примеру, таких как «Бит» от МТС). Звук динамика при разговоре четкий и громкий, микрофон тоже нареканий не вызывает. Вообще, функции звонков, адресной книги и передачи СМС-сообщений в Android’е сделаны неплохо и уж точно не хуже, чем в моей Nokia 5800. Теперь хотелось бы сравнить эти функции с теми, которые присутствуют в iOS. Но это, скорее всего произойдет позже, когда я куплю iPhone.

[Andriod] «response -1008:Unknown error» при оформлении платной подписки

Сегодня на работе тестировали возможность оформления платной подписки  в нашем приложении для Android. Столкнулись с проблемой, связанной с тем, что Google после совершения платежа отправлял статус с ошибкой IAB returned null purchaseData or dataSignature (response -1008:Unknown error), хотя сама подписка приобреталась успешно. Первая мысль — программист где-то накосячил в коде. Была получена клятва, что ошибок в коде нет, а виной всему Google.

Источник проблемы вскоре все же был найден. Оказывается, для совершения оформления подписок нужно использовать не метод mHelper.launchPurchaseFlow(), фигурирующий в официальной документации, а mHelper.launchSubscriptionPurchaseFlow(), который в официальной по какой-то причине отсутствует.

Задаем скорость и задержку соединения в Android-эмуляторе

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

emulator -avd <avd_name> -netspeed <up>:<down>

Готовые профили:

-netspeed gsm — GSM/CSD (up: 14.4, down: 14.4)
-netspeed hscsd — HSCSD (up: 14.4, down: 43.2)
-netspeed gprs — GPRS (up: 40.0, down: 80.0)
-netspeed edge — EDGE/EGPRS (up: 118.4, down: 236.8)
-netspeed umts — UMTS/3G (up: 128.0, down: 1920.0)
-netspeed hsdpa — HSDPA (up: 348.0, down: 14400.0)
-netspeed full — без ограничения (up: 0.0, down: 0.0)

Задержка (в миллисекундах) устанавливается так:

emulator -avd <avd_name> -netdelay :

Готовые профили:

-netdelay gprs — GPRS (min 150, max 550)
-netdelay edge — EDGE/EGPRS (min 80, max 400)
-netdelay umts — UMTS/3G (min 35, max 200)

Подробнее о команде:

emulator -help-netspeed

BlueStack как альтернатива дефолтному Android-эмулятору

Иногда для тестирования Android-приложений приходится использовать эмулятор. Порой дефолтный эмулятор из Andoid SDK оказывается настолько тормознутым, что вызывает панические приступы ненависти к нему. Поэтому в основном я использую BlueStack — очень легковесный эмулятор, со встроенной поддержкой установки приложений через Google Play. BlueStack легко подхватывается DDMS, поэтому никаких сложностей в просмотре логов и прочей информации не возникает.

Единственное, по началу было не ясно, а на какой же версии Android работает эмулятор? Оказывается, уже на устаревшей версии 2.3.4, но выбор понятен — Android 4.x более требователен к ресурсам, а это незамедлительно бы сказалось на производительности самого эмулятора и BlueStack уже не был бы явным фаворитом для работы.

Полезные ссылки:

Официальный сайт
Форум поддержки

[Android] Сбор и просмотров логов без использования ADB

Если нужно просмотреть логи на Android-устройстве, но нет доступа к ADB, то для решения этой задачи очень подойдет программа CatLog. Программа умеет записывать, сохранять и открыть уже существующие лог-файлы. Если возможность задавать уровень логгирования (все, предупреждения, только ошибки и т.п.).

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

Также в некоторых случаях может пригодится программа System Info Droid, которая позволяет собирать системную информацию об устройстве и отправлять ее по электронному адресу.

Про баг в Dropbox для iPad

Нашел интересную «особенность» в клиенте Dropbox 2.1.3 для iPad. Вот один из способов воспроизведения:

— открыть изображение -> вверху показывается навигационное меню Dropbox (название файла, шаринг и т.п.)
— не дожидаясь, когда навигационное меню автоматически скроется, вызвать список выбора файлов и дождаться, когда теперь уже навигационное меню скроется; выбрать другой файл (не изображение), к примеру, текстовый файл -> меню больше нет и его невозможно никак выбрать

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

Разработчикам отправил репорт.

Баг локализации в Instagram

В недавно обновленной версии Instagram (начиная с версии 3.4.0) добавилась поддержка локализации для 25 языков, в том числе и русском. К сожалению, без ляпов не обошлось: некоторые переведенные слова оказались явно длиннее их англоязычных аналогов, в результате чего они стали «накладываться» на другие слова. Могу с большой уверенностью предположить, что ответственные за локализацию приложения даже не удосужились посмотреть, как же стал выглядеть UI на других языках, ибо такую проблему не заметить просто невозможно.

instagram2 instagram

Про iTunes Match

Приобрел годовую подписку на iTunes Match. Цена невелика и составляет 800 руб. Преимущества очевидны: доступность музыки на всех Apple-устройствах; скачивается лишь то, что слушаем (т.е. не придется держать локально десятки ГБ музыки, все хранится в облаке); высокая степень совпадений с уже имеющимися в iTunes музыкальными композициями (соответственно, треки заменяются на более качественную по звучанию музыку). Кто-то говорит, что iTunes Match — это неофициальная легализация пиратской музыки, но я этого мнения не придерживаюсь. Все таки покупая музыку в том же iTunes, вы получаете файл с DRM-защитой от копирования, которая также подтверждает факт ее покупки.

Чтобы избежать хаоса после импорта музыки в iTunes перед отправкой в iCloud (особенно тем, кто никогда еще не использовал iTunes как медиплеер), можно проделать следующее:

1. Создать в iTunes нужный плейлист, перетащить туда соответствующие музыкальные файлы
2. Выделить в плейлисте эти файлы, ПКМ ->; «Загрузить в iCloud». После этих действий начнет работать iTunes Match: музыка будет просканирована, и если она уже имеется в магазине iTunes, то напротив трека появится статус «Совпадение», в противном случае файлы, у которых отсутствуют совпадения, будут загружены в iCloud, а напротив трека появится статус «Выгруженные».
3. Повторять пункты 1-2 до тех пор, пока не перенесете все музыкальные треки

Хорошую инструкцию по работе iTunes Match можно также найти здесь.

P.S.: локализация хромает…

iTunes_match

ADB-драйвер для Samsung Galaxy Tab

Если Windows 7 не сможет автоматически установить ADB-драйвер для Samsung Galaxy Tab, то необходимо установить набор ПО Samsung Kies, в комплекте с которым идут необходимые драйвера.