文章目录
- 概要
- 名词解释
- 细节
- 小结
概要
在安卓底层源码中,有这样的两个属性,这两个第一眼看上去都像是带不带谷歌,BUILD_AGO_GMS = no
和BUILD_GMS=no
有什么区别??
如果带了谷歌,那么这个设备就差不多是国外定制的设备了,不带谷歌的话基本就是国内的设备。
名词解释
BUILD_AGO_GMS = no
和BUILD_GMS = no
都是Android应用程序中的Gradle构建文件中的变量,它们的作用是禁用Google Mobile Services(GMS)。
然而,这两个变量的作用范围略有不同。具体来说:
-
BUILD_AGO_GMS = no
:这个变量只对应用程序的“旧版本”(即不包含GMS的版本)有效。如果在应用程序中设置了BUILD_AGO_GMS = no
,则只有那些没有GMS支持的应用程序版本才会被打包,而其他版本则不会被打包。 -
BUILD_GMS = no
:这个变量适用于整个应用程序,包括所有版本。无论应用程序是否包含GMS支持,只要在构建文件中设置了BUILD_GMS = no
,那么所有的应用程序版本都将被打包,并且不会包含任何与GMS相关的代码或库。
因此,如果您只想禁用某些应用程序版本的GMS支持,可以使用BUILD_AGO_GMS = no
;如果您想完全禁用整个应用程序的GMS支持,则应该使用BUILD_GMS = no
。
细节
在Android应用程序开发中,GMS(Google Mobile Services)是一种提供各种服务和功能的框架,包括位置、联系人、短信、网络连接等。如果一个应用程序需要使用这些服务和功能,那么它就需要包含GMS支持。
然而,有些应用程序不需要使用所有的GMS服务和功能,或者只需要在特定的设备或版本上使用。在这种情况下,开发者可以选择将应用程序的某些部分禁用GMS支持,以减小应用程序的大小和运行开销。
具体来说,如果一个应用程序包含了GMS支持,那么在打包应用程序时,Gradle构建系统会自动将与GMS相关的代码和库打包到应用程序中。
但是,如果开发者在构建文件中设置了BUILD_AGO_GMS = no
,则只有那些没有GMS支持的应用程序版本才会被打包。这意味着只有那些不需要使用GMS服务的应用程序版本会被打包,而其他版本则不会被打包。
因此,如果您想禁用某些应用程序版本的GMS支持,可以使用BUILD_AGO_GMS = no
;如果您想完全禁用整个应用程序的GMS支持,则应该使用BUILD_GMS = no
。
小结
BUILD_AGO_GMS = no
,则只有那些没有GMS支持的应用程序版本才会被打包,而其他版本则不会被打包。
BUILD_GMS=no
,直接不带谷歌。