如何自定义Google play服务以减少jar大小?
我不知道是否有一种方法来定制google-play-services.jar
。如何自定义Google play服务以减少jar大小?
Google play services version 6.1
我发现,新版本有24K的方法,让我的应用程序进行麦斯方法计数(〜65K),因此我无法创建APK文件(或DEX)。
在过去,我在某些网站上看到,您可以通过启用/禁用 配置google-play-services.jar
未使用的功能。
我的旧罐子重量是7K(而不是19K),我不能跳到24K,太膨胀。
有什么建议吗?
[编辑]
我发现this问题,其中@Eric Lafortune
建议使用Proguard的
牢记:
- 使用ProGuard总是建议
- MultiDex,尽管在运行时增加的开销,是唯一可行的解决方案当你真的使用所有这些方法(很少有这种情况!)
I如果您使用的是Gradle,并且只是想自动排除您不使用的Play服务的部分,这是最简单,最快和最有效的方式:https://gist.github.com/Takhion/10a37046b9e6d259bb31。
只需按照建议添加它并在需要的部件上留言exclude
!
调试的sooo有用建立,你不希望通过Proguard的,每次去;)
理想情况下,你应该使用ProGurad,但是你可以按照以下两个步骤:
第1步:从jar文件中删除未使用的类
打开google-play-services.jar使用zip文件管理器(例如Winrar或7zip)进行库项目。你会发现很多文件夹,如maps, games
,只删除你不需要的文件夹。确保你保持common, dynamic, internal
。
第2步:从res文件夹
大部分在谷歌播放,services_lib \ res文件夹资源删除未使用的资源可能是没有用的,所以你可以将其删除。这些包括values-af, values-am,
....你需要保留的是颜色,drawable, drawable-hdpi
和values
文件夹。
刷新并构建google-play-services_lib项目和您的项目。你的apk大小应该减少。
你的目标是android 2.3吗?
如果不是,请使用MultiDex Support Library。
从这里:Google+。
MultiDex支持库
所以,你的应用程序已经长得太大:你是在敏捷极限。也许你已经利用了一些非常有用的图书馆,可以减轻一些负担(Google Play Services,我在看你)。你不得不求助于限制你的应用程序的功能或做出疯狂的黑客来解决这个限制。没有更多:欢迎MultiDexApplication!
MultiDexApplication,简单的android-support-multidex的一部分。通过让应用程序扩展MultiDexApplication或在应用程序的attachBaseContext中调用MultiDex.install(上下文),您可以在所有API 4+设备上获得MultiDex支持(直到v21,您可以在本地获得此内容)。而已。认真。
注意:你应该真的,真正的Proguard在进入Multidex兔子洞之前。
在Android Studio中您可以使用各个库从谷歌播放服务,如
compile 'com.google.android.gms:play-services:7.5.0'
这些行:
compile 'com.google.android.gms:play-services-maps:7.5.0'
compile 'com.google.android.gms:play-services-ads:7.5.0'
compile 'com.google.android.gms:play-services-analytics:7.5.0'
compile 'com.google.android.gms:play-services-location:7.5.0'
完整列表在这里https://developers.google.com/android/guides/setup
某些API没有单独的库;包括他们通过包括基础库
您是否尝试打开ProGuard? – Squeazer 2014-10-22 11:47:05
@Squeazer是的,我想使用proGuard,但我记得在网站上我能够检查/取消选中带有功能的标志并下载定制的jar。今天找不到 – snaggs 2014-10-22 11:48:33