Разное

Java studio android: Download Android Studio & App Tools

Как работает Android. Введение для Java-разработчиков

Среди программистов на Java то и дело слышны разговоры о разработке под Android. Именно Android держит Java на первом плане в последние несколько лет. Насколько же важно понимать или знать Android для разработчиков на Java? Ну, зависит от того, нравится ли вам разработка приложений и хотите ли вы, чтобы вашими приложениями пользовалось множество людей. Если да, то Android даст вам эту возможность. Количество телефонов под управлением операционной системы Android исчисляется миллионами и продолжает расти быстрее, чем число iPhone с iOS. Это значит, что для Java-разработчика очень даже имеет смысл научиться программировать под Android, чему эта статья как раз и посвящена. Кроме того, это одна из хороших причин вообще научиться программировать на Java. Из этого обзора вы узнаете основы работы Android, без лишних подробностей, но в достаточном объеме. Одно очевидное преимущество Java-разработчиков над остальными – то, что API Android очень похоже на API языка Java, и Android поддерживает если не все доступные в J2SE SDK классы, то, по крайней мере, наиболее важные.

Еще одно преимущество: вы можете использовать для разработки под Android те же инструменты, что и для Java. Например, IDE Eclipse, ведь Google предоставляет для Eclipse плагин для разработки приложений Android. В начале работы с Android, имеет смысл заглянуть в такие руководства, как Head First Android Development и Android in Action (3-е изд.) – две лучшие книги по Android для Java-разработчиков.

Напротив, если вы захотите заняться разработкой под iOS, вас ждёт непростой процесс изучения языка Objective-C и SDK iOS. Мне кажется, переход на Objective-C и iOS имеет больше смысла для C++-разработчика, чем для «джависта». Так что классическая война между Java и C++ продолжается благодаря разработке приложений для смартфонов. В любом случае давайте разберемся в особенностях внутреннего функционирования Android.

Как работает Android?

Как я уже упоминал, в операционной системе Android для разработки приложений используется Java. Вы можете написать код приложения для Android с помощью предоставляемого Google API Java, который затем будет скомпилирован в файлы классов. На этом схожесть заканчивается. Android не использует виртуальную машину Java (JVM) для выполнения файлов классов, вместо этого, в нём используется виртуальная машина Dalvik, не являющаяся истинной JVM и не работающая с Java-байткодом. Для выполнения на виртуальных машинах Dalvik, файлы классов компилируются в формат DEX (Dalvik EXecutable – исполняемые файлы Dalvik). После преобразования в формат DEX, файлы классов вместе с другими ресурсами объединяются в пакеты Android (APK) для распространения и инсталляции на различных устройствах. Главное, что следует знать: в основе базовой библиотеки классов виртуальной машины Dalvik лежит подмножество проекта Apache Harmony, вследствие чего она не поддерживает всё API J2SE. Если вы используете для написания кода приложений под Android IDE Eclipse, можете особо не волноваться, поскольку там есть автодополнение кода.

Теперь давайте разберемся, как приложения Android выполняются на устройствах.

Как приложения Android выполняются на устройствах?

Если вам знакома операционная система Linux и понятие процесса, вам будет несложно понять, как выполняются Android-приложения. По умолчанию, операционная система Android присваивает каждому приложению уникальный идентификатор пользователя. После запуска приложений Android, каждое из них выполняется в своём процессе, в своей собственной виртуальной машине.

По мере необходимости, операционная система Android управляет запуском и остановом процессов приложений. Это значит, что все приложения Android работают изолированно друг от друга, но, разумеется, могут запрашивать доступ к аппаратным и другим системным ресурсам. Если вы знакомы с разработкой мобильных приложений, допустим, в J2ME, то, наверняка, сталкивались с понятием прав доступа (permissions). При установке или запуске приложения Android, оно запрашивает права, необходимые для доступа к интернету, телефонной книге или другим системным ресурсам. Пользователь явным образом предоставляет эти права, иначе в действии будет отказано. Все эти права доступа описываются в файле манифеста приложения Android. В отличие от Java, манифест Android представляет собой XML-файл, в котором перечислены все компоненты приложения и настройки для них. Четыре основных компонента приложения Android: активности, сервисы, поставщики контента и широковещательные приемники (broadcast receivers). Из них чаще всего встречаются активности, соответствующие отдельной экранной форме приложения Android. Например, в игре для операционной системы Android может быть несколько экранов: для входа в систему, рекордов, инструкций и экран самой игры. Каждый из этих элементов соответствует различным активностям в вашем приложении.

Как и в Java, в ОС Android хорошо то, что она выполняет некоторые задачи вместо разработчика, например, создает объекты активностей. За организацию активностей отвечает класс System. Если нужно запустить активность, достаточно вызвать метод startActivity() с объектом Intent в качестве параметра.

В ответ на этот вызов, класс System или создаст новый объект активности или повторно использует старый. Аналогично сборке мусора в языке Java, отвечающей за чрезвычайно важную задачу повторного использования памяти, Android управляет запуском, остановом, созданием и уничтожением приложений. Может показаться, что он слишком сильно их ограничивает, но это не так. Android предоставляет события жизненного цикла, которые можно переопределять для вмешательства в этот процесс. Вот и всё о том, как работает Android. Java-разработчику, безусловно, имеет смысл изучить Android, поскольку эта система использует Java, так что вы сможете воспользоваться своими знаниями методик программирования на Java, паттернами проектирования и рекомендуемыми практиками для создания хороших приложений Android. Конечно, вам придется приспособиться к некоторым специфическим для Android вещам, но это придёт само собой со временем. Итак, чего же вы ждёте? Вперёд, изучайте Android и пишите ваше первое Android-приложение HelloWorld! Наконец, можете взглянуть на некоторые хорошие книги, посвященные основам разработки на Android, например, Head First Android Development – лучшую из посвященных Android книг.
Источник: Introduction of How Android Works for Java Programmers

что лучше учить Android разработчику?

Противостояние Java и Kotlin – одна из самых громких тем последних лет. С одной стороны Java – вариант, проверенный временем и повсеместно применяемый, с другой у Kotlin есть свои преимущества. Оба языка программирования используются в разработке программ для устройств, работающих на платформе Андроид.

Преимущества языка Java

Разработка Android-приложений на Java дает и разработчикам, и пользователям широкий перечень преимуществ. С применением платформы можно получать программы, которые на 100% совместимы с разными типами машин, без проблем работают с ОС Linux, Windows, Android.

Java сообщество – одно из наиболее влиятельных во всем мире. Язык программирования:

  • универсальный;
  • простой в изучении;
  • платформенно независимый;
  • позволяет писать программы-модули;
  • применяется в сетевом программировании;
  • динамичный, эффективный;
  • дает гарантии безопасности.

При написании приложений на Java код получается многословным и длинным, что нравится не всем. Сам процесс написания при этом постоянно упрощается, становится все более ясным и четким. Это минимизирует вероятность ошибок.

Трактовки конструкций Java преимущественно простые, имеют однозначное прочтение. После обновлений старые коды не ломаются. Это выгодно отличает язык Джава от того же Свифт. Java – хороший выбор для новичка. Комьюнити огромное, в свободном доступе много учебных материалов (платные и бесплатные).

Особенности разработки мобильных приложений на Kotlin

Android разработка на Kotlin пользуется не меньшим спросом, чем Джава. Создатель языка – компания JetBrains, Котлин на Google I/O официально анонсирован как второй язык Android. Есть поддержка рабочих отношений с облачной платформой Грэдл Спринг, Гугл. Создатели Kotlin утверждают, что приложения могут быть намного более увлекательными, разработка быстрой и интересной. Пока что сообщество языка постоянно увеличивается.

Язык программирования Котлин имеет такие преимущества и предоставляет следующие возможности:

  • коды открытые, внедрения бесплатные;
  • программы применяют фреймворки, библиотеки Джава;
  • доступны компиляции в байткод JVM, JavaScript;
  • процесс изучения простой;
  • уровень безопасности высокий;
  • преобразование Джава в Котлин происходит автоматически.

Благодаря Kotlin приложение будет работать корректно, независимо от кода ревью. Написание кодов короткое и выразительное.  Есть интегрированная поддержка от IDE (полный перечень опций). Для сравнения – то, что в Джава размещается на нескольких строках, тут занимает только одну.

Чем Kotlin лучше?

С особенностями каждого языка программирования мы разобрались, теперь рассмотрим их конкурентные преимущества.

Kotlin– передовой язык программирования. Он имеет повышенную производительность, интуитивный и последовательный синтаксис, улучшающий скорость проведения работ. Для создания деплоймента готовой программы нужно меньше строк с кодом и, соответственно, времени.

Совместимость Котлин и Джава 100%, то есть методы Джава можно легко вызывать из Котлин. Это плюс для разработчиков и организаций-заказчиков с кодовой базой Джава. Поддержка языка простая, поскольку он интегрирован в IDE, SDK. Перечень инструментов для работы можно использовать стандартный.

Последние версии имеют обратную совместимость с предыдущими. Это обуславливает надежность кодов, избавляет разработчиков от необходимости постоянной доработки кодов разных версий. В изучении Котлин намного проще Джавы, наличие знаний в вопросе разработки приложений для смартфонов не обязательно.

Android Studio дает расширенную поддержку для Kotlin, полный перечень инструментов адаптации. Программисты могут работать на Kotlin с Java одновременно. При этом скорость компиляции кода может колебаться, что не всегда удобно. Поддержка сообщества достаточная, хотя у Джавы она больше. Пока что на популярном языке работает не так много разработчиков. Нужно уделить внимание основным функциям и созданию приложений с их применением. .

Чем Java лучше Kotlin?

У Java есть свои плюсы, которые можно вынести в ряд конкурентных преимуществ перед Kotlin. Первый – портируемость. С применением виртуальной машины Джава программы на языке запускаются в любой системе. Максимальная совместимость обуславливает лидерство языка разработчика в сегменте создания Android-приложений.

Сообщество Джава огромное. Благодаря ресурсам типа GitHub, Стак Оверфлоу разработчик может получить быструю помощь и поддержку по любой проблеме. Язык кроссплатформенный и подходит для создания соответствующих приложений. Доступен широкий перечень готовых библиотек, SDK для упрощения разработки.

Отстает Java в плане скорости реализации текущих задач. Нужно больше памяти в сравнении с Котлин и другими языками программирования, работа достаточно медленная. Компонентов в коде много, поэтому итоговый результат длинный и тяжелый, часто содержит ошибки, баги.

Так что же – Kotlin убьет Java? Пока что об этом говорить рано. Джава – известный язык, который справляется с поставленными задачами, имеет широкий набор библиотек, инструментов с открытыми исходными кодами. Он не совершенный, но минусы есть у каждого языка программирования.

Минус Java в сложности – он позиционируется как база для начинающих, но есть намного более простые варианты для работы. Котлин можно освоить быстрее, и он улучшает экосистему Java. Отдельного внимания заслуживает стабильность Kotlin, его соответствие инструментам Android Studio. Некоторые разработчики считают, что в будущем язык может вытеснить старую добрую Джаву. Пока что говорить о таких переменах рано. Каждый вариант имеет свои слабые, сильные стороны, решает определенные задачи. Есть проекты, где важны функции и компоненты обоих вариантов. 

Выводы

Java и Kotlin – самые популярные языки для разработки всех типов приложений на смартфоны, планшеты, работающие под ОС Андроид. Они имеют свои сильные, слабые стороны, которые следует учитывать при выборе. Есть смысл выбирать оптимальный вариант для каждой конкретной задачи. Так в Java есть примитивные типы (не классы), статические члены, частные выделенные поля, отмеченные перечни исключений, Wildcard – эти опции не доступны в Котлин. Зато в Kotlin есть синглтоны, готовые шаблоны строк, удобное расширение, безопасность стандарта Null, умные смарт касты.

Разработчикам будет полезно владеть обоими языками, регулярно обновлять знания, навыки с учетом последних трендов. Сейчас преимущество в Андроид-разработке сохраняется за Java, но в будущем все может поменяться. Использовать Kotlin проще и удобнее Джавы, программный код будет короче фактически в полтора раза. Также Котлин исключает некоторые ошибки, неизбежные при реализации текущих задач, упрощает обнаружение других. Разработчик тратит меньше времени при сопоставимых результатах.


сдкменеджер | Android Developers

sdkmanager — это инструмент командной строки, который позволяет вам просматривать, устанавливать, обновить и удалить пакеты для Android SDK. Если вы используете Android Studio, то вам не нужно использовать этот инструмент, и вместо этого вы можете управлять своим Пакеты SDK из IDE.

Инструмент sdkmanager предоставляется в Пакет инструментов командной строки Android SDK. Чтобы использовать SDK Manager для установки версии инструментов командной строки, выполните следующие действия:

  1. Загрузите последнюю версию «только инструменты командной строки» пакет со страницы загрузок Android Studio и распакуйте пакет.
  2. Переместите разархивированный каталог cmdline-tools в новый каталог. на ваш выбор, например android_sdk . Этот новый каталог является вашим Каталог Android SDK.
  3. В разархивированном каталоге cmdline-tools создайте подкаталог с именем последний .
  4. Переместить исходный cmdline-tools содержимое каталога, включая каталог lib , каталог bin , файл NOTICE. txt и файл source.properties в недавно созданный последний каталог . Теперь вы можете использовать командную строку инструменты из этого места.
  5. (необязательно) Чтобы установить предыдущую версию инструментов командной строки, запустите следующую команду:

      android_sdk  /cmdline-tools/latest/bin/sdkmanager --install "cmdline-tools;  версия "
     
    Замените версия версией, которую вы хотите установить, например 5.0 . Примечание. Для локального использования можно использовать последние пакеты . Для скриптов выберите конкретную версию, чтобы обеспечить стабильность.

Usage

Вы можете использовать sdkmanager для просмотра списка установленных и доступных пакетов, установить пакеты и пакеты обновлений. Дополнительные сведения см. в следующих разделах.

Список установленных и доступных пакетов

Чтобы вывести список установленных и доступных пакетов, используйте следующий синтаксис:

sdkmanager --list [  вариантов  ] \
           [--channel=  channel_id  ] // Каналы: 0 (стабильный), 1 (бета), 2 (разработка) или 3 (канареечный)
 

Используйте опцию канала , чтобы включить пакет из канала до и в том числе channel_id . Например, укажите канареечный канал для отображения пакеты со всех каналов.

Примечание: Чтобы перечислить только стабильные пакеты, используйте --channel=0 или удалите --channel вариант целиком.

Установка пакетов

Для установки пакетов используйте следующий синтаксис:

sdkmanager  пакеты  [  вариантов  ]
 

Аргумент пакетов представляет собой путь в стиле SDK, как показано с помощью команда --list , заключенная в кавычки. Например, "инструменты сборки; 33.0.1" или "платформы; android-33" .

Вы можете передать несколько пакетов пути, разделенные пробелом, но каждый из них должен быть заключен в собственный набор кавычки. Например, вот как установить новейшие инструменты платформы и инструменты SDK для уровня API 33:

 sdkmanager «инструменты платформы» «платформы; android-33»
 

Кроме того, вы можете передать текстовый файл, в котором указаны все пакеты:

sdkmanager --package_file=  package_file  [  вариантов  ]
 

package_file 9Аргумент 0017 — это расположение текстового файла, в котором каждая строка представляет собой путь пакета для установки в стиле SDK (без кавычек).

Чтобы удалить, добавьте флаг --uninstall :

sdkmanager --uninstall  пакетов  [  вариантов  ]
sdkmanager --uninstall --package_file=  package_file  [  вариантов  ]
 

Чтобы установить CMake или NDK, используйте следующий синтаксис:

sdkmanager --установить
           ["ndk;  майор  .   младший  .  сборка  [ суффикс   ]" | "cmake;  майор  .  младший  .  микро  .  сборка  "]
           [--channel=  channel_id  ] // Каналы NDK: 0 (стабильный), 1 (бета) или 3 (канареечный)
 

Например, используйте следующую команду для установки указанной версии NDK независимо от того, на каком канале он сейчас находится:

sdkmanager --install "ndk;21.3.6528147" --channel=3 // Установить NDK с канареечного канала (или ниже)
sdkmanager --install "cmake;10.24988404"//Установить определенную версию CMake
 

Обновить все установленные пакеты

Чтобы обновить все установленные пакеты, используйте следующий синтаксис:

sdkmanager --update [  вариантов  ]
 

Принять лицензии

Вы должны принять необходимую лицензию для каждого имеющегося у вас пакета установлен. Этот шаг происходит во время процесса установки, когда вы устанавливаете пакеты из Android Studio.

Если у вас не установлена ​​Android Studio или она предназначена для сервера CI или другое безголовое устройство Linux без установленного графического интерфейса, выполните следующее из командной строки:

sdkmanager --licenses
 

Это предлагает вам принять все лицензии, которые еще не были приняты.

Опции

В следующей таблице перечислены доступные опции для команд, перечисленных в предыдущем разделе:

Опция Описание
--sdk_root= путь Используйте указанный путь SDK вместо пакета SDK, содержащего это средство.
--channel= идентификатор_канала Включить пакеты в каналы до channel_id включительно. Доступный каналы:

0 (стабильная версия), 1 (бета-версия), 2 (разработка), и 3 (Канарейка).

--include_obsolete Включить устаревшие пакеты в список пакетов или обновления пакетов. Для использования с --список и --обновить только .
--no_https Принудительно использовать для всех подключений протокол HTTP, а не HTTPS.
--новее С --list показывать только новые или обновляемые пакеты.
--подробный Подробный режим вывода. Печатаются ошибки, предупреждения и информационные сообщения.
--proxy={http | носки} Подключиться через прокси данного типа: либо http для протоколы высокого уровня, такие как HTTP или FTP, или socks для прокси-сервера SOCKS (V4 или V5).
--proxy_host={ IP-адрес | DNS_адрес } IP-адрес или DNS-адрес используемого прокси-сервера.
--proxy_port= номер_порта Номер порта прокси для подключения.
Примечание: Если вы хотите установить пакеты для операционной системы, отличной от текущей машины, установите REPO_OS_OVERRIDE переменная среды либо "windows" , "macosx" , либо "linux" .

Использовать языковые функции и API Java 8

Плагин Android Gradle версии 3.0.0 и более поздних версий поддерживает все языковые функции Java 7 и подмножество языковых функций Java 8, которые зависят от версии платформы. Когда создавая приложение с помощью плагина Android Gradle 4.0.0 и выше, вы можете использовать некоторые API языка Java 8, не требуя минимального уровня API для вашего приложение.

На этой странице описаны функции языка Java 8, которые вы можете использовать, а также как правильно настройте свой проект для их использования и любые известные проблемы, с которыми вы можете столкнуться. В следующем видео представлен обзор возможностей языка Java 8.

Примечание: При разработке приложений для Android с использованием Java 8 языковые функции необязательны. Вы можете сохранить источник и цель вашего проекта значения совместимости установлены на Java 7, но вам все равно необходимо скомпилировать с использованием JDK 8.

Плагин Android Gradle предоставляет встроенную поддержку для использования определенных Java 8 функции языка и сторонние библиотеки, которые их используют. Цепочка инструментов по умолчанию реализует новые возможности языка, выполняя преобразования байт-кода, называемые desugar , как часть компиляции D8/R8 файлов классов в код DEX, как показано на рисунке 1.

Рисунок 1. Поддержка функций языка Java 8 с использованием desugar преобразования байт-кода. Примечание: Ваш выбор уровня байт-кода — это баланс между функциональностью и сборкой. скорость. Байт-код уровня 6 имеет более быструю сборку и меньше функции, в то время как уровень байт-кода 7 имеет баланс функций и скорости сборки, а байт-код 8 более многофункционален с более медленными сборками.

Поддержка функций языка Java 8 (плагин Android Gradle 3.0.0+)

Чтобы начать использовать поддерживаемые функции языка Java 8:

  1. Обновите плагин Android Gradle до 3.0.0 или выше.
  2. Для каждого модуля, использующего Java 8 особенности языка (либо в его исходном коде, либо через зависимости), обновите файл модуля build. gradle или build.gradle.kts , как показано ниже:

Groovy

андроид {
    ...
    // Настраивать только для каждого модуля, использующего Java 8
    // особенности языка (либо в его исходном коде, либо
    // через зависимости).
    compileOptions {
        исходная совместимость JavaVersion.VERSION_1_8
        целевая совместимость JavaVersion.VERSION_1_8
    }
    // Для проектов Котлин
    котлиноптионс {
        jvmTarget = "1.8"
    }
}
 

Котлин

андроид {
    ...
    // Настраивать только для каждого модуля, использующего Java 8
    // особенности языка (либо в его исходном коде, либо
    // через зависимости).
    compileOptions {
        исходная совместимость = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }
    // Для проектов Котлин
    котлиноптионс {
        jvmTarget = "1. 8"
    }
}
 

При создании приложения с помощью подключаемого модуля Android Gradle 3.0.0 и более поздних версий плагин не поддерживает все функции языка Java 8. Следующий язык функции доступны на любом уровне API:

Функция языка Java 8 Примечания
Лямбда-выражения Android не поддерживает сериализацию лямбда-выражения.
Ссылки на методы  
Типовые обозначения Информация об аннотации типа доступна только во время компиляции, не во время выполнения. Платформа поддерживает ТИП в уровне API 24 и ниже, но не ElementType.TYPE_USE или Тип Элемента.TYPE_PARAMETER .
Стандартные и статические методы интерфейса  
Повторяющиеся аннотации  

В дополнение к этим функциям языка Java 8, плагин Android Gradle версии 3. 0.0 и выше расширяют поддержку попробуйте -with-resources для всех уровней Android API.

Desugar не поддерживает MethodHandle.invoke или MethodHandle.invokeExact . Если ваш исходный код или одна из зависимостей вашего модуля использует один из этих методов, нужно указать minSdkVersion 26 или выше. В противном случае вы получаете следующая ошибка:

 Dex: Ошибка преобразования байт-кода в dex:
Причина: вызов полиморфного сигнатурного метода без --min-sdk-version >= 26
 

В некоторых случаях ваш модуль может не использовать вызов или invokeExact методы, даже если они включены в библиотечную зависимость. Продолжать использовать эта библиотека с minSdkVersion 25 или ниже, включить сжатие кода, чтобы удалить неиспользованные методы. Если это не сработает, рассмотрите возможность использования альтернативной библиотеки, которая не использует неподдерживаемые методы.

Функции языка Java 8+ для дешугаринга в Android Gradle плагин 3.0.0 и выше и не делает никаких дополнительных классов и API (например, java.util.stream.* ), доступный для использования в более старых версиях Android. Поддержка частичной дешугаризации Java API доступна в Android Gradle. плагин 4.0.0 или выше, как описано в следующем разделе.

Поддержка дешугаринга API Java 8+ (подключаемый модуль Android Gradle 4.0.0+)

Если вы создаете приложение с помощью подключаемого модуля Android Gradle 4.0.0 или более поздней версии, плагин расширяет поддержку использования ряда языковых API Java 8 без требующий минимального уровня API для вашего приложения.

Эта дополнительная поддержка для более старых версий платформы возможна, потому что подключаемый модуль 4. 0.0 и выше расширяет механизм дешугаринга, чтобы также десахарировать язык Java. API. Вы можете включить стандартные языковые API, которые были доступны только в последние выпуски Android (например, java.util.streams ) в приложениях, поддерживающих старые версии андроида.

При создании приложения с помощью Android поддерживается следующий набор API. Плагин Gradle 4.0.0 или выше:

  • Последовательные потоки ( java.util.stream )
  • Подмножество java.time
  • java.util.функция
  • Последние дополнения к java.util.{Map,Collection,Comparator}
  • Дополнительно ( java.util. Дополнительно , java.util.OptionalInt и java.util.OptionalDouble ) и некоторые новые классы
  • Некоторые дополнения к java. util.concurrent.atomic (новые методы на AtomicInteger , AtomicLong и AtomicReference )
  • ConcurrentHashMap (с исправлениями ошибок для Android 5.0)

Полный список поддерживаемых API см. API-интерфейсы Java 8+ доступны через дешугаринг.

Для поддержки этих языковых API подключаемый модуль компилирует отдельный файл DEX. который содержит реализацию отсутствующих API и включает его в ваше приложение. Процесс дешугаринга переписывает код вашего приложения, чтобы вместо этого использовать эту библиотеку в время выполнения.

Чтобы включить поддержку этих языковых API в любой версии Android платформа:

  1. Обновите плагин Android Gradle до 4.0.0 (или выше).
  2. Включите следующее в свой модуль приложения build.gradle или build. gradle.kts файл:

Groovy

андроид {
    defaultConfig {
        // Требуется при установке minSdkVersion на 20 или ниже
        мультидексенаблед правда
    }
    compileOptions {
        // Флаг для включения поддержки новых языковых API
        coreLibraryDesugaringEnabled true
        // Устанавливает совместимость с Java на Java 8
        исходная совместимость JavaVersion.VERSION_1_8
        целевая совместимость JavaVersion.VERSION_1_8
    }
}
зависимости {
    coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.2.2'
}
 

Котлин

андроид {
    defaultConfig {
        // Требуется при установке minSdkVersion на 20 или ниже
        мультидексэнаблед = истина
    }
    compileOptions {
        // Флаг для включения поддержки новых языковых API
        // Для AGP 4.1+
        isCoreLibraryDesugaringEnabled = истина
        // Для AGP 4. 0
        // coreLibraryDesugaringEnabled = true
        // Устанавливает совместимость с Java на Java 8
        исходная совместимость = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }
}
зависимости {
    coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:1.2.2")
}
 

Обратите внимание, что вам также может понадобиться включить предыдущий фрагмент кода в библиотеку модуль build.gradle или build.gradle.kts , если:

  • Инструментированные тесты библиотечного модуля используют эти языковые API (либо напрямую или через библиотечный модуль или его зависимости). Это так, что отсутствующие API предоставляются для вашего инструментального тестового APK.

  • Вы хотите запустить lint для библиотечного модуля изолированно. это чтобы помочь lint распознает допустимое использование языковых API и не сообщает о ложных предупреждения.

Также обратите внимание, что обессахаривание API можно сочетать с усадкой, но только при использовании термоусадки R8.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *