API-интерфейсы Java 11+ доступны через очистку от сахара с минимальной спецификацией.

Android Studio включает поддержку использования ряда API-интерфейсов Java 11+ без требования минимального уровня API для вашего приложения. Это означает, что если вы используете API, представленный в Android 13 (уровень API 33), код также будет работать во всех предыдущих версиях. Большинство API-интерфейсов, появившихся в Android за последние годы, поддерживаются в Android 13. С помощью процесса, называемого очисткой API , компилятор DEX (D8) позволяет включать больше API-интерфейсов стандартного языка в приложения, поддерживающие более старые версии Android.

Обессеривание API поддержки Java 11 осуществляется в трех вариантах:

  • Минимальная версия включает только пакет java.util.function и заменяющие классы для некоторых параллельных коллекций платформы Android, в которых имеются известные проблемы на старых устройствах.
  • Версия по умолчанию фактически представляет собой обновленную версию API-интерфейса Java 8 для очистки от сахара, обновленную до Java 11. Она включает пакеты java.time и java.util.stream в дополнение ко всему, что есть в минимальной версии.
  • Версия nio включает пакет java.nio в дополнение ко всему, что есть в версии по умолчанию.

В следующей таблице с возможностью поиска показано, какие библиотеки Java 11+ доступны при использовании последней версии подключаемого модуля Android Gradle с зависимостью coreLibraryDesugaring , установленной на com.android.tools:desugar_jdk_libs_minimal:2.0.1 (дополнительную информацию см. в разделе «Очистка API» ). Установите это свойство в файле build.gradle или build.gradle.kts .

Пакет +
Сорт,
Перечисление,
или Интерфейс
Конструкторы,
Характеристики,
и методы
Примечания
java.util.concurrent


Конкурентхэшмап.
Кейсетвиев


  • public boolean add(Object e)
  • public boolean addAll(Collection c)
  • public boolean contains(Object o)
  • public boolean equals(Object o)
  • public void forEach(Consumer action)
  • public Object getMappedValue()
  • public int hashCode()
  • public Iterator iterator()
  • public boolean remove(Object o)
  • public Spliterator spliterator()

Некоторые методы (8), присутствующие в Android T, не поддерживаются.

java.util.concurrent


ConcurrentHashMap


  • public ConcurrentHashMap()
  • public ConcurrentHashMap(int initialCapacity)
  • public ConcurrentHashMap(
    int initialCapacity, float loadFactor)
  • public ConcurrentHashMap(
    int initialCapacity,
    float loadFactor,
    int concurrencyLevel)
  • public ConcurrentHashMap(Map m)
  • public void clear()
  • public Object compute(
    Object key, BiFunction remappingFunction)
  • public Object computeIfAbsent(
    Object key, Function mappingFunction)
  • public Object computeIfPresent(
    Object key, BiFunction remappingFunction)
  • public boolean contains(Object value)
  • public boolean containsKey(Object key)
  • public boolean containsValue(Object value)
  • public Enumeration elements()
  • public Set entrySet()
  • public boolean equals(Object o)
  • public void forEach(
    long parallelismThreshold, BiConsumer action)
  • public void forEach(
    long parallelismThreshold,
    BiFunction transformer,
    Consumer action)
  • public void forEach(BiConsumer action)
  • public void forEachEntry(
    long parallelismThreshold, Consumer action)
  • public void forEachEntry(
    long parallelismThreshold,
    Function transformer,
    Consumer action)
  • public void forEachKey(
    long parallelismThreshold, Consumer action)
  • public void forEachKey(
    long parallelismThreshold,
    Function transformer,
    Consumer action)
  • public void forEachValue(
    long parallelismThreshold, Consumer action)
  • public void forEachValue(
    long parallelismThreshold,
    Function transformer,
    Consumer action)
  • public Object get(Object key)
  • public Object getOrDefault(
    Object key, Object defaultValue)
  • public int hashCode()
  • public boolean isEmpty()
  • public Set keySet()
  • public ConcurrentHashMap.KeySetView keySet(
    Object mappedValue)
  • public Enumeration keys()
  • public long mappingCount()
  • public Object merge(
    Object key,
    Object value,
    BiFunction remappingFunction)
  • public static ConcurrentHashMap.KeySetView newKeySet()
  • public static ConcurrentHashMap.KeySetView newKeySet(
    int initialCapacity)
  • public Object put(Object key, Object value)
  • public void putAll(Map m)
  • public Object putIfAbsent(Object key, Object value)
  • public Object reduce(
    long parallelismThreshold,
    BiFunction transformer,
    BiFunction reducer)
  • public Object reduceEntries(
    long parallelismThreshold,
    Function transformer,
    BiFunction reducer)
  • public Map.Entry reduceEntries(
    long parallelismThreshold, BiFunction reducer)
  • public double reduceEntriesToDouble(
    long parallelismThreshold,
    ToDoubleFunction transformer,
    double basis,
    DoubleBinaryOperator reducer)
  • public int reduceEntriesToInt(
    long parallelismThreshold,
    ToIntFunction transformer,
    int basis,
    IntBinaryOperator reducer)
  • public long reduceEntriesToLong(
    long parallelismThreshold,
    ToLongFunction transformer,
    long basis,
    LongBinaryOperator reducer)
  • public Object reduceKeys(
    long parallelismThreshold, BiFunction reducer)
  • public Object reduceKeys(
    long parallelismThreshold,
    Function transformer,
    BiFunction reducer)
  • public double reduceKeysToDouble(
    long parallelismThreshold,
    ToDoubleFunction transformer,
    double basis,
    DoubleBinaryOperator reducer)
  • public int reduceKeysToInt(
    long parallelismThreshold,
    ToIntFunction transformer,
    int basis,
    IntBinaryOperator reducer)
  • public long reduceKeysToLong(
    long parallelismThreshold,
    ToLongFunction transformer,
    long basis,
    LongBinaryOperator reducer)
  • public double reduceToDouble(
    long parallelismThreshold,
    ToDoubleBiFunction transformer,
    double basis,
    DoubleBinaryOperator reducer)
  • public int reduceToInt(
    long parallelismThreshold,
    ToIntBiFunction transformer,
    int basis,
    IntBinaryOperator reducer)
  • public long reduceToLong(
    long parallelismThreshold,
    ToLongBiFunction transformer,
    long basis,
    LongBinaryOperator reducer)
  • public Object reduceValues(
    long parallelismThreshold, BiFunction reducer)
  • public Object reduceValues(
    long parallelismThreshold,
    Function transformer,
    BiFunction reducer)
  • public double reduceValuesToDouble(
    long parallelismThreshold,
    ToDoubleFunction transformer,
    double basis,
    DoubleBinaryOperator reducer)
  • public int reduceValuesToInt(
    long parallelismThreshold,
    ToIntFunction transformer,
    int basis,
    IntBinaryOperator reducer)
  • public long reduceValuesToLong(
    long parallelismThreshold,
    ToLongFunction transformer,
    long basis,
    LongBinaryOperator reducer)
  • public Object remove(Object key)
  • public boolean remove(Object key, Object value)
  • public Object replace(Object key, Object value)
  • public boolean replace(
    Object key, Object oldValue, Object newValue)
  • public void replaceAll(BiFunction function)
  • public Object search(
    long parallelismThreshold,
    BiFunction searchFunction)
  • public Object searchEntries(
    long parallelismThreshold,
    Function searchFunction)
  • public Object searchKeys(
    long parallelismThreshold,
    Function searchFunction)
  • public Object searchValues(
    long parallelismThreshold,
    Function searchFunction)
  • public int size()
  • public String toString()
  • public Collection values()

Полностью реализованный класс.

java.util.concurrent


ThreadLocalСлучайный


  • public static ThreadLocalRandom current()
  • public DoubleStream doubles()
  • public DoubleStream doubles(
    double randomNumberOrigin,
    double randomNumberBound)
  • public DoubleStream doubles(long streamSize)
  • public DoubleStream doubles(
    long streamSize,
    double randomNumberOrigin,
    double randomNumberBound)
  • public IntStream ints()
  • public IntStream ints(
    int randomNumberOrigin, int randomNumberBound)
  • public IntStream ints(long streamSize)
  • public IntStream ints(
    long streamSize,
    int randomNumberOrigin,
    int randomNumberBound)
  • public LongStream longs()
  • public LongStream longs(long streamSize)
  • public LongStream longs(
    long randomNumberOrigin, long randomNumberBound)
  • public LongStream longs(
    long streamSize,
    long randomNumberOrigin,
    long randomNumberBound)
  • protected int next(int bits)
  • public boolean nextBoolean()
  • public double nextDouble()
  • public double nextDouble(double bound)
  • public double nextDouble(
    double origin, double bound)
  • public float nextFloat()
  • public double nextGaussian()
  • public int nextInt()
  • public int nextInt(int bound)
  • public int nextInt(int origin, int bound)
  • public long nextLong()
  • public long nextLong(long bound)
  • public long nextLong(long origin, long bound)
  • public void setSeed(long seed)

Полностью реализованный класс.

java.util.function


Бипотребитель


  • public abstract void accept(Object p0, Object p1)
  • public BiConsumer andThen(BiConsumer after)

Полностью реализованный класс.

java.util.function


Бифункция


  • public BiFunction andThen(Function after)
  • public abstract Object apply(Object p0, Object p1)

Полностью реализованный класс.

java.util.function


Бипредикат


  • public BiPredicate and(BiPredicate other)
  • public BiPredicate negate()
  • public BiPredicate or(BiPredicate other)
  • public abstract boolean test(Object p0, Object p1)

Полностью реализованный класс.

java.util.function


БинарныйОператор


  • public static BinaryOperator maxBy(
    Comparator comparator)
  • public static BinaryOperator minBy(
    Comparator comparator)

Полностью реализованный класс.

java.util.function


Логическое значениеПоставщик


  • public abstract boolean getAsBoolean()

Полностью реализованный класс.

java.util.function


Потребитель


  • public abstract void accept(Object p0)
  • public Consumer andThen(Consumer after)

Полностью реализованный класс.

java.util.function


DoubleBinaryОператор


  • public abstract double applyAsDouble(
    double p0, double p1)

Полностью реализованный класс.

java.util.function


Двойной потребитель


  • public abstract void accept(double p0)
  • public DoubleConsumer andThen(DoubleConsumer after)

Полностью реализованный класс.

java.util.function


ДаблФункция


  • public abstract Object apply(double p0)

Полностью реализованный класс.

java.util.function


ДаблПредикат


  • public DoublePredicate and(DoublePredicate other)
  • public DoublePredicate negate()
  • public DoublePredicate or(DoublePredicate other)
  • public abstract boolean test(double p0)

Полностью реализованный класс.

java.util.function


ДвойнойПоставщик


  • public abstract double getAsDouble()

Полностью реализованный класс.

java.util.function


Даблтоинтункция


  • public abstract int applyAsInt(double p0)

Полностью реализованный класс.

java.util.function


DoubleToLongFunction


  • public abstract long applyAsLong(double p0)

Полностью реализованный класс.

java.util.function


Двойной унарный оператор


  • public DoubleUnaryOperator andThen(
    DoubleUnaryOperator after)
  • public abstract double applyAsDouble(double p0)
  • public DoubleUnaryOperator compose(
    DoubleUnaryOperator before)
  • public static DoubleUnaryOperator identity()

Полностью реализованный класс.

java.util.function


Функция


  • public Function andThen(Function after)
  • public abstract Object apply(Object p0)
  • public Function compose(Function before)
  • public static Function identity()

Полностью реализованный класс.

java.util.function


IntBinaryOperator


  • public abstract int applyAsInt(int p0, int p1)

Полностью реализованный класс.

java.util.function


IntConsumer


  • public abstract void accept(int p0)
  • public IntConsumer andThen(IntConsumer after)

Полностью реализованный класс.

java.util.function


Интфункция


  • public abstract Object apply(int p0)

Полностью реализованный класс.

java.util.function


ИнтПредикат


  • public IntPredicate and(IntPredicate other)
  • public IntPredicate negate()
  • public IntPredicate or(IntPredicate other)
  • public abstract boolean test(int p0)

Полностью реализованный класс.

java.util.function


IntSupplier


  • public abstract int getAsInt()

Полностью реализованный класс.

java.util.function


IntToDoubleFunction


  • public abstract double applyAsDouble(int p0)

Полностью реализованный класс.

java.util.function


IntToLongFunction


  • public abstract long applyAsLong(int p0)

Полностью реализованный класс.

java.util.function


ИнтУнарныйОператор


  • public IntUnaryOperator andThen(
    IntUnaryOperator after)
  • public abstract int applyAsInt(int p0)
  • public IntUnaryOperator compose(
    IntUnaryOperator before)
  • public static IntUnaryOperator identity()

Полностью реализованный класс.

java.util.function


Длинныйбинарныйоператор


  • public abstract long applyAsLong(long p0, long p1)

Полностью реализованный класс.

java.util.function


ДлинныйПотребитель


  • public abstract void accept(long p0)
  • public LongConsumer andThen(LongConsumer after)

Полностью реализованный класс.

java.util.function


Лонгфункция


  • public abstract Object apply(long p0)

Полностью реализованный класс.

java.util.function


Длинный предикат


  • public LongPredicate and(LongPredicate other)
  • public LongPredicate negate()
  • public LongPredicate or(LongPredicate other)
  • public abstract boolean test(long p0)

Полностью реализованный класс.

java.util.function


ДлинныйПоставщик


  • public abstract long getAsLong()

Полностью реализованный класс.

java.util.function


LongToDoubleFunction


  • public abstract double applyAsDouble(long p0)

Полностью реализованный класс.

java.util.function


Лонгтоинтункция


  • public abstract int applyAsInt(long p0)

Полностью реализованный класс.

java.util.function


ЛонгУнарныйОператор


  • public LongUnaryOperator andThen(
    LongUnaryOperator after)
  • public abstract long applyAsLong(long p0)
  • public LongUnaryOperator compose(
    LongUnaryOperator before)
  • public static LongUnaryOperator identity()

Полностью реализованный класс.

java.util.function


ObjDoubleПотребитель


  • public abstract void accept(Object p0, double p1)

Полностью реализованный класс.

java.util.function


ObjIntConsumer


  • public abstract void accept(Object p0, int p1)

Полностью реализованный класс.

java.util.function


ObjLongConsumer


  • public abstract void accept(Object p0, long p1)

Полностью реализованный класс.

java.util.function


Предикат


  • public Predicate and(Predicate other)
  • public static Predicate isEqual(Object targetRef)
  • public Predicate negate()
  • public static Predicate not(Predicate target)
  • public Predicate or(Predicate other)
  • public abstract boolean test(Object p0)

Полностью реализованный класс.

java.util.function


Поставщик


  • public abstract Object get()

Полностью реализованный класс.

java.util.function


ToDoubleBiFunction


  • public abstract double applyAsDouble(
    Object p0, Object p1)

Полностью реализованный класс.

java.util.function


ToDoubleFunction


  • public abstract double applyAsDouble(Object p0)

Полностью реализованный класс.

java.util.function


ТоИнтБиФункция


  • public abstract int applyAsInt(Object p0, Object p1)

Полностью реализованный класс.

java.util.function


ТоИнтФункция


  • public abstract int applyAsInt(Object p0)

Полностью реализованный класс.

java.util.function


ToLongBiFunction


  • public abstract long applyAsLong(
    Object p0, Object p1)

Полностью реализованный класс.

java.util.function


ToLongFunction


  • public abstract long applyAsLong(Object p0)

Полностью реализованный класс.

java.util.function


УнарныйОператор


  • public static UnaryOperator identity()

Полностью реализованный класс.