Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何减少应用程序(.apk)大小_Android - Fatal编程技术网

Android 如何减少应用程序(.apk)大小

Android 如何减少应用程序(.apk)大小,android,Android,救命啊 当我在手机上安装我的应用程序进行测试时,它显示为一个巨大的尺寸,11.35MB。这是一个非常简单的应用程序,让用户浏览有趣的事实。我能想到的唯一原因是,在drawables中有14个JPEG文件作为有趣事实的背景图像。它们的平均大小约为500 KB 我想缩小我的应用程序的大小,以免耗尽用户设备上的宝贵资源。除了删除图片之外,还有其他方法可以优化apk文件的大小吗 编辑:这些照片是我使用Android手机拍摄的。我建议您尽可能压缩.jpg文件,这将大大减少.apk文件的大小。一个免费的工具

救命啊

当我在手机上安装我的应用程序进行测试时,它显示为一个巨大的尺寸,11.35MB。这是一个非常简单的应用程序,让用户浏览有趣的事实。我能想到的唯一原因是,在drawables中有14个JPEG文件作为有趣事实的背景图像。它们的平均大小约为500 KB

我想缩小我的应用程序的大小,以免耗尽用户设备上的宝贵资源。除了删除图片之外,还有其他方法可以优化apk文件的大小吗


编辑:这些照片是我使用Android手机拍摄的。

我建议您尽可能压缩
.jpg
文件,这将大大减少
.apk
文件的大小。一个免费的工具应该可以帮助你做到这一点。它有很好的大小调整选项。

确保jpg的存储分辨率不会超过需要的分辨率。一部漂亮的安卓手机的屏幕分辨率为1920x1200或2560x1440(大约2015年)800 x 480,因此你的背景像素不应该超过这个分辨率(除非你的应用程序支持某种缩放)。还有,背景是照片吗?如果没有,您可能会发现使用基于矢量的图像格式(如svg)或带有动态调色板(如gif)的图像格式将进一步减小文件大小。

其他答案提到缩小图像。你也可以考虑缩小你的字节码。关于将ProGuard应用于Android应用程序。

根据经验,我可以指出两件事

  • 如果您使用eclipse创建apk文件,那么资源是重复的(至少在我的例子中是这样),您可以尝试使用ant和build.xml创建apk并比较大小
  • 另外,还要研究资源的别名。它的链接是

  • 还有一件事需要添加到图像文件大小上——不同的算法可能会对最终大小产生显著影响。我发现雅虎的www.smushit.com比我现在电脑上的压缩器和编解码器要有效得多(至少对.png是如此)。

    除了优化图像,我还发现验证您使用的支持库非常有用。我有一个相对简单的应用程序目标平台,API>=10,但我的APK最终还是达到了2.2M,或者在使用ProGuard之后达到了1.4M。当我查看APK时,代码是150万,包含了很多额外的资源(abc),我对此一无所知

    然后我发现:

    事实证明,我不需要appcompat-v7,只需要support-v4,并且对依赖项进行此更改将APK大小减少到1.7M(使用ProGuard时为0.9M)。 可以理解的是,支持库携带了大量额外的代码和资源,因此确保只使用您需要的代码和资源可能会有所帮助


    (尽管-0.5M对于11M应用程序来说并不重要,但我在这里发布这篇文章是因为我在搜索解决方案时一直出现在这个页面上…

    以下是通过图像减少构建大小的方法(也适用于iOS) 在这里,我分享了一个名为“OPTIPNG”(你可以从下载)的伟大工具,它将帮助我们减少构建,特别是通过使用图像,它将减少我们正在使用的PNG的图像大小,而不会降低图像的质量(分辨率和颜色)

    示例–如果您的图像大小为698KB,那么它将简化为564KB

    以下是OPTIPNG 0.7.5的执行步骤

    1) 终端->光盘/OPTIPNG的本地路径

    2) 键入“/configure”

    3) 键入“sudo make install”

    现在应该安装了

    4) 键入“optpng/您的图像路径”

    你可以在字节中得到结果,也可以检查你的大小

    你也可以试试这是一个在线工具,对我来说做得很好。

    我用来压缩图像和缩小apk的大小。它有很好的压缩率,易于使用,保留了图像的质量,在Ubuntu中也可以使用。除此之外,我启用了ProGuard并处理了Lint问题以减少APK大小

    • 使用压缩项目的png或 jpg格式的图像文件,它可以大大减小图像的大小 图像质量无损失
    • 有些图像使用tinypng压缩可能会失真,您可以转换
      将这些图像转换为webP格式,使用或 可以将其他格式转换为webP
    • 使用Lint检查不使用资源并将其删除
    更新

    随着支持库23.2的引入,现在您可以用SVG(带/或不带动画)替换许多图像资产,以进一步减小apk大小

    原创

    这可能是一个迟到的答复,但可能对未来的用户有帮助

    参考这个。 为了总结本页,它提到了以下有助于整体减少apk大小的关键点:

    • 使用progaud
    • 删除应用程序中的所有调试信息(如Log.i()语句)。它们可以包装在一个只有在测试应用程序时才启用的条件中
    • 使用推荐的媒体格式
      • 图片:PNG或JPG
      • 音频:AAC
      • 视频:H264 AVC
    • 使用或压缩图像
    • 用于缩放图像
    • 使用此项查找未使用的资源,然后将其删除
    • 避免使用多个资源来实现相同的功能。这些资源不仅限于图像,还扩展到API。有时一个单一的API可以提供多个结果,而不是使用两个或三个不同的API。重复的字符串和资产也会浪费空间

      • 以下是减少应用程序大小的方法。下面的链接将详细说明

        前卫

        矢量牵引

        Apk分裂

        优化png图像

        删除未使用的资源

        9面片图像

        压缩Jpeg i
                       release {
                               minifyEnabled true
                               proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                               shrinkResources true
                        }
        
            defaultConfig {
            applicationId "com.goparties.gpuser"
            minSdkVersion 19
            targetSdkVersion 27
            resConfigs "en"