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 и под кат.