精华内容
下载资源
问答
  • Android修改APP版本号

    万次阅读 2016-09-19 14:28:34
    Android修改APP版本号

    Android:versionCode和Android:versionName

    在eclipse中,修改我们开发的应用的版本号只需要在清单文件AndroidManifest.xml中manifest 标签节点中加入android:versionCode和android:versionName的值即可设置应用的版本号。如以下代码:
    代码片段

    上述代码表示应用的包名为cn.wangbaiyuan.translate,版本号code:2,版本名Name:1.1;前者一般是给开发者比较版本是否有升级用的,后者是展示给用户看的。
    这里写图片描述

    在Eclipse中使用修改AndroidManifest.xml修改版本号是完全没有问题的,但是本人使用的是Android Studio,仅仅修改AndroidManifest.xml内容并没有完全改过来,在系统弹出的安装提示框里,那个旧版本的版本号并不因AndroidManifest.xml的修改而变化。
    这里写图片描述

    AndroidStudio开发安卓应用设置版本号

    后来才发现是Android Studio中build.gradle(Module:app)配置文件同样设置了它的版本号,在和AndroidManifest.xml填写的版本号冲突的情况下,编译后的APK使用了build.gradle(Module:app)里面的配置:

    build.gradle(Module:app)

    这里写图片描述

    解决方法

    在项目文件夹下找到build.gradle(Module:app)文件,删除defaultConfig里面VersionCode 和VersionName这两行;或者直接在这里修改版本号。

    展开全文
  • android改app版本号

    2019-10-15 20:07:56
    app build.gradle

    app
    build.gradle
    还有mainfest最好一致
    在这里插入图片描述![在这里插入图片描述](https://img-blog.csdnimg.cn/20191015200726219.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzUzMTk0MA==,size_16,color_FFFFFF,t_70)

    如果有NDK Resolution Outcome: Project settings: Gradle model version=5.4.1, NDK version is UNKNOWN错误,先make project,再生成apk

    展开全文
  • Android动态代理实现修改App版本号

    千次阅读 2020-05-19 11:55:48
    通过这个案例,我们可以了解一下动态代理技术,并且能够在不改变版本号的情况下,动态修改版本号进行升级功能的测试,主要实现原理是通过动态代理getPackageInfo()来mock数据。 一、创建PackageManagerHook代理类 ...

    应用场景

    通过这个案例,我们可以了解一下动态代理技术,并且能够在不改变版本号的情况下,动态修改版本号进行升级功能的测试,主要实现原理是通过动态代理getPackageInfo()来mock数据。

    一、创建PackageManagerHook代理类

    public class PackageManagerHook {
      /**
       * 越早hook越好,推荐在Application.attachBaseContext中调用
       */
      public static void hook(final Context context) {
        try {
          //1、得到ActivityThread类
          Class<?> activityThreadClz = Class.forName("android.app.ActivityThread");
          Method currentActivityThread = activityThreadClz.getMethod("currentActivityThread");
          //2、得到当前的ActivityThread对象
          Object activityThread = currentActivityThread.invoke(null);
          //3、得到PackageManager对象
          Method getPackageManager = activityThreadClz.getMethod("getPackageManager");
          final Object pkgManager = getPackageManager.invoke(activityThread);
    
          Class<?> packageManagerClz = Class.forName("android.content.pm.IPackageManager");
          //hook sPackageManager
          Field packageManagerField = activityThreadClz.getDeclaredField("sPackageManager");
          packageManagerField.setAccessible(true);
          //动态代理
          packageManagerField.set(activityThread, Proxy.newProxyInstance(context.getClassLoader(),
              new Class[] { packageManagerClz }, new InvocationHandler() {
                @Override
                public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
                  Object result = method.invoke(pkgManager,args);
                  if ("getPackageInfo".equals(method.getName())){
                    PackageInfo pkgInfo = (PackageInfo) result;
    
                    //修改App的版本信息
                    pkgInfo.versionCode = 520;
                    pkgInfo.versionName = "version:5.2.0";
                  }
                  return result;
                }
              }));
        } catch (ClassNotFoundException e) {
          e.printStackTrace();
        } catch (NoSuchMethodException e) {
          e.printStackTrace();
        } catch (IllegalAccessException e) {
          e.printStackTrace();
        } catch (InvocationTargetException e) {
          e.printStackTrace();
        } catch (NoSuchFieldException e) {
          e.printStackTrace();
        }
      }
    }
    

    二、创建ProxyApplication

    public class ProxyApplication extends Application {
    
      @Override
      protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        PackageManagerHook.hook(this);
      }
    }
    

    三、在AndroidManifest.xml设置

    <application
      android:name=".ProxyApplication"
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:supportsRtl="true"
      android:theme="@style/AppTheme">
      <activity android:name=".MainActivity">
        <intent-filter>
          <action android:name="android.intent.action.MAIN" />
          <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
      </activity>
    </application>
    

    四、创建布局文件

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="match_parent"
      android:layout_height="match_parent">
    
      <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:textColor="#222222"
        android:textSize="18dp" />
    
    </RelativeLayout>
    

    五、在Activity中取值

    import android.content.pm.PackageInfo;
    import android.content.pm.PackageManager;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.widget.TextView;
    
    public class MainActivity extends AppCompatActivity {
    
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView textView = findViewById(R.id.text);
        PackageManager manager = this.getPackageManager();
        try {
          PackageInfo info = manager.getPackageInfo(this.getPackageName(), 0);
          textView.setText(info.versionName + "," + info.versionCode);
        } catch (PackageManager.NameNotFoundException e) {
          e.printStackTrace();
        }
      }
    }
    

    六、运行结果

    在这里插入图片描述

    小结

    通过上述步骤,我们可以通过动态代理技术,修改App的版本号和版本名,重点理解一下PackageManagerHook中的代码,祝大家学习愉快~

    展开全文
  • Android studio 下 APP版本号的修改

    千次阅读 2020-04-10 01:28:04
    【注:学习Android做的笔记,大神勿喷。有不足之处还望不吝赐教。...②如版本号不想放build.gradle(Module:app)中,可如上图注释,再在下图位置重写 android:versionCode="3" android:versionName="3.0" ...

    【注:学习Android做的笔记,大神勿喷。有不足之处还望不吝赐教。】

     

    ①在app的build.gradle(Module:app)中直接修改 versionName "2.0"

    ②如版本号不想放build.gradle(Module:app)中,可如上图注释,再在下图位置重写

    android:versionCode="3" android:versionName="3.0"

     

    展开全文
  • 今天国庆节,在这举国欢庆的日子里,发一篇博文留念一下这个特殊的...AndroidApp版本号相关内容比iOS的App版本号内容要多,而且iOS版的App版本信息跟Android的还不一样。本篇文章就来介绍一下Android开发中获取A...
  • Cocos Creator发布安卓app修改版本号

    千次阅读 2018-09-04 11:34:25
    Cocos creator 选择android版构建编译 打开build文件根据...app--&gt;build.gradle 打开build.gradle文件,找到如下代码,修改versionCode和versionName android { compileSdkVersion 22 buildToolsVe...
  • Android app版本号的修改

    万次阅读 2018-09-29 15:25:17
    app的build.gradle中 android { compileSdkVersion 24 buildToolsVersion "24.0.3" defaultConfig { applicationId "com.orbbec.obcolor" minSdkVersion 15 targetSdkVersion ...
  • 安卓APP版本号命名

    2017-02-28 15:24:34
    这是个人总结的自己的公司所用的APP命名的方式
  • android 设置app版本号

    万次阅读 2016-04-11 16:07:21
    Android:versionCode和...在eclipse中,修改我们开发的应用的版本号只需要在清单文件AndroidManifest.xml中manifest 标签节点中加入android:versionCode和android:versionName的值即可设置应用的版本号。如以下代码:
  • Android获取App版本号及版本名

    千次阅读 2017-08-13 16:43:42
    后台根据该App版本号和最新版的区别来决定是否更新 2、具体步骤在Android中,应用程序的版本号是在AndroidManifest.xml文件中进行配置的,而PackageInfo类则封装了从该配置文件中获取的所有信息,描述了包内容的整体...
  • Android API Level对应Android版本一览表 2018年01月03日 11:53:43 API Level Android版本 28 9 27 8.1 26 8.0 25 7.1.1 24 7.0 23 6.0 22 5.1.1 21 5.0.1 20 ...
  • 2、修改版本号 3、生成新的APK 方法一: build——generate signed bundle/APK 点击“ok” !!!这里flavors是文件夹,生成的apk应该在此位置: 出现这样的提示说明打包完成了: 这个路径下生成了apk: ...
  • android获取app版本号的方法

    千次阅读 2018-02-04 17:03:29
    调用此工具类中的方法,返回的就是版本号 /** ... * 获取当前app版本号 */ public class VersionCodeUtil { public static int getVersionCodeUtil(Context context){ int versionCode
  • Android获取App版本号和版本名

    千次阅读 2017-12-20 15:22:09
    在gradle设置versionName和versionCode后,每次编译版本号都与当前时间相关,需求是显示出当前版本号便于沟通时说明是哪个版本。defaultConfig { 。。。 versionCode 1 versionName "1.1-" + releaseTime() 。。...
  • 当我们在刚开始学习Android的时候,可能不会过多的关注这个位于manifest.xml文件中的versionCode和versionName。 但是其实一个好的版本控制,对于我们有至关重要的作用。 现在打算写一点基础的东西,突然想到...
  • Android app 版本号自增

    2016-12-31 06:06:02
    需要做到自动检测更新app版本,但是不会把项目放到git 上。 想要做一个版本号管理,版本号自动增加, 求教~ ---
  • 我们清楚知道,几乎所有的软件都是存在一个版本号的东西,APP作为手机上的应用软件也不例外。版本号可以帮助APP升级使用和定位问题。一般地,版本号有3部分构成:主版本号、副版本号 以及 补丁号,例如:1.0.123。也...
  • Android获取APP版本号和版本名

    千次阅读 2020-06-01 14:44:23
    tvVersionCode.setText("版本号:"+APKVersionInfoUtils.getVersionCode(this)); tvVersionName.setText("版本名:"+APKVersionInfoUtils.getVersionName(this)); 运行效果图: 工具类代码 import android....
  • 我们一般在发布app之前,都会设置版本号。versionCode和versionName。简单解释一下: android:versionCode:主要是用于版本升级所用,是INT类型的,第一个版本定义为1,以后递增,这样只要判断该值就能确定是否...
  • 项目中为配合服务端兼容app版本兼容和app bug版本修复,定制了统一的规则,为了方便版本管理。 大家都知道 项目中有两个关于版本的概念 versionName 和 versionCode versionName是给用户查看的版本号 例如 2.5.1 ...
  • Java实现比较APP版本号大小

    千次阅读 2018-09-17 16:58:28
    * 比较APP版本号的大小 * &lt;p&gt; * 1、前者大则返回一个正数 * 2、后者大返回一个负数 * 3、相等则返回0 * * @param version1 app版本号 * @param version2 app版本号 * @return int */ ...
  • android app获取版本号,SDK获取版本号

    千次阅读 2016-05-27 13:14:47
    Android中如何获取应用版本号应用场景: 1、在界面中显示应用程序的版本号; 2、用户启动该应用,后台判断该应用是否是最新版本。 上述情景都需要在程序中自动获取到应用的版本号。思路简介: 在Android中,应用程序...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 82,713
精华内容 33,085
关键字:

安卓改app版本号