已弃用的gcm与使用Google Play服务的新gcm之间的差异

时间:2016-03-10 14:29:01

标签: android google-cloud-messaging

现在使用时是否已弃用gcm可靠,何时可能已关闭?我的意思是gcm与谷歌播放服务无关(gcm.jar-GCMRegistar版本)。 我测试了最新的gcm版本,发现bulit的大小超过了2.0 mb,这比旧的gcm.jar要大。 此外,旧的gcm不需要谷歌播放服务,一些旧的设备没有安装谷歌播放服务,所以旧的gcm可以运行在更多的设备上。 这是gradle文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.example.mygcm"
        minSdkVersion 9
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
   compile 'com.google.android.gms:play-services:8.4.0'
}

2 个答案:

答案 0 :(得分:0)

使用新的gcm库时,您应该包含单个依赖项,而不是整个播放服务库。

使用:

compile 'com.google.android.gms:play-services-gcm:8.4.0'

而不是:

compile 'com.google.android.gms:play-services:8.4.0'

其他Play服务库也是如此:例如:play-services-drive

答案 1 :(得分:0)

虽然仍然支持旧的GCMRegistrar API,但您一定要更改为新的GCM API。新版InstanceId API与旧版本相比具有许多优点和改进,并且运行良好(我在生产中测试了几个月)。

https://developers.google.com/instance-id/#key_features

  

实例ID,身份和授权

     

实例ID(IID)允许您为每个标识符检索唯一标识符   应用实例,提供验证和授权的机制   行动,即使您的应用没有用户注册和   账户。例如,这允许您唯一地确定哪个应用程序   实例通过包含实例ID令牌发送请求。   我们还可以轻松处理边缘情况以确保您的安全   拥有有效的实例ID令牌。

这是服务器端非常有趣的部分:

https://developers.google.com/instance-id/reference/server#get_information_about_app_instances

关于图书馆大小,正如@Arthur指出的那样,您应该只使用Play Services库中所需的内容。这里有你可以从gradle而不是整个bundle引用的list of individual库。