Google Play服务(融合位置提供商)会显着增加应用尺寸?

时间:2014-12-27 12:10:07

标签: android geolocation google-play-services fusedlocationproviderapi

我刚刚根据here描述的简单“获取最后一个已知位置”功能,为我的应用添加了位置感知功能,该功能使用了融合位置提供程序。

我一直试图让我的应用程序尽可能轻量级,所以令人失望的是,在添加简单位置感知的过程中,我的apk大小从185K变为2.1M。实际代码本身肯定没有增加这个数量,所以我认为它从某个地方拉进一个大型库。

我知道如何再次降低我的apk尺寸吗?

感谢。

2 个答案:

答案 0 :(得分:3)

偶然的事情会有所帮助:

  1. 使用ProGuard删除未使用的代码 - 大多数人将此禁用用于开发构建,以避免额外的构建时间,并启用发布版本。

  2. 使用新的粒度依赖关系管理introduced in Play Services 6.5。您可以选择所需的Play服务组件,并排除其他组件。来自文档:

  3.   

    在6.5之前的Google Play服务版本中,您必须将整个API包编译到您的应用中。在某些情况下,这样做会使您的应用程序中的方法数量(包括框架API,库方法和您自己的代码)更难以保持65,536的限制。

         

    从版本6.5开始,您可以选择性地将Google Play服务API编译到您的应用中。

    可以找到您可以包含的各个API的列表here

答案 1 :(得分:2)

在发布APP之前使用proGuard时,应解决此问题。哪个我和android强烈推荐你。 proGuard附带了android SDK并进行了混淆(以便在对应用程序进行逆向工程后更难阅读)并缩小代码。这意味着它会杀死你不会使用的死代码,而你只使用right now一小部分Google Play服务。您使用的课​​程越多,您的应用程序就越大。 Proguard逻辑上只能切断未使用的代码。希望它有所帮助

您可以在此处阅读有关如何在android中使用proguard的更多信息: http://developer.android.com/tools/help/proguard.html

他在这里做的一般: http://proguard.sourceforge.net/