基于Android平台的关机工模技术研究

2017-12-11 10:03姜苏英
电脑知识与技术 2017年31期

姜苏英

摘要:随着科技的发展,基于Android平台的智能手机因其高性能,低价格受到广大消费者的青睐,因此对基于Android平台的智能手机在生产过程中必须使用的关机工模进行研究具有十分重要的意义。关机工模是一种测试软件,功能是检测Android智能手机在生产过程中手机的主板、外设能否正常,软硬件是否达到设计要求,拦截功能不良的机器,确保每一台出厂的手机都是良品。该文介绍了对QCOM平台和MTK平台下关机工模的代码框架以及軟件流程,然后根据QCOM平台和MTK平台下的关机工模的主界面,对两大平台下关机工模各种测试模式的主要功能和内容进行了研究和分析。

关键词:Android;QCOM平台;MTK平台;关机工模

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)31-0062-04

Study of Factory Model Based on Android Platform

JIANG Su-ying

(College of Electrical & Electronic Engineering, Baoji University of Arts and Sciences, Baoji 721013, China)

Abstract: With the development of science and technology, the smart phone Based on Android platform because of its high performance and low price, favored by the vast number of consumers, so study for factory model must be used in smart phone production Based on Android platform has great significance. Factory model is a kind of software, his function is detected smart phone Based on Android in the production process of the motherboard, peripherals can be normal,software and hardware meets the design requirements, head off the machine of dysfunction , to ensure every smart phone is in good quality when they flow out factory. This paper introduces the code framework and software of factory model Based on QCOM platform and MTK platform, then according to the main interface of factory model Based on QCOM platform and MTK platform, the main functions and contents of all kinds of mold test mode was studied and analyzed based on two platform.

Key words: Android; QCOM platform; MTK platform; factory model

随着电子科技的不断进步,手机已经成为人们日常生活中不可或缺的部分。正因为如此,手机行业广阔的市场和巨大的利润空间催生了许多手机制造和销售厂商。进入国内的外企以iphone、三星公司为代表,国内的本土企业以华为、小米、魅族、酷派、vivo等公司为代表[1-3]。在中国智能手机市场中除苹果公司生产的iphone手机采用ios操作系统以外,其他公司主要采用开源的Android操作系统。虽然目前与Android智能手机相关的文章很多,但关于Android智能手机在生产过程中使用的factory模式却显有文章提及[4-5]。

Factory模式分为两种,一种是关机工模,而另一种是开机工模。Factory模式是一套测试程序,它主要功能是在生产过程中拦截功能不良的机器,防止不良品流入市场。

所谓关机工模是在bootloader(有时也被称为lk)程序引导下,kernel启动以后,手机不开机情况下,通过按键组合(通常为power键+volume up键)进入的一种工厂测试模式。它的功能体现在智能手机生产过程中两个主要阶段:第一是在SMT阶段与夹具配合,用来检测智能手机的主板在焊接过程中是否存在虚焊,物料是否存在问题,以及软件是否存在设计缺陷等;第二是在组装段,待手机连接好外设(例如TP、LCD,camera等),组装成整机以后,检测外设是否连接正确,物料是否存在问题,手机各个模块是否能够按照设计要求正常工作等。关机工模位于Android操作系统的linux内核层,用C/C++语言实现。关机工模的优点是位于Android操作系统的底层,灵活度高,方便对手机的各个器件进行检测,同时由于关机工模不需要开机,在工厂生产时节省时间,它的缺点是由于代码是用C/C++实现的,逻辑较为复杂。

所谓开机工模就是在手机开机后通过输入暗码(通常为*#*#66#*#*)进入的一种测试模式,它的功能是手机在开机状态下检测智能手机的各个模块能否正常工作,将功能异常的机器拦截下来,通常作为手机进入包装段的最后一道关卡;此外,开机工模的另外一个重要的作用是用于手机的售后维修,方便相关技术人员对故障手机的问题点进行定位。开机工模测试程序位于Android操作系统的应用程序层,用JAVA语言实现。它的优点是实现较为简单,缺点是由于代码位于Android操作系统的最上层,当项目需求发生变更,而Android操作系统的系统层又没有提供相应的接口时,开机工模下的代码修改不生效,灵活度较低。其次,由于开机工模必须保证手机在开机状态下进行,每次开机需要浪费大量时间,用于工厂生产时效率较低。

综上,Android系统的智能手机在生产过程中,测试程序以关机工模为主,开机工模为辅,因此本文只对关机工模展开研究。

1 关机工模代码框架和软件流程

由于目前国内基于Android操作系统的智能手机控制芯片主要来自美国高通(QCOM)和台湾联发科(MTK),因此关机工模主要分为两种:一种是基于QCOM平台下的关机工模,另一种是基于MTK平台下的关机工模。

1.1 QCOM平臺下的关机工模

QCOM公司的芯片因其优良的性能而受到广大消费者的欢迎,在基于Android操作系统的智能手机市场中,QCOM占有很大的市场份额。QCOM平台下的关机工模又被称为fastmmi。它的代码目录是:/Android/vendor/qcom/proprietary/fastmmi[6]。代码结构如下所示:

如图1所示,libmmi文件夹中存放用于UI界面控制的相关代码,例如按键、窗口、文本框等;mmi文件夹中存放与主函数相关的一些控制文件;module文件夹中存放的是关机工模测试项,例如audio、camera、flashlight等;res文件夹中存放的是一些基本的配置文件和布局文件。

为了模块化设计,QCOM平台下关机工模代码框架如图2所示,它分为前端(server)和后端(client)。Server即MMI,负责UI界面的显示,同时监听触摸屏的输入事件,当有触摸事件时,server发送命令给client,client收到信息后调用相关的测试程序(例如图2中的mmi_led.so、mmi_sim.so)开始测试。server与client采用socket机制进行通信。MMI_DIAG为手机在关机工模测试模式下与PC机进行通信的接口,可以理解为第二个client。

QCOM平台关机工模的前台只有mmi一个,后台测试有两个,分别是agent和diag。agent用于手动测试,diag通常与PC端配合用于自动测试(工厂称作ATA测试)。图3是QCOM平台关机工模mmi与agent的软件流程图。

1.2 MTK平台下的关机工模

MTK是全球著名IC设计厂商,MTK设计的智能手机芯片在基于Android系统的中低端智能手机市场中占有非常大的市场份额。MTK平台下关机工模被又称为factory,它的代码目录是:/alps/vendor/MediaTek/proprietary/factory[7-8]。代码结构如图4所示。

如图4所示,inc文件夹中存放后缀为.h的头文件;res文件夹中保存图片和用于测试的音频文件;src文件夹中存放后缀为.c或.cpp的控制文件;test文件夹中存放关机工模下需要测试测试项,每个测试项(又被称为case)都有一个文件,该文件的名称都以ftm开头,例如测试闪关灯的文件名称为ftm_flashlight。

MTK平台下关机工模软件框架采用比较常见的循环结构,每个case都有一个entry函数,当在UI上点击对应的case时,便会跳转到对应的entry函数下去执行。MTK平台关机工模的软件流程图如图5所示。

图5中出现两次test_mode_menue()函数,第一次出现时显示的是关机工模的主界面;第二次出现时显示 “自动测试”、“手动单项测试”和“测试报告”的主界面。所谓“自动测试”就是一旦进入该测试模式,就必须将关机工模下包括:版本信息、按键、触摸屏、触摸屏断线测试、LCD测试、背光和振动测试、主照相机、副照相机、闪光灯、前闪光灯、接收器、Wave回放、回路(手机麦克风—耳机)、耳机、FM、实时时钟、电池、充电、GPS定位、EMMC、存储卡、SIM卡检测、蓝牙和WiFi在内的30多个测试项从第一项开始到最后一项结束,全部测试一遍;“手动测试”包括自动测试中的30多个测试项,在“手动测试”模式下可以根据需要只测试其中的某一项或几项;“测试报告”模式是用来查看30多个测试项的测试结果,只要在“自动测试”或“手动测试”任一种模式下将相应的测试项测试pass,那么该测试项在测试报告中就会显示pass,否则显示fail。

2 关机工模展示

目前国内基于Android操作系统的智能手机采用的平台主要是QCOM平台和MTK平台。

2.1 QCOM平台fastmmi展示

由于QCOM平台关机工模的UI使用XML语言实现,所以它的UI界面非常的直观和友好。图6为QCOM平台关机工模的主界面。

如图6所示,QCOM平台关机工模包括PCBA Test、MMI Test、Audio Test、Sensor Test、Hardware Info等测试模式。PCBA Test又叫光板测试,该测试模式下包含许多测试项如图7所示。PCBA的主要功能是在手机生产过程中的SMT阶段检测智能手机的主板在焊接过程中是否存在虚焊,物料是否存在问题,以及软件是否存在设计缺陷等。

MMI Test又叫整机测试,用于手机生产过程中的组装段测试。它的主要功能是:在对手机组装成整机后,检验手机的各个模块或器件是否达到要求,拦截不符合设计要求的机器。整机测试中包括PCBA test中的所有测试项,但测试要求确与PCBA test有所不同。例如charge测试项,在PCBA test中只需检测charge的电压是否在设计的阈值范围内,如果在,则判定为pass,否则为fail。但在MMI测试中,只有充电电压和充电电流同时在阈值范围内才可以判定为pass。

为了测试方便,将sensor test和audio test从MMI测试中独立出来。sensor test通常包括gsensor、lsensor、fingerprint、Msensor等传感器测试;audio test通常包括耳机按键、耳机、麦克回环、副麦克回环、喇叭、话筒等测试项;hardware Info通常显示flash、LCD、TP、camera、battery等外设的型号;fastboot为一种下载模式,可以通过fastboot flash 命令烧写boot、lk等文件;download也是一种下载模式,可以对手机的软件进行升级和擦除下载;english按钮用于中英文的切换;power off按钮用于软关机。

2.2 MTK平台factory展示

MTK平台下的关机工模UI用c语言实现,虽然没有QCOM平台直观,但代码相对比较简单,图8为MTK平台下关机工模的主界面。

如圖8所示,MTK平台下的关机工模与QCOM类似,包括pcba test、mmi test、sensor test、pat test、AT mode、runinMMI test、hardware devices information、powroff等选项。pcba test、mmi test、sensor test的功能与QCOM平台的相同,这里不再赘述;MTK平台通常将音频测试放在AT mode模式下进行,测试项与QCOM平台下的audio测试相同;PAT test是根据工厂的测试环境将某些测试项集中放在一起,方便测试;runinMMI test用于开启老化测试。

3 结束语

论文首先对两大平台下关机工模的代码框架和软件流程进行了研究,最后根据两大平台下关机工模的主界面,对常用的测试模式进行了分析。基于Android平台的智能手机在未来的几年或者更长的时间内仍将以QCOM和MTK两大平台为主,因此基于这两大平台的关机工模代码框架也将在现有的基础上进行发展。

参考文献:

[1] 许知博. 基于Android的工厂设备信息点检系统设计与实现[D]. 西安: 西安电子科技大学, 2012.

[2] 熊刚. 基于Android的智能手机的设计与实现[D]. 武汉: 武汉理工大学, 2010.

[3] 党李成. 基于GoogleAndroid智能手机平台的研究与应用[D]. 合肥: 安徽大学, 2010.

[4] 刘舒. Android功能自动化测试工具的设计与实现[D]. 大连: 大连理工大学, 2013.

[5] 周楠. 基于Android平台智能手机可靠性生产测试模式的实现[D]. 西安: 西安电子科技大学, 2013.

[6] 陈钊. Android程序主要组成部分概述[J]. 中国新技术新产品, 2011(17):42.

[7] Mediatek On-Line[EB/OL].http://online.mediatek.com/.

[8] Explore Product Kits[EB/OL].https://createpoint.qti.qualcomm.com/dashboard/public/productkit#public/product-kit/search.