公司的apk越做越大。。。
作为一个有追求的程序员,我觉得有必要给apk瘦身了。。。

优化之前,先来分析一下apk结构,下面附上一张apk结构图:

apk结构.png

由于我这个项目集成了百度地图、百度导航。。。所以assets和lib各自变态的占了12M+,有种蛋蛋的忧伤。。。
百度地图是在官网上按项目需求集成的,不需要的功能都没有集成进来,实在没什么优化的空间。。。

classes.dex文件有6.5MB,这个倒是可以优化。Facebook 开源了一个 Redex,用于 Android 字节码的优化,经过 Redex 转换后的 apk,体积变得更小,运行速度变得更快。不过在Github上看了一下,Redex目前只能在Mac和Linux上使用,Windows上无法使用,公司的电脑还没装虚拟机,只能等下次再用了。。。

至于资源文件,我之前用TinyPNG压缩过图片,所以图中资源文件并不算很大。这里附上TinyPNG的网址:https://tinypng.com/
除了压缩图片,还可以删掉一些没有用到的资源。用Android Studio打开项目,点击Analyze--》Run Inspection by Name--》搜索Unused resources,可以搜索出无用资源,删除无用资源(记得别误删友盟的资源...)。
网上有人说直接点击Refactor--》Remove Unused Resources直接删除无用资源。对于这个方法,我劝大家要慎重,因为我上次用这个方法把友盟的资源给删了,导致出现一大堆问题,后面又不得不把友盟的资源再补回去。。。

apk的其他文件也不算大,瘦身计划告一段落。

除了apk瘦身,性能优化也很重要。这里给大家安利一下阿里云的移动测试,我选择了深度性能测试。不测不知道,一测吓一跳。。。之前没发现的问题,这里都可以测出来,大家可以根据出现的问题修改代码。

apk优化暂告一段落,以后有时间再继续研究。。。

Android之apk优化的更多相关文章

  1. fir.im Weekly - 如何进行 Android App 性能优化

    关于 Android App 的优化,@anly-jun 用 3 个月完成了这一系列文章,从 性能分析工具 到 ANR .Layout .消除卡顿 到 内存优化.内存分析工具大概十五六篇,并对此做一个 ...

  2. Android UI性能优化实战, 识别View中的性能问题

    出自:[张鸿洋的博客]来源:http://blog.csdn.net/lmj623565791/article/details/45556391 1.概述 2015年初google发布了Android ...

  3. 教你使用Android SDK布局优化工具layoutopt

    创建好看的Android布局是个不小的挑战,当你花了数小时调整好它们适应多种设备后,你通常不想再重新调整,但笨重的嵌套布局效率往往非常低下,幸运的是,在Android SDK中有一个工具可以帮助你优化 ...

  4. 谈谈android 布局 的优化

    来自:http://www.cnblogs.com/youxilua/archive/2012/05/08/2489414.html 导言 设配android的屏幕一定是一个噩梦,就好比那些搞网页设计 ...

  5. Android的布局优化之include、merge 、viewstub

    以前在写布局的时候总是喜欢用自己熟悉的方式去写,从来也没有想过优化怎么的,后来又一次在上班的时候老大拿着我写的一个页面说我这个不行.我说这不是和设计图上的一模一样的么?怎么就不行了?然后他就跟我说了一 ...

  6. android应用的优化建议(转载)

    首先,这是我在http://www.oschina.net/translate/40-developer-tips-for-android-optimization看到的一片文章,感觉挺有道理的,所以 ...

  7. Android之ListView优化

    关于ListView几个方面的优化: ListView的大小设定固定值; 复用convertView, 使用ViewHolder提高在容器中查找组件的效率; 使用分页加载; 快速滚动时, item不显 ...

  8. Android APP 性能优化的一些思考

    说到 Android 系统手机,大部分人的印象是用了一段时间就变得有点卡顿,有些程序在运行期间莫名其妙的出现崩溃,打开系统文件夹一看,发现多了很多文件,然后用手机管家 APP 不断地进行清理优化 ,才 ...

  9. Android之——ListView优化

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/47209253 作为client.其最基本的任务就是最直观的和用户交互.从serve ...

随机推荐

  1. create table b1 as select * from b建表锁表测试

    A: create table a1 like a; insert into a1 as select * from a; B: create table b1 as select * from b; ...

  2. Magic Powder - 2 (CF 670_D)

    http://codeforces.com/problemset/problem/670/D2 The term of this problem is the same as the previous ...

  3. 12.equals()方法总结

    超类Object中有这个equals()方法,该方法主要用于比较两个对象是否相等.该方法的源码如下: 我们知道所有对象都有表示(内存地址)和状态(数据),看上面代码是用"=="来比 ...

  4. excel设定备选值

    excel设定备选值 有的时候我们要人为向excel中某一列添加数据,可以通过下面的方法,为这列设定备选值. 操作方法 选中excel表格的一列,选择  数据 -- 有效性 -- 允许: 选择 序列 ...

  5. java的环境变量

    Java学习第一步——JDK安装及Java环境变量配置  2014-05-30 9:09  Java SE  阿超  9226 views Java作为当下很主流的编程语言,学习Java的朋友也越来越 ...

  6. Windows核心编程:第12章 纤程

    Github https://github.com/gongluck/Windows-Core-Program.git //第12章 纤程.cpp: 定义应用程序的入口点. // #include & ...

  7. C# .NET 根据Url链接保存Image图片到本地磁盘

    根据一个Image的Url链接可以在浏览器中显示一个图片,如果要通过代码将图片保存在本地磁盘可以通过以下方式: 1.首先获取图片的二进制数组. static public byte[] GetByte ...

  8. C#单例类的实现

    C#单例类的实现 单例类保证一个类全局仅有一个实例,并提供一个全局访问点,由于只能生成一个实例,因此我们必须把构造函数设为私有函数以禁止他人创建实例. 实现1:懒汉式,线程不安全 该实现没有额外开销, ...

  9. 知物由学 | AI在Facebook清理有害内容上扮演了什么角色?

    "知物由学"是网易云易盾打造的一个品牌栏目,词语出自汉·王充<论衡·实知>.人,能力有高下之分,学习才知道事物的道理,而后才有智慧,不去求问就不会知道."知物 ...

  10. 四种List实现类的对比总结

    此文已由作者赵计刚授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 1.ArrayList 非线程安全 基于对象数组 get(int index)不需要遍历数组,速度快: it ...