android: 设置和获取app版本

一,设置版本:

1,versionCode和 versionName的区别

1. 版本名称(Version Name)

版本名称是一个字符串,用于向用户展示当前应用的版本。例如,“1.0.0”、“2.5.1”等。
这个名称通常由开发者定义,用于标识应用的版本,便于用户理解。

2. 版本代码(Version Code)

版本代码是一个整数,用于在Google Play或其他应用市场中区分应用的各个版本。
每次发布新版本时,这个数字都应该增加。例如,从1增加到2,表示发布了新版本。
这个数字主要用于内部逻辑控制,例如强制更新逻辑。

 

2,设置

编辑build.gradle文件,可以看到versionCode和 versionName,
如下图

二,代码中获取版本

package com.example.okdemo1.activity;

import android.app.ActivityOptions;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

import com.example.okdemo1.MainActivity;
import com.example.okdemo1.R;

public class ToolsActivity extends AppCompatActivity {

    private boolean isTimerFinished = true;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EdgeToEdge.enable(this);
        setContentView(R.layout.activity_tools);

        //给按钮增加点击事件
        Button myButton = findViewById(R.id.button);
        myButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                try {
                    PackageInfo packageInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
                    String packageName = getPackageName();
                    String sVersionName = packageInfo.versionName;
                    int sVersionCode = packageInfo.versionCode;

                    System.out.println("应用包名:"+packageName);
                    System.out.println("应用版本号:"+sVersionName);
                    System.out.println("应用版本code:"+sVersionCode);

                } catch (PackageManager.NameNotFoundException e) {
                    e.printStackTrace();
                }
            }
        });

    }
}

测试效果:

 

posted @ 2025-05-01 09:30  刘宏缔的架构森林  阅读(250)  评论(0)    收藏  举报