Google GMS介绍
GMS全称为GoogleMobile Service。GMS目前提供有Search、Search by Voice、Gmail、Contact Sync、Calendar Sync、Talk、Maps、Street View、YouTube、Play store等apk和服务。

google为了确保全世界的硬件厂商设计和生产的安卓为基础的各种智能硬件产品的兼容性、稳定性,以及这些硬件与安卓各种自带的软件 APP 产品和服务的兼容性、稳定性,从7.0开始强制所有产品要进行Google GMS 认证,而且需要与签定MADA、AFA等一系列协议才能拿到GMS软件包,产品软硬件测试 由 3PL 执行。下面介绍下GMS包(以9.0为例,其他版本类似)中的内容以及编译方法。

从 Google 拿到的 GMS 包解压缩之后可以取得一个 partner_gms 的文件夹,里面放有所有的Google apps、Services 和参数配置,主要分为四类,五个文件夹:
1、apps/和apps_go两个目录放置所有 Google 的 apk,包含应用和服务类,apps是正常版本、apps_go是低内存的android go版本,编译时在脚本选择对应的版本。
2、etc-放置 Google 应用和服务类的系统配置。
3、frameworks放置 Google 应用和服务类的系统配置与 jar 库。
4、products放置编译配置与 Google 应用和服务类的系统配置。

GMS 编译配置说明:GMS 的编译配置取决于 GMS 包 partner_gms/products 下的 gms_xx.mk。mk文件中内容简单说明如下:
1、# GMS home folder location
定义ANDROID_PARTNER_GMS_HOME := vendor/partner_gms,这表示此段定义 GMS HOME 路径,随意更改可能会造成编译失败等问题,不建议去修改。

2、#GMS mandatory core packages
此为必要核心套件, 不建议删除任何一项目, 否则可能会导致无法预期的报错或是Google 认证失败。

3、GMS mandatory libraries
Gms 相关库预置,不可删除。

4、# Overlay for GMS devices
$(call inherit-product, device/sample/products/backup_overlay.mk)
不可删除, 否则可能会造成 backup 等备份相关问题发生, 以及备份帐号中无法选择 google帐号等。

$(call inherit-product, device/sample/products/location_overlay.mk)
不可删除, 否则可能会造成 map, smartlock 等定位发生问题。

PRODUCT_PACKAGE_OVERLAYS += \
$(ANDROID_PARTNER_GMS_HOME)/products/assistant_gsa_overlay \
$(ANDROID_PARTNER_GMS_HOME)/products/gms_overlay
不可删除, 主要使样机具有 Factory reset protection 等功能

# Overlay for GoogleDialer
预置 GoogleDialer 时不可删除

# Configuration files for GMS apps
Gms 相关配置参数, 包含两类, 其中一类为默认应用的各种标准设置, 另外一类为部分Gms 应用可以获取的相关权限, 不建议删除任何一项目, 否则可能会导致无法预期的错误。

# GMS mandatory application packages
此段为必要的核心应用, CTS送测时不建议删除任何一项目, 否则 Google 认证会不过,注意 go 和非 go 的不同要求。

# GMS comms suite
Message 配置。

# GMS optional application packages
预置的 GMS 可选应用,可根据需求删减。

# Overlay for SearchLauncherQuickStep
SearchLauncherQuickStep ovlay的内容。

# GMS sample application packages
带gms的桌面布局demo代码。

# Overrides
PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
GMS 基本 系统属性设定不可删, 相关属性值也不建议修改。

编译:在项目的.mk文件中加入如下语句就可以编译带gms的升级包:
非go版本:$(call inherit-product-if-exists, vendor/partner_gms/products/gms.mk)
go版本:$(call inherit-product-if-exists, vendor/partner_gms/products/gms_go.mk)

Google GMS介绍的更多相关文章

  1. Android跳转到应用商店的APP详情页面,以及 Google GMS 各个apk的包

    转自:http://www.jianshu.com/p/a4a806567368 需求: 从App内部点击按钮或链接,跳转到应用商店的某个APP的详情页面.让用户 下载 或 评论. 实现: /** * ...

  2. 《Google软件测试之道》- Google软件测试介绍

    <Google软件测试之道>- Google软件测试介绍 2015-05-21 目录 1 质量与测试  2 角色  3 组织结构  4 爬.走.跑  5 测试类型  相关链接 与Micro ...

  3. 《精通并发与Netty》学习笔记(04 - Google Protobuf介绍)

    一 .Google Protobuf 介绍 protobuf是google团队开发的用于高效存储和读取结构化数据的工具,是Google的编解码技术,在业界十分流行,通过代码生成工具可以生成不同语言版本 ...

  4. 漫谈国内外Android生态:华为发布的 HMS 服务,对 Mate30 系列无法搭载 Google GMS 的补偿有多大(原创)

    如果既用过iPhone,也用过国际版Android,还用过国内的安卓,(并且这三种都用了半年以上),就能体会到GMS多重要.可以说,iOS的体验大幅度领先于国内的安卓,一多半的原因是国内安卓没有GMS ...

  5. [z]Google SPDY介绍

    转自 http://blog.csdn.net/marcky/article/details/7728662 本文主要是参考Google SPDY项目主页的一些文档总结而来,目的整体上介绍SPDY协议 ...

  6. 【Unity3D】Android App Bundle(aab)打包上架Google Play介绍

    总体说来,Android App Bundle打包有3种方式,每种方式都有成功上架Google Play进行测试通过,因此实用程度还是挺高的.能够理解以下内容的前提是会打apk包,知道如何生成Asse ...

  7. 【Android M】预制的 Google GMS包

    目录:android/vendor/google/apps .├── AndroidPay│   ├── Android.mk│   ├── AndroidPay_arm64.apk│   ├── A ...

  8. 《Google软件测试之道》 第一章google软件测试介绍

    前段时间比较迷茫,没有明确的学习方向和内容.不过有一点应该是可以肯定的:迷茫的时候就把空闲的时间用来看书吧! 这本书,目前只是比较粗略的看了一遍,感触很大.以下是个人所作的笔记,与原文会有出入的地方. ...

  9. 《Google软件测试之道》基础

    <Google软件测试之道>,一直听朋友讲起这本书,出于琐事太多,一直没机会拜读,最近部门架构觉得我们IT部门的技术太low,就给我们挑选了一些书籍,让我们多看看... 个人的一种学习习惯 ...

随机推荐

  1. ubutu 12.04

    1.[系统设置]->[外观]->[行为]->[自动隐藏启动器],隐藏左侧边栏后,可以按快捷键[CTRL+a]弹出侧边栏. 2.QtCreator调试,提示[ptrace不允许的操作] ...

  2. PDIUSBD12指令

    PDIUSBD12指令 端点描述 PDIUSBD12的端点适用于不同类型的设备,端点可通过[Set mode]命令配置为4种不同的模式,分别为: 模式0(NON-ISO模式):非同步模式 模式1(IS ...

  3. 重定向URL乱码问题

    问题:response.sendRedirect("http:/aaa.com/#/expressTracking?carCode=" + carCode);   后台java代码 ...

  4. Set-Get(?占位符)-Java(新手)

    创建实体类: package JdbcDome; public class EmpL { private int uid; private String uNAME; private int age; ...

  5. 网络安全从入门到精通(第二章-3)后端基础SQL— MySQL高级查询与子查询

    本文内容: MySQL的基础查询语句 链接查询 联合查询 子查询 渗透测试常用函数 1,MySQL基础查询语句: select * from 表 order  by ASC/DESC; ASC:从小到 ...

  6. Natas10 Writeup(正则表达式、grep命令)

    Natas10: 页面与上一关类似,只是增加了提示“出于安全原因,我们现在过滤某些字符”. 查看源码,发现关键代码如下: $key = ""; if(array_key_exist ...

  7. 死磕Lambda表达式(四):常用的函数式接口

    失去人性,失去很多:失去兽性,失去一切.--<三体> 在Java8支持Lambda表达式以后,为了满足Lambda表达式的一些典型使用场景,JDK为我们提供了大量常用的函数式接口.它们主要 ...

  8. HTML,CSS,JavaScript,json,xml之间的关系

    1.浏览器工作原理: https://blog.csdn.net/Luncles/article/details/80320082 2.HTML,XML,JSON之间的关系: https://blog ...

  9. 循序渐进地聊一聊 box-shaow

    影子在现实生活中可以是一个物体的副本,在 CSS 中也是这样的,相当于复制了那个元素(并不是真正的元素,对页面布局没有任何影响),可以从下面的代码中看出来. .container { width: 1 ...

  10. 通达OA rce复现

    通达OA下载:链接:https://pan.baidu.com/s/1c0P-M-IyY5VxfH5d0qKHsQ 提取码:l0pc 漏洞原因:未授权文件上传 + 文件包含(利用nginx日志也可以g ...