Google GMS介绍
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介绍的更多相关文章
- Android跳转到应用商店的APP详情页面,以及 Google GMS 各个apk的包
		转自:http://www.jianshu.com/p/a4a806567368 需求: 从App内部点击按钮或链接,跳转到应用商店的某个APP的详情页面.让用户 下载 或 评论. 实现: /** * ... 
- 《Google软件测试之道》- Google软件测试介绍
		<Google软件测试之道>- Google软件测试介绍 2015-05-21 目录 1 质量与测试 2 角色 3 组织结构 4 爬.走.跑 5 测试类型 相关链接 与Micro ... 
- 《精通并发与Netty》学习笔记(04 - Google Protobuf介绍)
		一 .Google Protobuf 介绍 protobuf是google团队开发的用于高效存储和读取结构化数据的工具,是Google的编解码技术,在业界十分流行,通过代码生成工具可以生成不同语言版本 ... 
- 漫谈国内外Android生态:华为发布的 HMS 服务,对 Mate30 系列无法搭载 Google GMS 的补偿有多大(原创)
		如果既用过iPhone,也用过国际版Android,还用过国内的安卓,(并且这三种都用了半年以上),就能体会到GMS多重要.可以说,iOS的体验大幅度领先于国内的安卓,一多半的原因是国内安卓没有GMS ... 
- [z]Google SPDY介绍
		转自 http://blog.csdn.net/marcky/article/details/7728662 本文主要是参考Google SPDY项目主页的一些文档总结而来,目的整体上介绍SPDY协议 ... 
- 【Unity3D】Android App Bundle(aab)打包上架Google Play介绍
		总体说来,Android App Bundle打包有3种方式,每种方式都有成功上架Google Play进行测试通过,因此实用程度还是挺高的.能够理解以下内容的前提是会打apk包,知道如何生成Asse ... 
- 【Android M】预制的 Google GMS包
		目录:android/vendor/google/apps .├── AndroidPay│ ├── Android.mk│ ├── AndroidPay_arm64.apk│ ├── A ... 
- 《Google软件测试之道》 第一章google软件测试介绍
		前段时间比较迷茫,没有明确的学习方向和内容.不过有一点应该是可以肯定的:迷茫的时候就把空闲的时间用来看书吧! 这本书,目前只是比较粗略的看了一遍,感触很大.以下是个人所作的笔记,与原文会有出入的地方. ... 
- 《Google软件测试之道》基础
		<Google软件测试之道>,一直听朋友讲起这本书,出于琐事太多,一直没机会拜读,最近部门架构觉得我们IT部门的技术太low,就给我们挑选了一些书籍,让我们多看看... 个人的一种学习习惯 ... 
随机推荐
- Leetcode 1160: 拼写单词
			给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars. 假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符串),那么我们就认为你掌 ... 
- html5 拖放购物车
			1.本例中模仿了购物车添加的功能 主要运用了ondragstart / ondragover/ ondrag 功能 功能比较简单 遗留问题:火狐下图片拖进会被打开 <!doctype html& ... 
- 【分布式锁】01-使用Redisson实现可重入分布式锁原理
			前言 主流的分布式锁一般有三种实现方式: 数据库乐观锁 基于Redis的分布式锁 基于ZooKeeper的分布式锁 之前我在博客上写过关于mysql和redis实现分布式锁的具体方案:https:// ... 
- 【Weiss】【第03章】练习3.26:双端队列
			[练习3.26] 双端队列(deque)是由一些项的表组成的数据结构,对该数据结构可以进行下列操作: Push(X,D):将项X插入到双端队列D的前端. Pop(D):从双端队列D中删除前端项并返回. ... 
- CSS3-3D技术
			CSS3-3D技术 transform翻译成汉语具有"变换"或者"改变"的意思. 此属性具有非常强大的功能,比如可以实现元素的位移.拉伸或者旋转等效果, 最能体 ... 
- SpringBoot集成Swagger(根据源码深入学习Swagger的用法)
			从源码层面讲解Swagger的用法,快速了解掌握Swagger 简介 Swagger 是一个规范且完整的框架,用于生成.描述.调用和可视化 Restful 风格的 Web 服务. 自动生成html文档 ... 
- masql数据库的表查询
			昨日回顾 表与表之间建关系 一对多 换位思考 图书与出版社 先站在左表: 考虑左表的多条数据能否对应右表的一条数据 翻译:多本书能否被一个出版社出版 可以! 注意:单站在一张得出的表关系并不能明确两张 ... 
- hdu1181 dfs 字符串首尾可拼接,问是否可寻找到一条字串路径使得首尾分别是‘b’和‘m’,简单的搜索+回溯
			#include<bits/stdc++.h> using namespace std; typedef unsigned int ui; typedef long long ll; ty ... 
- 两片74门实现的双边沿D触发器
			最近一个项目需要时钟上升沿和下降沿都可以触发的D触发器,但并没有找到符合要求的商品IC.也去看了一些文献,但都是给的示意图然后用分立元件实现的(应该是准备做成IC).这里给出一种最少2个IC就能搭出来 ... 
- 基础的linux命令(一)
			我练习使用的 Linux 系统是 CentOS 7 它是通过把 RHEL 系统重新编译并发布给用户免费使用的 Linux 系统. 首先你需要一台Linux虚拟机,如果没有,也没关系,点这里 一.命令格 ... 
