Android内置的Factory Test(有测试模式/工厂模式/工程模式等叫法)框架
Android框架中已经对FactoryTest做了支持,通过一些配置和开发工作就可以把FactoryTest代码融入到Android系统中。
一、FactoryTest级别的定义
Android系统中在com.android.server.SystemServer(loc:frameworks/base/services/java/)中对FactoryTest的级别做了定义:
- public static final int FACTORY_TEST_OFF =0;
- public static final int FACTORY_TEST_LOW_LEVEL = 1;
- 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追加一个这样的属性。比如:
- #FactoryTest LowLevel
- 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,电池信息
相关推荐
factory test code for android
资源来自pypi官网。 资源全名:factorytest_pinephone-0.27.0-py3-none-any.whl
资源来自pypi官网。 资源全名:factorytest_pinephone-0.2.0-py3-none-any.whl
factorytest_test.xml
python库,解压后可用。 资源全名:factorytest_pinephone-0.2.0-py3-none-any.whl
模仿酷派等手机的工厂模式的一个apk,源代码如附件。 调用各种接口和传感器,触摸屏/显示/亮度/相机/光感/地磁感/距离感/重力感等等。
通过简单明了的代码,进行抽象工厂的演示,而抽象工厂又是所有设计模式中比较典型的一个模式,对抽象工厂的理解可以加快对其它模式的认识。
FactoryTestApp
FactoryTest-2H软件,用于测试图形与内存稳定性测试。 龙芯平台 架构:loongarch 系统:loongnix 依赖:apt install xdotool glmark2 安装:dpkg -i FactoryTest-2H.deb 卸载:dpkg -r FactoryTest-2H 安装后,桌面...
One Time Program Tool,Samsung TP Tool,TP Development Kit,TP_FactoryTest_V2.4.7S_20110623,FT5202_5302_OTPWriter使用说明
这是M5Paper_FactoryTest键盘过程的修改版本。单击此处获取原始信息。 M5Paper_FactoryTest 你需要什么 Arduino IDE(我检查了1.8.13的操作。) (用作BLE键盘时) (用作BLE键盘时) 该库很容易从Arduino IDE安装...
CWnd *hFind = FindWindow(NULL, _T("FactoryTest")); if(hFind != NULL) { if(m_bGetIMEI) hFind->PostMessage(GETIMEI_SUCCESS, 0, 0); else hFind->PostMessage(GETIMEI_FAIL, 0, 0); } ...
Open Arduino IDE, find TFT_eSPI in the file and example, the T-Display factory test program is located at TFT_eSPI -> FactoryTest, you can also use other sample programs provided by TFT_eSPI ...