`
dengzhangtao
  • 浏览: 678839 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android FactoryTest 流程

 
阅读更多

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

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

一、FactoryTest级别的定义

 

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

 

[java] view plaincopy
  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 plaincopy
  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,电池信息

 

1
1
分享到:
评论

相关推荐

    factorytest.rar

    "factorytest.rar"中的内容正是这种用于Android设备出厂前的测试代码集合,它确保每部设备在进入市场之前都达到预设的质量标准。 一、Android Factory Test概述 Factory Test是Android系统提供的一种内置测试模式...

    PyPI 官网下载 | factorytest_pinephone-0.27.0-py3-none-any.whl

    总的来说,"factorytest_pinephone-0.27.0-py3-none-any.whl"是一个专为Pinephone设计的Python测试库,适用于Python 3环境,通过便捷的wheel格式提供,旨在简化设备的工厂测试流程,提高产品质量。对于Pinephone的...

    PyPI 官网下载 | factorytest_pinephone-0.2.0-py3-none-any.whl

    资源来自pypi官网。 资源全名:factorytest_pinephone-0.2.0-py3-none-any.whl

    factorytest_test.xml

    factorytest_test.xml

    Android init 启动过程分析

    在深入探讨Android的启动过程之前,我们需要明确一点:整个启动流程是从内核开始的。当内核加载完毕并准备好与用户空间进行交互时,它会启动一个称为`init`的进程。这个进程在Android操作系统中扮演着至关重要的角色...

    android 工厂模式apk 源代码

    在Android系统中,工厂模式(Factory Mode)是一种特殊的功能,通常用于设备制造和维修过程,以便测试硬件组件和系统功能。这个"android 工厂模式apk 源代码"是针对这种模式的一个实现,让我们深入了解一下它涉及的...

    android recovery代码分析

    Android Recovery 代码分析 Android Recovery是Android操作系统的一部分,负责在系统崩溃或无法启动时恢复系统。下面是Android Recovery代码的分析。 main函数 main函数是Recovery应用程序的入口点,在...

    Android 根文件系统启动过程

    整个启动流程从内核引导开始,内核会在加载完根文件系统后执行`/init`程序,这是整个Android启动流程的起点。`/init`程序位于Android官方源码的`system/core/init`目录,主要任务包括系统初始化、服务启动和设备管理...

    Python库 | factorytest_pinephone-0.2.0-py3-none-any.whl

    《Python库factorytest_pinephone-0.2.0-py3-none-any.whl详解》 在Python的开发世界中,库是极其重要的资源,它们提供了丰富的功能,帮助开发者节省时间和精力,提升工作效率。"factorytest_pinephone-0.2.0-py3-...

    FactoryTEST.tar.gz 抽象工厂的简单实例Deom

    **FactoryTEST.tar.gz** 是一个压缩包,其中包含了一个名为 "FactoryTEST" 的示例,旨在展示抽象工厂设计模式的应用。抽象工厂模式是软件工程中一种重要的设计模式,尤其在对象创建方面,它提供了一种封装一系列相关...

    陈家林 - Android应用安全检测

    他提到一个具体的案例,某知名互联网手机的隐藏工厂测试工具FactoryTest.apk中的Activity暴露问题,这允许任何应用调用并执行该Activity,甚至在自动模式下工作,从而对用户造成严重干扰。 接着,他指出备份恢复...

    andriod启动流程

    ### Android启动流程详解 #### 一、概览 在深入探讨Android系统的启动流程之前,我们需要了解几个关键概念:`init.rc` 和 `init`。在Android操作系统中,`init.rc` 文件扮演着至关重要的角色,它定义了系统启动时...

    Android 中常用设计模式

    ### Android 中常用设计模式 #### 一、设计模式概述与分类 在软件工程领域,设计模式(Design Patterns)是一套被广泛接受的解决方案,用于解决软件设计中的常见问题。Java中通常认为有23种经典设计模式,这些模式...

    FactoryTestApp

    FactoryTestApp需要有能力捕获和处理可能出现的错误情况,确保测试流程的稳定性和可靠性。 6. **自动化测试**:为了提高效率,FactoryTestApp可能包含自动化测试脚本,能够连续运行一系列预定义的测试,减少人工...

    匿名内部类解读代码

    例如,如果"FactoryTest"展示了传统的工厂方法,创建了一系列产品对象,那么"FactoryTest2"可能会引入匿名内部类,以一种更加动态的方式生成特定的产品实例。这可能是在响应某些条件或事件时,通过匿名内部类快速...

    龙芯 3 号产品图形与内存测试工具

    FactoryTest-2H软件,用于测试图形与内存稳定性测试。 龙芯平台 架构:loongarch 系统:loongnix 依赖:apt install xdotool glmark2 安装:dpkg -i FactoryTest-2H.deb 卸载:dpkg -r FactoryTest-2H 安装后,桌面...

    触屏C7009程序

    6. **andriod_driver_20111217.rar**:这是针对Android系统的触摸屏驱动程序,表明C7009触摸屏也支持在Android平台上运行,可能包括驱动源代码和编译说明,方便开发者进行定制和优化。 7. **AUX36_10A_BB.rar**:这...

    一个简单的工厂模式(java)

    `FactoryTest.java`是测试类,它使用工厂模式来创建不同类型的`Human`对象,并调用它们的方法进行测试。例如,测试代码可能如下: ```java public class FactoryTest { public static void main(String[] args) { ...

Global site tag (gtag.js) - Google Analytics