【发布时间】:2014-09-25 21:57:11
【问题描述】:
我现在将在 Google Play 商店上发布我的第一个应用程序。我已经压缩了我的应用程序中使用的图像。我对应用大小有一些疑问。
如果应用程序的大小小于 2 MB,那么用户卸载应用程序的机会就会减少,我的这种说法是否适用于属于教育领域的应用程序?
但是,当我在 Windows 中看到我的 apk 文件时,它显示为 3.10 MB,但是当它安装在设备中时,从应用信息中查看它显示:
Total............................8.68 MB
App..............................7.02 MB
USB storage app..................0.00 B
Data.............................1.66 MB (perhaps it is the size of sqlite db + ttf's)
SD card..........................0.00B
那么,为什么我的应用程序大小增加了这么多,可以最小化吗?
而且,我在我的项目中使用了 4 个库(jar),它们位于 Android Private Libraries,但这些库的副本也在此文件夹之外。
删除它们是否更安全,并且删除它们有助于减小 apk 大小?
我还访问了许多描述Proguard 功能的网页,我真正了解 Proguard 如何减小 apk 的大小,它通过删除未使用的代码并重命名类、字段和语义上的方法来缩小、优化和混淆我们的代码晦涩的名字。结果是较小的 .apk 文件更难进行逆向工程。但是我不知道我的proguard-project.txt应该是什么样子?
我在我的应用程序中使用了 4 个库,即 easyfacebookandroidsdk_2.3.jar、android-support-v7-appcompat.jar、google-play-services.jar 和 android-support-v4.jar。
目前我的proguard-properties.txt 看起来像这样并且它也不使用 WebView
# To enable ProGuard in your project, edit project.properties
# to define the proguard.config property as described in that file.
#
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in ${sdk.dir}/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the ProGuard
# include property in project.properties.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# Add any project specific keep options here:
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
-keep class com.facebook.** { *; }
-keepattributes Signature
那么,我应该在proguard-properties.txt 中添加哪些行,以便它可以删除未使用的引用、类等,以减小 apk 大小?
使用https://code.google.com/p/android-unused-resources/ 提供的AndroidUnusedResources.jar 在android 项目中查找未使用的资源。
我认为这与 proguard 已经做过的事情是一样的吗?还是应该在启用proguard后也使用它?
您还可以在回答中提及您认为应该分享的任何缺失的内容。
在此先感谢...
【问题讨论】:
-
您是从哪里听到 2MB 声明的?我会发布应用程序,并始终尝试减少应用程序的占用空间。如果用户发现您的应用有帮助,他们就不会卸载它。
-
你是对的,如果用户发现应用程序有帮助,那么他们不会卸载它。 2 MB 是我个人的意见,因为当用户磁盘空间不足时,他有时会删除占用内存的应用程序,不过谢谢
-
如果用户的设备存储空间不足,他选择删除的应用程序将是他不再使用或不再需要的应用程序。我的建议类似于上面的@ChristopherRucinski。制作一个用户不想卸载的有用的应用程序。 2-8 MB 的应用存储空间也只是杯水车薪。
-
我确实提供了一些其他想法,您可能会在下面的回答中发现它们有用。就像我说的那样,您可能想要上传一些图片,以便我们可以了解如何以您现在可能知道的方式更多地解压缩它们。另外,我确实说过您可以将数据移动到 SD 卡!在您找到减小 APK 大小的好方法之前,这可能是一个很好的解决方案
标签: java android jar apk proguard