android“设置”里的版本号
在文件 packages/apps/Settings/src/com/android/settings/DeviceInfoSettings.java 中
setStringSummary("build_number", Build.DISPLAY);
指定了设置--关于设备--版本号。
Build.DISPLAY即Build类中的 DISPLAY 变量,在文件frameworks/base/core/java/android/os/Build.java 中:
public static final String DISPLAY = getString("ro.build.display.id");
当 android 系统跑起来 之后,会读取 /system/build.prop 文件里 对应的 字符串;
ro.build.display.id在文件build/tools/buildinfo.sh中:
echo "ro.build.display.id=$BUILD_DISPLAY_ID"
build/tools/buildinfo.sh 文件 会把 内容 写到 /system/build.prop 文件里,供 java文件 读取
而BUILD_DISPLAY_ID在文件build/core/Makefile中:
BUILD_DISPLAY_ID := $(BUILD_ID).$(BUILD_NUMBER)
其中 BUILD_ID在build/core/build_id.mk中赋值
BUILD_ID := OPENMASTER
BUILD_NUMBER 在 build/core/version_defaults.mk中赋值:
BUILD_NUMBER := eng.$(USER).$(shell date +%Y%m%d.%H%M%S)
所以在版本号中会出现编译时间的字段。
ro.build.display.id编译后保持在system下的build.prop文件。
总结:想要 修改 版本号,可以通过 两个 部分 修改1. 修改 java文件,这样是 直接写死;2.修改 编译系统;
============================
跟踪方法:
1、首先 打开 MID 在English 下,查看 Setting --> About tablet --> Build number
2、到 source/packages/apps/Settings/res/ 下,grep -Rn "Build number" ./ 找到 如下 信息
./values/strings.xml:1798: <string name="build_number">Build number</string>
3、然后再 grep -Rn "build_number" ./ 找到 如下 信息
./xml/device_info_settings.xml:117: <Preference android:key="build_number"
./xml/device_info_settings.xml:119: android:title="@string/build_number"4、vim ./xml/device_info_settings.xml ,找到 如下 信息
<!-- Detailed build version -->
<Preference android:key="build_number" //这个 key 指定的是 java文件里的 build_number
style="?android:preferenceInformationStyle"
android:title="@string/build_number"
android:summary="@string/device_info_default"/>解释:以上 title部分 是在 MID里 显示 出来的 标题名,而key 是 标题的内容,接下来 到 java文件里 找 对应 key的 build_number;
5、当前目录packages/apps/Settings/src/ 下, 执行 grep -Rn "build_number" ./ 找到 如下 信息
./com/android/settings/DeviceInfoSettings.java:57: private static final String KEY_BUILD_NUMBER = "build_number";
6、vim ./com/android/settings/DeviceInfoSettings.java ,通过 KEY_BUILD_NUMBER 找到 当前文件里的 如下 信息:
setStringSummary(KEY_BUILD_NUMBER, Build.DISPLAY);
接着 看 最上边 的解释
android“设置”里的版本号的更多相关文章
- Android ViewPager里的所有图片设置监听打开同一活动显示不同图片
Android ViewPager里的所有图片设置监听请看前一文章 为了省时所以2层菜单只做一个点击任意图片后显示相应图片的活动 关键点是每个点击对应的图片如何传参给显示的活动 因为只启动一个活动,所 ...
- Android SDK目录及版本号区别
来自:http://www.2cto.com/kf/201604/496917.html 今天又有人问Tools,Build-Tools,Platform-tools有什么区别,是干嘛的? 现在对SD ...
- 使用Android Studio 1.3 版本号进行NDK开发
众所周知Android Studio 1.3 版本号新增了NDK支持,能够非常方便的在上面开发C++或者C代码了,但是预览版功能不是非常完好,须要非常多步骤,另一些奇怪的BUG,整了半天最终能够使用A ...
- [转]Android Studio 里搭建自动化测试框架Robotium
Android的自动化测试框架可选择的不多,后来选了Robotium(https://code.google.com/p/robotium/),它的语法及易用性挺像我们用在iOS里的KIF. 官方文档 ...
- 关于Android Studio里的Gradle,你所需要知道的都在这里了
Gradle介绍 Gradle是一个先进的build toolkit,可以方便的管理依赖包和定义自己的build逻辑.到底有多先进,Android Studio官方集成Gradle,Google还专门 ...
- Android设置里面默认存储器选项(default write disk)的实现
原生的Android设置里面没有默认存储器的选项,可是MTK偏偏加上了这个功能,可能MTK认为这个比較实用吧,所以,他们在原生的基础上面做了改动.加上了这个功能.可是高通平台没有这个功能.相对MTK来 ...
- Xamarin Android设置界面提示类型错误
Xamarin Android设置界面提示类型错误 错误信息:Integer types not allow (at ‘padding’ with value ’10’)Android界面属性的长度和 ...
- Android 设置进度条背景
Android 设置进度条背景 直接上代码 <ProgressBar android:id="@+id/progressBar" android:layout_width=& ...
- 转:Android 设置屏幕不待机
本文转载于:http://blog.csdn.net/yudajun/article/details/7748760 Android设置支部待机有两种方法 第一种简单通过设置WindowManager ...
随机推荐
- paper 86:行人检测资源(上)综述文献【转载,以后使用】
行人检测具有极其广泛的应用:智能辅助驾驶,智能监控,行人分析以及智能机器人等领域.从2005年以来行人检测进入了一个快速的发展阶段,但是也存在很多问题还有待解决,主要还是在性能和速度方面还不能达到一个 ...
- paper 75:使用MATLAB的神经网络工具箱创建神经网络
% 生成训练样本集 clear all; clc; P=[110 0.807 240 0.2 15 1 18 2 1.5; 110 2.865 240 0.1 15 2 12 1 2; 110 2.5 ...
- 夺命雷公狗ThinkPHP项目之----企业网站9之栏目的列表完善(无限极分类的完成)
我们刚才已经写好model了,那么这里直接来调用下他即可: public function lists(){ $mod = D('Category')->catTree(); $this -&g ...
- zw版【转发·台湾nvp系列Delphi例程】HALCON TestObjDef
zw版[转发·台湾nvp系列Delphi例程]HALCON TestObjDef procedure TForm1.Button1Click(Sender: TObject);var img : HU ...
- OpenStack 的防火墙规则流程
Contents [hide] 1 发现的问题 2 解决过程 3 删除临时错误数据 4 其实前面的解决办法是错的 发现的问题 3台虚拟机在同一宿主机,防火墙配置都一样,但是他们的网络表现不一致,有的能 ...
- Spring 复习笔记01
Spring 框架 1. core:整个Spring框架构建在Core核心模块上,它是整个框架的的基础. 2. AOP:AOP模块提供了一个轻便但功能强大强大的AOP框架,让我们可以以AOP的形式增强 ...
- source insight资源
http://www.cnblogs.com/Red_angelX/p/3713935.html https://github.com/redxu/sihook
- Github上PHP资源汇总大全,php学习的好资料
Github上PHP资源汇总大全,php学习的好资料 国外程序员ziadoz 在Github上收集整理了PHP的各种资源,内容包括模板.框架.数据库.安全等方面的库和工具.汇总了各种PHP资源,供各位 ...
- grads 用arcgis分析站点的网格
第一步,用工具创建渔网(要素类) 第二步:将站点excel导入,生成点要素 站点excle,点击上面节点导出数据即可. 第三步,叠加在一起,找网格编号.
- MySQL Replication的Reset slave重置命令
有时要清除从库的所有复制信息,如切换为不同的Master, 主从重做等:Reset slave是一个比较危险的命令,所以在执行前一定要准备知道其含义. 1. 命令在slave上执行,执行前一定要停掉s ...