精华内容
下载资源
问答
  • APK瘦身

    2020-03-26 12:56:52
    APK瘦身: 1. 减少 Assets 目录下的文件,有的html可以通过接口获取 2. 删除无用so文件,根据CPU引入so文件 3. 压缩图片,使用webp格式下的图片 4.混淆 5.压缩APK 6.打包剔除无用资源 7.动态下载图片 分...

    APK瘦身:

    1. 减少 Assets 目录下的文件,有的html可以通过接口获取

    2. 删除无用so文件,根据CPU引入so文件

    3. 压缩图片,使用webp格式下的图片

    4.混淆

    5.压缩APK

    6.打包剔除无用资源

    7.动态下载图片

     

    分目录放置图片:

    不同分辨率的图片应该放到不同的目录下面,如果放错了图片,对于APP运行时内存大小有一定影响。

    如果把一个本来应该放在 drawable-xxhdpi里面的图片放在了 drawable 文件夹中,会出现什么问题呢?

    答案:在 xxhdpi 设备上,图片会被放大3倍,图片内存占用就会变为原来的9倍

     

    同一张图片,适配高分辨率肯定比低分辨率的 size 要大

     

    微信的表情都在hdpi中,仅有一套图片,这种放图策略几乎成为了业界标准。

    微信已经实现了 SVG 化,SVG 图片在 Raw 中。

    微信倾向于把较大的图片放在 xhdpi 中,UI设计师仅出一套图。

     

    目前阿里和腾讯都是一套图走天下的方案

     

    总结合理使用图片资源:

    1. 聊天表情就出一套图,放在 hdpi 中(因为此类图片对于清晰度要求不高)。

    2.纯色小 Icon 用 SVG 制作,用矢量图适配所有分辨率。

    3.对于背景图等大图,出一套放在 xhdpi 或 xxhdpi 中。

    4.Logo 等权重较大的图片可针对 hdpi、xhdpi、xxhdpi 做多套图

    5.如果某些图在真机中确实会展现异常,就用多套图适配。

    6.如果遇到特殊机型,可针对性的进行补图。

     

    移除 lib 苦衷的配置文件:

    // 不加载第三方依赖包的如下文件

    packagingOptions {

    exclude 'META-INF/DEPENDENCIES.txt'

    exclude 'META-INF/DEPENDENCIES'

    exclude 'META-INF/dependencies.txt'

    exclude 'META-INF/LICENSE.txt'

    exclude 'META-INF/LICENSE'

    exclude 'META-INF/license.txt'

    exclude 'META-INF/LGPL2.1'

    exclude 'META-INF/NOTICE.txt'

    exclude 'META-INF/NOTICE'

    exclude 'META-INF/notice.txt'

    exclude 'META-INF/MANIFEST.MF'

    exclude 'META-INF/MANIFEST'

    exclude 'META-INF/manifest.mf'

    exclude 'project.properties'

    exclude 'proguard-project.txt'

    exclude 'bin/AndroidManifest.xml'

    exclude 'libs/android-support-v4.jar'

    exclude 'AndroidManifest.xml'

    exclude 'META-INF/rxjava.properties'

    }

     

    展开全文
  • apk瘦身

    2017-09-29 19:25:50
    二、为什么要给apk瘦身? apk太大,用户不喜欢下载太大的apk,同样功能的两个app,用户更青睐于小的那个。。。两个原因: 1. 下载需要大量时间。 2. 占用手机存储空间。 三:如何去给apk瘦身? 1. 删除无用...

    一、什么是瘦身?

    瘦身就是我们开发的apk(安装包)在不影响用户使用效果和不降低使用量的情况下改变我们apk的大小。

    二、为什么要给apk瘦身?

    apk太大,用户不喜欢下载太大的apk,同样功能的两个app,用户更青睐于小的那个。。。两个原因:

    1.  下载需要大量时间。

    2.  占用手机存储空间。

    三:如何去给apk瘦身?

    1.  删除无用资源(包括图片,xml等等);

            下面是studio的流程图:

    2.  在打包前忽略无用资源


    3.  把png,jpg图片转换为webp的格式。

    在这呢有一个图片格式转换工具-----XnConvert


    注:Android4.0以下无法显示webp图片

     只是压缩了体积,像素没有改变

    面试题自拟(三省)

    1).apk瘦身的好处?

     1.省流量:特别是4G用户,流量并不是很多,如果一个apk要几百MB,部分用户是不会下载的。

     2.省内存:虽然现在手机普遍是64GB/128GB/256GB/512GB,但是现在应用市场上好的app有很多,用户也会安装各种各样的app,同样功能的两款app,用户会首先选择apk小的。

     3.省时间:不是WiFi用户下载网速达不到要求,下载时间过长的话,会让用户有一个时间上的疲劳期,所以用户不会去选择这样的app。

     

    2).你对apk瘦身的认识?

     1.什么是apk瘦身

           ------就是在不影响用户使用的情况下,无限制的缩小apk的体积(大小)。

     2.瘦身的好处(三省)

     3.瘦身的方法

      ---删除无用资源(lint方式)

      ---打包前忽略无用资源

      ---压缩图片  在线压缩地址: https://tinypng.com/

      ---图片使用webp格式

     

    五、参考链接

     1. http://blog.csdn.net/u011335851/article/details/52187739    (优秀链接)

     2. http://blog.csdn.net/lmj623565791/article/details/53240600  (webp格式图片详解,了解即可)

     3. https://www.2cto.com/kf/201411/353176.html   (次选链接)

    展开全文
  • APK 瘦身

    2017-04-17 11:20:37
    APK 瘦身: 1:混淆代码: 在app/build.gradle打开minifyEnabled:true 2:去除无用资源和代码: 在app/build.gradle打开shrinkResources:true(依赖于minifyEnabled,必需和minifyEnabled一起用) 3:删除...
    
    
    APK 瘦身:
    	1:混淆代码:
    		在app/build.gradle打开minifyEnabled:true
    	2:去除无用资源和代码:
    		在app/build.gradle打开shrinkResources:true(依赖于minifyEnabled,必需和minifyEnabled一起用)
    	3:删除xml和图片:
    		步骤:点击菜单栏 Analyze ->  Run Inspection by Name -> unused resources ->  Moudule ‘app’ -> OK,这样会搜出来哪些未被使用到未使用到xml和图			片
    	4:压缩图片
    		地址:https://tinypng.com/
    	5如果App只支持中文可以配置:
    		android {
       	 defaultConfig {
           	 ...
           	 //语言资源,只支持中文
            resConfigs "zh"
       	 }
    		}


    展开全文
  • Apk瘦身

    2021-06-02 16:36:08
    使用as自带Analyze Apk功能,可以很清楚的查看apk的组成及各部分占用的比列。APK 文件由一个 Zip 压缩文件组成,其中包含构成应用的所有文件。这些文件包括 Java 类文件、资源文件和包含已编译资源的文件。 APK 包含...

    参考官方连接:
    https://developer.android.google.cn/topic/performance/reduce-apk-size?hl=zh-cn
    先看效果:
    瘦身前(52.8MB):
    在这里插入图片描述
    瘦身后(29.3MB):
    在这里插入图片描述
    使用as自带Analyze Apk功能,可以很清楚的查看apk的组成及各部分占用的比列。APK 文件由一个 Zip 压缩文件组成,其中包含构成应用的所有文件。这些文件包括 Java 类文件、资源文件和包含已编译资源的文件。
    APK 包含以下目录:
    META-INF/:包含 CERT.SF 和 CERT.RSA 签名文件,以及 MANIFEST.MF 清单文件。
    assets/ :包含应用的资源;应用可以使用 AssetManager 对象检索这些资源。
    res/:包含未编译到 resources.arsc 中的资源(图片、音视频等)。
    lib/:包含特定于处理器软件层的已编译代码。此目录包含每种平台类型的子目录,如 armeabi 、
    armeabi-v7a 、 arm64-v8a 、 x86 、 x86_64 和 mips 。
    APK 还包含以下文件。在这些文件中,只有 AndroidManifest.xml 是必需的:
    resources.arsc:包含已编译的资源。此文件包含 res/values/ 文件夹的所有配置中的 XML 内容。打包工
    具会提取此 XML 内容,将其编译为二进制文件形式,并压缩内容。此内容包括语言字符串和样式,以及未直
    接包含在 resources.arsc 文件中的内容(例如布局文件和图片)的路径。
    classes.dex:包含以 Dalvik/ART 虚拟机可理解的 DEX 文件格式编译的类。
    AndroidManifest.xml:包含核心 Android 清单文件。此文件列出了应用的名称、版本、访问权限和引用的库文件。该文件使用 Android 的二进制 XML 格式。

    1.针对lib/目录:
    apk使用了v7a和v8a2种架构的CPU库,考虑到v8a向下兼容了v7a,牺牲一定的性能,去掉v8a,
    体积减少13M

    2.减少无用代码和图片:
    lint 工具是 Android Studio 中附带的静态代码分析器,可检测到res/文件夹中未被代码引用的资源。lint 工具不会扫描 assets/ 文件夹、通过反射引用的资源或已链接至应用的库文件。此外,它也不会移
    除资源,只会提醒您它们的存在。 与资源缩减不同,这里点击删除,那就是把文件删了。
    在这里插入图片描述
    启用资源缩减 shrinkResources,打包时自动忽略未使用资源。资源缩减只有在与代码缩减: minifyEnabled 配合使用时才能发挥作用。在代码缩减器移除所有不使用的代码后,资源缩减器便可确定应用仍要使用的资源。
    仅支持特定的密度:根据google建议是每个应用至少包含一个xxhdpi图片的变体

    3.超过100kb的图片通过tinypng有损压缩

    1. 7zip压缩??
      对于发布于Google Play的APP,建议不要使用7Zip压缩,因为这个会导致Google Play的优化Patch算法失效.

    5.针对动画,使用矢量图形

    6、使用矢量图片(适合小图,大图渲染时间长)

    展开全文
  • apk 瘦身

    2018-09-04 16:27:03
    **为了app的更加优化,使的用户体验更加人性化,以下是对apk进行瘦身的实现。** 在Android Studio工具栏里面打开——》build->Analyze APK 选择要分析发APK包 在这里可以看到占用空间的主要是: (1) ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,127
精华内容 450
关键字:

apk瘦身