性能优化
文章平均质量分 94
上马定江山
Android开发老司机
展开
-
内存优化之重新认识内存
我们知道,手机的内存是有限的,如果应用内存占用过大,轻则引起卡顿,重则导致应用崩溃或被系统强制杀掉,更严重的情况下会影响应用的留存率。因此,内存优化是性能优化中非常重要的一部分。但是,很多开发者对内存的认识还停留在应用开发这一层,平时只是参考网上的方案,对内存进行比较浅显的优化。想要深入进行内存优化,我们需要从操作系统的层面了解内存是怎么管理的,又是如何被使用的。可能会有人疑问:“为什么做个内存优化需要从操作系统层了解内存呢?”我们确实可以在网上搜到很多内存优化的文章,但它们都是从上层应用出发进行优化的,而原创 2022-12-07 14:04:12 · 184 阅读 · 0 评论 -
Andoird性能优化 - 死锁监控与其背后的小知识
死锁,这个从接触程序开发的时候就会经常听到的词,它其实也可以被称为一种“艺术”,即互斥资源访问循环的艺术,在Android中,如果主线程产生死锁,那么通常会以ANR结束app的生命周期,如果是两个子线程的死锁,那么就会白白浪费cpu的调度资源,同时也不那么容易被发现,就像一颗“肿瘤”,永远藏在app中。当然,本篇介绍的是业内常见的死锁监控手段,同时也希望通过死锁,去挖掘更加底层的知识,同时让我们更加了解一些常用的监控手段。原创 2022-10-31 13:51:59 · 547 阅读 · 0 评论 -
卸载率奇高的App基本都是踩了这个坑
在重(万)要(恶)且漫长的性能优化道路上,启动优化我们最重要的第一步。作为用户交互最频繁的启动页面,如果总是白屏、闪屏、加载漫长,那么用户根本无心继续探索,更有甚者可能就直接把App卸载了,我们开发的各种精美功能也就无法与用户见面了(8s定律了解一下)。所谓的启动优化,基本都是针对冷启动阶段,一般都是从两个方面着手处理。启动主题优化启动主题优化-所谓的主题优化,就是应用程序在冷启动的时候(1~2阶段),设置启动窗口的主题。因为现在 App 应用启动都会先进入一个闪屏页来展示应用信息。一般大家会通过透原创 2022-05-23 15:04:33 · 202 阅读 · 0 评论 -
【性能优化】大厂OOM优化和监控方案
一、前言随着项目不断壮大,OOM(Out Of Memory)成为奔溃统计平台上的疑难杂症之一,大部分业务开发人员对于线上OOM问题一般都是暂不处理,一方面是因为OOM问题没有足够的log,无法在短期内分析解决,另一方面可能是忙于业务迭代、身心疲惫,没有精力去研究OOM的解决方案。这篇文章将以线上OOM问题作为切入点,介绍常见的OOM类型、OOM的原理、大厂OOM优化黑科技、以及主流的OOM监控方案。文章较长,请备好小板凳~二、OOM问题分类很多人对于OOM的理解就是Java虚拟机内存不足,但通过原创 2022-04-29 17:48:13 · 673 阅读 · 0 评论 -
Android 的下一个风口在哪里 ? 车载、智能家具、音视频。。。
现在客户端卷的风起云涌,很多安卓开发者都是抱怨连天。内卷之下,相比本来就堪忧的发量,前途未卜的迷茫带来的精神折磨更是雪上加霜。在突破内卷这件事儿上,很多开发者都把目光对准了车企:智能座舱、车载系统,看起来都是不错的方向。那么我们来看一看,想要成功转型,最需要具备的素质是什么:想不到吧!不管你是继续在App开发中一卷到底,还是想要转型到车企,都逃不过Framework的魔爪对于大部分的开发者来说,Android FrameWork都无法做到精通,更别提触类旁通了。想要成为真正的高级Android开发者,原创 2022-04-19 17:17:08 · 147 阅读 · 0 评论 -
为什么Android面试总是被问到性能优化问题?
随着 Android 开发越来越规范, 国内工程师的素质,以及用户对产品的要求也越来越高。这也间接导致我们对研发项目的质量要求到了近乎苛刻的地步,内存优化、UI 卡顿优化、App 崩溃监控等性能调优也逐渐成了人手必备的技能。 工作之余,难免让我们感慨学无止境,以及 Android 开发也是水深不见底。同时也还是有很多Android开发者对性能优化只停留在“使用过”甚至是“听说过”的阶段,这其中甚至不乏一些工作 5 年以上的 Android 工程师。既然现在对于Android而言,性能优化已经变得如此重要原创 2022-04-18 17:22:30 · 140 阅读 · 1 评论 -
Android性能优化面试官想听的是什么?别再说那些老掉牙的性能优化了
一、故事开始面试官:我今天主要问下性能方面,你之前有没有做过性能优化?我:嗯…我做过功耗优化,比如耗电优化,流量优化。性能方面我做过卡顿优化,主要针对卡顿监控方面。面试官: 那着重描述下卡顿方面吧,说下你是怎么做的。我:嗯… 卡顿其实分为直观的和微观两个方向的,举个例子:比如用户点击了登录,预期是得到登录成功/失败的反馈,可现在没有页面刷新,实际的刷新耗时超出了预期,这就是直观的卡顿。比如用户在看股票,正常60秒刷新一次,可到了60秒,触发了刷新但是刷新处理逻辑耗时较长,导致新的数据在下一个60原创 2022-02-15 21:46:12 · 168 阅读 · 0 评论 -
Android性能优化难题一文总结
前言现在都在谈性能优化或者在面试的时候被问到性能优化相关问题,那么我们为什么要做性能优化呢?以及性能优化的难点是什么?在整个项目周期中不同的阶段该做什么?优化效果如何长期保持?作为一名Android高级工程师或者架构师,我们看待问题的角度不能单一而是要学会从多个维度来仔细考量 ,这样才能更全面的认识以及解决问题!下文会从多个视角来学习性能优化工作当中 我们可能会遇到哪些难题!性能优化有哪些难题难点一:性能表现差性能优化的第一个难题是APP的自身性能表现差,这是从APP自身性能使用来说的:第一种原创 2021-12-10 17:36:13 · 169 阅读 · 0 评论 -
金九银十面试必备!腾讯T4大佬分享《Android性能优化实战解析》,带你参透性能优化的终极奥义
前言安卓开发大军浩浩荡荡,经过十多年的发展。红利期已过,现在是增量有限,存量厮杀,从争夺用户到争夺时长。不管是用户也好、企业也好,都对 App 的用户体验和性能提出了更高的要求。如果你已经有 2 - 3 年以上开发经验还不懂的怎么去优化自己的项目,那么想迈进中高级工程师这道门槛是不可能了。而这道门槛,说实话学习成本还是挺高的。性能优化也是企业考察一个高级 Android 工程师技术水平的重要维度。特别是诸多大厂在这方面尤为看重,毕竟就算0.1%的瑕疵,影响的将是百万级、千万级的用户体验!如何学习性能原创 2021-09-22 20:32:53 · 148 阅读 · 0 评论 -
史上最全Android性能优化总结,经典收藏
前言众所周知,移动开发已经来到了后半场,为了能够在众多开发者中脱颖而出,我们需要对某一个领域有深入地研究与心得,对于Android开发者来说,目前,有几个好的细分领域值得我们去建立自己的技术壁垒,如下所示:1、性能优化专家:具备深度性能优化与体系化APM建设的能力。2、架构师:具有丰富的应用架构设计经验与心得,对Android Framework层与热门三方库的实现原理与架构设计了如指掌。3、音视频/图像处理专家:毫无疑问,掌握NDK,深入音视频与图像处理领域能让我们在未来几年大放异彩。4、大前端原创 2021-06-07 16:24:41 · 1576 阅读 · 9 评论 -
90%的开发者都不知道的UI本质原理和优化方式
前言很多开发者在工作中一直和UI打交道,所以认为UI非常的简单!事实上对于90%的开发者来说,不知道UI的本质原理。虽然在开发中,我们在接到产品的UI需求之后,可以走捷径照抄大型APP代码,但是copy来的代码一旦出了问题,也只是百度或者靠猜的方案去解决。真正高级的工程师也会使用别人的代码,但是他们深入理解了高级UI的原理及性能优化方法,就能避免卡顿的情况。相信大家多多少少看过一些高级UI原理的文章,但是一到用的时候就不知道了,本文就给大家讲清楚!从生命周期分析UI原理Activity的原创 2021-06-02 16:32:01 · 1115 阅读 · 12 评论 -
刷到血赚!字节跳动内部出品:722页Android开发《360°全方面性能调优》学习手册首次外放,附项目实战!
前言我们平时在使用软件的过程中是不是遇到过这样的情况:“这个 app 怎么还没下载完!”、“太卡了吧!”、“图片怎么还没加载出来!”、“怎么刚进去就卡了!”、“这怎么点了一下就退出了!”等等,这些情况其实包含了我们性能优化的主要内容。性能的优化是一个老生常谈的点,也是一个比较重要的点。特别是诸多大厂在这方面尤为看重,毕竟就算0.1%的瑕疵,影响的讲师百万级,千万级的用户体验!如果你已经有 2 - 3 年以上开发经验还不懂的怎么去优化自己的项目,那就有点说不过去了。而且现在整个Android开发市场上原创 2021-05-25 17:57:34 · 506 阅读 · 7 评论 -
面试官:你的App卡顿过吗?你是如何监控的?
一、故事开始面试官:平时开发中有遇到卡顿问题吗?你一般是如何监控的?来面试的小伙:额…没有遇到过卡顿问题,我平时写的代码质量比较高,不会出现卡顿。面试官:…这回答似乎没啥问题,但是如果你在面试中真这样说他们会认为你在卡顿监控以及优化这一块是0经验。卡顿这个话题,相信大部分两年或以上工作经验的同学都应该能说出个大概。一般都能说出卡顿的原因:主要是主线程阻塞。在开发过程中,遇到的造成主线程阻塞的原因可能是:主线程在进行大量I/O操作:为了方便代码编写,直接在主线程去写入大量数据主线程在进行原创 2021-05-24 17:21:39 · 2885 阅读 · 23 评论