Apk优化极致
1. webp
WebP格式,谷歌(google)开发的一种旨在加快图片加载速度的图片格式。图片压缩体积大约只有JPEG的2/3,并能节省大量的服务器宽带资源和数据空间。Facebook Ebay等知名网站已经开始测试并使用WebP格式。WebP既支持有损压缩也支持无损压缩。
在Android Studio 中有专门的插件可以做png和jpg转为Webp的
2.svg
SVG的全称是Scalable Vector Graphics,叫可缩放矢量图形。它和位图(Bitmap)相对,SVG不会像位图一样因为缩放而让图片质量下降。它的优点在于节约空间,使用方便。
3.tint
tint在一定程度上也是可以减少apk 的体积,比如,我们一个imageview 做点击效果,按下和抬起是不一样的效果的时候,我们需要写一个seletor,然后放置两张不同的图片,那么tint可以通过一个矢量图,改变不同颜色值来实现这种功能,不需要两张图片
4. 代码混淆
在build.gradle中android节点下的xbuildtype中增加miniEnabled true便是开启了代码混淆,同时要配置代码混淆脚本
5.代码和资源压缩移除
shrinkResource true 这个不会删除没有用的资源,只是将检测到的没有用的资源改变结构,比如图片就是变成一个很小的黑色的占位图片,没有.xml,会删除里面的内容,但是文件都还在,
如果用了反射或者动态获取,他是检测不到的,所以要保持这部分不被处理,要加一个keep.xml文件,保持下来
6. 资源打包
默认所有的资源都是支持国际化的,包括我们引入的第三方库都是如此,但是我们并不需要这么多,可能只需要英文和中文,所以我们在ProductFlavor中增加resConfigs('zh-rCN','en')就可以了
7. 动态资源库配置
目前市场上有armebi, armebi-v7a, armebi-v8a, mips, mips64, x86等,但是所有的都兼容armebi, 所以只要保留armebi就可以了,能有效的减少apk 的大小
8.lint 物理 删除无用的资源
9.资源res的混淆,7z压缩,对齐
Apk优化极致的更多相关文章
- Android之apk优化
公司的apk越做越大...作为一个有追求的程序员,我觉得有必要给apk瘦身了... 优化之前,先来分析一下apk结构,下面附上一张apk结构图: apk结构.png 由于我这个项目集成了百度地图.百度 ...
- APK优化工具zipalign的详细介绍和使用
什么是Zipalign? Zipalign是一个android平台上整理APK文件的工具,它首次被引入是在Android 1.6版本的SDK软件开发工具包中.它能够对打包的Android应用 ...
- 【Warrior刷题笔记】力扣169. 多数元素 【排序 || 哈希 || 随机算法 || 摩尔投票法】详细注释 不断优化 极致压榨
题目 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/majority-element/ 注意,该题在LC中被标注为easy,所以我们更多应该关 ...
- openstack 性能优化极致
- 使用Zipalign工具优化Android APK应用记录
生成的Android应用APK文件最好进行优化,因为APK包的本质是一个zip压缩文档,经过优化能使包内未压缩的数据有序的排列,从而减少应用程序运行时的内存消耗.我们可以使用Zipalign工具进行A ...
- apk添加系统签名
上一节,可以通过添加su的方式获取系统权限,但这种存在安全隐患,故不推荐,本文通过获取数字签名方式获取系统权限. 在我们的AndroidManifest.xml中添加 android:share ...
- Android 使用Android Studio + Gradle 或 命令行 进行apk签名打包
官方文档:https://developer.Android.com/tools/publishing/app-signing.html 1. 默认为debug mode,使用的签名文件在: $HOM ...
- apk的包名修改
今天,想在android手机上安装两个相同的应用,本以为可以安装不同版本的,试了几次,均相互覆盖了,于是,只能设法修改apk所对应的包名(package name). 目的声明:本文只是为了满足DIY ...
- Android签名总结
signapk.jar与eclipse export插件默认赋予程序一个DEBUG权限的签名 signapk.jar包含有系统权限(system api, permission),而eclipse e ...
随机推荐
- IntelliJ Idea 中文乱码问题
首先,Idea真的是一款很方便的开发工具,但是关于中文乱码这个问题我不得不吐槽,这个编码也弄得这么麻烦干嘛呀...下面就说一下怎么解决中文乱码问题: 1.首先是编辑器的乱码,这个很好解决,file-& ...
- Ardupilot(PX4)飞控驱动蜂鸣器和RGB细节
Ardupilot(PX4)飞控驱动蜂鸣器细节 飞控代码细节 任务调用频率50HZ(20ms),buzzer.update() 内部将频率减少到10HZ(100ms) 单响(SINGLE_BUZZ) ...
- 学习 MyBatis 的一点小总结 —— 底层源码初步分析
目录 MyBatis 如何获取数据库源? MyBatis 如何获取 sql 语句? MyBatis 如何执行 sql 语句? MyBatis 如何实现不同类型数据之间的转换? 在过去程序员使用 JDB ...
- [poj1797]Heavy Transportation<最大生成树prim&kruskal>
题目链接:http://poj.org/problem?id=1797 题意:给定n个点,m条边,每条边连接两点切有权值.求点1到点n的路径的上的最小边的值最大... 翻别人博客找到的题,方法挺多的, ...
- java如何自定义一个线程池
java线程池的一些简单功能,后续会更新,代码不多,很好理解 package com.rbac.thread; import java.util.ArrayList; import java.util ...
- Codeforces 631 (Div. 2) C. Dreamoon Likes Coloring 思维or构造
https://codeforces.com/contest/1330/problem/C 给n个格子染色,有m种颜色,要求最后的所以格子被染色,并且有m种颜色. 染色要求:每种颜色有一个值li,选择 ...
- 听说你还搞不定java中的==和equals?
相信很多读者关于==和equals懂了又懵,懵了又懂,如此循环,事实上可能是因为看到的博客文章之类的太多了,长篇大论,加上一段时间的洗礼之后就迷路了.本篇文章再一次理清楚.当然如果觉得本文太啰嗦的话, ...
- minIO分布式集群搭建+nginx负载均衡
暂时关闭防火墙 systemctl stop firewalld 查看防火墙状态 systemctl status firewalld 赋予最高权限 chmod +x minio !/bin/bash ...
- codeforces 1038a(找最长的前k个字母出现相同次数的字符串)
codeforces 1038a You are given a string s of length n, which consists only of the first k letters of ...
- 1063 Set Similarity (25分)
Given two sets of integers, the similarity of the sets is defined to be /, where Nc is the number ...