官方推荐:精简google-play-services.jar的方法(解决65536问题的应急方案)

之前写过关于精简google_play_services.jar的方法,是参考自github的,详见:
http://blog.csdn.net/liuweiballack/article/details/49335529

从google-play-services 6.5开始,Google官方提供了按照功能打包API的方法,其步骤如下(以添加google+登录为例):

1、在工程的build.gradle中添加插件信息

classpath 'com.google.gms:google-services:1.4.0-beta1'

版本号需要与使用的play-services版本相对应,否则无法正常编译。

2、在app的build.gradle中添加

dependencies {
        compile 'com.google.android.gms:play-services-identity:7.8.0'
        compile 'com.google.android.gms:play-services-plus:7.8.0'
}

版本号需要与com.google.gms:google-services版本相对应。

3、点击 ‘Sync Project ith Gradle File’。由于墙的问题,可能耗时较长或者同步失败,建议开启VPN。

在 YourAppPath\app\build\intermediates\exploded-aar 中可以找到 com.google.android.gms的文件夹,需要用到的google-play-services相关信息都在里面,如图可以看到

这里写图片描述

Base中为play-service的基本功能,其他两个包为指定的功能。
如果项目使用的是Android Studio,则无需进行其他操作。如果项目使用的是Eclipse,则需要将这三个包进行合并。

在eclipse中使用的play-services工程包结构如下:

官方推荐:精简google-play-services.jar的方法(解决65536问题的应急方案)_第1张图片

合并过程:

1、将com.google.android.gms下三个文件中的jars下的classes.jar分别重命名之后放入play-services工程包的libs目录下;

2、将资源文件合并到play-services工程包的res目录下;

3、将三个文件下的AndroidManifest中的权限声明等信息合并到主Module的AndroidManifest中。

下图为play-services的API列表

官方推荐:精简google-play-services.jar的方法(解决65536问题的应急方案)_第2张图片

在选择API进行打包的时候,play-services-base无需单独指定,因为play-services-base会默认进行自动添加。
如果需要整个play-services API,则指定为 compile ‘com.google.android.gms:play-services:7.8.0’即可。

你可能感兴趣的:(Android经验)