姜蘇英
摘要:隨著科技的發(fā)展,基于Android平臺的智能手機(jī)因其高性能,低價(jià)格受到廣大消費(fèi)者的青睞,因此對基于Android平臺的智能手機(jī)在生產(chǎn)過程中必須使用的關(guān)機(jī)工模進(jìn)行研究具有十分重要的意義。關(guān)機(jī)工模是一種測試軟件,功能是檢測Android智能手機(jī)在生產(chǎn)過程中手機(jī)的主板、外設(shè)能否正常,軟硬件是否達(dá)到設(shè)計(jì)要求,攔截功能不良的機(jī)器,確保每一臺出廠的手機(jī)都是良品。該文介紹了對QCOM平臺和MTK平臺下關(guān)機(jī)工模的代碼框架以及軟件流程,然后根據(jù)QCOM平臺和MTK平臺下的關(guān)機(jī)工模的主界面,對兩大平臺下關(guān)機(jī)工模各種測試模式的主要功能和內(nèi)容進(jìn)行了研究和分析。
關(guān)鍵詞:Android;QCOM平臺;MTK平臺;關(guān)機(jī)工模
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼: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
隨著電子科技的不斷進(jìn)步,手機(jī)已經(jīng)成為人們?nèi)粘I钪胁豢苫蛉钡牟糠?。正因?yàn)槿绱?,手機(jī)行業(yè)廣闊的市場和巨大的利潤空間催生了許多手機(jī)制造和銷售廠商。進(jìn)入國內(nèi)的外企以iphone、三星公司為代表,國內(nèi)的本土企業(yè)以華為、小米、魅族、酷派、vivo等公司為代表[1-3]。在中國智能手機(jī)市場中除蘋果公司生產(chǎn)的iphone手機(jī)采用ios操作系統(tǒng)以外,其他公司主要采用開源的Android操作系統(tǒng)。雖然目前與Android智能手機(jī)相關(guān)的文章很多,但關(guān)于Android智能手機(jī)在生產(chǎn)過程中使用的factory模式卻顯有文章提及[4-5]。
Factory模式分為兩種,一種是關(guān)機(jī)工模,而另一種是開機(jī)工模。Factory模式是一套測試程序,它主要功能是在生產(chǎn)過程中攔截功能不良的機(jī)器,防止不良品流入市場。
所謂關(guān)機(jī)工模是在bootloader(有時(shí)也被稱為lk)程序引導(dǎo)下,kernel啟動以后,手機(jī)不開機(jī)情況下,通過按鍵組合(通常為power鍵+volume up鍵)進(jìn)入的一種工廠測試模式。它的功能體現(xiàn)在智能手機(jī)生產(chǎn)過程中兩個(gè)主要階段:第一是在SMT階段與夾具配合,用來檢測智能手機(jī)的主板在焊接過程中是否存在虛焊,物料是否存在問題,以及軟件是否存在設(shè)計(jì)缺陷等;第二是在組裝段,待手機(jī)連接好外設(shè)(例如TP、LCD,camera等),組裝成整機(jī)以后,檢測外設(shè)是否連接正確,物料是否存在問題,手機(jī)各個(gè)模塊是否能夠按照設(shè)計(jì)要求正常工作等。關(guān)機(jī)工模位于Android操作系統(tǒng)的linux內(nèi)核層,用C/C++語言實(shí)現(xiàn)。關(guān)機(jī)工模的優(yōu)點(diǎn)是位于Android操作系統(tǒng)的底層,靈活度高,方便對手機(jī)的各個(gè)器件進(jìn)行檢測,同時(shí)由于關(guān)機(jī)工模不需要開機(jī),在工廠生產(chǎn)時(shí)節(jié)省時(shí)間,它的缺點(diǎn)是由于代碼是用C/C++實(shí)現(xiàn)的,邏輯較為復(fù)雜。
所謂開機(jī)工模就是在手機(jī)開機(jī)后通過輸入暗碼(通常為*#*#66#*#*)進(jìn)入的一種測試模式,它的功能是手機(jī)在開機(jī)狀態(tài)下檢測智能手機(jī)的各個(gè)模塊能否正常工作,將功能異常的機(jī)器攔截下來,通常作為手機(jī)進(jìn)入包裝段的最后一道關(guān)卡;此外,開機(jī)工模的另外一個(gè)重要的作用是用于手機(jī)的售后維修,方便相關(guān)技術(shù)人員對故障手機(jī)的問題點(diǎn)進(jìn)行定位。開機(jī)工模測試程序位于Android操作系統(tǒng)的應(yīng)用程序?qū)?,用JAVA語言實(shí)現(xiàn)。它的優(yōu)點(diǎn)是實(shí)現(xiàn)較為簡單,缺點(diǎn)是由于代碼位于Android操作系統(tǒng)的最上層,當(dāng)項(xiàng)目需求發(fā)生變更,而Android操作系統(tǒng)的系統(tǒng)層又沒有提供相應(yīng)的接口時(shí),開機(jī)工模下的代碼修改不生效,靈活度較低。其次,由于開機(jī)工模必須保證手機(jī)在開機(jī)狀態(tài)下進(jìn)行,每次開機(jī)需要浪費(fèi)大量時(shí)間,用于工廠生產(chǎn)時(shí)效率較低。
綜上,Android系統(tǒng)的智能手機(jī)在生產(chǎn)過程中,測試程序以關(guān)機(jī)工模為主,開機(jī)工模為輔,因此本文只對關(guān)機(jī)工模展開研究。
1 關(guān)機(jī)工模代碼框架和軟件流程
由于目前國內(nèi)基于Android操作系統(tǒng)的智能手機(jī)控制芯片主要來自美國高通(QCOM)和臺灣聯(lián)發(fā)科(MTK),因此關(guān)機(jī)工模主要分為兩種:一種是基于QCOM平臺下的關(guān)機(jī)工模,另一種是基于MTK平臺下的關(guān)機(jī)工模。
1.1 QCOM平臺下的關(guān)機(jī)工模
QCOM公司的芯片因其優(yōu)良的性能而受到廣大消費(fèi)者的歡迎,在基于Android操作系統(tǒng)的智能手機(jī)市場中,QCOM占有很大的市場份額。QCOM平臺下的關(guān)機(jī)工模又被稱為fastmmi。它的代碼目錄是:/Android/vendor/qcom/proprietary/fastmmi[6]。代碼結(jié)構(gòu)如下所示:
如圖1所示,libmmi文件夾中存放用于UI界面控制的相關(guān)代碼,例如按鍵、窗口、文本框等;mmi文件夾中存放與主函數(shù)相關(guān)的一些控制文件;module文件夾中存放的是關(guān)機(jī)工模測試項(xiàng),例如audio、camera、flashlight等;res文件夾中存放的是一些基本的配置文件和布局文件。
為了模塊化設(shè)計(jì),QCOM平臺下關(guān)機(jī)工模代碼框架如圖2所示,它分為前端(server)和后端(client)。Server即MMI,負(fù)責(zé)UI界面的顯示,同時(shí)監(jiān)聽觸摸屏的輸入事件,當(dāng)有觸摸事件時(shí),server發(fā)送命令給client,client收到信息后調(diào)用相關(guān)的測試程序(例如圖2中的mmi_led.so、mmi_sim.so)開始測試。server與client采用socket機(jī)制進(jìn)行通信。MMI_DIAG為手機(jī)在關(guān)機(jī)工模測試模式下與PC機(jī)進(jìn)行通信的接口,可以理解為第二個(gè)client。
QCOM平臺關(guān)機(jī)工模的前臺只有mmi一個(gè),后臺測試有兩個(gè),分別是agent和diag。agent用于手動測試,diag通常與PC端配合用于自動測試(工廠稱作ATA測試)。圖3是QCOM平臺關(guān)機(jī)工模mmi與agent的軟件流程圖。
1.2 MTK平臺下的關(guān)機(jī)工模
MTK是全球著名IC設(shè)計(jì)廠商,MTK設(shè)計(jì)的智能手機(jī)芯片在基于Android系統(tǒng)的中低端智能手機(jī)市場中占有非常大的市場份額。MTK平臺下關(guān)機(jī)工模被又稱為factory,它的代碼目錄是:/alps/vendor/MediaTek/proprietary/factory[7-8]。代碼結(jié)構(gòu)如圖4所示。
如圖4所示,inc文件夾中存放后綴為.h的頭文件;res文件夾中保存圖片和用于測試的音頻文件;src文件夾中存放后綴為.c或.cpp的控制文件;test文件夾中存放關(guān)機(jī)工模下需要測試測試項(xiàng),每個(gè)測試項(xiàng)(又被稱為case)都有一個(gè)文件,該文件的名稱都以ftm開頭,例如測試閃關(guān)燈的文件名稱為ftm_flashlight。
MTK平臺下關(guān)機(jī)工模軟件框架采用比較常見的循環(huán)結(jié)構(gòu),每個(gè)case都有一個(gè)entry函數(shù),當(dāng)在UI上點(diǎn)擊對應(yīng)的case時(shí),便會跳轉(zhuǎn)到對應(yīng)的entry函數(shù)下去執(zhí)行。MTK平臺關(guān)機(jī)工模的軟件流程圖如圖5所示。
圖5中出現(xiàn)兩次test_mode_menue()函數(shù),第一次出現(xiàn)時(shí)顯示的是關(guān)機(jī)工模的主界面;第二次出現(xiàn)時(shí)顯示 “自動測試”、“手動單項(xiàng)測試”和“測試報(bào)告”的主界面。所謂“自動測試”就是一旦進(jìn)入該測試模式,就必須將關(guān)機(jī)工模下包括:版本信息、按鍵、觸摸屏、觸摸屏斷線測試、LCD測試、背光和振動測試、主照相機(jī)、副照相機(jī)、閃光燈、前閃光燈、接收器、Wave回放、回路(手機(jī)麥克風(fēng)—耳機(jī))、耳機(jī)、FM、實(shí)時(shí)時(shí)鐘、電池、充電、GPS定位、EMMC、存儲卡、SIM卡檢測、藍(lán)牙和WiFi在內(nèi)的30多個(gè)測試項(xiàng)從第一項(xiàng)開始到最后一項(xiàng)結(jié)束,全部測試一遍;“手動測試”包括自動測試中的30多個(gè)測試項(xiàng),在“手動測試”模式下可以根據(jù)需要只測試其中的某一項(xiàng)或幾項(xiàng);“測試報(bào)告”模式是用來查看30多個(gè)測試項(xiàng)的測試結(jié)果,只要在“自動測試”或“手動測試”任一種模式下將相應(yīng)的測試項(xiàng)測試pass,那么該測試項(xiàng)在測試報(bào)告中就會顯示pass,否則顯示fail。
2 關(guān)機(jī)工模展示
目前國內(nèi)基于Android操作系統(tǒng)的智能手機(jī)采用的平臺主要是QCOM平臺和MTK平臺。
2.1 QCOM平臺fastmmi展示
由于QCOM平臺關(guān)機(jī)工模的UI使用XML語言實(shí)現(xiàn),所以它的UI界面非常的直觀和友好。圖6為QCOM平臺關(guān)機(jī)工模的主界面。
如圖6所示,QCOM平臺關(guān)機(jī)工模包括PCBA Test、MMI Test、Audio Test、Sensor Test、Hardware Info等測試模式。PCBA Test又叫光板測試,該測試模式下包含許多測試項(xiàng)如圖7所示。PCBA的主要功能是在手機(jī)生產(chǎn)過程中的SMT階段檢測智能手機(jī)的主板在焊接過程中是否存在虛焊,物料是否存在問題,以及軟件是否存在設(shè)計(jì)缺陷等。
MMI Test又叫整機(jī)測試,用于手機(jī)生產(chǎn)過程中的組裝段測試。它的主要功能是:在對手機(jī)組裝成整機(jī)后,檢驗(yàn)手機(jī)的各個(gè)模塊或器件是否達(dá)到要求,攔截不符合設(shè)計(jì)要求的機(jī)器。整機(jī)測試中包括PCBA test中的所有測試項(xiàng),但測試要求確與PCBA test有所不同。例如charge測試項(xiàng),在PCBA test中只需檢測charge的電壓是否在設(shè)計(jì)的閾值范圍內(nèi),如果在,則判定為pass,否則為fail。但在MMI測試中,只有充電電壓和充電電流同時(shí)在閾值范圍內(nèi)才可以判定為pass。
為了測試方便,將sensor test和audio test從MMI測試中獨(dú)立出來。sensor test通常包括gsensor、lsensor、fingerprint、Msensor等傳感器測試;audio test通常包括耳機(jī)按鍵、耳機(jī)、麥克回環(huán)、副麥克回環(huán)、喇叭、話筒等測試項(xiàng);hardware Info通常顯示flash、LCD、TP、camera、battery等外設(shè)的型號;fastboot為一種下載模式,可以通過fastboot flash 命令燒寫boot、lk等文件;download也是一種下載模式,可以對手機(jī)的軟件進(jìn)行升級和擦除下載;english按鈕用于中英文的切換;power off按鈕用于軟關(guān)機(jī)。
2.2 MTK平臺factory展示
MTK平臺下的關(guān)機(jī)工模UI用c語言實(shí)現(xiàn),雖然沒有QCOM平臺直觀,但代碼相對比較簡單,圖8為MTK平臺下關(guān)機(jī)工模的主界面。
如圖8所示,MTK平臺下的關(guān)機(jī)工模與QCOM類似,包括pcba test、mmi test、sensor test、pat test、AT mode、runinMMI test、hardware devices information、powroff等選項(xiàng)。pcba test、mmi test、sensor test的功能與QCOM平臺的相同,這里不再贅述;MTK平臺通常將音頻測試放在AT mode模式下進(jìn)行,測試項(xiàng)與QCOM平臺下的audio測試相同;PAT test是根據(jù)工廠的測試環(huán)境將某些測試項(xiàng)集中放在一起,方便測試;runinMMI test用于開啟老化測試。
3 結(jié)束語
論文首先對兩大平臺下關(guān)機(jī)工模的代碼框架和軟件流程進(jìn)行了研究,最后根據(jù)兩大平臺下關(guān)機(jī)工模的主界面,對常用的測試模式進(jìn)行了分析?;贏ndroid平臺的智能手機(jī)在未來的幾年或者更長的時(shí)間內(nèi)仍將以QCOM和MTK兩大平臺為主,因此基于這兩大平臺的關(guān)機(jī)工模代碼框架也將在現(xiàn)有的基礎(chǔ)上進(jìn)行發(fā)展。
參考文獻(xiàn):
[1] 許知博. 基于Android的工廠設(shè)備信息點(diǎn)檢系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D]. 西安: 西安電子科技大學(xué), 2012.
[2] 熊剛. 基于Android的智能手機(jī)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 武漢: 武漢理工大學(xué), 2010.
[3] 黨李成. 基于GoogleAndroid智能手機(jī)平臺的研究與應(yīng)用[D]. 合肥: 安徽大學(xué), 2010.
[4] 劉舒. Android功能自動化測試工具的設(shè)計(jì)與實(shí)現(xiàn)[D]. 大連: 大連理工大學(xué), 2013.
[5] 周楠. 基于Android平臺智能手機(jī)可靠性生產(chǎn)測試模式的實(shí)現(xiàn)[D]. 西安: 西安電子科技大學(xué), 2013.
[6] 陳釗. Android程序主要組成部分概述[J]. 中國新技術(shù)新產(chǎn)品, 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.