手机大厂必备测试技能-GMS 认证
GMS认证背景
在之前的一篇文章有给各位小伙伴们科普过关于GMS的作用,http://www.lemfix.com/topics/266
"墙"内的小伙伴可能很少会用到这样的服务,但是老外可就不同了,如果你的手机要在欧洲/美国市场卖就必须要要内置GMS,因为国外的手机销售渠道和国内的不同,国内可以在各大电商平台/实体店买到“裸机”--不绑定运营商的套餐这种。但是国外的情况的就不同,绝大部分的手机销售渠道都是走的运营商,而且运营商强制规定必须要在搭载Android系统的手机上内置GMS,否则就不给你卖。
而要在手机中内置GMS,必须要通过GMS认证。
Google为什么要强制性要求?
Google是一家商业公司,主要靠广告业务赚钱,内置的自家的这么多个App,各种广告嵌入、弹窗,所以这才是其目的所在。
而对于国内一众手机大厂而言,要扩大自己的市场份额,走向国际市场,GMS认证是其基础。
GMS认证目的&要求
GMS认证主要目的:
- 提升产品Android系统的兼容性和稳定性;
- 授权使用Google的 手机APP和服务;
- 授权使用Android LOGO;
- 产品可以进入欧美的大卖场。
GMS认证的要求:
- 必须申请与GOOGLE签署MADA协议
- 产品必须使用7.0以上的安卓版本才可以进行认证;
- 产品必须能通过CTS测试;
- 产品必须通通过CTS Verifier测试;
- 产品必须能通过GTS测试;
- 产品有义务通过CE,FCC,BT,WIFI等硬件认证。(非硬性指标)
何为MADA协议?
MADA协议全称:Mobile Application Distribution Agreement,中文名称是:移动应用软件分发协议,是谷歌跟使用Android系统的厂商签定的一个协议。根据这项协议,手机厂商在推出采用Android系统的设备前,必须预装所有的Google应用,而且要把Google Search、Google Play放在手机的首屏里,并以Google Search作为默认的搜索引擎。
其实说白了就是:你要出口到国外赚钱->必须要内置GMS->要签属MADA协议(要Google我同意才可以)
此链接是目前有和Google签属了MADA协议的成员(需FQ)
https://www.android.com/certified/partners/
何为CTS Verifier?
之前有写了一篇关于CTS测试的文章http://www.lemfix.com/topics/981 ,介绍了CTS测试是为了确保设备的兼容性的自动化测试。
而CTS Verifier是CTS测试的补充部分,专门针对于一些无法自动化测试的场景而准备的手工测试,比如比如相机、传感器等,其本身就是一个APK文件,测试的时候推送到设备端手动一一执行即可:
GTS测试
GTS的全称是Google Mobile Services Test Suite,所谓的Google Mobile Services即谷歌移动服务,是谷歌开发并推动Android的动力,也是Android系统的灵魂所在。
GMS目前提供有Search、Search by Voice、Gmail、Contact Sync、Calendar Sync、Talk、Maps、Street View、YouTube、Android Market (Play store)等服务。
当用户使用谷歌的时候,谷歌可以把广告嵌入各种谷歌的服务中。
依据GMS,谷歌对android手机给予不同程度的授权,把搭载Android系统的手机厂商分为三个级别:
- 手机可以免费使用Android,但不内置GMS,比如国内的手机
- 内置一部分GMS服务,但手机不能打上Google商标,比如一些山寨机
- 内置所有的GMS服务,可以使用Google商标。
GTS的环境安装、执行、报告分析这一系列操作跟CTS类似,只是GTS必须连接VPN。
GTS测试流程
手机设置:
- 刷好GMS版本的ROM包
- 恢复出厂设置
- 设置手机:连接外网;
- 插入sim卡,打开移动数据;
- 打开蓝牙;
显示中睡眠时间选择最大; - 竖屏;
语言US; - 键盘google键盘;
- 打开定位,高精度;
- 安全中锁屏选择None;
- 时间将自动定日期和时间关闭,选择太平洋时区,24小时制打开
- 开发者模式中打开stay awake和USB debugging
执行测试:
-
在GTS测试目录下,执行./tools/gts-tradefed,进入指令界面,准备GTS测试
-
执行如下命令,开始GTS测试
run gts --plan GTS
-
单跑模块:
run gts -m “Module Name”-t “class name”
-
接着跑某一次测试:
run gts --retry session id
(session id可以由l r查看)
GTS测试结果
当全部测试通过之后,提交给Google,Google会给产品打一个标记“已认证”: