首先是看了博客:http://blog.csdn.net/sw950729/article/details/64919051

时。认为大神我就是马云飞写的非常有道理。全部自己就自己写了一遍。长话短说:

在实际开发中,特别是多人接手迭代开发的项目中,随着时间的推移,项目会越来越大。所以让项目大小变小是能够例如以下操作:

1,在gradle使用minifyEnabled进行Proguard混淆的配置,可大大减小APP大小,例如以下面代码:

buildTypes {
release {
//开启混淆(as自带默认配置)
minifyEnabled ture
//去出没用的资源文件
shrinkResources true
//移除没用的Resources的资源文件
zipAlignEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}

2,删除无用资源,主要是xml文件,操作–点击Analyze——>Run Inspection by Name–然后输入unused Resources就可以显示出未使用的资源文件,其操作步骤为:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2lsbGJh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="这里写图片描写叙述" title="">

3,图片瘦身值熊猫大法–使用tinypng压缩图片,官方站点:https://tinypng.com

PNG是实用的,由于它是唯一广泛支持的格式,能够存储部分透明的图像。

格式使用压缩。可是文件仍然可能非常大。

使用TinyPNG缩小您的应用程序和站点的图像。它将使用更少的带宽和更快的载入。图片就不截取出来了。大家能够直接去官网查看了解。

4,通过重构Refactor来删除没用的资源(通过id找到),详细操作例如以下

通过Remove Unused Resources来删除没用的资源

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2lsbGJh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="这里写图片描写叙述" title="">

其中Refactor表示直接重构,Preview表示预览的意思,建议大家先使用预览的方式,由于代码中引用方式不同,所以存在代码中使用了某个资源,可是依旧被当成没有引用的情况,比如通过使用getIdentifier、Uri等方式。

5。针对不同cpu的so库进行打包,眼下仍就在试验其中

armeabi、armeabi-v7a(32的cpu)。armeabi-v8a(64位的cpu)和x86。

在其安装设备中,是默认以armeabi为选项,同一时候须要指出:打包出的x86的so,总会比armeabi平台的体积更小。可是却有性能的损耗。

假设项目仅仅包括了 armeabi,那么在全部Android设备都能够执行。

假设项目仅仅包括了 armeabi-v7a。除armeabi架构的设备外都能够执行;

假设项目仅仅包括了 x86,那么armeabi架构和armeabi-v7a的Android设备是无法执行的。

假设同一时候包括了 armeabi, armeabi-v7a和x86,全部设备都能够执行,程序在执行的时候去载入不同平台相应的so。这是较为完美的一种解决方式。同一时候也会导致包变大。

所以其操作为:

5.1为了减小apk体积,仅仅保留armeabi和armeabi-v7a两个目录。并保证这两个目录中so数量一致。

2,对仅仅提供aremabi版本号的第三方so。原样复制一份到armeabi-v7a目录

以上!

APK大小的瘦身的总结:的更多相关文章

  1. Android APK安装包瘦身[转]

    很显然,APK安装包越小越好.下面从代码,资源文件,使用策略几个方面简要介绍下: 代码 保持良好的编程习惯,不要重复或者不用的代码,谨慎添加libs,移除使用不到的libs. 使用proguard混淆 ...

  2. Android APK瘦身之Android Studio Lint (代码审查)

    ******** ******** 第一部分: 瘦身内容介绍 ******** ******** 项目新版本的迭代接近尾声, 因为历史累积问题, 导致有很多无效的资源让已经臃肿的APK变得更肿, 因此 ...

  3. 39、apk瘦身(转载)

    本文转自::Android开发中文站 » 关于APK瘦身值得分享的一些经验 从APK的文件结构说起 APK在安装和更新之前都需要经过网络将其下载到手机,如果APK越大消耗的流量就会越多,特别是对于使用 ...

  4. Drawable实战解析:Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)

    Android XML shape 标签使用详解   一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景. ...

  5. APK瘦身记,如何实现高达53%的压缩效果

    作者:非戈@阿里移动安全 1.我是怎么思考这件事情的 APK是Android系统安装包的文件格式,关于这个话题其实是一个老生常谈的题目,不论是公司内部,还是外部网络,前人前辈已经总结出很多方法和规律. ...

  6. APK瘦身实践

    首发地址:http://www.jayfeng.com/2015/12/29/APK%E7%98%A6%E8%BA%AB%E5%AE%9E%E8%B7%B5/ 因为推广的需要,公司需要把APK的大小再 ...

  7. 如何给你的Android 安装文件(APK)瘦身

    如何给你的Android 安装文件(APK)瘦身 本文翻译自:Putting Your APKs on Diet           原作者:Cyril Mottier Android的apk文件越来 ...

  8. APK瘦身

    APK瘦身 主要从一下三方面来瘦身: 1. Java 源代码 1) ,这方面主要是通过最简洁的代码实现最直接的功能,还有就是提出上线前不必要的java代码,可以使用UCDector进行分析,从而对代码 ...

  9. Android APK 瘦身 - JOOX Music项目实战

    导语 JOOX Music是腾讯海外布局的一个音乐产品,2014年发布以来已经成为5个国家和地区排名第一的音乐App.东南亚是JOOX Music的主要发行地区,由于JOOX Music所面对的市场存 ...

随机推荐

  1. Restful接口设计

    URL设计规范:/模块/资源/{标示}/集合1/... eg: /user/{uid}/friends ->好友列表 例子:秒杀系统API设计 1.请求参数绑定:@PathVariable(&q ...

  2. sphinx-python文档化

    概述 下文讲述使用sphinx自动生成reStructuredText python API文档的简单过程. 配置流程 安装依赖 $ pip install sphinx blurb python-d ...

  3. Selenium2+python自动化36-判断元素存在【转载】

    前言 最近有很多小伙伴在问如何判断一个元素是否存在,这个方法在selenium里面是没有的,需要自己写咯. 元素不存在的话,操作元素会报错,或者元素有多个,不唯一的时候也会报错.本篇介绍两种判断元素存 ...

  4. 只用120行Java代码写一个自己的区块链-3挖矿算法

    在本系列前两篇文章中,我们向大家展示了如何通过精炼的Java代码实现一个简单的区块链.包括生成块,验证块数据,广播通信等等,这一篇让我们聚焦在如何实现 PoW算法. 大家都无不惊呼比特币.以太坊及其他 ...

  5. zabbix监控web应用

    1)web应用监控介绍 使用zabbix自带的web场景可以监控url的状态码,响应时间,url的下载速度,非常的棒 思路:定义模板-->创建应用集--->定义web场景--->定义 ...

  6. flutter 国内镜像设置

    官网:https://flutter.dev/community/china 路径设置 FLUTTER_STORAGE_BASE_URL: https://mirrors.sjtug.sjtu.edu ...

  7. Codeforces #442 Div2 E

    #442 Div2 E 题意 给你一棵树,每个结点有开关(0表示关闭,1表示开启),两种操作: 反转一棵子树所有开关 询问一棵子树有多少开关是开着的 分析 先 DFS 把树上的结点映射到区间上,然后就 ...

  8. Dfs【bzoj3252】攻略

    Description 题目简述:树版[k取方格数] 众所周知,桂木桂马是攻略之神,开启攻略之神模式后,他可以同时攻略k部游戏. 今天他得到了一款新游戏<XX半岛>,这款游戏有n个场景(s ...

  9. Linux命令之halt、poweroff、reboot

    halt [选项] poweroff [选项] reboot [选项] 这三个命令模式一样,目的是引导内核启动或停止系统的运行:当没有-f参数或系统运行级别不是0和6,将执行/sbin/shutdow ...

  10. 【二分答案】【Heap-Dijkstra】bzoj2709 [Violet 1]迷宫花园

    显然最短路长度随着v的变化是单调的,于是可以二分答案,据说spfa在网格图上表现较差. #include<cstdio> #include<cstring> #include& ...