You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Android应用包的version_code获取version_name?

能不能通过Android应用的version_code获取对应的version_name?

答案是:没有通用的内置方法或算法可以直接将version_code转换为version_name,因为这两个字段是开发者在构建应用时手动关联的,不存在强制的转换规则。

为什么不能直接转换?

  • version_code 是一个整数,核心作用是让系统判断版本更新优先级(只要新版本的version_code比旧版本大即可),开发者对它的取值规则完全自主,没有统一格式要求。
  • version_name 是面向用户的可读性字符串(比如你提到的0.87.5),格式完全由开发者定义,和version_code之间没有固定的数学或逻辑关联。

以你举的Pokemon Go例子来说,2017121800对应0.87.5是Niantic团队内部自定义的映射规则,这个规则不会公开,也不适用于其他任何应用。

如何实现你需要的getVersionName函数?

如果只针对特定应用(比如Pokemon Go),你可以通过收集该应用公开的版本信息,构建一个version_code到version_name的映射表,然后在函数里做匹配查询。

示例代码(JavaScript):

function getVersionName(versionCode) {
    // 预先收集的Pokemon Go版本映射表,需要随应用更新持续维护
    const versionMap = {
        2017121800: '0.87.5',
        // 可继续添加更多已知的版本对应关系
        2018011600: '0.89.1',
        2018022000: '0.91.2'
    };
    
    // 返回匹配到的version_name,无匹配则返回提示
    return versionMap[versionCode] || '未知版本';
}

局限性说明

  • 这种方法完全依赖你手动维护映射表,每当应用发布新版本,你需要及时补充新的version_code和version_name对应关系。
  • 如果开发者后续修改了version_code的命名规则,旧的映射逻辑可能直接失效。

额外提示

如果是你自己开发的应用,你可以在代码中主动维护这个映射关系(比如放在资源文件或配置类中),甚至从后端接口动态获取最新的版本映射,避免每次版本更新都修改客户端代码。

内容的提问来源于stack exchange,提问作者Keitaro Urashima

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:04:14