Разница между версиейName и versionNumber в Android

Нужно ли изменять параметры versionName и versionNumber, если в приложении Android внесено незначительное изменение или достаточно изменить только один?

В чем разница между этими двумя?

Ответы

Ответ 1

Настройка версии приложения

Чтобы определить информацию о версии для вашего приложения, вы устанавливаете атрибуты в файле манифеста приложения. Доступны два атрибута, и вы всегда должны определять значения для них обоих:

* android:versionCode — An integer value that represents the version of the application
  code, relative to other versions.

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

Как правило, вы выпускаете первую версию своего приложения с установленной версией VersionCode равным 1, а затем монотонно увеличиваете значение с каждой версией, независимо от того, является ли релиз основной или младшей версией. Это означает, что значение android: versionCode не обязательно имеет сильное сходство с версией выпуска приложения, которая видна пользователю (см. Андроид: versionName, ниже). Приложения и службы публикации не должны показывать это значение версии пользователям.

* android:versionName — A string value that represents the release version of the
  application code, as it should be shown to users.

Значение представляет собой строку, позволяющую описать версию приложения как строку.. или как любой другой тип абсолютного или относительного идентификатора версии.

Как и в случае с android: versionCode, система не использует это значение для каких-либо внутренних целей, кроме того, чтобы приложения отображали их пользователям. Услуги публикации также могут извлекать значение android: versionName для отображения пользователям.

Эта ссылка содержит дополнительную информацию и следующий пример:

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.example.package.name"
      android:versionCode="2"
      android:versionName="1.1">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        ...
    </application>
</manifest>

Ответ 2

Вам ничего не нужно менять, но код выглядит лучше, когда вы это делаете:)

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

versionCode - целое число, и оно определяет, какая версия более поздняя. Пока он будет расти, все будет хорошо;)

Ссылка Ссылка

Ответ 3

Со ссылкой на документ

андроида: VersionCode

Внутренний номер версии. Этот номер используется только для определения того, является ли одна версия более поздней, чем другая, с более высокими номерами, указывающими более поздние версии. Это не номер версии, показанный пользователям; это число задается атрибутом versionName. Значение должно быть задано как целое число, например "100". Вы можете определить его, как хотите, до тех пор, пока каждая последующая версия имеет большее число. [...]

андроида: versionName

Номер версии, показанный пользователям. Этот атрибут может быть задан как необработанная строка или как ссылка на ресурс строки. Строка не имеет другой цели, кроме как показывать ее пользователям. Атрибут versionCode содержит значимый номер версии, используемый внутри.