APK大小的瘦身的总结:
首先是看了博客: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大小的瘦身的总结:的更多相关文章
- Android APK安装包瘦身[转]
很显然,APK安装包越小越好.下面从代码,资源文件,使用策略几个方面简要介绍下: 代码 保持良好的编程习惯,不要重复或者不用的代码,谨慎添加libs,移除使用不到的libs. 使用proguard混淆 ...
- Android APK瘦身之Android Studio Lint (代码审查)
******** ******** 第一部分: 瘦身内容介绍 ******** ******** 项目新版本的迭代接近尾声, 因为历史累积问题, 导致有很多无效的资源让已经臃肿的APK变得更肿, 因此 ...
- 39、apk瘦身(转载)
本文转自::Android开发中文站 » 关于APK瘦身值得分享的一些经验 从APK的文件结构说起 APK在安装和更新之前都需要经过网络将其下载到手机,如果APK越大消耗的流量就会越多,特别是对于使用 ...
- Drawable实战解析:Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)
Android XML shape 标签使用详解 一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景. ...
- APK瘦身记,如何实现高达53%的压缩效果
作者:非戈@阿里移动安全 1.我是怎么思考这件事情的 APK是Android系统安装包的文件格式,关于这个话题其实是一个老生常谈的题目,不论是公司内部,还是外部网络,前人前辈已经总结出很多方法和规律. ...
- APK瘦身实践
首发地址:http://www.jayfeng.com/2015/12/29/APK%E7%98%A6%E8%BA%AB%E5%AE%9E%E8%B7%B5/ 因为推广的需要,公司需要把APK的大小再 ...
- 如何给你的Android 安装文件(APK)瘦身
如何给你的Android 安装文件(APK)瘦身 本文翻译自:Putting Your APKs on Diet 原作者:Cyril Mottier Android的apk文件越来 ...
- APK瘦身
APK瘦身 主要从一下三方面来瘦身: 1. Java 源代码 1) ,这方面主要是通过最简洁的代码实现最直接的功能,还有就是提出上线前不必要的java代码,可以使用UCDector进行分析,从而对代码 ...
- Android APK 瘦身 - JOOX Music项目实战
导语 JOOX Music是腾讯海外布局的一个音乐产品,2014年发布以来已经成为5个国家和地区排名第一的音乐App.东南亚是JOOX Music的主要发行地区,由于JOOX Music所面对的市场存 ...
随机推荐
- 使用Python获取计算机名,ip地址,mac地址等等
获取计算机名 # 获取计算机名,常用的方法有三种 import os import socket # method one name = socket.gethostname() print(name ...
- django定义模型类
模型类被定义在应用文件夹下的model.py中 模型类必须继承Django的models.Model类 属性名不能用连续的两条下划线__ 主键:primary key,简写 pk 不需要主动定义,dj ...
- JVM垃圾收集规则和算法
1.垃圾收集 Garbage Collection 程序计数器.虚拟机栈.本地方法栈这三部分内存随着线程生而生,随着线程灭而自然的回收,他们的大小在编译期间就大致确定了下来,所以对这部分的回收是具备确 ...
- selenium+python自动化77-autoit文件上传【转载】
前言 关于非input文件上传,点上传按钮后,这个弹出的windows的控件了,已经跳出三界之外了,不属于selenium的管辖范围(selenium不是万能的,只能操作web上元素).autoit工 ...
- 创建ProcessEngine
activiti流程引擎是通过activiti.cfg.xml文件配置的(这并不符合Spring构建流程引擎的编码风格). ProcessEngine processEngine = ProcessE ...
- 使用ShowDoc在线管理API接口文档
ShowDoc是什么 每当接手一个他人开发好的模块或者项目,看着那些没有写注释的代码,我们都无比抓狂.文档呢?!文档呢?!Show me the doc !! ShowDoc就是一个非常适合IT团队的 ...
- 官方文档,才是正途-docker-compose
需要的ingress网络映射,还是host宿主机端口映射: https://docs.docker.com/compose/compose-file/#secrets ================ ...
- C# 用程序读写另一个控制台程序
一. using System; namespace ConsoleApp1 { class Program { static void Main(string[] args) { Console.W ...
- hdu6058
hdu6058 题意 定义 \(f(l, r, k)\) 函数为区间 \([l, r]\) 第 \(k\) 大的数,如果 \(r - l + 1 < k\),\(f = 0\) .求 \(\su ...
- 差分+树状数组【p4868】Preprefix sum
Description 前缀和(prefix sum)\(S_i=\sum_{k=1}^i a_i\). 前前缀和(preprefix sum) 则把\(S_i\)作为原序列再进行前缀和.记再次求得前 ...