Camera Switches, Project Activate, Heads Up и другие
Google анонсировал множество обновлений для Android, которые охватывают несколько различных приложений и сервисов. Google не только добавляет новые функции, но и переносит те, что ранее были эксклюзивными для Pixel, на другие смартфоны Android.
Google запускает новую функцию под названием Camera Switches, позволяющую пользователям с двигательными нарушениями перемещаться по телефону с помощью движений глаз и мимики. Элементы управления переключателями камеры могут быть отредактированы, жесты короче или дольше установленного времени игнорируются, поэтому похоже, что у пользователей будет относительно тонкий уровень настройки для работы. Переключатели камеры можно найти в Android Accessibility Suite, как только функция будет запущена.
Также новинкой является приложение Project Activate, которое задействует движения глаз и мимические жесты, на этот раз для активации предустановленных действий, позволяющих тем, кто не разговаривает или имеет двигательные нарушения, общаться с другими.
Единственное обновление, поступившее в Google TV, является большим, так как оно позволит вам использовать свой телефон в качестве пульта дистанционного управления для вашего устройства Google TV. Это, в свою очередь, означает, что вы сможете использовать клавиатуру телефона для ввода результатов поиска. Чтобы использовать свой телефон в качестве пульта дистанционного управления на Google TV и ОС Android TV, всё, что нужно сделать, — это добавить соответствующий ярлык в быстрые настройки на вашем смартфоне.
Google также объявил сегодня, что функция Locked Folder от Pixel в будущем появится и на других телефонах Android. Заблокированная папка — довольно простая функция, поскольку она позволяет вам изолировать личные фотографии и видео в защищённой паролем папке, предотвращая их отображение в Google Фото.
Gboard оптимизирует способ копирования и вставки, при этом Google сообщает, что клавиатура автоматически сортирует скопированную информацию, содержащую несколько номеров телефонов, адресов электронной почты и URL-адресов, в набор различных вариантов вставки. Телефоны под управлением Android 11 или новее даже смогут составлять целые предложения с помощью интеллектуального ввода на базе машинного обучения.
Google также настроит параметры видимости в Nearby Share, что позволит пользователям выбирать между видимостью для всех, только для людей из списка контактов или полной невидимостью. Наконец, Google представляет режим Heads Up, который будет регулярно напоминать пользователям поднимать взгляд от телефона при использовании его на ходу.
Android Weekly — бесплатный еженедельный информационный бюллетень разработчиков Android и Kotlin
Android Weekly — бесплатный еженедельный информационный бюллетень разработчиков Android и Kotlin Теперь вы можете искать через наш
архив
!
Пожалуйста, укажите ключевое слово
- Выпуск №298
Тестирование представлений в изоляции на RoMOBOS
Атаул Муним делится отличными подробными советами по автоматическому тестированию пользовательского интерфейса с помощью тестов Espresso.
- Выпуск №296
Тестирование общих модулей Kotlin
В мультиплатформенном проекте Kotlin у вас, вероятно, есть бизнес-логика в общем модуле. который должен быть протестирован. Марчин Москала показывает, что это действительно удобно в Котлине. - Выпуск №295
Тестирование пользовательского интерфейса Android с удовольствием
Эта статья от Jovche Mitrejchevski посвящена в основном тестам пользовательского интерфейса в приложении Android с использованием Espresso. - Выпуск №295
Тестирование встроенных покупок на Android
Себастьяно Готтардо фокусируется на том, как тестировать встроенные продукты в вашем приложении. - Выпуск №293
Более быстрое продление для тестовых подписок
Чтобы сделать тестирование проще и быстрее, начиная с 20 февраля Google вводит более короткие интервалы продления для тестовых покупок, сделанных с помощью тестовых аккаунтов.
- Выпуск №291
Понимание и освоение мира тестирования Android (часть 1)
Подробное обсуждение Аритры Рой о тестировании в Android и о том, как начать свой путь к его пониманию и освоению. - Выпуск №291
Модульное тестирование реактивных сетевых запросов с использованием RESTMock
Джозиас Сена использует RESTMock для тестирования сети из-за его полезных дополнительных функций и простоты. Вот как это упростило его тестирование сети. - Выпуск №291
Тестирование Android, часть. 1,3
Игорь Климов приступает к тестированию приложений для Android с помощью Robolectric и знакомит вас с некоторыми сложными моментами. - Выпуск №290
Модульное тестирование защищенных методов жизненного цикла с Kotlin
Дэнни Преуслер демонстрирует простую технику модульного тестирования частей Activity в Kotlin (для любого кода, которого нет в Presenter или ViewModel).
- Выпуск №290
RxTest
RxTest — это библиотека Kotlin для тестирования RxJava. - Выпуск №288
Тестирование кода RxJava стало проще
Никлас Бауди демонстрирует прекрасное скрытое сокровище в RxJava 2, которое также было перенесено в RxJava 1. Это функция test(), которая позволяет вам легко тестировать потоки RxJava 2. - Выпуск №287
Чистая архитектура — Kotlin, Dagger 2, RxJava, MVVM и модульное тестирование
Хороший пост Рахула Сингха о том, как создать чистую архитектуру с помощью Kotlin, Dagger 2, RxJava, MVVM и модульного тестирования. Вы узнаете о внедрении зависимостей и о том, как осмысленно подключить все эти библиотеки и шаблоны. - Выпуск №284
Бесплатное тестирование мобильных приложений на реальных устройствах с Kobiton
Kobiton — это облако для мобильных устройств, которое позволяет вам тестировать ваше мобильное приложение на реальных устройствах Android.
Ручное, автоматизированное и DevOps тестирование. Видеозаписи и автоматически создаваемые журналы активности помогают отслеживать прогресс и быстрее решать проблемы. Подпишитесь на бесплатную пробную версию, чтобы начать тестирование! - Выпуск №284
Ферма Android-устройств в Mercari
Вот отличная статья об использовании OpenSTF для настройки фермы устройств Android для тестирования. - Выпуск №283
Тестируйте как профессионал в Kotlin
Команда Karumi опубликовала несколько ката Kotlin, которые они используют во время обучения, чтобы показать, как можно тестировать приложения. - Выпуск №282
Бесплатное тестирование мобильных приложений на реальных устройствах с Kobiton
Kobiton — это облако для мобильных устройств, которое позволяет вам тестировать ваше мобильное приложение на реальных устройствах Android. Ручное, автоматизированное и DevOps тестирование. Видеозаписи и автоматически создаваемые журналы активности помогают отслеживать прогресс и быстрее решать проблемы.
Подпишитесь на бесплатную пробную версию, чтобы начать тестирование! - Выпуск №281
Как я полюбил модульное тестирование с помощью Toothpick
Несомненно, модульные тесты помогают повысить качество вашего кода. Но написание хороших модульных тестов может оказаться непростой задачей, особенно когда у класса много зависимостей. С библиотекой внедрения зависимостей Toothpick вы можете очень хорошо уменьшить эту сложность. - Выпуск №280
Бесплатное тестирование мобильных приложений на реальных устройствах с Kobiton
Kobiton — это облако для мобильных устройств, которое позволяет вам тестировать ваше мобильное приложение на реальных устройствах Android. Ручное, автоматизированное и DevOps тестирование. Видеозаписи и автоматически создаваемые журналы активности помогают отслеживать прогресс и быстрее решать проблемы. Подпишитесь на бесплатную пробную версию, чтобы начать тестирование! - Выпуск №280
Тестирование параллелизма в RxJava
Ник Круз время от времени реализует параллельные потоки с помощью RxJava.
Вот он
погружается в пример и проверяет, действительно ли он работает одновременно. - Выпуск №280
Тестирование Android-приложений с псевдолокализацией
Узнайте, как избежать проблем с UX, таких как усеченный текст или недостаточное пространство для содержимого в приложениях. Кароль Вротняк показывает, как использовать псевдолокализацию. - Выпуск №280
Тестирование классов Room DAO
Джо Берч рассказывает о том, как мы можем писать тесты для наших классов DAO, когда мы используем Room для нашего уровня базы данных в нашем приложении. - Выпуск №278
Бесплатное тестирование мобильных приложений на реальных устройствах с Kobiton
Kobiton — это облако для мобильных устройств, которое позволяет вам тестировать ваше мобильное приложение на реальных устройствах Android. Ручное, автоматизированное и DevOps тестирование. Видеозаписи и автоматически создаваемые журналы активности помогают отслеживать прогресс и быстрее решать проблемы.
Подпишитесь на бесплатную пробную версию, чтобы начать тестирование! Выпуск №277Компоненты архитектуры Android: тестирование ViewModel LiveData
В этом посте Джо Берч объясняет, как протестировать ViewModel LiveData.- Выпуск №276
Прекратите тестирование на эмуляторах — получите доступ к реальным устройствам
Kobiton — это облако для мобильных устройств, которое позволяет тестировать мобильные, веб-приложения и гибридные приложения на реальных устройствах Android. Проверьте свой путь с помощью ручного и автоматизированного тестирования. Автоматически создаваемые журналы активности помогают отслеживать ваш прогресс. Поддерживает Appium 1.6.4. Попробуйте бесплатно — никаких обязательств не требуется. - Выпуск №276
регистр
Android-библиотека и приложение для тестирования выставления счетов в Play Store
d8 | Android Developers
d8 — это инструмент командной строки, который Android Studio и плагин Android Gradle
использовать для компиляции байт-кода Java вашего проекта в байт-код DEX, который запускается
на Android-устройствах.
d8 позволяет использовать возможности языка Java 8 в
код приложения.
d8 также включен как отдельный инструмент в Android Build.
Инструменты 28.0.1 и выше: android_sdk / инструменты сборки / версия / .
Общее использование
d8 требуется только путь к скомпилированному байт-коду Java
который вы хотите преобразовать в байт-код DEX. Например:
d8 MyProject/app/build/intermediates/classes/debug/*/*.class
Входной байт-код может быть в любой комбинации файлов *.class или
контейнеры, такие как файлы JAR, APK или ZIP. Вы также можете включить
Файлы DEX для d8 для объединения с выводом DEX, что полезно
при включении выходных данных из добавочной сборки.![]()
По умолчанию d8 компилирует байт-код Java в оптимизированные файлы DEX.
и включает отладочную информацию, которую вы можете
использовать для отладки кода во время выполнения. Тем не менее, вы можете включить необязательный
флаги для выполнения инкрементной сборки, укажите классы, которые
должны быть скомпилированы в основной файл DEX, и указать пути к
дополнительные ресурсы, необходимые для использования функций языка Java 8.
d8 путь к входным файлам [ параметры ]
В следующей таблице описаны дополнительные флаги, которые можно использовать с d8 :
| Опция | Описание |
|---|---|
--отладка | Скомпилируйте байт-код DEX, чтобы включить отладочную информацию, такую как символ отладки
столы. Этот параметр включен по умолчанию. Чтобы включить отладочную информацию в
Байт-код DEX, При компиляции файлов DEX для версии выпуска вашего приложения или
вместо этого используйте флаг |
--выпуск | Скомпилировать байт-код DEX без отладочной информации. Однако, Передайте этот флаг при компиляции байт-кода для публичного выпуска. |
--выход путь | Укажите желаемый путь для вывода DEX. По умолчанию, Если указать путь и имя файла ZIP или JAR, |
--lib android_sdk /платформы/ API-уровень /android.jar | Укажите путь к файлу android.jar вашего Android SDK.
Этот флаг требуется при компиляции байт-кода, который использует
Особенности языка Java 8.![]() |
--classpath путь | Укажите ресурсы classpath, которые d8 могут потребоваться для компиляции
файлы DEX вашего проекта. В частности, d8 требует, чтобы вы
указать определенные ресурсы при компиляции байт-кода, который использует
Особенности языка Java 8. |
--min-api номер | Укажите минимальный уровень API, который вы хотите поддерживать в выходных файлах DEX. |
--промежуточный | Передайте этот флаг, чтобы сообщить d8 , что вы не компилируете
полный набор байт-кода Java вашего проекта. Этот флаг полезен, когда
выполнение инкрементных сборок. Вместо компиляции оптимизированных файлов DEX
которые вы ожидаете запустить на устройстве, d8 создает промежуточные
DEX и сохраняет их в указанном пути вывода или пути по умолчанию.Если вы хотите скомпилировать файлы DEX, которые собираетесь запускать на устройстве, исключить этот флаг и указать путь к промежуточным классам DEX в качестве входа. |
--файл-на-класс | Скомпилируйте каждый класс в отдельные файлы DEX. Включение этого флага позволяет выполнять больше инкрементных сборок перекомпилировать только те классы, которые изменились. При выполнении добавочные сборки с использованием плагина Android Gradle, эта оптимизация включено по умолчанию. Вы не можете использовать этот флаг, одновременно указывая |
--без обессахаривания | Отключите функции языка Java 8. Используйте этот флаг, только если вы не собираетесь для компиляции байт-кода Java, который использует возможности языка Java 8. |
--main-dex-list путь | Укажите текстовый файл со списком классов Поскольку система Android сначала загружает основной файл DEX при запуске
вашего приложения, вы можете использовать этот флаг для определения приоритета определенных классов при запуске
скомпилировав их в основной файл DEX. Имейте в виду, что каждый файл DEX должен удовлетворять
опорный предел 64K. Итак, не
указать слишком много классов для основного файла DEX, или вы получите
ошибка компиляции. По умолчанию при указании классов с помощью Вы не можете использовать этот флаг, одновременно указывая |
--pg-map файл | Используйте файл в качестве файла сопоставления для распространения. |
--file-per-class-file | Создавать отдельный файл DEX для каждого входного файла .class. Сохранить синтетические классы вместе с их исходным классом. |
--desugared-lib файл | Укажите конфигурацию библиотеки с пониженным содержанием сахара. файл — это файл конфигурации библиотеки с пониженным содержанием сахара в формате JSON. |
--main-dex-rules файл | Proguard хранит правила размещения классов в основной файл DEX. |
--pg-map файл | Используйте файл в качестве файла сопоставления для распространения. |
--main-dex-list-output файл | Вывести результирующий основной список DEX в файл. |
| Принудительно включить код утверждения, сгенерированный javac .![]() |
| Принудительно отключить код подтверждения, сгенерированный javac . Этот
— это обработка по умолчанию кода утверждения javac , когда
создание файлов DEX. |
| Не изменяйте код подтверждения, сгенерированный javac . Этот
— это обработка по умолчанию кода утверждения javac , когда
создание файлов класса . |
| Изменить javac — и kotlinc — сгенерированное утверждение
код для вызова метода обработчика с каждым утверждением
ошибка вместо того, чтобы бросать ее. Указан метод обработчика как имя класса, за которым следует точка и имя метода.
метод-обработчик должен принимать один аргумент типа java. и возвращаемый тип void . |
--thread-count количество потоков | Укажите количество потоков, которые будут использоваться для компиляции. Если не указано, число основано на эвристике, принимая число ядер с учетом. |
--карта-диагностика[
: тип ] с уровня на уровень | Диагностика карты типа (по умолчанию любая) сообщается как с уровня на на уровень , где с уровня и до уровня являются одним из «информация», «предупреждение» или «ошибка» и
необязательный тип является либо простым, либо полным
Имя типа диагностики в Java. Если тип не указан,
все диагностики на уровне с уровня сопоставлены.
Обратите внимание, что фатальные ошибки компилятора не могут быть отображены. |
--версия | Распечатайте версию d8 , которую вы сейчас используете. |
--помощь | Распечатать текст справки по использованию d8 . |
Выполнение добавочных сборок
Для повышения скорости сборки во время разработки, например, для непрерывной интеграции
сборки, укажите d8 компилировать только подмножество вашего проекта Java
байт-код. Например, если вы включите индексацию для каждого класса, вы сможете перекомпилировать только
классы, которые вы изменили с момента предыдущей сборки.
d8 не может определить, какие файлы байт-кода были
модифицируется автоматически. Вам нужно указать список классов самостоятельно.Следующая команда выполняет добавочную сборку нескольких классов и включает dexing для каждого класса. Команда также указывает выходной каталог для инкрементная сборка.
d8 MainActivity.class R.class --intermediate --file-per-class --output ~/build/intermediate/dex
Когда d8 выполняет инкрементную сборку, он сохраняет дополнительную информацию в
Выход ДЭКС. d8 позже использует эту информацию для правильной обработки --main-dex-list и объединить файлы DEX во время полной сборки вашего приложения.
Например, при обработке лямбда-классов Java 8 d8 отслеживает, какие
Лямбда-классы создаются для каждого входного класса.
Во время полной сборки, когда d8 включает класс в основной файл DEX, он консультируется с метаданными, чтобы убедиться, что все
лямбда-классов, созданных для этого класса, также включены в основной
DEX-файл.
Если вы уже скомпилировали весь байт-код вашего проекта в файлы DEX
для нескольких добавочных сборок выполните полную сборку, передав
каталог промежуточных файлов DEX в d8 , как показано в следующей команде.
Кроме того, вы можете указать классы, которые вы хотите d8 скомпилировать в основной
DEX-файл с использованием --main-dex-list . Поскольку вход представляет собой набор файлов, которые
уже скомпилирован в байт-код DEX, эта сборка должна завершиться быстрее
чем чистая сборка.
d8 ~/build/intermediate/dex --release --main-dex-list ~/build/classes.txt --output ~/build/release/dex
Компиляция байт-кода, который использует функции языка Java 8
d8 позволяет использовать функции языка Java 8
в вашем коде с помощью процесса компиляции под названием desugaring .
Дешугаризация конвертирует
эти полезные языковые функции в байт-код, который может работать на Android
Платформа.
Android Studio и подключаемый модуль Android Gradle включают путь к классам
ресурсы, которые d8 требует включить для вас обессахаривание. Однако при использовании d8 из командной строки, нужно включить их самостоятельно.
Одним из таких ресурсов является файл android.jar из целевого Android SDK. Этот
Ресурс включает в себя набор API-интерфейсов платформы Android. Укажите его путь, используя
флаг --lib .
Другим ресурсом является набор байт-кода Java, скомпилированный в ваш проект, который вы в настоящее время не компилируются в байт-код DEX, но требуют компиляции других классы в байт-код DEX.
Например, если ваш код использует стандартные и статические методы интерфейса, которые являются
8, вам нужно использовать этот флаг, чтобы указать путь ко всем вашим
байт-код Java проекта, даже если вы не собираетесь компилировать весь байт-код
в байт-код DEX.

Вот он
погружается в пример и проверяет, действительно ли он работает одновременно.
Подпишитесь на бесплатную пробную версию, чтобы начать тестирование! 


Вместо компиляции оптимизированных файлов DEX
которые вы ожидаете запустить на устройстве, 
Это особенно полезно
при поддержке устаревшего мультидекса, потому что только классы в основном DEX
файл доступен во время выполнения до тех пор, пока устаревшая библиотека multidex не будет
загружен.
формат.
Этот
— это обработка по умолчанию кода утверждения
lang.Throwable
Если тип не указан,
все диагностики на уровне с уровня сопоставлены.
Обратите внимание, что фатальные ошибки компилятора не могут быть отображены.