18 марта 2018 г.

Android P: Возможности и API. Ч. 2: от Анимации до Переворота

    Это продолжение перевода, начатой здесь: https://myachinqa.blogspot.ru/2018/03/android-p-api-1-wi-fi-rtt-imagedecoder.html Разумеется, я снова рекомендую во-первых читать оригинал, во-вторых дождаться финальной версии статьи. Пока делался перевод второй части, я уже увидел изменения, которые Google успел сделать за несколько дней. Думаю, к релизу их будет ещё несколько.
    Чтобы хоть как-то оправдать чтение моего перевода, а не оригинала, я добавил свои комментарии, помогающие прояснить некоторые возможные вопросы.

  Анимация

    В Android P появился новый класс для отрисовки и отображения анимированных GIF и WebP — AnimatedImageDrawable. Как и в ситуации с AnimatedVectorDrawable, анимацией в AnimatedImageDrawable управляет RenderThread. Операции декодирования RenderThread выполняет в рабочем потоке, потому они не мешают самому RenderThread. Благодаря такой реализации в вашем приложении могут быть анимированные изображения и при этом нет нужды заботиться их управлением или переживать, что они будут оказывать влияние на UI поток.

13 марта 2018 г.

Форматирование карты памяти как внутренней памяти. Возвращение Android Adoptable Storage

Получаем вот этот экран
    В Android 6, кроме прочего, появилась встроенная возможность форматировать карточки памяти как часть внутренней памяти — adoptable storage. Это отлично, это удобно. Конечно, мрази-производители убирали эту возможность, но МОЖЕТ БЫТЬ решение ниже может помогать и в случае таких производителей.

    В моём же варианте речь про Android Emulator. Дело в том, что
ещё недавно образы в эмуляторе позволяли форматировать «карты памяти» так, чтобы они становились внутренней памятью. Без этого вы не можете, к примеру, выполнить простое
adb push myDir /sdcard/

11 марта 2018 г.

Android P: Возможности и API. Ч. 1: от Wi-Fi RTT до ImageDecoder

Подсвечивание новых API

    Эта статья является переводом вот этой: https://developer.android.com/preview/features.html Как и всегда раньше, я рекомендую читать оригинал. Т.к. в оригинале 100% будут изменения текста, я буду обновлять и свою статью. Так что разумнее всего читать её после релиза. И эту, и оригинал — смотря что вам удобнее.
    Кроме того, здесь лишь половина от оригинала. Вторая часть находится под заголовком «ч. 2». Так и читать попроще, и корректировать точнее.

    В Android P вводится несколько отличных фишек для пользователей и разработчиков. Этот документ кратко описывает, что нового появилось именно у разработчиков.

    Для изучения новых API, прочтите отчёт по API diff или посетите страницу со списком всех Android API — на ней новые API подсвечены, чтобы их было проще увидеть.
    Также ознакомьтесь со страницей «Изменение поведений Android P» (TODO: когда переведу и эту страницу, ссылку заменю), чтобы прикинуть, в каких местах могли быть задеты ваши приложения.

7 марта 2018 г.

Android эмулятор не запускается с ошибкой PANIC: Missing emulator engine program for 'x86' CPU

Утилита имеет множество опций,
включая аргументы quemu
    Если вы привыкли запускать Android эмулятор из командной строки (а если не привыкли — рекомендую), то могли заметить, что в последних версиях она перестала запускать самые новые эмуляторы. Скажем, она не сможет запустить эмулятор Android 8.1 на Pixel 2.
    В моём случае возникает вот такая ошибка:
umnik@myachin: > emul @Pixel_2_API_27
PANIC: Missing emulator engine program for 'x86' CPU.
    Пусть вас не смущает emul. Это просто алиас на  $ANDROID_HOME/tools/emulator. В общем, если вы столкнулись с похожей проблемой, то вот решение.