Android studio change sdk version

Содержание
  1. How To Change API SDK Level In Android Studio
  2. How to change API SDK level in Android Studio
  3. Уровень Android API, обратная и прямая совместимость
  4. Уровень API
  5. От исходного кода к APK-файлу
  6. DEX файлы и Android Runtime
  7. compileSdkVersion
  8. minSdkVersion
  9. targetSdkVersion
  10. SDK Platform Tools release notes
  11. Downloads
  12. Revisions
  13. 31.0.3 (August 2021)
  14. 31.0.2 (April 2021)
  15. 31.0.1 (March 2021)
  16. 31.0.0 (February 2021)
  17. 30.0.5 (November 2020)
  18. 30.0.4 (July 2020)
  19. 30.0.3 (June 2020)
  20. 30.0.2 (June 2020)
  21. 30.0.1 (May 2020)
  22. 30.0.0 (April 2020)
  23. 29.0.6 (February 2020)
  24. 29.0.5 (October 2019)
  25. 29.0.4 (September 2019)
  26. 29.0.3 (September 2019)
  27. 29.0.2 (July 2019)
  28. 29.0.1 (June 2019)
  29. 29.0.0 (June 2019)
  30. 28.0.2 (March 2019)
  31. 28.0.1 (September 2018)
  32. 28.0.0 (June 2018)
  33. 27.0.1 (December 2017)
  34. 27.0.0 (December 2017)
  35. 26.0.2 (October 2017)
  36. 26.0.1 (September 2017)
  37. 26.0.0 (June 2017)
  38. 25.0.5 (April 24, 2017)
  39. 25.0.4 (March 16, 2017)
  40. 25.0.3 (December 16, 2016)
  41. 25.0.2 (December 12, 2016)
  42. 25.0.1 (November 22, 2016)
  43. 25.0.0 (October 19, 2016)
  44. 24.0.4 (October 14, 2016)
  45. Download Android SDK Platform-Tools
  46. Terms and Conditions
  47. 1. Introduction
  48. 2. Accepting this License Agreement
  49. 3. SDK License from Google
  50. 4. Use of the SDK by You
  51. 5. Your Developer Credentials
  52. 6. Privacy and Information
  53. 7. Third Party Applications
  54. 8. Using Android APIs
  55. 9. Terminating this License Agreement
  56. 10. DISCLAIMER OF WARRANTIES
  57. 11. LIMITATION OF LIABILITY
  58. 12. Indemnification
  59. 13. Changes to the License Agreement
  60. 14. General Legal Terms
  61. Download Android SDK Platform-Tools
  62. Terms and Conditions
  63. 1. Introduction
  64. 2. Accepting this License Agreement
  65. 3. SDK License from Google
  66. 4. Use of the SDK by You
  67. 5. Your Developer Credentials
  68. 6. Privacy and Information
  69. 7. Third Party Applications
  70. 8. Using Android APIs
  71. 9. Terminating this License Agreement
  72. 10. DISCLAIMER OF WARRANTIES
  73. 11. LIMITATION OF LIABILITY
  74. 12. Indemnification
  75. 13. Changes to the License Agreement
  76. 14. General Legal Terms
  77. Download Android SDK Platform-Tools

How To Change API SDK Level In Android Studio

Basically, API level means the Android version. This defines for which version you are targeting your application and what is going to be the minimum level of android version in your application will run. For setting Minimum level and Maximum level android studio provides two terminologies.

minSdkVersion means minimum Android OS version that will support your app and targetSdkVersion means the version for which you are actually developing your application. Your app will be compatible with all the version of android which are falling between minimum level SDK and target SDK.

How to change API SDK level in Android Studio

For changing the API level in android we have two different Approaches, let’s check both one by one:

Approach 1 To Change SDK API Level in Android Studio:

Step 1: Open your Android Studio, and go to Menu. File >Project Structure.

Step 2: In project Structure window, select app module in the list given on left side.

Step 3: Select the Flavors tab and under this you will have an option for setting “Min Sdk Version” and for setting “Target Sdk Version”.

You can check the name of version too in the drop down list while selecting the API level that makes the selection more clearer for anyone. Because sometimes remembering numbers is bit messy.

Step 4: Select both the versions and Click OK.

Approach 2 To Change API (Android Version) in Android Studio:

That will be pretty straight forward, but you need to stay very alert while making changes here.

Step 1: if you are project is opened in android option then select open Gradle Scripts > build.gradle(Module: app)

if you are in project View then click on your project folder > app > build.gradle

Step 2: Here you have to change minimum and Maximum sdk level as per your requirement. check the below given code:

Step 3: Click on Sync Now and You are ready to go.

Note: If you are choosing the First Approach then you need not to make changes in Gradle. It will automatically update the gradle.

Источник

Уровень Android API, обратная и прямая совместимость

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

Если вы читаете эту статью, значит вас могут интересовать такие вещи, как:

  • Что означает уровень API?
  • Как использовать compileSdkVersion , minSdkVersion или targetSdkVersion ?
  • Как можно гарантировать, что приложение будет работать правильно на устройствах с разными версиями ОС?

Все эти понятия связаны друг с другом, и я постараюсь объяснить их вам в этой статье простым, но эффективным способом.

Для этого необходимо понимать разницу между SDK и API и знать что такое уровень API в экосистеме Android.

Это правда, что в Android между SDK и API существует отношение 1:1, и часто эти два термина используются как синонимы, но важно понимать, что это не одно и то же.

Правильнее говорить, что для каждой версии Android есть SDK и эквивалентный API, а также уровень этого API.

Расшифровывается как Software Development Kit (комплект для разработки программного обеспечения). Обратите внимание на слово «kit» (комплект)… он как раз представляет из себя набор различных инструментов, библиотек, документации, примеров, помогающих разработчикам создавать, отлаживать и запускать приложения для Android. API предоставляется вместе с SDK.

Если открыть SDK Manager в Android Studio, можно будет яснее увидеть, из чего состоит Android SDK.

На первой вкладке SDK Platform перечислены SDK каждой версии Android.

Как показано на рисунке ниже, Android 9.0 SDK (также известный как Pie) содержит:

  • Android SDK Platform 28 (это API фреймворка).
  • Исходный код для Android 28 (это реализация API, как вы видите, она не является обязательной… запомните это).
  • и еще куча других вещей… например, различные системные образы для эмулятора Android.


Обзор SDK в Android Studio SDK Manager.

Читайте также:  Icon pack android minimalism

На второй вкладке SDK Tools показаны другие инструменты, которые также являются частью SDK, но не зависят от версии платформы. Это означает, что они могут быть выпущены или обновлены отдельно.

Расшифровывается как Application Programming Interface (программный интерфейс приложения). Это просто интерфейс, уровень абстракции, который обеспечивает связь между двумя разными «частями» программного обеспечения. Он работает как договор между поставщиком (например, библиотекой) и потребителем (например, приложением).

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

Уровень API

Уровень API — это целочисленное значение, однозначно идентифицирующее версию API фреймворка, предлагаемую платформой Android.

Обычно обновления API фреймворка платформы разрабатываются таким образом, чтобы новая версия API оставалась совместимой с более ранними версиями, поэтому большинство изменений в новом API являются аддитивными, а старые части API становятся устаревшими, но не удаляются.

И теперь кто-то может задаться вопросом…

если API Android не предоставляет реализацию, а SDK Manager предлагает необязательный загружаемый исходный код API в составе SDK, то где находится соответствующая реализация?

Ответ прост. На устройстве.

Давайте разберемся с этим…

От исходного кода к APK-файлу

Как правило, проект под Android состоит из кода, написанного разработчиками с использованием Android API (модуль приложения), а также некоторых других библиотек/зависимостей (.jar-файлов, AAR, модулей и т.д.) и ресурсов.

Процесс компиляции преобразует код, написанный на Java или Kotlin, включая зависимости (одна из причин уменьшить ваш код!), в байт-код DEX, а затем сжимает все в файл APK вместе с ресурсами. На данном этапе реализация API не включена в итоговый APK!


Процесс сборки — Android Developers

DEX файлы и Android Runtime


Архитектура Android — Android Developers

Android Runtime — это место, где делается вся грязная работа и где выполняются DEX-файлы. Оно состоит из двух основных компонентов:

  • Виртуальная машина, чтобы воспользоваться преимуществами переносимости кода и независимости от платформы. Начиная с Android 5.0 (Lollipop), старая среда выполнения, Dalvik Virtual Machine, была полностью заменена новой средой Android RunTime (ART). Dalvik использовал JIT-компилятор, тогда как ART использует AOT (Ahead of time) компиляцию плюс JIT для профилирования кода во время выполнения.
  • Базовые библиотеки — это стандартные библиотеки Java и Android. Проще говоря, именно здесь находится реализация API.

Версия API, доступная на этом уровне, соответствует версии платформы Android, на которой запущено приложение.

Например, если на фактическом устройстве установлен Android 9 (Pie), доступны все API до 28 уровня.

Если вам понятны ключевые моменты работы Android Runtime и какова роль API, то должно быть достаточно просто понять обратную и прямую совместимость, а так же использование compileSdkVersion , minSdkVersion и targetSdkVersion .

compileSdkVersion

Это значение используется только для указания Gradle, с какой версией SDK компилировать ваше приложение. Это позволяет разработчикам получить доступ ко всем API, доступным до уровня API, установленного для compileSdkVersion .

Настоятельно рекомендуется выполнить компиляцию с последней версией SDK:

  • высокий уровень API позволяет разработчикам использовать преимущества последнего API и возможностей, предоставляемых новыми платформами.
  • чтобы использовать последнюю версию SupportLibrary , compileSdkVersion должен соответствовать версии SupportLibrary .

Например, чтобы использовать SupportLibrary-28.x.x , compileSdkVersion также должен быть равен 28.

  • для перехода на AndroidX или его использования, compileSdkVersion должен быть установлен как минимум равным 28.
  • чтобы быть готовым удовлетворить требования целевого уровня API от Google Play. В Google объявили, что для более быстрого распространения новых версий Android на рынке Google каждый год будет устанавливать минимальный целевой уровень API для новых приложений и обновлений. Больше информации вы можете найти здесь и здесь.

Приложения Android совместимы с новыми версиями платформы Android, поскольку изменения в API обычно являются аддитивными, а старое API может стать устаревшим, но не удаленным.

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

Приложение + compileSdkVersion = 26 и метод API xyz() , представленный в API 26 уровня, могут работать на устройстве с Android 8 Oreo (API 26 уровня).

Это же приложение может работать на устройстве с Android 9 Pie (API 28 уровня), поскольку метод API xyz() все еще доступен на API 28 уровня.

minSdkVersion

Это значение обозначает минимальный уровень API, на котором приложение может работать. Это минимальное требование. Если не указан, значением по умолчанию является 1.

Разработчики обязаны установить корректное значение и обеспечить правильную работу приложения до этого уровня API. Это называется обратной совместимостью.

Во время разработки Lint также предупредит разработчиков при попытке использовать любой API ниже указанного в minSdkVersion . Очень важно не игнорировать предупреждения и исправить их!

Чтобы обеспечить обратную совместимость, разработчики могут во время выполнения проверять версию платформы и использовать новый API в более новых версиях платформы и старый API в более старых версиях или, в зависимости от случая, использовать некоторые статические библиотеки, которые обеспечивают обратную совместимость.

Также важно упомянуть, что Google Play Store использует это значение, чтобы определить, можно ли установить приложение на определенное устройство, сопоставив версию платформы устройства с minSdkVersion приложения.

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

Выбор «правильного» значения для проекта также является бизнес-решением, поскольку оно влияет на то, насколько большой будет аудитория приложения. Посмотрите на распределение платформ.

Приложение + compileSdkVersion = 26 + minSdkVersion = 22 и метод API xyz() , представленный в API 26 уровня, могут работать на устройстве с Android 8 Oreo (API 26 уровня).

Это же приложение можно установить и запустить на более старом устройстве с Android 5.1 Lollipop (API 22 уровня), где метода API xyz() не существует. Если разработчики не обеспечили обратную совместимость ни с помощью проверок времени выполнения, ни с помощью каких-либо библиотек, то приложение будет аварийно завершать работу, как только оно попытается получить доступ к методу API xyz() .

Читайте также:  Что значит powered by android go edition

targetSdkVersion

Это значение указывает уровень API, на котором приложение было разработано.

Не путайте его с compileSdkVersion . Последний используется только во время компиляции и делает новые API доступными для разработчиков. Первый, напротив, является частью APK (также как и minSdkVersion ) и изменяет поведение среды выполнения. Это способ, которым разработчики могут контролировать прямую совместимость.

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

Целевой уровень приложения включает поведение среды выполнения, которое зависит от конкретной версии платформы. Если приложение не готово к поддержке этих изменений поведения среды выполнения, оно, вероятно, завершится сбоем.

Простым примером является Runtime Permission, которое было представлено в Android 6 Marshmallow (API 23 уровня).

Приложение может быть скомпилировано с использованием API 23 уровня, но иметь целевым API 22 уровня, если оно еще не готово поддержать новую модель разрешений времени выполнения.

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

В любом случае, как уже упоминалось, Google требует, чтобы приложения удовлетворяли новым требованиям целевого уровня API, поэтому всегда следует иметь высокий приоритет для обновления этого значения.

Теперь соединяя все это вместе, мы видим четкое отношение

minSdkVersion ≤ targetSdkVersion ≤ compileSdkVersion

Имейте в виду, что настоятельно рекомендуется выполнить компиляцию в соответствии с последним уровнем API и стараться использовать targetSdkVersion == compileSdkVersion.

Источник

SDK Platform Tools release notes

Android SDK Platform-Tools is a component for the Android SDK. It includes tools that interface with the Android platform, such as adb , fastboot , and systrace . These tools are required for Android app development. They’re also needed if you want to unlock your device bootloader and flash it with a new system image.

Although some new features in these tools are available only for recent versions of Android, the tools are backward compatible, so you need only one version of the SDK Platform-Tools.

Downloads

If you’re an Android developer, you should get the latest SDK Platform-Tools from Android Studio’s SDK Manager or from the sdkmanager command-line tool. This ensures the tools are saved to the right place with the rest of your Android SDK tools and easily updated.

But if you want just these command-line tools, use the following links:

  • Download SDK Platform-Tools for Windows
  • Download SDK Platform-Tools for Mac
  • Download SDK Platform-Tools for Linux

Although these links do not change, they always point to the most recent version of the tools.

Revisions

31.0.3 (August 2021)

  • fastboot
    • Support flashing vbmeta_vendor.img for fastboot flashall / update.

31.0.2 (April 2021)

  • adb
    • Support forwarding to vsock on linux.
    • Fix bug in adb track-devices where devices over wireless debugging wouldn’t immediately receive updates.
    • Implement preliminary support for mDNS device discovery without a separately installed mDNS service. This is currently disabled by default, and can be enabled by setting the environment variable ADB_MDNS_OPENSCREEN to 1 when starting the adb server.
  • fastboot
    • Don’t fail when unable to get boot partition size.
    • Derive device locked state from property instead of parsing the kernel command line.

31.0.1 (March 2021)

  • adb
    • Reduce TCP keepalive interval.
    • Improve incremental installation performance.
  • fastboot
    • Add support for compressed snapshot merges.
    • Restore legacy A/B support.

31.0.0 (February 2021)

  • adb
    • Disable compression on pull by default.

30.0.5 (November 2020)

  • adb
    • Improve performance of adb push when pushing many files over a high-latency connection.
    • Improve adb push/pull performance on Windows.
    • Fix adb push —sync with multiple inputs.
    • Improve performance of incremental apk installation.
    • Improve error handling for incremental apk installation.

30.0.4 (July 2020)

  • adb
    • Fix fallback to non-incremental apk installation on pre-Android 11 devices.
    • Fix adb install-multi-package .
    • Fix some more crashes related to adb wireless pairing.
    • Improve some error messages.
  • fastboot
    • Improve console output on fastboot oem commands.
    • Fix fastboot flashall on older devices such as Nexus 7.

30.0.3 (June 2020)

  • adb
    • Fix installation of APKs signed with v4 signature scheme on pre-Android 11 devices.
    • Fix crash when authenticating without ADB_VENDOR_KEYS .
    • Fix crash when using adb -H .

30.0.2 (June 2020)

  • adb
    • Improve adb wireless pairing.
    • Fix hang in adb logcat when run before a device is connected.
    • Add adb transport-id to allow scripts to safely wait for a device to go away after root/unroot/reboot.

30.0.1 (May 2020)

  • adb
    • Disable adb mdns auto-connection by default. This can be reenabled with the ADB_MDNS_AUTO_CONNECT environment variable.
    • Improve performance of adb install-multi on Android 10 or newer devices.
    • Fix timeout when using adb root/unroot on a device connected over TCP.
    • Update support for wireless pairing.

30.0.0 (April 2020)

  • adb
    • Add initial support for wireless pairing.
    • Add support for incremental APK installation.
    • Implement client-side support for compression of adb when used with an Android 11 device.
    • Improve performance of adb push on high-latency connections.
    • Improve push/pull performance on Windows.

29.0.6 (February 2020)

  • adb
    • 64-bit size/time support for adb ls when used with an Android 11 device.
    • Support listening on ::1 on POSIX.
    • Client support for WinUSB devices that publish a WinUSB descriptor (required for Android 11) should no longer require a USB driver to be installed.
    • Fix hang when using adb install on something that isn’t actually a file.

29.0.5 (October 2019)

  • adb
    • Slight performance improvement on Linux when using many simultaneous connections.
    • Add —fastdeploy option to adb install , for incremental updates to APKs while developing.

29.0.4 (September 2019)

  • adb
    • Hotfix for native debugging timeout with LLDB (see issue #134613180). This also fixes a related bug in the Android Studio Profilers that causes an AdbCommandRejectedException , which you can see in the idea.log file.

29.0.3 (September 2019)

  • adb
    • adb forward —list works with multiple devices connected.
    • Fix devices going offline on Windows.
    • Improve adb install output and help text.
    • Restore previous behavior of adb connect without specifying port.

29.0.2 (July 2019)

  • adb
    • Fixes a Windows heap integrity crash.
  • fastboot
    • Adds support for partition layout of upcoming devices.

29.0.1 (June 2019)

  • adb
    • Hotfix for Windows crashes (https://issuetracker.google.com/134613180)

29.0.0 (June 2019)

  • adb
    • adb reconnect performs a USB reset on Linux.
    • On Linux, when connecting to a newer adb server, instead of killing the server and starting an older one, adb attempts to launch the newer version transparently.
    • adb root waits for the device to reconnect after disconnecting. Previously, adb root; adb wait-for-device could mistakenly return immediately if adb wait-for-device started before adb noticed that the device had disconnected.
  • fastboot
    • Disables an error message that occurred when fastboot attempted to open the touch bar or keyboard on macOS.

28.0.2 (March 2019)

  • adb
    • Fixes flakiness of adb shell port forwarding that leads to «Connection reset by peer» error message.
    • Fixes authentication via ADB_VENDOR_KEYS when reconnecting devices.
    • Fixes authentication—when the private key used for authentication does not match the public key—by calculating the public key from the private key, instead of assuming that they match.
  • fastboot
    • Adds support for dynamic partitions.
  • Updated Windows requirements
    • The platform tools now depend on the Windows Universal C Runtime, which is usually installed by default via Windows Update. If you see errors mentioning missing DLLs, you may need to manually fetch and install the runtime package.

28.0.1 (September 2018)

  • adb
    • Add support for reconnection of TCP connections. Upon disconnection, adb will attempt to reconnect for up to 60 seconds before abandoning a connection.
    • Fix Unicode console output on Windows. (Thanks to external contributor Spencer Low!)
    • Fix a file descriptor double-close that can occur, resulting in connections being closed when an adb connect happens simultaneously.
    • Fix adb forward —list when used with more than one device connected.
  • fastboot
    • Increase command timeout to 30 seconds, to better support some slow bootloader commands.

28.0.0 (June 2018)

  • adb:
    • Add support for checksum-less operation with devices running Android P, which improves throughput by up to 40%.
    • Sort output of adb devices by connection type and device serial.
    • Increase the socket listen backlog to allow for more simulataneous adb commands.
    • Improve error output for adb connect .
  • fastboot:
    • Improve output format, add a verbose output mode ( -v ).
    • Clean up help output.
    • Add product.img and odm.img to the list of partitions flashed by fastboot flashall .
    • Avoid bricking new devices when using a too-old version of fastboot by allowing factory image packages to require support for specific partitions.

27.0.1 (December 2017)

  • adb: fixes an assertion failure on MacOS that occurred when connecting devices using USB 3.0.
  • Fastboot: On Windows, adds support for wiping devices that use F2FS (Flash-Friendly File System).

27.0.0 (December 2017)

  • Re-fixes the macOS 10.13 fastboot bug first fixed in 26.0.1, but re-introduced in 26.0.2.

26.0.2 (October 2017)

  • Add fastboot support for Pixel 2 devices.

26.0.1 (September 2017)

  • Fixed fastboot problems on macOS 10.13 High Sierra (bug 64292422).

26.0.0 (June 2017)

  • Updated with the release of Android O final SDK (API level 26).

25.0.5 (April 24, 2017)

Fixed adb sideload of large updates on Windows, manifesting as «std::bad_alloc» (bug 37139736).

Fixed adb problems with some Windows firewalls, manifesting as «cannot open transport registration socketpair» (bug 37139725).

Both adb —version and fastboot —version now include the install path.

Changed adb to not resolve localhost to work around misconfigured VPN.

Changed adb to no longer reset USB devices on Linux, which could affect other attached USB devices.

25.0.4 (March 16, 2017)

  • Added experimental libusb support to Linux and Mac adb

To use the libusb backend, set the environment variable ADB_LIBUSB=true before launching a new adb server. The new adb host-features command will tell you whether or not you’re using libusb.

To restart adb with libusb and check that it worked, use adb kill-server; ADB_LIBUSB=1 adb start-server; adb host-features . The output should include «libusb».

In this release, the old non-libusb implementation remains the default.

fastboot doesn’t hang 2016 MacBook Pros anymore (bug 231129)

Fixed Systrace command line capture on Mac

25.0.3 (December 16, 2016)

  • Fixed fastboot bug causing Android Things devices to fail to flash

25.0.2 (December 12, 2016)

  • Updated with the Android N MR1 Stable release (API 25)

25.0.1 (November 22, 2016)

  • Updated with the release of Android N MR1 Developer Preview 2 release (API 25)

25.0.0 (October 19, 2016)

  • Updated with the release of Android N MR1 Developer Preview 1 release (API 25)

24.0.4 (October 14, 2016)

  • Updated to address issues in ADB and Mac OS Sierra

Download Android SDK Platform-Tools

Before downloading, you must agree to the following terms and conditions.

Terms and Conditions

1. Introduction

2. Accepting this License Agreement

3. SDK License from Google

4. Use of the SDK by You

5. Your Developer Credentials

6. Privacy and Information

7. Third Party Applications

8. Using Android APIs

9. Terminating this License Agreement

10. DISCLAIMER OF WARRANTIES

11. LIMITATION OF LIABILITY

12. Indemnification

13. Changes to the License Agreement

Download Android SDK Platform-Tools

Before downloading, you must agree to the following terms and conditions.

Terms and Conditions

1. Introduction

2. Accepting this License Agreement

3. SDK License from Google

4. Use of the SDK by You

5. Your Developer Credentials

6. Privacy and Information

7. Third Party Applications

8. Using Android APIs

9. Terminating this License Agreement

10. DISCLAIMER OF WARRANTIES

11. LIMITATION OF LIABILITY

12. Indemnification

13. Changes to the License Agreement

Download Android SDK Platform-Tools

Before downloading, you must agree to the following terms and conditions.

Источник

Читайте также:  Разработка виджета для андроид
Оцените статью