isUserAGoat(): шутка Google

Среди встроенных в Android SDK инструментов автоматизированного тестирования есть небольшая утилитка monkey. Это своего рода симулятор бешеной обезьяны, которой попал в лапы смартфон с запущенным приложением: утилита генерирует мощный поток случайных тычков, жестов и нажатий кнопок. Если приложение в таком режиме не рухнуло и не зависло, то сей факт уже говорит о некотором качестве.

Боевой Бибизян
Что ломать изволите?

При этом самому тестируемому приложению оставлена возможность определить запуск monkey с целью подтасовать результаты. Шутка: с целью предотвратить излишние последствия при таком тестировании, разумеется. Скажем, файловый менеджер может перед удалением каталога проверить: а человек ли требует выполнить эту операцию? Если до удаления случайно дотыкалась автоматическая обезьяна, то лучше этого всё же не делать. Отвечает за проверку статический метод isUserAMonkey() класса ActivityManager, но документирован он плохо.

Читать далее

Следствие сопрут колобки: почему Google Play всё-таки помойка

В моём тяжёлом детстве, помимо деревянных игрушек и горшка ручкой внутрь, было ещё много обидных и досадных вещей. Например, мультфильм «Следствие ведут Колобки». Нет-нет, сам по себе мульт был истинным шедевром, но имел огромный недостаток: он состоял из четырёх мини-серий, а по телевизору почему-то всегда шли только первые две, до севшего на телефон Коллеги.

Как, и больше ничего не покажут?!
Как, и больше ничего не будет?!

Обломно это было до невероятности, и я даже долго сомневался в существовании третьей и четвёртой серии. Но как-то раз их всё-таки показали (видимо, по недосмотру), и я до сих пор помню этот момент приобщения к тайному знанию — окончанию истории!

Затем Колобки как-то само собой переименовались в братьев Пилотов, город Энск раскрылся как Бердичев, а по мотивам мультфильма вышел квест-паззл «Братья Пилоты: по следам полосатого слона», который я с великим удовольствием проходил несколько раз (даже диск у меня был вроде как лицензионным, что для тех времён удивительно). И когда этот самый квест обнаружился в Android-приложениях на Google Play, я без раздумий потратил на него 69 рублей (прописью: шестьдесят девять) и с радостью погонялся за иностранцем с табуреткой ещё раз. Ну а после зашёл на страницу приложения — поставить пятёрку.

Далее настроение скатывалось стремительным домкратом: я с ужасом читал оставленные нашими людьми комментарии.

Читать далее

Главное — не чихать! GDG DevFest 2013

Инда наступил ноябрь. Засупонилось красно солнышко, заталдыкнуло лучи свои обратно, откуда взялись… В стране наступил День Народного Единства, в младших классах школ — каникулы, а у разработчиков — GDG DevFest 2013.

Плакат в фойе
Плакат в фойе

Последний пришёл практически столь же внезапно, как на коммунальные службы напрыгивает в декабре зима: письмо с оповещением свалилось в ящик за пять дней до мероприятия, а если бы я не оставил когда-то свой адрес на GDG DevFest’12 — то и не знаю, как бы догадался о его проведении. А подтверждение участия и вовсе приползло накануне в 19:00, когда многие уже начинали строить альтернативные планы на завтра. Впрочем, других вопросов по организации я не имею: в этом году всё сделано гораздо аккуратнее, чем было в предыдущем. Чего стоит одна лишь доступная в любое время кофемашина!

Читать далее

Google Play не подключается: что ещё сделать?

Что ж, начну с неприятного предположения: допустим, у вас не подключается Google Play Market (пишет «подключение отсутствует», «проверьте соединение» или «не удалось подключиться к серверу»), а установка правильного времени не сработала, или время уже было правильным. Что же всё-таки сделать для восстановления работы сервисов от гугла?

Без маркета — как без рук!
Без маркета — как без рук!

Здесь я приведу (и буду пополнять) некий чеклист, по которому при проблемах подключения следует пройтись в первую очередь. Идите по нему именно в том порядке, в котором перечислены пункты, не перескакивая (единственное исключение — если ставили freedom, то можно сразу читать раздел про /etc/hosts).

Тема, как показывает практика, оказалась востребованной.

Итак…

Читать далее

Google Play: подключение отсутствует?

The planet is fine. The people are f*cked.

George Carlin

Обратите внимание: у этой статьи есть более полная версия

Нам всегда неприятно если что-то не работает. А если мы не понимаем причин — то неприятно вдвойне.

Вот вы включаете своё Android-устройство (в моём случае это оказался старенький Samsung Galaxy Tab 7.0, что не принципиально), успешно соединяетесь с сетью, можете открывать сайты в браузере, но… Google Play пишет «подключение отсутствует», его примеру следуют Gmail, Google Maps и все прочие гуглосервисы. Узнали свою ситуацию?

Информативность ошибки — просто потрясающая. Как так — отсутствует?! А что же я тогда вижу на экране?! Да-да, вот тут, в браузере! Почему же гуглу это соединение не нравится?

Что ж, не буду долго томить, раскрою секрет: гугловские приложения в большинстве случаев просто не могут проверить корректность сертификата из-за неправильно установленного на устройстве времени! Т.е. сеть есть, и Google отвечает, но андроиду этот ответ кажется подозрительным из-за больших расхождений во времени на устройстве и на сервере. А все сомнения трактуются в пользу безопасности: соединение не устанавливается. Вот и «отсутствует» подключение.

Итого, решение: выставить правильное время, или включить его синхронизацию с сетью (Настройки → Дата и время). Очень важно к тому же указать верный часовой пояс! И всё магически начинает работать в тот же момент.

Настройки даты и времени, включено использование NTP
Настройки даты и времени, включено использование NTP

P.S. Эта заметка приобрела определённую популярность, потому хочу сказать в дополнение: увы, я не гарантирую что именно этот метод поможет. Google Play показывает одну и ту же ошибку для всех возможных проблем (видимо, там работают очень ленивые люди, которых ломает сделать несколько сообщений), и вполне могут быть необходимы другие методы лечения. Но судя по комментариям — именно проблема с установкой времени как раз и выдаёт «подключение отсутствует» у большинства.

 Если же проблема сохраняется, то у материала есть продолжение:

Google Play не подключается: что ещё сделать?

GDG DevFest и жизнь по закону

Вернулся вчера с московского GDG DevFest, — далеко не пафосного мероприятия, зачем-то проведённого в этом году в одном из самых приторно-шикарных мест столицы. В конференц-центре той самой гостиничной вышки, что капитально испортила вид с Красной площади.

GDG DevFest Moscow

Я не буду повторять нареканий по недоступному в необеденное время кофе, не буду и повторять жалобы на нехватку еды — это мелочи, относящиеся всего лишь к элементам комфорта. Сами выступления докладчиков прошли хорошо, всем им — огромное спасибо, более того — не скажу насчёт секции web-разработки, но в отделении Android полезен был даже вводный доклад Android Quick Dive для абсолютных новичков: из него удалось узнать о появлении нового класса DPI (xxhdpi). Сам бы я на это обратил внимание ещё не скоро. Я отмечу немного другое.

Слайд доклада
Доклад в разгаре

Был там доклад Максима Юдина о монетизации Android-приложений (сиречь о продаже их на Google Play), явно потрясший аудиторию куда больше прочих. Речь в нём зашла об угодных Богу и Налоговой Инспекции методах получения своих заработаных денег, с учётом октябрьских изменений… и, не побоюсь предположить — это сломало мечты и грёзы многих присутствующих.

Читать далее