精华内容
下载资源
问答
  • 一、获取当前程序版本名咱们能够在AndroidManifest.xml中设置程序的版本号等,如android:versionName="1.0",那若是想在代码中获取这个版本号呢,能够用以下方法(这些修改版本号时只须要修改AndroidManifest.xml中的...

    一、获取当前程序版本名

    咱们能够在AndroidManifest.xml中设置程序的版本号等,如android:versionName="1.0",那若是想在代码中获取这个版本号呢,能够用以下方法(这些修改版本号时只须要修改AndroidManifest.xml中的设置,不用修改代码了):java

    /**

    * 返回当前程序版本名

    */

    public static String getAppVersionName(Context context) {

    String versionName = "";

    try {

    // ---get the package info---

    PackageManager pm = context.getPackageManager();

    PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0);

    versionName = pi.versionName;

    versioncode = pi.versionCode;

    if (versionName == null || versionName.length() <= 0) {

    return "";

    }

    } catch (Exception e) {

    Log.e("VersionInfo", "Exception", e);

    }

    return versionName;

    }

    二、获取当前应用的版本号

    public static String getVersionName() throws Exception

    {

    // 获取packagemanager的实例

    PackageManager packageManager = getPackageManager();

    // getPackageName()是你当前类的包名,0表明是获取版本信息

    PackageInfo packInfo = packageManager.getPackageInfo(getPackageName(),0);

    String version = packInfo.versionName;

    return version;

    }

    三、获取当前系统的版本号

    /**

    * 手机系统版本

    */

    public static String getSdkVersion() {

    return android.os.Build.VERSION.RELEASE;

    }

    展开全文
  • 之前没有设置过打包的命名,每次打包都是默认的"app-realease.apk",之后手动修改名字来显示出它是一个新版本。晚上学习了如何配置打包名称,很简单,修改build.gradle里的代码就行。详细记录如下:1、打开app这个...

    之前没有设置过打包的命名,每次打包都是默认的"app-realease.apk",之后手动修改名字来显示出它是一个新版本。

    晚上学习了如何配置打包名称,很简单,修改build.gradle里的代码就行。

    详细记录如下:

    1、打开app这个directory下的build.gradle

    2、定义打包时间:

    //时间

    def releaseTime() {

    return new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC"))

    }

    3、自定义发布时的版本号(return的返回值可自行修改,例如1.0、2.0):

    //版本号

    def getVersionName(){

    return "2.0"

    }

    4、自定义打包名称(代码中的XYZ可修改为app名字):

    //名称

    applicationVariants.all { variant ->

    variant.outputs.each { output ->

    def outputFile = output.outputFile

    def fileName

    if (outputFile != null && outputFile.name.endsWith('.apk')) {

    if (variant.buildType.name.equals('release')) {

    variant.mergedFlavor.versionName = getVersionName()

    fileName = "XYZ_${variant.mergedFlavor.versionName}_release.apk"

    } else if (variant.buildType.name.equals('debug')) {

    variant.mergedFlavor.versionName = getVersionName()+"."+releaseTime()

    fileName = "XYZ_${variant.mergedFlavor.versionName}_debug.apk"

    }

    output.outputFile = new File(outputFile.parent, fileName)

    }

    }

    }

    5、build.gradle的完整代码:

    apply plugin: 'com.android.application'

    //定义时间

    def releaseTime() {

    return new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC"))

    }

    //设置发布时的版本号

    def getVersionName(){

    return "2.0"

    }

    android {

    compileSdkVersion 26

    buildToolsVersion "26.0.0"

    defaultConfig {

    applicationId "***"

    minSdkVersion 14

    targetSdkVersion 23

    versionCode 1

    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

    }

    buildTypes {

    release {

    buildConfigField("boolean","API_DEBUG","false")

    minifyEnabled false

    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

    }

    debug {

    buildConfigField("boolean","API_DEBUG","true")

    minifyEnabled false

    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

    }

    }

    //配置打包名称

    applicationVariants.all { variant ->

    variant.outputs.each { output ->

    def outputFile = output.outputFile

    def fileName

    if (outputFile != null && outputFile.name.endsWith('.apk')) {

    if (variant.buildType.name.equals('release')) {

    variant.mergedFlavor.versionName = getVersionName()

    fileName = "XYZ_${variant.mergedFlavor.versionName}_release.apk"

    } else if (variant.buildType.name.equals('debug')) {

    variant.mergedFlavor.versionName = getVersionName()+"."+releaseTime()

    fileName = "XYZ_${variant.mergedFlavor.versionName}_debug.apk"

    }

    output.outputFile = new File(outputFile.parent, fileName)

    }

    }

    }

    }

    dependencies {

    compile fileTree(dir: 'libs', include: ['*.jar'])

    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {

    exclude group: 'com.android.support', module: 'support-annotations'

    })

    }

    总结

    以上所述是小编给大家介绍的Android打包版本号设置方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

    展开全文
  • os:android7.1客户需求:整个板子的软件程序由系统软件和mcu软件组成,mcu软件每次烧录了新版本之后,需要也能显示出来版本号。解决方案:可以参照android版本号,做一个拼接的显示。因此要捋顺android版本号的...

    os:android7.1

    客户需求:整个板子的软件程序由系统软件和mcu软件组成,mcu软件每次烧录了新版本之后,需要也能显示出来版本号。

    解决方案:可以参照android的版本号,做一个拼接的显示。

    因此要捋顺android版本号的整个显示流程。

    1.在文件 packages/apps/Settings/src/com/android/settings/DeviceInfoSettings.java 中:

    setStringSummary("build_number", Build.DISPLAY);

    指定了设置--关于设备--版本号。

    2.Build.DISPLAY即Build类中的 DISPLAY 变量,在文件frameworks/base/core/java/android/os/Build.java 中:

    public static final String DISPLAY = getString("ro.build.display.id");

    3.当 android 系统跑起来 之后,会读取 /system/build.prop 文件里 对应的 字符串;

    ro.build.display.id=xxxxxx;

    4.ro.build.display.id在文件build/tools/buildinfo.sh中:

    echo "ro.build.display.id=$BUILD_DISPLAY_ID"

    build/tools/buildinfo.sh 文件 会把 内容 写到 /system/build.prop 文件里,供 java文件 读取.

    5.通过读写文件的方式,读取版本号:

    +       private static final String MUC_VERSION = "/sys/android_pic/mcu_version";

    public staticString GetMcuVersion(String paramString) {+ File localFile = newFile(paramString);+ String result = "wmc";+ Log.v("wmc", "mcu path=" +paramString);+ if (!localFile.exists())+ System.out.println(paramString + "not exist!");+

    + try{+ FileInputStream fis = newFileInputStream(localFile);+ BufferedReader br = new BufferedReader(newInputStreamReader(fis));+ result =br.readLine();+ //System.out.println("版本 = "+result);

    +br.close();+ } catch(Exception e) {+ //TODO Auto-generated catch block

    +e.printStackTrace();+}+

    + returnresult;+ }

    @Override

    public void onCreate(Bundle icicle) {

    super.onCreate(icicle);

    + //wmc add

    + String mcuversion = GetMcuVersion(MUC_VERSION);

    + Log.d("wmc","mcuversion is:" + mcuversion);

    +

    +

    addPreferencesFromResource(R.xml.device_info_settings);

    说明:MUC_VERSION是要读取的文件路径,其是kernel底层实现的一个sysfs接口,该接口实现通过cpu与mcu的i2c通信,读取mcu发过过来的数据,上层应用再读该文件。底层怎样实现这里不做阐述。每次打开系统设置-关于设备时,DeviceInfoSettings.java都会onCreate一次,String mcuversion = GetMcuVersion(MUC_VERSION);都会读取一次.

    5.把读取到的mcu版本号与系统版本号拼接显示:

    通过前面的分析,可知版本号是setStringSummary("build_number", Build.DISPLAY);实现的。所以,可做个简单的如下写法:

    setStringSummary(KEY_BUILD_NUMBER, Build.DISPLAY+"&"+mcuversion);

    参考:https://www.cnblogs.com/codeking100/p/10239224.html

    https://www.jb51.net/article/186258.htm

    展开全文
  • Android打包版本号设置

    2021-06-02 21:18:28
    之前没有设置过打包的命名,每次打包都是默认的"app-realease.apk",之后手动修改名字来显示出它是一个新版本。晚上学习了如何配置打包名称,很简单,修改build.gradle里的代码就行。详细记录如下:1、打开app这个...

    之前没有设置过打包的命名,每次打包都是默认的"app-realease.apk",之后手动修改名字来显示出它是一个新版本。

    晚上学习了如何配置打包名称,很简单,修改build.gradle里的代码就行。

    详细记录如下:

    1、打开app这个directory下的build.gradle

    2、定义打包时间:

    //时间

    def releaseTime() {

    return new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC"))

    }

    3、自定义发布时的版本号(return的返回值可自行修改,例如1.0、2.0):

    //版本号

    def getVersionName(){

    return "2.0"

    }

    4、自定义打包名称(代码中的XYZ可修改为app名字):

    //名称

    applicationVariants.all { variant ->

    variant.outputs.each { output ->

    def outputFile = output.outputFile

    def fileName

    if (outputFile != null && outputFile.name.endsWith('.apk')) {

    if (variant.buildType.name.equals('release')) {

    variant.mergedFlavor.versionName = getVersionName()

    fileName = "XYZ_${variant.mergedFlavor.versionName}_release.apk"

    } else if (variant.buildType.name.equals('debug')) {

    variant.mergedFlavor.versionName = getVersionName()+"."+releaseTime()

    fileName = "XYZ_${variant.mergedFlavor.versionName}_debug.apk"

    }

    output.outputFile = new File(outputFile.parent, fileName)

    }

    }

    }

    5、build.gradle的完整代码:

    apply plugin: 'com.android.application'

    //定义时间

    def releaseTime() {

    return new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC"))

    }

    //设置发布时的版本号

    def getVersionName(){

    return "2.0"

    }

    android {

    compileSdkVersion 26

    buildToolsVersion "26.0.0"

    defaultConfig {

    applicationId "***"

    minSdkVersion 14

    targetSdkVersion 23

    versionCode 1

    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

    }

    buildTypes {

    release {

    buildConfigField("boolean","API_DEBUG","false")

    minifyEnabled false

    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

    }

    debug {

    buildConfigField("boolean","API_DEBUG","true")

    minifyEnabled false

    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

    }

    }

    //配置打包名称

    applicationVariants.all { variant ->

    variant.outputs.each { output ->

    def outputFile = output.outputFile

    def fileName

    if (outputFile != null && outputFile.name.endsWith('.apk')) {

    if (variant.buildType.name.equals('release')) {

    variant.mergedFlavor.versionName = getVersionName()

    fileName = "XYZ_${variant.mergedFlavor.versionName}_release.apk"

    } else if (variant.buildType.name.equals('debug')) {

    variant.mergedFlavor.versionName = getVersionName()+"."+releaseTime()

    fileName = "XYZ_${variant.mergedFlavor.versionName}_debug.apk"

    }

    output.outputFile = new File(outputFile.parent, fileName)

    }

    }

    }

    }

    dependencies {

    compile fileTree(dir: 'libs', include: ['*.jar'])

    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {

    exclude group: 'com.android.support', module: 'support-annotations'

    })

    }

    Android打包 &amp&semi; Gradle用法

    Ref: Maven仓库上查插件最新版本号The Central Repository Search Enginehttp://search.maven.org/#search%7Cga%7C1%7C ...

    Android打包的那些事

    使用gradle打包apk已经成为当前主流趋势,我也在这个过程中经历了各种需求,并不断结合gradle新的支持,一一改进.在此,把这些相关的东西记录,做一总结. 1. 替换AndroidManifes ...

    unity3d在菜单栏&comma;一键设置Player setting及自动打包并设置apk的存储位置

    项目进行中,领导要求能够进行一键设置Player settings及自动打包并设置apk的位置,所以自己就上网搜索了很多大神的文章.最后是完成了领导需要的功能,在这里记录并分享一下(此项指针对安卓ap ...

    ionic3应用的Android打包签名发布步骤

    版权声明:本文为博主原创文章,未经博主允许不得转载. 当我们的ionic应用开发结束之后,就要开始上线到应用市场,那么Android的发布步骤具体是怎么样的呢? 1)编译 运行命令行: ionic c ...

    RN在Android打包发布App

    参考资料:http://www.jianshu.com/p/b8811669bcb6 RN在Android打包发布App 1-:生成一个签名密钥你可以用keytool命令生成一个私有密钥.在Windo ...

    &lbrack;原&rsqb;Android打包之Eclipse打多渠道包

    Android自动打包流程详细图: 步骤一和步骤二参考:[原]Android打包之Eclipse打包 步骤三:编写build.xml <?xml version="1.0" ...

    &lbrack;转&plus;补&rsqb;Android打包so后魅族5中安装运行崩溃问题的解决方法

    上周在做噪音检测so集成中,遇到不同的so库打包到 APK 时,安装在某些机器上,出现 java.lang.UnsatisfiedLinkError 加载失败. 为此,深究了一下原理,和给出了解决方案 ...

    Android学习路线(十九)支持不同设备——支持不同&lpar;Android&rpar;平台版本号

    当最新的Android版本号为你的应用提供着非常棒的APIs时.你却要在很多其它的设备更新之前继续支持老的系统版本号.这篇课程怎样在继续支持低版本号的系统的情况下使用新版本号的高级API. Platf ...

    Android提示版本号更新操作流程

    Android提示版本号更新操作流程 2014年5月8日: andorid的app应用中都会有版本号更新的操作,今天空暇的时候就花了点心思弄了一下.主要技术方面用到了AsyncTask异步载入.htt ...

    随机推荐

    php 执行程序分析

    记录程序运行细节 记录程序运行时间 <?php $start = microtime(true); //index.php $end = microtime(true); $time = num ...

    HDU1402 A &ast; B Problem Plus(FFT)

    http://acm.hdu.edu.cn/showproblem.php?pid=1402 初学FFT. http://www.cnblogs.com/WABoss/p/FFT_Note.html ...

    JavaScript里面三个等号和两个等号有什么区别?

    1.对于string,number等基础类型,==和===是有区别的 a)不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===如果类型不同,其结果就是不等 b)同类型比较,直接进 ...

    java web 学习三(Tomcat 服务器学习和使用2)

    一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命令的用法如下:

    hdoj 4183 Pahom on Water

    Pahom on Water Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

    CSS常见问题及兼容性

    CSS常见问题 1 (IE6,7)H5标签兼容 解决方法1:(只显示核心代码) 1

    iOS 开发中中 textView 作为子控件点击输入文本,然后退出文本的方式

    方式1. 使用当双击输入的时候弹出键盘同时,使用手势和通知监听键盘的方法实现 代码如下: 1. 监听键盘通知 [[NSNotificationCenter defaultCenter] addObse ...

    Core Animation 文档翻译 (第四篇)

    Core Animation 文档翻译(第四篇) 让Layer的content动画起来 核心动画的基础接口以及为拥有Layer的View做的动画扩展接口,使得为Layer制作复杂动画变得简单化.例如改 ...

    js 解密

    需求:爬取https://www.xuexi.cn/f997e76a890b0e5a053c57b19f468436/018d244441062d8916dd472a4c6a0a0b.html页面中的 ...

    dos命令 创建数据库,建表,两表联查,三表联查(mysql---第一篇)

    首先打开mysql的控制台,输入密码进行登录  (ps:本文的mysql控制台,是运用的php的集成环境(phpstudy),点击运行,找到mysql命令行,直接打开就可以了) 登陆成功后,就可以进行 ...

    展开全文
  • 对于定制化开发的,由于硬件板卡不同,系统源码中,对于系统属性的值也需要做相应的修改 今天就来实现对Build.ID和Build.DISPLAY的值来做修改 先看下Build.java的源码 public class Build { private static final ...
  • 指定了设置--关于设备--版本号。Build.DISPLAY即Build类中的 DISPLAY 变量,在文件frameworks/base/core/java/android/os/Build.java 中:public static final String DISPLAY = getString("...
  • 前提 Android 中控制 Java 编译有两个参数:sourceCompatibility:编译 Java 源文件的 JDK 版本,默认当前环境变量对应版本targetCompatibility:用于生成类的 Java 版本两者关系:targetCompatibility >...
  • 这一点倒是不奇怪,很多正式的应用都有自己的一套版本号管理。市面上什么某某应用几点零,就是这样的一个产物。我这个任务的难度除了自动生成,还有一个附加条件:在Android项目中编译(通过Android.mk)和在Android ...
  • 开发react-native时大都有过这个操作,当版本迭代时候要修改app版本号时,一般都这样做Android:的要修改build.gradle文件的versionNameios:打开xcode修改Info.plist的Bundle versions string, short这过程特别繁琐...
  • Android studio版本号查看的三种方法

    千次阅读 2021-06-07 09:07:34
    Android studio版本号查看的三种方法发布于 2016-04-10 22:50:17 | 688 次阅读 | 评论: 0 | 来源: 网友投递Android Studio Android 开发环境Android Studio 是一个全新的 Android 开发环境,基于IntelliJ IDEA....
  • 这一点倒是不奇怪,很多正式的应用都有自己的一套版本号管理。市面上什么某某应用几点零,就是这样的一个产物。我这个任务的难度除了自动生成,还有一个附加条件:在Android项目中编译(通过Android.mk)和在Android ...
  • 需求:我想根据不同的类型,打包不同的版本号,在Android中怎么实现?例如:release(发布)版本号 1.0.1,debug(测试)版本号1.0.1.20160924在Android开发中,我们会不断的进行版本打包,打包分为2类:1、release(正式...
  • 下载安装包(DMG文件),打开并将Android Studio拖动到Applications中去,拷贝完毕即可,可以到应用程序下将图标拖动到Dock上。二、新建工程安装完成后,选择默认选项点击OK即可:进入Android Studio,开始界面和Xcode...
  • 安装adb1.1下载地址:https://developer.android.google.cn/studio/releases/platform-tools下载完毕直接解压即可如图,我就是解压在D盘1.2配置环境变量将adb的路径配置到path变量里我的是:D:\安装包\platform-...
  • Android开发中常常需要进行多渠道打包,并且在包名中加入特定的标识,例如在提测阶段的包名中加入版本号、版本名、打包的时间,便于区分不同的测试包。配置发布渠道为了能够生成不同渠道的安装包,一般需要进行构建...
  • 3、V1.0版本修改,轻松搞定。这个应该是android7.0之前的方法以前这样就可以改过来了。4、但是并没有成功,有些朋友说activity的优先级要高于Application,那就试一下activity上面设一下。一点效果没有。5、有些朋友...
  • Bugly Android 应用升级 SDK 常见问题最新问题解答更新在github1. 添加abiFilter之后Android Studio出现已下提示 "NDK integration is deprecated in the current plugin. Consider trying the new experimental ...
  • Android版本迭代中,总会进行很多改动,那么你熟知各版本都改动了什么内容?又要怎么适配呢? Android4.4 发布ART虚拟机,提供选项可以开启。 HttpURLConnection的底层实现改为了OkHttp。 Android5.0 ...
  • 经过长时间的迭代,gradle plugin的变迁以及插件化和模块远程依赖导致项目结构发生了巨大的变化,想要直接找回某个版本的代码成功的运行起来比较困难,不过还好只是修改版本号以及渠道,所以想到了直接使用反编译改...
  • 请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)[内容]重现步骤[步骤]安卓版安装更新wgt并重启后,通过plus.runtime.version获取的应用版本号还是上一个版本的[结果][期望][如果语言难以表述清晰...
  • java -jar bundletool-all-1.5.0.jar dump manifest --bundle launcher.aab --xpath /manifest/@android:versionName java -jar bundletool-all-1.5.0.jar dump manifest --bundle launcher.aab --xpath /manifest...
  • 不少朋友都在问Android在高jar包版本的工程中修改方法是怎样的,为此小编整理了一些...所以我们需要将我们已经开发好的应用程序换上低版本android jar包重新编译一个APK,那么如何简单的在高版本的工程中直接修改...
  • 实际上,当我需要在表中为多个sq-lite版本添加一些行时,我对如何处理SQLite表有些困惑.我谷歌的东西,发现这样的东西,我们必须在onUpgrade方法做alter table.这将是工作顺序更新.Suppose i have 3 devices they have ...
  • 为了能在所有这些设备上顺利运行,Android 系统在应用到设备上时,必不可少的需要处理与 Android 应用的兼容性问题。这里就牵扯出两个概念:设备兼容性与应用兼容性。 设备兼容性:设备兼容 Android 的前提是它可以...
  • 迁移现有应用有一个好方法,就是在修改现有 Java 文件时将其转换为 Kotlin。虽然这意味着你要把经常编辑的文件转换过去,会增加代码审查的复杂度(比如会面临潜在的冲突),但由于转换后的区域能得到审查,因此可以...
  • ADT(Android Development Tools): 目前Android开发所用的开发工具是Eclipse,在Eclipse编译IDE环境中,安装ADT,为Android开发提供开发工具的升级或者变更,简单理解为在Eclipse下开发工具的升级下载工具。...
  • 我想更改应用程序口味的版本名称,但只有当它是一个调试版本。(例如,调试版本将具有1.0.1 D(DEBUG)555或1.0.1 P(DEBUG)555等版本,但是我希望版本版本只有1.0.1版本)我该如何实现?基本上我有这些构建类型:...
  • 学更好的别人,做更好的自己。——《微卡智享》本文长度为2879字,预计阅读7分钟前言最近一直在做一款Android的新产品,所以更新的文章基本都是Android相关,主要是产品中的应用的东...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 53,245
精华内容 21,298
关键字:

安卓修改应用版本号