![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
性能优化
文章平均质量分 94
沈页
这个作者很懒,什么都没留下…
展开
-
「性能优化」Android性能优化学习(附360°性能调优学习指南)
性能优化不是更新一两个版本就可以解决的,是持续性的需求,持续集成迭代反馈。在实际的项目中,在项目刚开始的时候,由于人力和项目完成时间限制,性能优化的优先级比较低,等进入项目投入使用阶段,就需要把优先级提高,但在项目初期,在设计架构方案时,性能优化的点也需要提早考虑进去,这就体现出一个程序员的技术功底了。学习技术是一条漫长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!原创 2022-11-11 17:23:13 · 204 阅读 · 0 评论 -
探索APP性能优化之稳定性优化(解决方案)
Android 稳定性优化是一个需要长期投入,持续运营和维护的一个过程,不仅深入探讨了 Java Crash、Native Crash 和 ANR 的解决流程及方案,还分析了其内部实现原理和监控流程。如果App到了线上才发现异常,其实已经造成了损失,所以稳定性优化重点在于预防重在预防、监控必不可少:从开发到测试到发布上线运维这些各个阶段都需要预防异常的发生,或者说要将发生异常造成的损失降到最低,用最小的代价暴露最多的问题,同时监控也是必不可少的一步,需要拥有一定的监控手段来更加灵敏的发现问题。...原创 2022-08-08 15:47:26 · 1788 阅读 · 1 评论 -
App又出Bug?你需要的Android性能优化全攻略来了
性能优化不是更新一两个版本就可以解决的,是持续性的需求,持续集成迭代反馈。在实际的项目中,在项目刚开始的时候,由于人力和项目完成时间限制,性能优化的优先级比较低,等进入项目投入使用阶段,就需要把优先级提高,但在项目初期,在设计架构方案时,性能优化的点也需要提早考虑进去,这就体现出一个程序员的技术功底了。学习技术是一条漫长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以贵在坚持!httpshttpshttpshttpshttpshttpshttps。...原创 2022-07-29 15:17:19 · 361 阅读 · 0 评论 -
Android一线互联网大厂的优化实战解析+360°性能调优指南(2022年最新版)
微信告诉我们内存优化是APP使用体验的门面,在使用APP中出现的卡顿、黑屏、掉线都很有可能导致用户使用APP的兴趣骤减。内存作为程序运行最重要的资源之一,需要运行过程中做到合理的资源分配与回收,不合理的内存占用轻则使得用户应用程序运行卡顿、ANR、黑屏,重则导致用户应用程序发生OOM(outofmemory)崩溃。我们需要在各种机器资源上保持优秀的流畅性和稳定性,相比UI界面优化、电量优化等,内存优化才是性能优化中的命门所在。可以说,httpshttpshttpshttpshttps。...原创 2022-07-18 14:24:29 · 738 阅读 · 0 评论 -
做个简单的Android列表字母索引控件
⚠️ 注意:本文撰写日期为 2016-08-02相信大家在许多App中都见到过带字母索引的界面,比如我最近看到的这个开源控件:WaveSideBar很酷是不是?!!!如果加在例如联系人列表界面上,大大提升了用户体验。那么这个索引控件要怎么做呢,说到底就是自定义一个view,因为自身能力原因我并不能做出这样的效果,当然各位大神们可以自行去研究这类开源索引控件的源码。以我的能力,现在只能做这样的:虽然简单,但是对于新手来说学习一番还是不错的。 下面我们开始一步步写一个字母索引控件 Simp.原创 2022-02-25 20:22:31 · 1007 阅读 · 0 评论 -
【纵享丝滑】Android WebView H5 秒开方案总结
前言为了满足跨平台和动态性的要求,如今很多 App 都采用了 Hybrid 这种比较成熟的方案来满足多变的业务需求。Hybrid 也叫混合开发,即半原生半 H5 的方式,通过 WebView 来实现需要高度灵活性的业务,在需要和 Native 做交互或者是调用特定平台能力时再通过 JsBridge 来实现两端交互采取 Hybrid 方案的理由可以有很多个:实现跨平台和动态更新、保持各端之间业务和逻辑的统一、满足快速开发的需求;而放弃 Hybrid 方案的理由只需要一个:性能相对 Native 来说要差得原创 2022-01-05 16:32:29 · 3750 阅读 · 0 评论 -
Android模仿微博的LazyFragment懒加载
本文会从头开始一步一步带你去写一个LazyFragment,根据写的过程中一步一步记录,你也可以自己试一试,跟着一起写写。最后也根据遇到的问题去完善了,网上搜的都是不完善的,还是自己写一个吧!懒加载是在加载啥?这个问题显得很愚蠢。但是想一下,懒加载到底是加载数据和视图,还是数据呢??(一开始我也想过这个问题。。。)当然是数据啦,你怎么能阻止视图的加载呢!你是无法阻止Fragment的生命周期函数的执行的,所以只能让当前显示的Fragment加载数据,不显示不加载数据怎么能知道当前页面是显示的这个Fra原创 2021-12-17 10:32:57 · 236 阅读 · 0 评论 -
Android Runtime | Trace文件的生成机制
本文分析基于Android S(12)当App发生ANR或是System触发watchdog时,系统都希望生成一份trace文件,用来记录各个线程的调用栈信息,以及一些进程/线程的状态信息。这份文件通常存放在/data/anr目录下,APP开发者拿不到。不过从Android R(11)开始,App便可以通过AMS的getHistoricalProcessExitReasons接口读取该文件的详细信息。以下是一份典型trace文件中的内容。----- pid 8331 at 2021-11-26 09:1原创 2021-12-16 14:21:08 · 3628 阅读 · 0 评论 -
20min、15张图带你吃透Diff算法核心原理
前言在日常面试中,Diff算法都是绕不过去的一道坎,用最通俗的话,讲最难的知识点一直是我写文章的宗旨,今天我就用通俗的方式来讲解一下Diff算法吧?Lets Go什么是虚拟DOM讲Diff算法前,我先给大家讲一讲什么是虚拟DOM吧。这有利于后面大家对Diff算法的理解加深。虚拟DOM是一个对象,一个什么样的对象呢?一个用来表示真实DOM的对象,要记住这句话。我举个例子,请看以下真实DOM:<ul id="list"> <li class="item">哈哈<原创 2021-12-15 14:24:46 · 361 阅读 · 0 评论 -
Android中布局层级过深为什么会对性能有影响?为什么 Compose 没有布局嵌套问题?
前言做过布局性能优化的同学都知道,为了优化界面加载速度,要尽可能的减少布局的层级。这主要是因为布局层级的增加,可能会导致测量时间呈指数级增长。而Compose却没有这个问题,它从根本上解决了布局层级对布局性能的影响: Compose界面只允许一次测量。这意味着随着布局层级的加深,测量时间也只是线性增长的.下面我们就一起来看看Compose到底是怎么只测量一次就把活给干了的,本文主要包括以下内容:布局层级过深为什么影响性能?Compose为什么没有布局嵌套问题?Compose测量过程源码分析.原创 2021-12-13 15:52:05 · 1104 阅读 · 0 评论 -
Androd 性能优化之布局优化
Android的布局管理器本身就是个UI组件,所有的布局管理器都是ViewGroup的子类,而ViewGroup是View的子类,所以布局管理器可以当成普通的UI组件使用,也可以作为容器类使用,可以调用多个重载addView()向布局管理器中添加组件,并且布局管理器可以互相嵌套,当然不推荐过多的嵌套 (兼容低端机型,最好不要超过5层)。布局层级管理让咱们一起了解一下每当系统绘制一个布局时,都会发生一些什么。这一过程由两个步骤完成:绘制(Measurement)1:根布局测量自身。2:根布原创 2021-12-12 16:43:23 · 237 阅读 · 0 评论 -
卡顿、死锁、ANR原理,线上监控方案分析
一、前言最近参加了几轮面试,发现很多5-7年工作经验的候选人在性能优化这一块,基本上只能说出传统的分析方式,例如ANR分析,是通过查看/data/anr/ 下的log,分析主线程堆栈、cpu、锁信息等,然而,这种方法有一定的局限性,并不是每次都奏效,很多时候是没有堆栈信息给你分析的,例如有些高版本设备需要root权限才能访问/data/anr/ 目录,或者是线上用户的反馈,只有一张ANR的截图加上一句话描述。假如你的App没有实现ANR监控上报,那么你大概率会把这个问题当成“未复现”处理掉,而没有真正转载 2021-06-15 15:04:19 · 779 阅读 · 0 评论 -
面试官:啊?做了三年Android,这些性能优化的问题都答不上来吗......
前言各位小伙伴们新年好呀,度过了愉快的春节假期,不知道大伙儿又长了几斤肉肉呢~哈哈,开个玩笑,春节过去,马上就要迎来我们的年后金三银四跳槽季了,大家做好面试造火箭,进厂拧螺丝的准备了嘛?在此特意给大家整理了2020年度,性能优化相关面试频率最高的知识点,给大家面试复习做个参考。后续也会更新其他知识板块的面试题集,各位大佬点个关注呗~好了,废话不多说,直接冲冲冲!前排温馨提示:阅读本文前,请自备豆浆!如果你已经有 2 - 3 年以上Android开发经验还不懂的怎么去优化自己的项目,那就有点.原创 2021-02-22 15:38:08 · 3663 阅读 · 12 评论 -
App极致瘦身: png 打包前自动化转换 webp。身轻如燕就是爽!
前言大家都知道 png 是比较占用App体积的,有没有工具可以在打包前(比如 assembleDebug、assembleRelease)自动去转化所有的 png 图片,包括第三方依赖库里面的呢?之前不经意间发现有一个神器cwebp 转化工具,是不是可以借鉴这种工具自己写个Plugin完成图片转换,同时支持检查大图片,图片大小可配置。话不多说,说干就干~作者:小木箱链接:https://juejin.cn/post/6897894068068876295编写插件前,需要思考几个业务痛点怎原创 2020-12-02 17:01:31 · 651 阅读 · 0 评论