性能优化
文章平均质量分 93
孤独灬啸月
这个作者很懒,什么都没留下…
展开
-
(一)APP 启动原理 —— 优化启动黑白屏
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、启动黑屏、白屏有的 App 在启动时会出现一段时间的黑屏或者白屏。这就是俗称的启动黑白屏的问题。这期间弄得用户不知道该干嘛,体验不好。App 启动时间是什么 ,从哪里开始 (我们要知道启动时间是怎么算出来的) https://segmen...原创 2018-05-22 20:21:35 · 1350 阅读 · 0 评论 -
(十一)Handle 源码分析以及手写实现
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、源码分析1.消息入队我们比较常用的 Handle 的方法是 sendMessage 这个方法,查看其源码。 public final boolean sendMessage(Message msg) { r原创 2018-02-02 17:48:55 · 523 阅读 · 0 评论 -
(十三)Dex 加解密与多 Dex 加载
版权声明:本文为博主原创文章,未经博主允许不得转载。本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、加密原理一个安卓 apk 里面包含有 AndroidManifest.xml、classes.dex、resources.arsc 等文件,java 代码主要存在于 classes.dex 中。把 classes.dex 文件拆分为两个 dex 文件,其中主 d...原创 2018-11-06 16:09:14 · 2782 阅读 · 0 评论 -
(十四)Tinker 热修复原理及手写实现
版权声明:本文为博主原创文章,未经博主允许不得转载。本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、热修复热补丁方案有很多,其中比较出名的有阿里的 AndFix、美团的 Robust 以及 QZone 的超级补丁方案。以及我们要分析的 Tinker 热修复。TinkerQZoneAndFixRobust类替换yesyesnon...原创 2018-12-09 21:35:04 · 1537 阅读 · 7 评论 -
(十五)Dex 加密之 Application 替换
版权声明:本文为博主原创文章,未经博主允许不得转载。本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、Application 创建流程我们知道,当用户点击桌面上的 app 图标进行启动一个 app,是由 Zygote 进程 fork 一个子进程而来的。然后将 ActivityThread 加载到子进程中,这时候会调用 ActivityThread 中的 main ...原创 2019-01-11 17:21:16 · 729 阅读 · 1 评论 -
(十六)Android 进程保活
版权声明:本文为博主原创文章,未经博主允许不得转载。本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、进程的优先级Android 系统将尽量长时间地保持应用进程,但为了新建进程或运行更重要的进程,需要清除旧进程来回收内存。 为了确定保留或终止哪些进程,系统会对进程进行分类。 需要时,系统会首先消除重要性最低的进程,然后是清除重要性稍低一级的进程,依此类推,以回收系...原创 2019-01-26 14:48:12 · 874 阅读 · 0 评论 -
(十七)WebP 的测试与使用
版权声明:本文为博主原创文章,未经博主允许不得转载。本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、WebP1.什么是 WebPWebP(发音 weppy),是一种同时提供了有损压缩与无损压缩(可逆压缩)的图片文件格式,派生自视频编码格式 VP8,被认为是 WebM 多媒体格式的姊妹项目,是由 Google 在购买 On2 Technologies 后发展出来...原创 2019-04-25 22:06:01 · 2132 阅读 · 0 评论 -
(十八)Protobuf —— 优化序列化,替换 Json
版权声明:本文为博主原创文章,未经博主允许不得转载。本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、Protobuf 介绍google 开源项目。序列化数据结构的方案(Json 、XML 也是),通常用于编写需要数据交换或者需要存储数据的程序。这套方案包含一种用于描述数据结构的接口描述语言(Interface Description Language)和一个生成...原创 2019-04-28 11:37:06 · 2868 阅读 · 0 评论 -
(十九)7-Zip 压缩
版权声明:本文为博主原创文章,未经博主允许不得转载。本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。原创 2019-06-25 12:26:33 · 6828 阅读 · 1 评论 -
(十二)Proguard 的使用与配置 —— 代码混淆
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、反编译我们进行 apk 开发的时候,有时候一些效果写不出来,没有思路,这时候会去查看其他应用的源代码,参考怎么实现的,在这里需要对打包好的 apk 进行反编译查看。安卓常用的反编译工具1.apktool:下载地址:https:/...原创 2018-09-13 09:52:21 · 1452 阅读 · 0 评论 -
(九) AsyncTask 使用及源码分析
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、概述...原创 2018-08-08 17:01:12 · 259 阅读 · 0 评论 -
(四)垃圾回收算法与垃圾收集器 —— 优化内存抖动
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。原创 2018-06-03 14:12:06 · 600 阅读 · 0 评论 -
(二)布局渲染流程与原理 —— 优化卡顿
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、CPU 和 GPU...原创 2018-05-27 16:42:41 · 1011 阅读 · 0 评论 -
(五)图片压缩 —— 优化图片文件、内存
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、图片压缩Android 中图片是以 Bitmap 形式存在的,而且 Bitmap 是比较占内存的。所以,如果能对 Bitmap 进行压缩,对内存优化这块有很大的帮助。我们首先需要知道 Bitmap 占用内存的计算方式:图片长上的像素点 * ...原创 2018-06-13 16:18:10 · 4121 阅读 · 0 评论 -
(三)内存泄漏与排查 —— 优化内存泄漏
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、java 堆栈SUN 公司的 java 规范中,运行时数据区域分为两大块,一个是共享数据区,一个是线程私有。其中共享数据区包括方法区和堆,线程私有包括程序计数器 PC,虚拟机栈和本地方法栈。1.线程私有程序计数器 PC:很小...原创 2018-06-01 23:28:43 · 1140 阅读 · 0 评论 -
(六)巨图加载 —— 优化图片内存
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、BitmapRegionDecoder当一张图片的分辨率特别大的时候,我们把这张图完整的加载进来,在屏幕上并没有办法显示这张图片的全部内容。但是,全部加载进来的话,还会占用较大的内存,严重时候会产生 OOM。这时候我们可以使用 BitmapRe...原创 2018-07-19 20:47:29 · 476 阅读 · 0 评论 -
(十)ThreadPoolExecutor 源码分析 —— 线程池
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、生产者消费者模式我们在多线程开发中经常会使用到生产者消费者模式,所以在这边先进行生产者消费者模式的简单介绍。为什么要使用生产者消费者模式: 在线程世界里,生产者就是生产数据的线程,消费者就是消费数据的线程。在多线程开发当中,如果生产...原创 2018-08-09 20:56:41 · 292 阅读 · 1 评论 -
(七)电量分析 —— 优化耗电
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、耗电量手机各个硬件模块的耗电量是不一样的,有些模块非常耗电比如移动蜂窝网络、GPS,而有些模块则相对显得耗电量小很多。电量测试电量测试就是测试移动设备电量消耗快慢的一种测试方法。一般用平均电流来衡量电量消耗速度。平均电流越小,说明设...原创 2018-08-06 15:30:14 · 2890 阅读 · 0 评论 -
(八)JobSchedule 的使用以及源码分析
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、概述JobScheduler 是在 Android 21 新增加的特性,他可以把一些不是很紧急的任务,放到合适的时候进行批量处理,在电量优化中有很大的作用。1.把任务整合起来,等到充电状态或者/Wifi 连接情况下进行执行,充电时候就不会在...原创 2018-08-06 21:54:12 · 3879 阅读 · 0 评论 -
(二十)Apk 瘦身
版权声明:本文为博主原创文章,未经博主允许不得转载。本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。原创 2019-06-29 18:01:33 · 226 阅读 · 0 评论