Как понизить api приложения android
Как понизить версию любого приложения на Android без рут-прав
Довольно часто случается ситуация, когда после очередного обновления программа начинает работать медленней либо вообще отказывается это делать. Также возможно, что разработчик решил кардинально поменять интерфейс приложения. Хорошо, если это только пошло на пользу и внешний вид приложения стал интуитивным и удобным. Но ведь бывает и ровно наоборот. В таких случаях и возникает вопрос: как вернуть предыдущую (т. е. понизить) версию той или иной программы. Конечно, это можно сделать просто удалив приложение и установив его заново, но версию постарше, скачав из сети. Но что, если нужно сохранить все пользовательские данные, а возможности сделать бэкап нет. Либо это и вовсе системная утилита. К счастью, с помощью Android Debug Bridge (ADB) можно с лёгкостью понизить версию приложения, сохранив все данные, не имея прав суперпользователя. Всё, что потребуется от вас, это ввести несколько простых ADB-команд в командной строке.
Вместо предупреждения
С обновлением приложения также могут обновляться и базы данных, и понижение версии может привести к тому, что эти файлы будут нечитаемы в старой версии приложения. В редких случаях базы данных могут ломаться полностью, если приложение в старой версии попытается их модифицировать. В таких случаях вы можете потерять все данные в соответствующей программе.
Руководство по понижению версии приложения
При успешном выполнении операции в командной строке выведется надпись «Success».
Еще по теме: Как обновить приложение на Андроид через компьютер?Напишите в комментариях ниже, сработал ли этот способ на вашем девайсе и в каком случае он вам пригодился.
Как понизить API приложения, чтобы оно запустилось на Android 2.3+ — Настройка, Игры, Программирование
Вы нашли классную игру но она только для android 4.0+, а у вас android 2.3? Тогда прошу под кат! Итак, приступим. Все что нам понадобится это:
Первым делом распаковываем apk manager и наблюдаем такую картину Объясню что это за папки и файлы
- Other — файлы нужные программе
- place-apk-here-for-modding — сюда кладем apk
- place-apk-here-for-signing — сюда кладем apk для подписи
- place-apk-here-to-batch-optimize сюда кладем apk для оптимизации
- place-ogg-here — сюда кладем apk для сжатия ogg файлов
- Project — здесь лежат декомпилированные(разобранные) apk файлы
- log — логи программы
- Script.bat — сама программа
Кладем наш apk файл( моем случае это игра Wrestle Jump, которую я обещал портировать Денозавру, но из головы вылетело) в папку place-apk-here-for-modding и запускаем программу. Тут все понятно, благо программа на Русском. Жмем «9» и «Enter» и ждем пока наше приложение декомпилируется. Если все проходит без ошибок, то идем в папку «Projects» и ждем пока я объясню что делать тем, у кого ошибка. Если у вас возникла ошибка, посмотрите как называется ваш apk файл. Имена вида «Blablabla_1» не приветствуются! Но если файл назван правильно, а ошибка все-равно возникает, проверьте вашу Jav'у. Все, можно идти дальше. Открываем папку «Projects», затем папку с именем приложения.Видим там такой набор файлов Нам нужен только 1 — apktool.yml. Открываем его с помощью Notepad++. После открытия видим это: Заменяем как на скрине Сделали? Открываем Apk manager, набираем «14» и жмем «Enter», ждем. Вылетает нам такое:Не паникуем, это норма. Просто жмем любую кнопку. Далее бежим в папку place-apk-here-for-modding и забираем новый файл. Теперь можете заливать этот файл на трешбокс и устанавливать себе.
Внимание! Приложение установится, но корректная работа не гарантируется.
Игры дняПрограммы дня
Как понизить версию любого приложения на Android и Windows без рут-прав
Войти или зарегистрироваться
Как понизить версии приложений на Galaxy Note 3 или другом устройстве Android
По большому счёту, это неплохо, чтобы ваши приложения обновлялись до нужной версии автоматически, но иногда такие обновления сводят на нет полюбившиеся вам функции.
Приложение Google Maps можно использовать для отслеживания маршрута вашего автобуса; также оно оповестит вас при приближении вашей остановки. На этом полезность данного приложения заканчивается. Каждое обновление приложения Snapchat нарушает режимы Xposed, которые позволяют сохранять фото, сделанные скрытно. Порою кажется, что, каждый раз, когда мы уже привыкаем к новому оформлению Facebook, появляется глобальное обновление, возвращающее нас в исходную точку.
Когда вы, наконец, решите вернуться к своей любимой версии какого-либо приложения, вам придётся удалить текущее приложение, найти файл APK нужной вам версии и установить его. Но, так как нам не приходится этого делать при обновлении приложения, будет ли это также легко произвести понижение версии приложения?
Сегодня мы покажем вам как быстро и легко понизить версии приложений на вашем Samsung Galaxy Note 3 или другом Android-устройстве, без необходимости удалений уже установленных.
- Должна быть включена функция «Установка приложения из «Неизвестные источники»;
- У вас должны быть root-права на ваше Android-устройство.
Шаг 1: Загрузка AppDowner.
Начните, нажав здесь для загрузки AppDowner, созданного разработчиком медиаплеера XDA. Это приложение без проблем понижает все ваши приложения до нужной вам версии, однако рекомендуется зайти на сайт XDA и скачать оттуда последнюю версию AppDowner.
Шаг 2: Установка AppDowner.
Когда файл APK для AppDowner будет загружен в ваше устройство, нажмите на него для начала установки с помощью стокового установщика.
Шаг 3: Загрузка более старых версий приложений.
Перед тем, как использовать AppDowner, вам нужно получить старую версию приложения для отката. В качестве примера мы понизим последнюю версию Instagram (6.3.1) до версии 5.1.4.
Для поиска старых версий Android-приложений у Android Drawer имеется хранилище с такими приложениями, каждое из которых можно загрузить в виде файла APK.
Хранилище со старыми приложениями
С помощью Android Drawer в вашем браузере найдите приложение, версию которого вы хотите понизить и кликните по нему. У вас есть возможность найти все доступные версии определённого приложения, прокрутив вниз страницу со списком. Найдя нужную вам версию, выделите её и выберите «Загрузить эту версию».
Выбор версии приложения
Будьте осторожны при загрузке приложений вне магазина Google Play, хотя у нас не было никаких проблем с загрузкой приложений через Android Drawer.
Шаг 4: Установка старых версий приложений.
После того, как в вашем устройстве появилась более старая версия приложений, запустите AppDowner и нажмите «Выбор APK».
Затем пройдите к загруженному файлу APK в папке «Загруженные файлы».
Далее, в AppDowner нажмите «Установка APK», чтобы начать процесс понижения версии приложения. При возникающем окошке запроса разрешайте AppDowner использовать права суперпользователя с помощью SuperSU. После этого откройте AppDowner и найдите приложение, версию которого вы понизили, затем перетащите его в папку «Информация о приложении» для просмотра деталей, чтобы убедиться, что версия приложения была понижена.
Вы нашли классную игру но она только для android 4.0+, а у вас android 2.3? Тогда прошу под кат!
Все что нам понадобится это:
Первым делом распаковываем apk manager и наблюдаем такую картину
Объясню что это за папки и файлы
- Other — файлы нужные программе
- place-apk-here-for-modding — сюда кладем apk
- place-apk-here-for-signing — сюда кладем apk для подписи
- place-apk-here-to-batch-optimize сюда кладем apk для оптимизации
- place-ogg-here — сюда кладем apk для сжатия ogg файлов
- Project — здесь лежат декомпилированные(разобранные) apk файлы
- log — логи программы
- Script.bat — сама программа
Кладем наш apk файл( моем случае это игра Wrestle Jump, которую я обещал портировать Денозавру, но из головы вылетело) в папку place-apk-here-for-modding и запускаем программу.
Тут все понятно, благо программа на Русском. Жмем «9» и «Enter» и ждем пока наше приложение декомпилируется.
Если все проходит без ошибок, то идем в папку «Projects» и ждем пока я объясню что делать тем, у кого ошибка.
Если у вас возникла ошибка, посмотрите как называется ваш apk файл. Имена вида «Blablabla_1» не приветствуются! Но если файл назван правильно, а ошибка все-равно возникает, проверьте вашу Jav'у.
Все, можно идти дальше. Открываем папку «Projects», затем папку с именем приложения.
Видим там такой набор файлов
Нам нужен только 1 — apktool.yml. Открываем его с помощью Notepad++. После открытия видим это:
Заменяем как на скрине
Сделали? Открываем Apk manager, набираем «14» и жмем «Enter», ждем.
Вылетает нам такое:
Не паникуем, это норма. Просто жмем любую кнопку. Далее бежим в
папку place-apk-here-for-modding и забираем новый файл.
Теперь можете заливать этот файл на трешбокс и устанавливать себе.
Внимание! Приложение установится, но корректная работа не гарантируется.
Я хочу изменить минимальную версию SDK в Android Studio от API 12 до API 14. Я попытался изменить ее в файле манифеста, т.е.
и перестроить проект, но я до сих пор получаю IDE от Android Studio, вызывая некоторые ошибки. Я предполагаю, что мне нужно установить минимальный SDK в "свойствах проекта" или что-то подобное, поэтому среда IDE распознает изменение, но я не могу найти, где это делается в Android Studio.
Если вы хотите обновить minSdkVersion в существующем проекте.
- Обновить build.gradle(Module: app) . Убедитесь, что он находится под Gradle Script, и он НЕ build.gradle(Project: yourproject) .
- Кнопка синхронизации gradle (обновлены все проекты gradle)
- Реконструкция проекта
После обновления build.gradle minSdkVersion вам нужно щелкнуть по кнопке, чтобы синхронизировать файл gradle ( "Синхронизировать проект с gradle файлами" ). Это очистит маркер.
Обновление manifest.xml, например. удаление каких-либо ссылок на уровни SDK в файле манифеста больше не требуется в Android Studio.
Для пользователей студии Android:
- щелкните правой кнопкой мыши каталог приложения
- выберите параметр "настройка модуля"
- измените платформу ADK как то, что вам нужно
- Нажмите "Применить"
gradle автоматически перестроит проект.
Как сейчас Android Studio стабильна, есть простой способ сделать это.
- Щелкните правой кнопкой мыши файл проекта
- Выберите "Открыть настройки модуля"
- Перейдите на вкладку "Ароматизаторы".
- Выберите Min SDK Version из выпадающего списка
PS: Хотя на этот вопрос уже был дан ответ, но Android Studio немного изменила его стабильный выпуск. Таким образом, простой прямой способ поможет любому новому поиску ответа приземлиться здесь.
В студии Android вы можете легко нажать:
- Ctrl + Shift + Alt + S .
- Если у вас есть более новая версия android studio , чем сначала нажмите на приложение. чем продолжить с шага 3 следующим образом.
- Откроется окно с набором параметров
- Перейдите в Flavors, и на самом деле все, что вам нужно
Вы также можете изменить versionCode вашего приложения.
В соответствии с этим ответом вы просто не включаете minsdkversion в файл manifest.xml, а система сборки будет использовать значения из файла build.gradle и поместите информацию в окончательный apk.
Поскольку система сборки нуждается в этой информации, это имеет смысл. Вам не нужно указывать эти значения два раза.
Я хочу изменить минимальную версию SDK в Android Studio от API 12 до API 14. Я попытался изменить ее в файле манифеста, т.е.
и перестроить проект, но я до сих пор получаю IDE от Android Studio, вызывая некоторые ошибки. Я предполагаю, что мне нужно установить минимальный SDK в "свойствах проекта" или что-то подобное, поэтому среда IDE распознает изменение, но я не могу найти, где это делается в Android Studio.
что это за ошибки? мы не можем помочь вам без logcat Если я начинаю новый проект и с самого начала выбираю уровень API 14, у меня нет проблем с разработкой в Android Studio, т. Е. У меня должен быть установлен API уровня 14 SDK. Однако, если я просто хочу обновить существующий проект, чтобы использовать как минимум API 14, я не могу понять, где в графической среде IDE Android Studio я скажу ему сделать это. Logcat свой Logcat . и изменить MinSDKVersion это самое простое решение, которое вы уже пробовали .. т.е. обмен в ManifestЕсли вы хотите обновить minSdkVersion в существующем проекте.
- Обновить build.gradle(Module: app) . Убедитесь, что он находится под Gradle Script, и он НЕ build.gradle(Project: yourproject) .
- Кнопка синхронизации gradle (обновлены все проекты gradle)
- Реконструкция проекта
После обновления build.gradle minSdkVersion вам нужно щелкнуть по кнопке, чтобы синхронизировать файл gradle ( "Синхронизировать проект с gradle файлами" ). Это очистит маркер.
Обновление manifest.xml, например. удаление каких-либо ссылок на уровни SDK в файле манифеста больше не требуется в Android Studio.
Build.gradle моего проекта пуст? Какой синтаксис для обновления? --- Упс, есть два файла build.gradle. Я нашел в -> src версии и т. Д. Используя этот совет, мне удалось синхронизировать вещи, но мне пришлось выйти из Android Studio, прежде чем компиляция прошла без ошибок. Я выполнил много маленьких шагов, поэтому я не знаю, что на самом деле было необходимым шагом. почему они сделали так болит мяч? кажется, помните, в затмении я должен был сделать это только в одном месте . @DeanWild В Android Studio также в одном месте. Забудьте об уровнях API в файле манифеста. Можно ли заставить его использовать манифест вместо этого? Кроме того, возможно ли заставить его всегда использовать последние доступные инструменты сборки? На данный момент вы можете найти два build.gradle в папке Gradle Scripts, мне нужно было перейти на тот, который имеет Module: app. @androiddeveloper Gradle переопределяет манифест, поэтому просто удалите его из файла Gradle и добавьте в свой файл манифеста. Я НЕ рекомендую этого, Gradle - это путь, и есть причины, по которым они перешли от манифеста к gradle. @Sotti Сотти Спасибо. Не знал этого Какая польза от записи в файл Gradle? @Quantumdroid Это потому, что вы используете представление Android. Мне не нравится этот взгляд, и я им не пользуюсь. Для начинающих в Android Studio «Синхронизировать кнопку Gradle» находится в Tools -> Android -> Sync Project with Gradle Files «Перестроить проект» Build -> Rebuild ProjectДля пользователей студии Android:
- щелкните правой кнопкой мыши каталог приложения
- выберите параметр "настройка модуля"
- измените платформу ADK как то, что вам нужно
- Нажмите "Применить"
gradle автоматически перестроит проект.
Приведенное выше решение для меня - лучший путь. Позвольте инструменту внести все необходимые изменения, если вы сами возитесь с разными файлами, рискуете испортить вещи или забыть важные детали. Это не работает в Studio 0.8.2. Вы можете изменить настройки и нажать aplly, но студия проигнорирует это. <br/> Решение: - Закрыть Android Studio - Изменить "/app/build.gradle" - изменить запись SDK-MinVersion - перезапустить Android Studio Gradle синхронизации автоматически В Studio 1.4 нужно смотреть во вкладке «Ароматы». Смотри ответ priyankvex.Как сейчас Android Studio стабильна, есть простой способ сделать это.
- Щелкните правой кнопкой мыши файл проекта
- Выберите "Открыть настройки модуля"
- Перейдите на вкладку "Ароматизаторы".
- Выберите Min SDK Version из выпадающего списка
PS: Хотя на этот вопрос уже был дан ответ, но Android Studio немного изменила его стабильный выпуск. Таким образом, простой прямой способ поможет любому новому поиску ответа приземлиться здесь.
Редактирование файлов Gradle не работает для меня, но это сработало. Спасибо! Это снова изменилось: вкладки «Ароматы» больше нет. Вместо этого на шаге 3 в области «Параметры проекта» нажмите «Модули», а затем в раскрывающемся списке «Уровень проекта» выберите версию API. Это не то же самое, что установка минимальной версии API, а скорее версия, которая будет использоваться для сборки приложения. Это должен быть принятый ответ. Наименее новая версия Android Studio Я получаю только API 23 в раскрывающемся списке . Мне нужно API 10 немного? эта fking IDE сильно меняется между версиями, вызывая много перерывов в работе старого кода. Очень жалкий по сравнению с наследием обратной совместимости, примером которого является Microsoft. Принятый ответ и второй самый «принятый» ответ не сработали для меня, много ошибок при сборке, это правильное решение для меня! СпасибоВ студии Android вы можете легко нажать:
- Ctrl + Shift + Alt + S .
- Если у вас есть более новая версия android studio , чем сначала нажмите на приложение. чем продолжить с шага 3 следующим образом.
- Откроется окно с набором параметров
- Перейдите в Flavors, и на самом деле все, что вам нужно
Вы также можете изменить versionCode вашего приложения.
В build.gradle измените minSdkVersion 13 на minSdkVersion 8 . Это все, что вам нужно сделать. Я решил свою проблему, только делая это.
В соответствии с этим ответом вы просто не включаете minsdkversion в файл manifest.xml, а система сборки будет использовать значения из файла build.gradle и поместите информацию в окончательный apk.
Поскольку система сборки нуждается в этой информации, это имеет смысл. Вам не нужно указывать эти значения два раза.
Вам просто нужно синхронизировать проект после изменения файла build.gradle , но Android Studio 0.5.2 отображает желтую строку состояния поверх окна редактора build.gradle, чтобы помочь вам
Также обратите внимание на наличие как минимум двух файлов build.gradle : один мастер и один для приложения/модуля. Тот, который нужно изменить, находится в приложении/модуле, он уже включает свойство minSdkVersion во вновь сгенерированном проекте.
Если у вас возникли проблемы с указанием целевой SDK для API Google вместо базового пакета SDK, просто измените compileSdkVersion 19 на compileSdkVersion "Google Inc.:Google APIs:19"
Также, как и обновление манифеста, обновите файл модуля build.gradle тоже (он указан в панели проекта чуть ниже манифеста - если там нет minSdkVersion ), вы смотрите на неправильный, так как там пара). Перестроить и все должно быть хорошо.
Для последней версии Android Studio v2.3.3 (11 октября 2017 года):
1. Нажмите View в строке меню
2. Нажмите "Открыть настройки модуля" 3. Откройте вкладку Flavors
4. Выберите Min Sdk версию, которая вам нужна
6. Нажмите OK
В статье приведен перевод статей [1, 2], посвященных управлению версиями приложения Android, и работе приложения на разных версиях операционной системы Android. Все непонятные термины и сокращения ищите в Словарике [3].
Управление версией приложения является критически важным аспектом для обновления приложения и для стратегии его поддержки в будущем. Это важно потому что:
• Пользователям нужна соответствующая информация о версии приложения, которая установлена на их устройствах, и о доступности обновлений версии приложения для существующей инсталляции.
• Другие приложения - включая другие приложения, которые Вы публикуете в как комплект приложений - нуждаются в опросе системы для версии Вашего приложения, чтобы определить совместимость и идентифицировать зависимости (от API и библиотек).
• Сервисы, через которые Вы публикуете приложение (или приложения) могут также нуждаться в опросе Вашего приложения на его версию, чтобы можно было отобразить эту версию для пользователей. Сервис публикации может также нуждаться в проверки версии приложения, чтобы определить совместимость и установить взаимосвязи для апгрейда или довнгрейда.
Система Android не использует информацию об версии приложения для принудительного ограничения на апгрейд, довнгрейд, или на ограничение совместимости приложений сторонних производителей. Вместо этого Вы (как разработчик) отвечаете за ограничения, связанные с версиями приложения, или за информирование об этом пользователей. Однако система Android обеспечивает совместимость приложения с системой в соответствии с атрибутом minSdkVersion, который указан в манифесте. Этот атрибут позволяет приложению указать минимальный уровень системного API, с которым совместимо приложение. Дополнительную информацию см. ниже android:minSdkVersion в разделе "Как указать требования приложения к уровню (версии) API Android".
[Установка версии приложения (Application Version)]
Чтобы задать информацию о версии для Вашего приложения, нужно установить атрибуты в файле манифеста приложения (AndroidManifest.xml, секция manifest). Доступно 2 атрибута, для которых обязательно нужно назначить значения:
• android:versionCode - целое число, которое представляет версию кода приложения относительно других версий. Значение целого числа установлено так, чтобы другие приложения могли программно вычислить его, например для проверки взаимосвязи апгрейда или довнгрейда. Вы можете установить значение в любое целое число, какое захотите, однако нужно помнить, что обновленное приложение должно иметь последовательно увеличенный номер версии. Система не принуждает к такому поведению, однако увеличение номера версии с новым релизом является нормой.
Обычно Вы должны сделать первый релиз приложения с versionCode установленным в 1, и затем монотонно увеличивать это значение с каждым новым релизом, независимо от статуса, который имеет релиз: major или minor. Это не означает, что значение атрибута android:versionCode должно быть строго подобно версии релиза, которую видит пользователь (см. далее атрибут android:versionName). Приложения и сервисы публикации приложений не должны отображать значение атрибута android:versionCode для пользователей.
• android:versionName - строковое значение, которое представляет версию релиза кода приложения, которая должна быть показана пользователям.
Значение является строкой, в которой Вы можете описать версию приложения как < major >.< minor >.< point >, или любым другим способом, выражая текстовым идентификатором абсолютную или относительную версию приложения.
Как и атрибут android:versionCode, система Android не использует android:versionName для внутреннего использования, кроме того как отобразить это значение для пользователей. Сервисы публикации приложений могут также прочитать значение android:versionName для того, чтобы отобразить её для пользователей.
Оба этих элемента нужно задать в секции < manifest > файла манифеста приложения. Пример:
Обратите внимание, что в этом примере android:versionCode показывает, что текущий файл .apk содержит второй релиз кода приложения, который соответствует минорной последующей версии релиза 1, как показано в строке android:versionName.
Рабочее окружение Android предоставляет API, позволяющее приложениям опросить систему для получения информации версии приложения. Чтобы получить информацию версии, приложения используют метод getPackageInfo(java.lang.String, int) объекта PackageManager.
[Как указать требования приложения к уровню (версии) API Android]
Если Ваше приложение требует определенную минимальную версию платформы Android, где приложение должно работать, или если приложение разработано для поддержки определенного диапазона версий платформ Android, то Вы можете указать эти требования к версиям в виде идентификаторов API Level в файле манифеста приложения. Если сделать так, то это обеспечит то, что Ваше приложение может быть установлено только на устройствах, на которых работает совместимая версия системы Android.
Чтобы указать требования к API Level, добавьте тег < uses-sdk > в файл манифеста приложения, и укажите в нем один или несколько этих атрибутов:
• android:minSdkVersion - минимальное значение версии платформы Android, на которой приложение будет работать. Значение версии указано в виде цифрового идентификатора API Level.
• android:targetSdkVersion - указывает число API Level, для которого приложение разработано. В некоторых случаях это позволит приложению использовать элементы манифеста и определять поведение по заданному уровню целевого API Level, вместо того, чтобы ограничиваться использованием только определенного минимального уровня API Level.
• android:maxSdkVersion — максимальное значение версии платформы Android, на котором приложение может работать. Внимательно прочтите документацию по секции < uses-sdk > (см. далее) перед использованием этого атрибута.
При подготовке к установке приложения система проверяет эти атрибуты и сравнивает их с версией системы. Если значение android:minSdkVersion больше версии системы, то установка приложения будет прервана. Точно также система установить Ваше приложение только в том случае, если android:maxSdkVersion совместим с версией платформы.
Если Вы не укажете эти атрибуты в манифесте, то система предположит, что Ваше приложение совместимо со всеми версиями платформы, и также нет ограничения на максимальный API Level.
Чтобы указать минимальную требуемую версию платформы для Вашего приложения, добавьте секцию < uses-sdk > дочерней к секции < manifest >, и затем добавьте атрибут android:minSdkVersion и его значение.
[Подробнее о секции манифеста < uses-sdk >]
Секция uses-sdk появилась начиная с API Level 1 (т. е. сразу, начиная с самых старых версий Android). Синтаксис секции следующий:
Секция uses-sdk позволяет Вам выражать совместимость приложения Android с одной или большим количеством версий платформ (операционных систем) Android. Эта совместимость определяется посредством чисел API Level, которая указывается в атрибутах секции minSdkVersion, targetSdkVersion, maxSdkVersion. Версия платформы может (которая соответствует определенному числу API Level) может различаться на разных устройствах Android. Указанные API Level, представленные приложением в этой секции, сравниваются с API Level системы, на которой работает (или устанавливается) приложение, и на основе этого сравнения принимаются определенные решения по инсталляции программы или её работе.
Несмотря на имя секции uses-sdk, эта секция на самом деле используется для определения API Level, но не номер версии SDK платформы Android. API Level всегда задается одиночным целым числом. Вы не можете получить из связанной с ним текстовой версии Android, кроме как получить такое соответствие из таблицы API Level (см. [4]). К примеру, API level 16 относится к версиям Android 4.1, Android 4.1.1, Android 4.1.2. Теперь рассмотрим назначение атрибутов minSdkVersion, targetSdkVersion, maxSdkVersion.
android:minSdkVersion число, обозначающее минимальный API Level, который требуется для установки, запуска и работы приложения. Система Android не позволит пользователю установить приложение, если API Level системы меньше значения, указанного в этом атрибуте. Вы всегда должны указывать этот атрибут в секции uses-sdk файла AndroidManifest.xml.
Предостережение: если Вы не укажете этот атрибут, то система предположит его значение по умолчанию "1", что означает совместимость Вашего приложения со всеми без исключения версиями операционной системы Android. Если Ваше приложение несовместимо со всеми версиями (например, оно использует API, представленное впервые на API Level 3), и Вы не укажете правильно minSdkVersion, то при установке на систему с уровнем API Level меньше 3 приложение будет завершаться с ошибкой при попытке доступа к недоступному API. По этой причине обязательно объявляйте подходящий API Level в атрибуте minSdkVersion.
android:targetSdkVersion этот атрибут представлен начиная с API Level 4. Это целое число, обозначающее API Level, для которого приложение предназначено (target, что означает цель). Если этот атрибут не установлен, то его значение по умолчанию равно minSdkVersion.
Этот атрибут информирует систему, что Вы тестировали приложение с этим API Level, и система не должна позволять любое поведение совместимости (compatibility behaviors, т. е. эмуляцию вызовов API, обеспечивающих специальную дополнительную программную обработку некоторых вызовов API), чтобы поддержать прямую совместимость приложения с целевой версией системы. Приложение все еще может работать на более старых версиях (до версий, не меньших minSdkVersion).
Поскольку Android развивается с каждой новой версией, то некоторые поведения и даже внешний вид приложения может измениться. Однако, если API level платформы выше, чем версия, указанная в targetSdkVersion приложения, система может включить обработки совместимости (compatibility behaviors), чтобы обеспечить работоспособность Вашего приложения так, как Вы этого ожидали. Вы можете запретить такие обработки совместимости, если укажете targetSdkVersion равным API level платформы Android, на которой приложение работает. Например, установка этого значения в "11" или более высокое значение позволит системе установить новую тему оформления по умолчанию (Holo) для Вашего приложения при работе на Android 3.0 или более новой, и также запретит режим совместимости экрана, когда программа будет работать на больших экранах (потому что поддержка API level 11 неявно подразумевает поддержку больших экранов).
Имеется много разновидностей обеспечения совместимости (compatibility behaviors), которые система может разрешить, базируясь на значении этого атрибута. Некоторые из этих обработок (поведений, behaviors) описаны в соответствующей документации версии платформы, см. Build.VERSION_CODES.
Чтобы обеспечить соответствие Вашего приложения каждому новому релизу Android, Вы должны увеличивать значение этого атрибута, чтобы оно соответствовало последнему API level, и затем необходимо полностью протестировать поведение приложения на этой новой версии платформы.
android:maxSdkVersion этот атрибут представлен начиная с API Level 4. Это целое число, обозначающее максимальный API Level, на котором приложение может работать.
На версиях Android 1.5, 1.6, 2.0 и 2.0.1 система проверяет значение этого атрибута, когда инсталлируется приложение, и когда приложение проверяется на совместимость после обновления системы. В любом случае, если атрибут приложения maxSdkVersion меньше API Level системы, то установка приложения будет запрещена. При проверке приложения на совместимость после обновления системы такой случай соответствует полному удалению приложения с устройства. Для иллюстрации того, как этот атрибут может повлиять на приложение после обновления системы, рассмотрим пример.
Предупреждение: использование этого атрибута не рекомендуется. Во-первых, нет никакой потребности установить этот атрибут как средство блокирования развертывания Вашего приложения на новые версии платформы Android по мере их появления. Для Android декларируется полная обратная совместимость старых приложений для новых версий Android. Ваше приложение должно работать должным образом на всех новых версиях, если оно использует только стандартное API и следует лучшим правилам и практикам разработки. Во-вторых нужно помнить, что применение этого атрибута приведет к автоматическому удалению Вашего приложения с устройств пользователя, которые обновят свою систему на более высокий API Level, чем указано в атрибуте. Большинство устройств, на которых вероятно будет установлено Ваше приложение, получают периодические обновления системы на лету, по воздуху (over the air), так что Вы должны учитывать этот эффект перед тем, как установить этот атрибут для своего приложения.
Будущие версии Android (вне Android 2.0.1) больше не будут проверять maxSdkVersion и принудительно применять его значение при установке или проверке совместимости приложения. Однако Google Play продолжит использовать этот атрибут как фильтр при предоставлении приложений, доступных для закачки пользователям.
[Пример установки версии приложения при создании проекта в Eclipse]
В Eclipse при создании проекта запускается мастер, который на первом экране позволяет настроить параметры, касающиеся версии приложения.
Поле Minimum Required SDK определяет значение атрибута android:minSdkVersion будущего приложения. Здесь желательно указать версию достаточно популярной платформы, которая возможно уже несколько устарела.
Поле Target SDK задает атрибут android:targetSdkVersion. Укажите здесь версию системы, с которой Вы тестировали Ваше приложение. К примеру, Вы отлаживаете программу на версии Android 4.1.2, тогда в выпадающем списке Target SDK нужно выбрать API 16: Android 4.1 (Jelly Bean).
Поле Compile With задает версию SDK, на котором Ваше приложение будет скомпилировано. Задайте здесь максимальную (самую свежую) на текущий момент версию системы Android.
Читайте также: