2 февраля 2016 г.

Экран блокировки с пустым паролем в Android — это не баг, а фича!

...на самом деле баг тут есть.
    В Android есть полезная (необходимая!) штука — FDE, то есть полное шифрование диска. Матчасть можно почитать здесь: https://source.android.com/security/encryption/. Ну или чуть позже в этом самом блоге, я планирую перевести статью. При использовании шифрования (в Nexus 6 и более новых, а также в некоторых устройствах сторонних производителей его предлагают использовать при первом же включении) у пользователя просят пароль*. Этим паролем устройство НЕ шифруется. И это уже интересное, так что здесь логично поставить кат.

17 января 2016 г.

В Google Play Developer Console появились промокоды

    Перевод вот этой статьи Google. Как обычно, рекомендую читать статью в оригинале, т. к. в своём переводе я могу ошибаться.

    За последние больше чем полгода в Google Play Developer Console было добавлено несколько новых инструментов, которые могут помочь в продвижении ваших продуктов. Фичи бета тестинга позволяют получить обратную связь от пользователями и помогают исправлять проблемы. В разделе экспериментов вы можете запустить A/B тестирование ваших приложений. Универсальные кампании для приложений и отчёты по активностям пользователей помогают расширять аудиторию за счёт понимания интересов пользователей и оценивать успешность маркетинга.

16 января 2016 г.

Не используйте aapt для удаления файлов из apk

    Очень короткая запись про то, что aapt не стоит использовать для модификации apk файлов, лучше 7z подтянуть или иное решение. А ещё лучше, конечно, свалить в Новую Зеландию или Таиланд на ПМЖ, чего уж тут. Открыт для ваших предложений =)

2 января 2016 г.

Chrome Custom Tabs

    Уже достаточно давно Google представила Custom Tab’ы. Чтобы не таскать конструкцию “custom tab” обзову их по своей сути – это управляемые вами (разработчиками) вкладки от браузера Chrome, но внутри ваших приложений, по типу WebView. Вы как бы заказываете у Хрома его возможности. Так что обзову их “клиентские табы”.
    Статья – перевод вот этой официальной статьи: https://developer.chrome.com/multidevice/android/customtabs Опубликован оригинал был давно, ещё 30 августа 2015, но популярности клиентские табы пока не получили. Лично у меня пока только одно приложение их использует – Talon for Twitter. А между тем это реально удобная вещь, возможности который сильно превышают возможности системного WebView. К тому же эта фишка работает быстрее ВебВью и загружается быстрее Хрома.

29 декабря 2015 г.

В Android аду есть специальное место для Samsung

    Это перевод вот этой записи: http://verybadalloc.com/android/2015/12/19/special-place-for-samsung-in-android-hell/. Как всегда, рекомендую читать в оригинале, если есть такая возможность.
    Отказ от отвественности: если вы здесь только чтобы услышать, как кто-то поносит Samsung, проматывайте вниз. И да, вы пришли по назначению.
    Если вы используете библиотеку поддержки appcompat (конечно же используете), то могли видеть вот такой стек трейс  с Статистике падений от устройств Samsung под Android 4.2.2:
java.lang.NoClassDefFoundError: android.support.v7.internal.view.menu.MenuBuilder
at android.support.v7.app.ActionBarActivityDelegateBase.initializePanelMenu(ActionBarActivityDelegateBase.java:991)
at android.support.v7.app.ActionBarActivityDelegateBase.preparePanel(ActionBarActivityDelegateBase.java:1041)
at android.support.v7.app.ActionBarActivityDelegateBase.doInvalidatePanelMenu(ActionBarActivityDelegateBase.java:1259)
at android.support.v7.app.ActionBarActivityDelegateBase.access$100(ActionBarActivityDelegateBase.java:80)
at android.support.v7.app.ActionBarActivityDelegateBase$1.run(ActionBarActivityDelegateBase.java:116)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:5299)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
at dalvik.system.NativeStart.main(Native Method)

15 ноября 2015 г.

Оптимизации Doze и App Standby

    Эта запись - неточный перевод статьи Google https://developer.android.com/training/monitoring-device-state/doze-standby.html. Обо всех найденных ошибках смело сообщайте - мне важно улучшить качество своих переводов.
    Начиная с Android 6.0 (API level 23), в Android добавлены две энергосберегающие технологии, которые увеличивают время жизни батареи, путём управление поведением приложений, когда устройство не подключено к источнику питания. Doze уменьшает потребление батареи откладыванием фоновых активностей приложений, использующих процессор и сеть, когда устройство не используется долгий период времени. App Standby откладывает использование процессора и сети приложениями, с которыми пользователь долго не взаимодействовал.
    Doze и App Standby управляют поведением всех приложений, работающих в Android 6.0 и выше, вне зависимости от того, используется TagetSdkVersion 23 или нет. Для обеспечения удобства взаимодействия пользователя с вашим приложением, протестируйте его в режимах Doze и App Standby и внесите необходимые корректировки в его код. Вся дополнительная информация под катом.

29 октября 2015 г.

Изменения в Android 6, часть вторая

    Это вторая часть перевода (первая здесь) и предупреждение тоже самое: читайте оригинал и сообщайте мне об ошибках

Изменения в Android 6.0: от букмарков до Android for Work

Условие: По тексту будет часто использоваться конструкция “Android 6.0 (API level 23)”. Её использует сам Google и, потому, использую и я. Возможно это поможет избежать ситуации, если в будущем Android 6 будет охватывать API других версий и если на одну версию API будет несколько версий Android 6.

23 октября 2015 г.

Изменения в Android 6, часть первая

    Эта запись - не точный перевод официальной статьи от Google: https://developer.android.com/intl/ja/about/versions/marshmallow/android-6.0-changes.html Если вы владеете английским языком на уровне, достаточным для комфортного чтения, лучше обратитесь к первоисточнику. Также мне будет полезно, если вы укажете на ошибки перевода, особенно в матчасти.

Изменения в Android 6.0: от пермишенов до выделения текста

    Условие: По тексту будет часто использоваться конструкция “Android 6.0 (API level 23)”. Её использует сам Google и, потому, использую и я. Возможно это поможет избежать ситуации, если в будущем Android 6 будет охватывать API других версий и если на одну версию API будет несколько версий Android 6.
   
Для реализации новых свойств и возможностей, Android 6.0 (API level 23) включает разнообразные изменения системы и изменение API. Этот документ освещает те из них, которые вам нужно понимать и которые затронут ваши приложения.
    Если вы ранее публиковали приложения под Android, будьте готовы, что изменения платформы заденут ваши приложения.

15 октября 2015 г.

Спасаемся от Андроидлокеров (Trojan-Ransom)

    Вчера ко мне обратился знакомый с проблемой, которая была когда-то популярна в Windows, а затем пришла под Android. На смартфоне работал троян-вымогатель. Он запускался вместе с самой системой и в течении трёх секунд показывал свой экран поверх всех прочих, полностью блокируя доступ к интерфейсу Андроида. Картинка справа - это как раз скриншот с моего тестового телефона. Реализовано это было штатной возможностью Device Admin. В отличие от обычных полноэкранных приложений, экран вымогателя нельзя было убрать нажатием Home или свайпом от области уведомлений и вниз. Собственно, это одна из тех возможностей, которые есть у приложения, использующего права DA.

    Однако избавиться от подобных троянов можно, если только они не заблокировали доступ паролем (хотя и здесь есть самая последняя надежда). Сделать это можно несколькими способами, но все они связаны с работой в командной строке, с подключением устройства по adb. И это не так уж сложно, даже если вы не знаете, что такое adb. И, прежде чем мы начнём, сразу скажу, где взять adb (кроме Android SDK). Вот здесь.

16 марта 2015 г.

Android Asset Packaging Tool: команды, параметры, вот это всё

    Страннота, но я не нашёл официальной документации для aapt на https://developer.android.com/. А между тем утилита нужная, когда речь идёт о работе с apk. Конечно, можно обойтись любым архиватором, но блин, кто его знает, какой баг притянет с собой этот архиватор в новой версии? В этом плане aapt мне видится более правильным.
    Итак (я вендоёб): aapt.exe 2> d:\aapt.txt и под кат.