- Как получить номер сборки/версии вашего приложения для Android?
- ОТВЕТЫ
- Ответ 1
- Ответ 2
- Ответ 3
- Ответ 4
- Ответ 5
- Использование Gradle и BuildConfig
- Получение VERSION_NAME из BuildConfig
- Возвращает ли пустая строка для VERSION_NAME?
- Удаление versionName и versionCode из AndroidManifest.xml
- Ответ 6
- Ответ 7
- Ответ 8
- Ответ 9
- Ответ 10
- Ответ 11
- Ответ 12
- Ответ 13
- Ответ 14
- Ответ 15
- Ответ 16
- Ответ 17
- Ответ 18
- Ответ 19
- Нет, вам не нужно ничего делать с AndroidManifest.xml
- Ответ 20
- Ответ 21
- Ответ 22
- How can I check the system version of Android?
- 13 Answers 13
- Get Android .apk file VersionName or VersionCode WITHOUT installing apk
- 10 Answers 10
- Tek Eye
- Android Versions by Name, Number, Availability and API Level
- List of Android Versions and Their Names, API Level and Dates
- Do you have a question or comment about this article?
Как получить номер сборки/версии вашего приложения для Android?
Мне нужно выяснить, как получить или сделать номер сборки для моего приложения Android. Мне нужно, чтобы номер сборки отображался в пользовательском интерфейсе.
Нужно ли что-то делать с AndroidManifest.xml ?
ОТВЕТЫ
Ответ 1
И вы можете получить код версии с помощью этого
Ответ 2
Если вы используете плагин Gradle/Android Studio, от версии 0.7.0, код версии и имя версии доступны статически в BuildConfig , Убедитесь, что вы импортируете пакет приложений, а не другой BuildConfig :
Не требуется контекстный объект!
Также не забудьте указать их в файле build.gradle вместо AndroidManifest.xml .
Ответ 3
Немного короче, если вам просто нужно имя версии.
Ответ 4
Есть две части, которые вам нужны: Android: версия Код Android: версия Имя
versionCode — это число, и каждая версия приложения, которую вы отправляете в Маркет, должна иметь больший номер, чем последняя.
VersionName — это строка, которая может быть любой, какой вы хотите. Здесь вы определяете свое приложение как «1.0», «2.5» или «2 Alpha EXTREME!» или что угодно.
Ответ 5
Использование Gradle и BuildConfig
Получение VERSION_NAME из BuildConfig
Да, теперь это легко.
Возвращает ли пустая строка для VERSION_NAME?
Если вы получаете пустую строку для BuildConfig.VERSION_NAME , то читайте дальше.
Я продолжал получать пустую строку для BuildConfig.VERSION_NAME , потому что я не устанавливал versionName в файле сборки Grade (я перенес из ANT в Gradle). Итак, вот инструкции по обеспечению установки VERSION_NAME с помощью Gradle.
build.gradle
Примечание: это от мастерски Jake Wharton.
Удаление versionName и versionCode из AndroidManifest.xml
И поскольку теперь вы установили versionName и versionCode в файл build.gradle , вы также можете удалить их из своего файла AndroidManifest.xml , если они есть.
Ответ 6
Я не вижу необходимости получать его от менеджера пакетов
Ответ 7
Вот чистое решение, основанное на решении scottyab (отредактированное Xavi). Он показывает, как сначала получить контекст, если он не предоставлен вашим методом. Кроме того, он использует несколько строк вместо вызова нескольких методов на строку. Это облегчает вам задачу отладки вашего приложения.
Теперь, когда вы получили имя версии в String myVersionName , вы можете установить его в TextView или все, что вам нравится.
Ответ 8
Используйте класс BuildConfig
Ответ 9
Если вы используете PhoneGap, создайте собственный плагин PhoneGap:
Создайте новый класс в своем приложении:
В plugins.xml добавьте следующую строку:
В deviceready event добавьте следующий код:
Затем вы можете получить атрибут versionName, выполнив:
Ответ 10
Очень простой способ:
Ответ 11
Вот простой способ получить название версии и код версии
Ответ 12
Для пользователей xamarin используйте этот код, чтобы получить имя и код версии
1) Название версии:
Ответ 13
Получить код сборки, который используется для идентификации apk по его коду версии. Код версии используется для определения фактической конфигурации сборки во время обновления базы данных, публикации и т.д.
int versionCode = BuildConfig.VERSION_CODE;
Имя версии используется для ознакомления пользователей с разработчиками последовательности Developmemt. Вы можете добавить любое название версии по своему желанию.
String versionName = BuildConfig.VERSION_NAME;
Ответ 14
Если вы хотите использовать его в xml, добавьте строку ниже в файл gradle:
И затем используйте его на вашем xml следующим образом:
Ответ 15
Всегда делайте это с блоком try catch :
Ответ 16
Вот способ получения кода версии:
Ответ 17
У меня есть SOLVE this, используя класс предпочтений.
Ответ 18
Есть несколько способов получить versionCode и versionName программно.
- Получить версию из PackageManager . Это лучший способ для большинства случаев.
- Получите его из сгенерированного BuildConfig.java . Но обратите внимание, что если вы получите доступ к этим значениям в библиотеке, она вернет версию библиотеки, а не приложения, использующие эту библиотеку. Так что используйте только в небиблиотечных проектах!
Есть некоторые детали, кроме использования второго способа в проекте библиотеки. В новом плагине Android Gradle (3.0. 0+) некоторые функциональные возможности удалены. Итак, на данный момент, т.е. установка разных версий для разных вкусов работает некорректно.
Код выше будет правильно установить значение в BuildConfig , но от PackageManager вы получите 0 и null , если вы не установили версию в по default конфигурации. Таким образом, ваше приложение будет иметь код 0 версии на устройстве.
Существует обходной путь — установите версию для выходного файла apk вручную:
Ответ 19
Нет, вам не нужно ничего делать с AndroidManifest.xml
Как правило, название и код версии вашего приложения находятся в файле gradle уровня приложения под тегом defaultConfig:
Примечание. Если вы хотите загрузить приложение в PlayStore, можно указать любое имя в качестве имени версии, но код версии должен отличаться от кода текущей версии, если это приложение уже находится в Play Store.
Просто используйте следующий фрагмент кода, чтобы получить код версии и название версии из любой точки вашего приложения:
Ответ 20
для Api 28 PackageInfo.versionCode устарел, поэтому используйте следующий код:
Ответ 21
Этот код упоминался выше, но здесь он снова включен. Вам нужен блок try/catch, потому что он может вызывать «NameNotFoundException».
Надеюсь, это упростит для кого-то дорогу.:)
Ответ 22
Кому-то, кому нужна информация о BuildConfig для пользовательского интерфейса приложения, однако, хочет использовать эту информацию для настройки конфигурации задания CI или других, таких как я.
В вашем каталоге проектов автоматически создается файл BuildConfig.java, пока вы успешно строите проект.
Разделите информацию, необходимую для python script или других инструментов. Вот пример:
Пожалуйста, извините мои ограниченные возможности английского языка, но надеюсь, что это поможет.
Источник
How can I check the system version of Android?
Does anyone know how can I check the system version (e.g. 1.0 , 2.2 , etc.) programatically?
13 Answers 13
Example how to use it:
- CODENAME : The current development codename, or the string «REL» if this is a release build.
- INCREMENTAL : The internal value used by the underlying source control to represent this build.
- RELEASE : The user-visible version string.
Build.Version is the place go to for this data. Here is a code snippet for how to format it.
Looks like this «Android SDK: 19 (4.4.4)»
For checking device version which is greater than or equal to Marshmallow ,use this code.
for ckecking others just change the VERSION_CODES like,
K for kitkat,
L for loolipop N for Nougat and so on.
That will give you the actual numbers of your version; aka 2.3.3 or 2.2. The problem with using Build.VERSION.SDK_INT is if you have a rooted phone or custom rom, you could have a none standard OS (aka my android is running 2.3.5) and that will return a null when using Build.VERSION.SDK_INT so Build.VERSION.RELEASE will work no matter what!
You can find out the Android version looking at Build.VERSION .
The documentation recommends you check Build.VERSION.SDK_INT against the values in Build.VERSION_CODES .
This is fine as long as you realise that Build.VERSION.SDK_INT was only introduced in API Level 4, which is to say Android 1.6 (Donut). So this won’t affect you, but if you did want your app to run on Android 1.5 or earlier then you would have to use the deprecated Build.VERSION.SDK instead.
I can’t comment on the answers, but there is a huge mistake in Kaushik’s answer: SDK_INT is not the same as system version but actually refers to API Level.
The value Build.VERSION_CODES.ICE_CREAM_SANDWICH equals 14. 14 is the API level of Ice Cream Sandwich, while the system version is 4.0. So if you write 4.0, your code will be executed on all devices starting from Donut, because 4 is the API level of Donut ( Build.VERSION_CODES.DONUT equals 4).
This example is a reason why using ‘magic number’ is a bad habit.
Источник
Get Android .apk file VersionName or VersionCode WITHOUT installing apk
How can I get programmatically get the version code or version name of my apk from the AndroidManifest.xml file after downloading it and without installing it.
For example I want to check if a new version is uploaded on my IIS service, after install it on device, if it is not a new version I don’t want to install it.
10 Answers 10
Following worked for me from the command line:
NOTE: aapt.exe is found in a build-tools sub-folder of SDK. For example:
If you are using version 2.2 and above of Android Studio then in Android Studio use Build → Analyze APK then select AndroidManifest.xml file.
This answers the question by returning only the version number as a result. However.
The goal as previously stated should be to find out if the apk on the server is newer than the one installed BEFORE attempting to download or install it. The easiest way to do this is include the version number in the filename of the apk hosted on the server eg myapp_1.01.apk
You will need to establish the name and version number of the apps already installed (if it is installed) in order to make the comparison. You will need a rooted device or a means of installing the aapt binary and busybox if they are not already included in the rom.
This script will get the list of apps from your server and compare with any installed apps. The result is a list flagged for upgrade/installation.
As somebody asked how to do it without using aapt. It is also possible to extract apk info with apktool and a bit of scripting. This way is slower and not simple in android but will work on windows/mac or linux as long as you have working apktool setup.
Also consider a drop folder on your server. Upload apks to it and a cron task renames and moves them to your update folder.
Источник
Tek Eye
The table in this article lists all the different versions of Android, starting with the earliest Application Programming Interface (API) level to the latest API level. Thus the list is from the oldest Android versions to the latest.
Android Versions by Name, Number, Availability and API Level
Each version of Android is given a code name. The code name is traditionally the name of a dessert, cake or sweet, e.g, Gingerbread, Froyo, Jelly Bean, etc. — as the sugar laden picture below shows. The table that follows lists the code names, version numbers, first release date and Application Programming Interface (API) versions, along with the equivalent Software Development Kit (SDK) constants (Build.VERSION_CODES). The Android version number on a device is normally found in the settings. Select Settings, then About Phone or About Device and look at the Firmware Version or Android Version entry.
List of Android Versions and Their Names, API Level and Dates
Name | Version | Available | API | VERSION_CODES |
---|---|---|---|---|
N/A | 1.0 | October 2008 | 1 | BASE |
N/A | 1.1 | February 2009 | 2 | BASE_1_1 |
Cupcake | 1.5 | May 2009 | 3 | CUPCAKE |
Donut | 1.6 | September 2009 | 4 | DONUT |
Eclair | 2.0 | November 2009 | 5 | ECLAIR |
Eclair | 2.0.1 | December 2009 | 6 | ECLAIR_0_1 |
Eclair | 2.1 | January 2010 | 7 | ECLAIR_MR1 |
Froyo | 2.2 to 2.2.3 | June 2010 | 8 | FROYO |
Gingerbread | 2.3 to 2.3.2 | November 2010 | 9 | GINGERBREAD |
Gingerbread | 2.3.3 to 2.3.7 | February 2011 | 10 | GINGERBREAD_MR1 |
Honeycomb | 3.0 | February 2011 | 11 | HONEYCOMB |
Honeycomb | 3.1 | May 2011 | 12 | HONEYCOMB_MR1 |
Honeycomb | 3.2 to 3.2.6 | June 2011 | 13 | HONEYCOMB_MR2 |
Ice Cream Sandwich | 4.0.1 to 4.0.2 | October 2011 | 14 | ICE_CREAM_SANDWICH |
Ice Cream Sandwich | 4.0.3 to 4.0.4 | December 2011 | 15 | ICE_CREAM_SANDWICH_MR1 |
Jelly Bean | 4.1 to 4.1.1 | July 2012 | 16 | JELLY_BEAN |
Jelly Bean | 4.2 to 4.2.2 | November 2012 | 17 | JELLY_BEAN_MR1 |
Jelly Bean | 4.3 | July 2013 | 18 | JELLY_BEAN_MR2 |
Kit Kat | 4.4 to 4.4.4 | October 2013 | 19 | KITKAT |
Kit Kat | 4.4W to 4.4W.2 | June 2014 | 20 | KITKAT_WATCH |
Lollipop | 5.0 to 5.0.2 | November 2014 | 21 | LOLLIPOP |
Lollipop | 5.1 to 5.1.1 | March 2015 | 22 | LOLLIPOP_MR1 |
Marshmallow | 6.0 to 6.0.1 | October 2015 | 23 | M |
Nougat | 7.0 | August 2016 | 24 | N |
Nougat | 7.1 to 7.1.2 | October 2016 | 25 | N_MR1 |
Oreo | 8.0.0 | August 2017 | 26 | O |
Oreo | 8.1.0 | December 2017 | 27 | O_MR1 |
The above table was derived from the following sources (note that some release dates are derived from the Android developers documentation, the actual SDK availability may have been a little earlier, see the Wikipedia article):
When programming an App the API level is used to determine whether specific Android features are present or not. The API level can be read in versions prior to Donut (Cupcake, 1.1 and 1.0) using:
int APILevel = Integer.parseInt(Build.VERSION.SDK);
And from Donut onwards using:
int APILevel = Build.VERSION.SDK_INT;
(Build.VERSION.SDK is deprecated, i.e. it will be removed from the API at some future release).
When using functionality from a later API, but the App needs to support earlier Android versions, wrap the newer functionality in a separate class. Then check the API level before instantiating the class to prevent a VerifyError exception from occurring. See the article Support Multiple API Versions in Android.
Author: Daniel S. Fowler Published: 2012-05-25 Updated: 2017-01-08
Do you have a question or comment about this article?
(Alternatively, use the email address at the bottom of the web page.)
↓markdown↓ CMS is fast and simple. Build websites quickly and publish easily. For beginner to expert.
Free Android Projects and Samples:
Источник