当前位置: 首页 > backend >正文

Android FactoryTest 流程

Android内置的Factory Test(有测试模式/工厂模式/工程模式等叫法)框架

Android框架中已经对FactoryTest做了支持,通过一些配置和开发工作就可以把FactoryTest代码融入到Android系统中。

一、FactoryTest级别的定义

 

Android系统中在com.android.server.SystemServer(loc:frameworks/base/services/java/)中对FactoryTest的级别做了定义:

 

[java]  view plain copy
  1. public static final int FACTORY_TEST_OFF =0;  
  2. public static final int FACTORY_TEST_LOW_LEVEL = 1;  
  3. public static final int FACTORY_TEST_HIGH_LEVEL= 2;  

 

  •   FACTORY_TEST_OFF是正常模式;
  •   FACTORY_TEST_LOW_LEVEL是工程模式做在较低的级别,也就是运行工程模式的时候,很多的service并不需要启动;
  •   FACTORY_TEST_HIGH_LEVEL是工程模式做在较高的级别,也就是运行工程模式的时候,基本的Android运行环境是同正常模式是相同的。在原生的实现中,与正常模式相比除了ActivityManagerService外并没有太多不同。

后面着重来看FACTORY_TEST_LOW_LEVEL,也用此模式来代替FactoryTest的表述。

 

=================================知识介绍结束===================================

一,Android FactoryTest 流程:

当设置了启动模式是工厂模式后,开机启动后进入工厂测试程序,

让工厂测试测序启动后,自动安步骤或者循环运行测试项目,显示测试结果。

 

二,Android FactoryTest 设置:

1 FactoryTest应用的配置

 

由上面简要分析知道,FACTORY_TEST_LOW_LEVEL模式下,第一个被启动的程序就是工程模式的测试程序,而这个程序必须:

  •   有响应Action为Intent.ACTION_FACTORY_TEST(“android.intent.action.FACTORY_TEST”)的Activity;
  •   另外,这个程序还必须获取“android.permission.FACTORY_TEST”;
  •   这个程序必须为系统内置程序(安装在/system/app/)

 

响应Action为Intent.ACTION_FACTORY_TEST (“android.intent.action.FACTORY_TEST”)的Activity在开机之后就被执行。

 

2 启动模式设置

 

启动模式是由“ro.factorytest”这个系统属性来决定的,取值范围是0/1/2,对应第一部分定义的三个级别模式。可在在.mk文件中通过PRODUCT_PROPERTY_OVERRIDES或ADDITIONAL_DEFUALT_PROPERTIES追加一个这样的属性。比如:

 

[plain]  view plain copy
  1. #FactoryTest LowLevel  
  2. PRODUCT_PROPERTY_OVERRIDE += ro.factorytest=1  

 

3 内核启动模式

 

有些实现通过上面的设置还不起作用,那是因为在内核启动时,通过启动模式对“ro.factorytest”这个系统属性进行了设置。

 

理想状态是由内核来决定启动模式,而不需要上小节的设置。

内核通过参数“androidboot.mode”来决定工厂模式(”factory”对应FACTORY_TEST_LOW_LEVEL;”factory2”对应FACTORY_TEST_HIGH_LEVEL;其他值或未设置对应”factory”对应FACTORY_TEST_OFF)。

  

上面需要内核支持,不支持的话就固定为正常模式。

所以,如果内核不支持,可以直接把init.c中判断“androidboot.mode”而设置“ro.factorytest”的代码暂时屏蔽,直接用上节所说的“ro.factorytest”来决定Factory的模式。

 

 

这里工厂测试的程序要怎么写,也记录下:

1,手机信息

  wifi,声音,。。。

2,电池信息

 

http://www.xdnf.cn/news/11597.html

相关文章:

  • matlab 手指指尖检测,简单粗糙的指尖检测方法(FingerTips Detection) | 学步园
  • iphone开发论坛汇总:
  • 聊聊通用会员卡/通用打折卡
  • 十部值得一看的电影
  • CCProxy代理上网设置方法
  • 硬盘空间丢失的原因及预防方法(转)
  • 在美国,男 / 女卫生间(厕所)的正确称呼为什么?请用英语写出答案。
  • Oracle数据库的备份与恢复
  • 2023年最新QQ设置彩色昵称和动态头像
  • 跟踪百度竞价推广的效果2种方法
  • minecraft正版整合包服务器,我的世界1.7.2基佬整合包
  • SuperOneClick一键Root工具使用方法
  • 2013中国动作片《不二神探》高清BD电影下载
  • 第一次黑人,简直爽到不行!!
  • QQ第三方登录
  • 关于丢失msvcp71.dll的5个解决办法,msvcp71.dll丢失原因分析
  • “百度开放云编程马拉松”中国三大赛区获奖团队及作品新鲜出炉
  • ThinkPHP8完全教程(附案例源码和sql脚本)
  • SOA 案例研究:Web 2.0 SOA 场景
  • 什么是过期域名?做网站用过期域名好不好?
  • python 条件语句和基础数据类型
  • 【微信小程序】零基础快速入门
  • 深度学习入门,计算机视觉,推荐系统,自然语言处理理论框架以及学习资料【附知识图谱与链接】
  • 最全的ASP.NET开源CMS汇总
  • 升级iOS7遇到问题This device isn't eligible for the requested build的解决方法
  • 大学python程序设计课本,大一python程序设计考题
  • 解决SQLServer2000安装被挂起的方法
  • GT官方教程
  • JAVA的远房亲戚JAVASCRIPT
  • Hi3559AV100配置PWM