如何在Android应用中管理Google Play服务更新?

时间:2014-11-07 13:17:35

标签: android google-play-services

我对如何在应用中管理Google Play服务感到很遗憾。

doc指定应下载最新版本的播放服务,并且应在gradle.build中设置版本号,例如

dependencies {
    //...
    compile 'com.google.android.gms:play-services:6.1.+'
}

然后它解释说:

Be sure you update this version number each time Google Play services is updated.

这是什么意思?这是否意味着每次发布新版本时都应该在应用程序中进行更新,并在build.gradle中重置其版本号(意味着每次都应该执行新的apk,这听起来很疯狂)?

它还指定应在清单中添加以下标记:

<meta-data android:name="com.google.android.gms.version"
       android:value="@integer/google_play_services_version" />

为什么,没有解释?

然后我在that SO answer中发现应该使用类似

之类的内容检查Google Play服务版本
// Check status of Google Play Services
int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);

// Check Google Play Service Available
try {
    if (status != ConnectionResult.SUCCESS) {
    GooglePlayServicesUtil.getErrorDialog(status, this, RQS_GooglePlayServices).show();
    }
} catch (Exception e) {
    Log.e("Error: GooglePlayServiceUtil: ", "" + e);
}

这会打开一个对话框来下载最新版本,以防应用程序中的版本不是最新版本。

但是它做了什么?它是否在构建apk时替换了lib集?在这种情况下,它如何管理build.gradle中设置的版本号?

有人可以帮忙解释一下吗?

1 个答案:

答案 0 :(得分:4)

  

这是否意味着每次发布新版本[..]都应该完成新的apk

没有。当您发布应用程序的新版本时,请检查该库的更新,因为它可能已修复了某些内容。但是,如果你懒惰并且不检查新版本,你可以继续使用旧版本,他们不会突然停止工作。

  

<meta-data ...为什么,没有解释?

这是GooglePlayServicesUtil和手机上安装的播放服务框架使用的信息,以确保一切正常,即使您的应用程序使用的是旧版本的库。该对话框是一种告诉用户这样做的简单方法。

  

..这会打开一个对话框来下载最新版本,以防应用程序中的版本不是最新版本。但是它做了什么?

设备上需要两个组件才能使用Google服务。

1)Play服务框架应用

https://play.google.com/store/apps/details?id=com.google.android.gms

例如,它提供了在谷歌管理登录信息的服务。当应用程序需要时,用户必须通过Play商店安装和更新版本。

2)Play服务库。

这是您随应用程序提供的内容,它所做的只是提供使用上述应用程序提供的服务的类。您必须通过gradle更新库。

图书馆需要某个版本的应用。因此,要检查是否安装了该应用并且它至少具有所需版本,请执行GooglePlayServicesUtil部分。

当应用程序永远不是您的库时,没有问题。它将基于<meta-data知道如何处理旧版本。