关于android app不注重过度绘制问题

Android开发之性能优化:过渡绘制解决方案 Android中一个window对应一个Canvas,window下的所有视图(View/ViewGroup)使用的都是同一个canvas,视图树的父节点在调用子视图的View.draw之前,会对Canvas进行裁切,裁切的区域就是View在屏幕中所占的矩形区域,这也就是为什么超过View边界的内容会被裁切掉的原因。既然过渡绘制值一个像素点被绘制多次,我们只要保证图片或者背景颜色不要叠加在一起即可。正确的方式应该是尽量减少带背景的View产生重叠区域。如果重叠,使用canvas的clipRect进行裁切。 阅读详情
以下是一些比较有名的公司开发,用户量极大的app过度渲染的截图:

淘宝

这里写图片描述

网易Lofter
Lofter

携程
这里写图片描述
这里写图片描述

支付宝
这里写图片描述
这里写图片描述

再看有优化的是什么样子:
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

红色是表示过度渲染,蓝色和绿色表示还好。
再看看张鸿洋博客里谈这个问题
我自己的开发经验是,一般加载内容不多的activity页面,这种过度绘制导致的性能和卡顿问题并不明显,或许这也是android开发者不太注重这个问题的原因之一。电商页面加载信息量庞大,应该会有影响吧。
自从知道这个开发者选项里这个性能测试之后,每次都会借助它优化自己的布局层级,android studio里使用代码分析工具时也会报这个层级太深的问题,比如:

<LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginRight="5dp"
                android:layout_marginTop="5dp"
                android:layout_weight="1" >

                <ImageView
                    android:layout_width="40dp"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:contentDescription="@null"
                    android:src="@drawable/tuzhong" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:layout_marginRight="5dp"
                    android:gravity="center"
                    android:text="@string/bus_on_way"
                    android:textColor="@color/textColor_Blue"
                    android:textSize="@dimen/textSize_15" />

</LinearLayout>

这样一个布局,就是一个图片下面放文字这里写图片描述
上面的写法就很啰说,一个textview就可以搞定。一层套一层就很没必要。
最后再看看android的生态(自启严重),最近刚好买了个华为荣耀v8手机,想着搞android开发还是得多体验android系统吧,就暂时放下了苹果手机,2000出头顶配的华为荣耀v8卡顿时有发生,经理的三星note7,5000多,一问也是用着用着就卡。这个也是android系统运行在虚拟机机制上的老毛病了,垃圾回收不够好。
这里写图片描述

Android 性能优化概述 在 APP 功能完成之后,不可避免的需要做一些 APP 的性能优化。 所以,在此做一些 APP 优化知识的整理,也相当于一份优化清单,方便以后对照查阅。 在 Android 中,性能优化一般围绕以下 6 个方面展开: App 启动优化 UI 绘制优化 内存优化 apk 瘦身 电量优化 其实,说到 Android 性能优化,就想到此前 Google 出的一系列关于性能优化典范视频... 阅读详情

相关推荐

安卓开发者必看:systrace实战指南,从安装到分析全流程解析

本文为安卓开发者提供systrace工具的实战指南,从安装配置到trace文件分析全流程解析。systrace作为安卓性能优化的利器,能有效定位UI卡顿、线程调度等问题。文章涵盖atrace命令使用技巧、Perfetto可视化分析及常见问题解决方案,帮助开发者提升应用性能优化效率。

weixin_30955617的博客 456

Android渲染性能——过度绘制

过度绘制是我们在开发过程中,常见的一种性能问题,按照性能影响的分类,它应该属于渲染性能。那么过度绘制到底代表了什么含义呢?我们又如何能够避免过度绘制呢?

卜大爷的博客 2万+

手把手教学|用飞书+扣子工作流实现自动化批量图片生成,效率提升99%!体验完整操作流程

在先前的文章中,我们已经深入探讨了扣子智能体的多种应用场景,以及如何创建和使用工作流进行高效管理。本文将引领大家通过一个具体案例,将扣子的工作流功能嵌入飞书应用中,实现操作的自动化与高效化。

weixin_66485800的博客 6027

Android性能优化-过渡绘制解决方案

1 过渡绘制 屏幕上某一像素点在一帧中被重复绘制多次,就是过渡绘制。  下图中多个卡片跌在一起,但是只有第一个卡片是完全可见的。背后的卡片只有部分可见。但是Android系统在绘制时会将下层的卡片进行绘制,接着再将上层的卡片进行绘制。但其实,下层卡片不可见的部分是不需要进行绘制的,只有可见部分才需要进行绘制。  依据过渡绘制的层度可以分成: 

runninghui的专栏 1175

Python画常见分布的概率密度图

因为做概随大作业,了解了一些python画概率分布图的方法。

qq_44807946的博客 5204

PCAN-Explorer5使用教程

在PCAN中新建工程,导入DBC文件(右键apply),导入采集的数据选择对应的CAN通道点击红框中的标记可选择想要查看的信号在plot界面跳出属性,可调整信号显示的样式和最大最小值调出cursor,选择需要观测的变量,选中右键style——Period 可显示间隔时间增加cursor,可观测多个变量。

weixin_43997043的博客 6909

从零开发电商APP:Android Studio全流程实战

作为移动开发新手,这次实战让我对MVVM架构和Android组件有了更深的体会,记录下关键步骤和踩坑经验。下次准备尝试加入更多高级功能,比如商品搜索过滤、优惠券系统和物流跟踪,把这些经验继续应用到更复杂的场景中。他们的在线编辑器直接集成了Android模拟器,代码修改后实时生效特别方便,对于想快速验证想法的开发者来说真是省时省力。使用Glide加载网络图片时,要配置占位图和错误图,并添加内存缓存策略提升性能。实现购物车数量增减功能时,要注意同步更新本地数据库和界面显示,避免数据不一致。

BlackStone33的博客 1053

拆开它的“身体”,看懂割草机器人的五层系统架构

这篇文章深入解析了智能割草机器人的五层系统架构。机械层采用铝合金一体式车架和独立悬挂刀盘系统;电子层配备双处理器和多种传感器;固件层实现毫秒级安全响应;算法层融合多种定位技术实现厘米级精度;云服务层提供远程管理和AI优化。这套系统通过精密协同实现了智能割草的全流程闭环,展现了从机械结构到云端智能的完整技术栈,为户外智能设备设立了新的技术标杆。

智能硬件研发,欢迎交流 196

视频教程-Android中的性能优化——UI篇-Android

Android中的性能优化——UI篇 Android研发工程师。南京邮电大学...

weixin_32570235的博客 154

Panda3d 场景管理

许多简单的 3D 引擎维护一个 3D 模型列表,然后在每一帧对这些模型进行渲染。在这些简单的引擎中,必须分配一个3D模型(或从磁盘加载它),然后将其插入到要渲染的模型列表中。模型在插入到列表中之前对渲染器不“可见”。 Panda3D稍微复杂一些。它不是维护要呈现的对象列表,而是维护要呈现的对象树。对象在插入树之前对渲染器不可见。

u014077947的博客 1383

AI自瞄原理剖析(四)从Yolo推理坐标到屏幕坐标:基于FOV视角与焦距的坐标变换与精准瞄准

从Yolo推理框架得到的坐标到屏幕坐标的转换是一个涉及到FOV视角、焦距以及分辨率的复杂过程。通过数学公式,我们可以将推理框坐标反推为游戏内的实际坐标,并最终映射到屏幕坐标系中。利用这些信息,AI自瞄系统能够精确计算出准星从当前位置移动到敌人位置的距离,实现精准的自动瞄准。通过这种方法,AI自瞄系统能够在不同的游戏环境下灵活应对,提供高度精确的操作体验。在AI自瞄系统中,目标检测仅仅是第一步,获取到预测框的坐标后,我们还需要将这些坐标转换为实际屏幕上的精确位置。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1332

Android中布局的优化

我的优快云地址 本文涉及到的知识点 简单的说明以下布局优化的重要性 一些布局使用的注意事项 include、merge与ViewStub的使用 ConstraintLayout的使用 1.布局优化的重要性 在日常开发中对于布局我们很少注重性能,主要注重的就是相应的展示问题。可能由于界面的复杂程度,使得界面嵌套的层级过多,这样也就导致了绘制页面的卡顿现象。增加了GPU渲染的复...

XSize的博客 394

vue3+element-plus - 最新详细实现将表格Table组件 “所见所得导出“ 为excel(xls/xlsx)电子表格文件,表格中的图片图像、图标等媒体资源完美导出显示(详细示例代码)

vue3,nuxt3,element plus,表格组件,Table,el-table,导出,下载,excel,电子工作簿,xls,xlsx,将表格导出成xls,如何把表格原封不动的导出成excel,保留图片,带图片,图标,如何导出包括含有图片的Excel表格,图片和表格数据导出excel,把表格导出成excel格式,表格内的图片一起导出,vue3导出图片和数据到Excel,可导出图片,导出图像到Excel,网页上的图片怎么能导出到xls表格中,显示图片url链接,图片太多导出失败,图片会超出单元格,图片不

✅ 精选推荐文章 4766

原生APP的性能优化

原生APP的性能优化是确保用户体验流畅、响应迅速的关键。以下是一些常用的性能优化策略。

dt_dev的博客 529

COSMO-RS理论:流体相热力学预测的核心模型与技术突破

摘要:COSMO-RS模型通过量子化学计算分子表面电荷分布,实现了从微观量子尺度到宏观化工过程的热力学预测。该模型基于介电连续介质理论,将分子表面片段化处理,通过σ-剖面描述电荷分布,并计算片段间的静电失配能和氢键能。其核心算法通过自洽化学势方程求解活度系数,克服了传统模型依赖实验参数的局限。随着技术进步,模型引入了高阶描述符和色散力修正,提升了预测精度。在药物研发、化工分离等领域广泛应用,但仍存在对长程有序结构预测不足等局限性。该模型为复杂体系的热力学性质预测提供了重要理论工具。

ASKCOS博客 970

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Android 性能优化最佳实践

本文由玉刚说写作平台提供写作赞助 原作者:Mr.S 版权声明:本文版权归微信公众号玉刚说所有,未经许可,不得以任何形式转载 什么是性能 快,稳,省,小,这四点很形象的代表了性能的四个方面,同时也让我们知道我们App现在是否是款性能良好的APP,如果有一项不达标,那么说明我们的应用有待优化。 很多时候我们注重功能实现,保证能用,但是我们会发现,这样的应用很难拿的出手,里面的槽点太多了,性能很差,但是又不知道从哪里下手进行优化,那么我们就一步一步来,看看我们到底应该怎么优化我们的APP。 1 、布局优

caizehui的博客 741

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Android开发热门前沿知识,大厂面经合集

前言 1、主动学习,努力提升,与社会发展同行 在职场上工作的年限越长,就越容易形成定势思维,这也许就是思维僵势的影响。这种习惯性思维正是缩小中年人生存空间的一大原因。 随着新行业、新技术的出现,要想不被社会淘汰,就必须具备迭代思维,主动突破思维惰性,接受新知识,让自己远离职场“老油条”的称号。这种努力付出只会让你的路越走越宽。 2、融入圈子,建立人脉资源 人想要提升自己,就要逼迫自己融入想要进入的圈子,这样你才能认识不同的人,建立自己想要的人脉资源。 3、提高自律,拥有健康 健康是革命的本钱。很多成功人士都

m0_56824583的博客 77

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

android开发环境的搭建步骤!双非渣本Android四年磨一剑,详细的Android学习指南

开头 最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自己都已经跑路了。**最近他表示很苦恼,换工作看机会,几乎没几个公司给面试机会。很多HR问的他最多就是咋从大

fanzhang_vip0723的博客 139

Android 性能优化

性能优化 卡顿 如何衡量卡顿 "卡顿" 产生的原因 Profile GPU Rendering 通用优化流程 第一步:UI层优化 过度绘制 自定义控件绘制优化 Hierarchy Viewer(层级查看器)工具使用 第二步:代码问题查找 第三步:优化App的逻辑层 卡顿 前言:关于Android性能优化,为何把"卡顿"放在前面 ? 对于用户而言,可能注重的是App的流畅度,而如...

weixin_34014277的博客 151

字节跳动,华为,阿里巴巴,深入浅出Android开发

1、公司实习期项目说了RePlugin框架原理,说了ffmpeg动态链接库开发方面的失败经历,说了Android的适配,和最近影响到的AndroidQ相关新特性的适配。2、自己大学生活中攻克的最难的技术难点。3、什么情况下会压力特别大,怎么处理的。4、职业规划综合起来就是了解个人情况,技术问题都是自己说的。还是非常愉快轻松的。

m0_60635321的博客 764

Android面试心得必备技能储备详解,已拿到offer

今天关于面试的分享就到这里,还是那句话,有些东西你不仅要懂,而且要能够很好地表达出来,能够让面试官认可你的理解,例如Handler机制,这个是面试必问之题。有些晦涩的点,或许它只活在面试当中,实际工作当中你压根不会用到它,但是你要知道它是什么东西。最后在这里小编分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司2021年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。还有。

2401_84123005的博客 608

凭借这份面经,大专的我成功拿到腾讯Android岗offer

一、简历 网上有很多对程序员简历的一些指导,这里就不重述,大家可以搜下网上其他大神的总结,结合自身情况修改下。我有几点建议: 1.尽量不要花哨,程序员和设计师或者产品运营还不一样,我们的简历成功与否决定权还是在技术面试官那,而他们看重的是你的项目经验内容和技术等描述。 2.技能描述这块尽量只写你懂得而且理解深刻的,可以适当加入一些新技术或流行框架,不过这块需要理解,没来得及看源码的可以看看大神们对它的总结,网上一大堆。 3.项目经验这块尽量加入关键词,比如使用了什么技术、用到哪些设计模式、优化数据对

CHAMPION8888的博客 767

Flora-TempSeg配置档位选择清单:human、YAM、Dex、Tianji到底该怎么选?

Flora-TempSeg 是 NVIDIA 开源的机器人/人类操作视频「子任务时序分割」模型(Flora 数据引擎的 TempSeg 阶段),它能从视频中自动切出动作区间,再由 Captioner 生成动作描述。而 `human`、`yam`、`dex`、`tianji` 四个配置档位(profile),决定了模型使用哪种窗口几何、相机拼图布局和提示词策略——选对档位是跑通 Flora-Temp

gitblog_00990的博客 725
上一篇: 当Android N7.0遇到这个警告提示: Detected problems with app native libraries
下一篇: Django REST framework-Quickstart
libeyond_
博客等级 码龄12年 13粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值