设备信息可以在Settings - About 里看到

最近想改机器的build number,找到了 build/core/Makefile 里的定义

# Display parameters shown under Settings -> About Phone
ifeq ($(TARGET_BUILD_VARIANT),user)
  # User builds should show:
  # release build number or branch.buld_number non-release builds

  # Dev. branches should have DISPLAY_BUILD_NUMBER set
  ifeq "true" "$(DISPLAY_BUILD_NUMBER)"
    BUILD_DISPLAY_ID := $(BUILD_ID)-$(BUILD_NUMBER) $(BUILD_KEYS)
  else
    BUILD_DISPLAY_ID := $(BUILD_ID) $(BUILD_KEYS)
  endif
else

  # Non-user builds should show detailed build information
  BUILD_DISPLAY_ID := $(build_desc)

endif

可看出非user版BUILD_DISPLAY_ID用的是build_desc

可以搜索到

build_desc := $(TARGET_PRODUCT)-$(TARGET_BUILD_VARIANT) $(PLATFORM_VERSION) $(BUILD_ID) $(BUILD_NUMBER) $(BUILD_VERSION_TAGS)

打开 build/core/build_id.mk ,可以修改BUILD_ID

重新编译代码即可

源码  Build.java  (base/core/java/android/os) 有对这些信息的引用

想要在apk中取得的话,直接调用Build这个类即可

例如:

Build.DISPLAY  返回的就是一个String

 /** A build ID string meant for displaying to the user */

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

弄一个界面show_info.xml,显示当前版本的信息。界面里放着很多TextView。

MainActivity.java 如下。取出各个状态信息

public class MainActivity extends Activity {
    private TextView buildTextView;
    private TextView idTextView;
    private TextView productTextView;
    private TextView boardTextView;
    private TextView deviceTextView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.show_info);
        buildTextView = (TextView) findViewById(R.id.build_number);
        idTextView = (TextView) findViewById(R.id.build_id);
        productTextView= (TextView) findViewById(R.id.product);
        boardTextView= (TextView) findViewById(R.id.board);
        deviceTextView= (TextView) findViewById(R.id.device);

        buildTextView.setText(Build.DISPLAY);
        idTextView.setText(Build.ID);
        productTextView.setText(Build.PRODUCT);
        boardTextView.setText(Build.BOARD);
        deviceTextView.setText(Build.DEVICE);
    }
}

装上后,在机器上可以看到相关信息

Android - 关于设备版本号的更多相关文章

  1. AllJoyn+Android开发案例-android跨设备调用方法

    AllJoyn+Android开发案例-android跨设备调用方法 项目须要涉及AllJoyn开源物联网框架.前面主要了解了一些AllJoyn主要的概念.像总线,总线附件,总线对象,总线接口这种概念 ...

  2. 关于Android的Build类——获取Android手机设备各种信息

    经常遇到要获取Android手机设备的相关信息,来进行业务的开发,比如经常会遇到要获取CPU的类型来进行so库的动态的下载.而这些都是在Android的Build类里面.相关信息如下: private ...

  3. iOS / Android 移动设备中的 Touch Icons

    上次转载了一篇<将你的网站打造成一个iOS Web App>,但偶然发现这篇文章的内容有些是错误的——准确来说也不是错误,只是不适合自半年前来的情况了(也可以说是iOS7 之后的时间)—— ...

  4. WebSocket学习笔记IE,IOS,Android等设备的兼容性问

    WebSocket学习笔记IE,IOS,Android等设备的兼容性问 一.背景 公司最近准备将一套产品放到Andriod和IOS上面去,为了统一应用的开发方式,决定用各平台APP嵌套一个HTML5浏 ...

  5. Android系统各版本号及代号

    Android系统各版本号及代号 版本 版本号代号 公布日期 API Android 1.0 阿童木 1 Android 1.1 发条机器人 2008.9 2 Android 1.5 纸杯蛋糕 200 ...

  6. 在android移动设备上登录gmail的时候报password错误解决方法!!!!

    今天刚发现的解决的方法:就是登录web端的gmail,查看收件箱应该有no-reply这一帐户给你发过邮件(假设没有,你在移动设备上登录一下gmail).照着邮件里的说明去做,就是生成一个专门应用的p ...

  7. Android之设备唯一识别

    唯一Android的设备ID String androidId = Settings.Secure.getString(getContentResolver(),Settings.Secure.AND ...

  8. Android 发布自动版本号方案

    以前看到一些自动化版本号打包的文章.如果您的项目是用 Git 管理的,并且恰巧又是使用 Gradle 编译(应该绝大部分都是这样的了吧?),本文试图找到一种更加优雅的自动版本管理方法. 背景 我们都知 ...

  9. Android 获取设备信息 异常

    /**获取设备信息 * @param c * @return */ public static void setDeviceInfo(Context c,RequestParams params){ ...

随机推荐

  1. C#码农的大数据之路 - 使用C#编写MR作业

    系列目录 写在前面 从Hadoop出现至今,大数据几乎就是Java平台专属一般.虽然Hadoop或Spark也提供了接口可以与其他语言一起使用,但作为基于JVM运行的框架,Java系语言有着天生优势. ...

  2. Nodejs-express 4.0框架 简单介绍

    http://www.expressjs.com.cn/4x/api.html  这个是express API的中文手册 但是只是翻译了一点 英语比较差比较难受. 1. 关于安装 现在网上查的时候有一 ...

  3. Maven基本安装与配置

    百度Maven,进入Maven官网,点击Download 点击下载Binary zip包,下载到电脑上相应的位置即可. 找到下载文件,进行解压,解压到相应的文件夹下面,并且记住路径. 打开系统-> ...

  4. JAVAEE学习——struts2_01:简介、搭建、架构、配置、action类详解和练习:客户列表

    一.struts2是什么 1.概念 2.struts2使用优势以及历史 二.搭建struts2框架 1.导包 (解压缩)struts2-blank.war就会看到 2.书写Action类 public ...

  5. JSP/Servlet Web 学习笔记 DaySix —— EL表达式

    1)EL从scope中得到参数时可以自动转换类型,因此对于类型转换的限制更加宽松. 2)使用EL表达式,可以简化变量和对象的访问. 3)EL表达式必须以 ${XXXX} 来表示. 4)EL提供点(.) ...

  6. 1.JAVA WEB 笔记中文乱码

    JAVA WEB 乱码问题解析 乱码原因 在Java Web开发过程中,经常遇到乱码的问题,造成乱码的原因,概括起来就是对字符编码和解码的方式不匹配. 既然乱码的原因是字符编码与解码的方式不匹配,那么 ...

  7. vue.js实现数据动态响应(Vue.set的应用)

    在vue里面,我们操作最多的就是各种数据,在jquery里面,我们习惯通过下标定向找到数据,然后重新赋值 比如var a[0]=111;(希望上家公司原谅菜鸟的我写了不少这样的代码

  8. [0] C#异常种类

    c#中异常捕获catch{}常用的异常类型 Exception 类  描述 SystemException 其他用户可处理的异常的基本类 ArgumentException 方法的参数是非法的 Arg ...

  9. thinkphp5.0学习笔记(三)获取信息,变量,绑定参数

    1.构造函数: 控制器类必须继承了\think\Controller类,才能使用: 方法_initialize 代码: <?php namespace app\lian\controller; ...

  10. ES6的开发环境搭建

    在搭建es6开发环境之前,先简单介绍一下es6. ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在2015年6月正式发布了.它的目标,是使得 Java ...