首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么canvas.drawBitmap在安卓O上运行很慢,而在之前的版本上却运行得很流畅

canvas.drawBitmap在安卓O上运行较慢的原因是由于安卓O引入了新的绘图架构,即Skia图形库的新版本。Skia是Google开发的一个2D图形库,用于处理图形渲染和绘制操作。在安卓O之前的版本中,使用的是旧版的Skia图形库,而在安卓O及以后的版本中,使用的是新版Skia图形库。

新版Skia图形库在安卓O中引入了一种新的绘图管道,称为"OpenGL ES 3.0"。这种绘图管道相比于旧版的"OpenGL ES 2.0"在功能和性能上有所提升,但同时也增加了一些额外的开销。

在绘制Bitmap时,canvas.drawBitmap会使用Skia图形库进行图像渲染和绘制操作。由于新版Skia图形库引入了新的绘图管道,可能会导致在安卓O上绘制Bitmap时的性能下降。

为了解决这个问题,可以尝试以下几种方法:

  1. 使用硬件加速:在安卓O及以后的版本中,可以通过开启硬件加速来提升绘图性能。可以在AndroidManifest.xml文件中的application标签下添加如下代码:
代码语言:txt
复制
android:hardwareAccelerated="true"

这样可以启用硬件加速,提高绘图性能。

  1. 使用Bitmap的压缩格式:在绘制Bitmap时,可以尝试使用较小的压缩格式,如RGB_565,而不是默认的ARGB_8888格式。较小的压缩格式可以减少内存占用和绘图操作的开销,从而提高绘图性能。
  2. 使用Bitmap的缩放:如果绘制的Bitmap尺寸较大,可以考虑在绘制之前对Bitmap进行缩放操作,减少绘制的像素数量,从而提高绘图性能。
  3. 避免频繁的绘制操作:如果在绘制过程中频繁调用canvas.drawBitmap,可以尝试将多个绘制操作合并为一个,减少绘制次数,从而提高性能。

需要注意的是,以上方法仅为一些常见的优化策略,具体的优化方法还需要根据具体的应用场景和需求进行调整。

推荐的腾讯云相关产品:腾讯云移动应用分析(MTA),该产品可以帮助开发者分析和优化移动应用的性能,包括绘图性能。产品介绍链接地址:https://cloud.tencent.com/product/mta

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

测试 App 流畅

手机屏幕刷新率是固定,FPS 则是一直变化,怎么才能保证能够运行流畅呢?从几个例子来看吧。...后续过程出错情况被降低了… 1.运行命令"adb -s " + deviceName + " shell dumpsys gfxinfo " + packageName 获取基础数据,我们会获得很多数据...,这里截取需要进行分析部分: 注:如果运行完命令发现无上图中4个参数,则很可能是手机“GPU呈现模式分析”未打开; 2.如上图信息表示了每一帧系统中四个阶段: Draw: 表示Java中创建显示列表部分中...每一帧系统中分4个阶段,4个阶段总和超过16.67(1秒60帧,算下来平均1帧间隔就约是16.67ms)就认为丢帧。...这个定义 Android6.0 以前是一定,但是现在已经没有固定标准了,因为目前系统有3层缓存机制,加上硬件进步,即使超过16.67,也不一定会出现卡顿感。

55220

专项测试实战 | 如何测试 App 流畅度(基于 FPS 和丢帧率)?

显示有截断异常(图中Tear Point #1和Tear Point #2)。 为什么会这样呢?因为 CPU/GPU 处理和屏幕展示速度不一样但是使用是同一块内存。...,我们会获得很多数据,这里截取需要进行分析部分: 注:如果运行完命令发现无上图中4个参数,则很可能是手机“GPU呈现模式分析”未打开; 在手机开发者选项中,找到“GPU呈现模式分析”,选择“...adb shell dumpsys gfxinfo中”,如果是华为或荣耀手机,则选择“屏幕显示为线型图”: 2.如上图信息表示了每一帧系统中四个阶段: Draw: 表示Java中创建显示列表部分中...每一帧系统中分4个阶段,4个阶段总和超过16.67(1秒60帧,算下来平均1帧间隔就约是16.67ms)就认为丢帧。...这个定义 Android6.0 以前是一定,但是现在已经没有固定标准了,因为目前系统有3层缓存机制,加上硬件进步,即使超过16.67,也不一定会出现卡顿感。

1.5K32

Android 一直怎样速度上追赶 iOS

一直以来人们都有这样印象,认为搭载iOS系统iPhone一定比搭载Android系统手机流畅。潜移默化中,不少果粉甚至是普通吃瓜群众都形成了这样思维定式:就是卡、慢代名词。...Android 4.4:对齐唤醒 其实,很多时候,系统的卡顿并不是由系统本身造成,而是由于开放特性例如对第三方APP限制较少,所以很多APP长期恶意在后台运行,定期唤醒系统,随着安装APP...而在5.0版本中,原有的Dalvik虚拟机被新ART虚拟机代替。 ? Android Runtime(缩写为 ART),是一种Android操作系统运行环境,由Google公司研发。...另外,针对配置较低移动设备,谷歌还推出了Android Go系统,它不是一个独立分支Android版本,而是隶属于Android O,可以用于1GB RAM设备,例如为了节省性能,原来系统中吃内存过渡动画被砍掉...总结 如今iOS 11也已经发布了,从某些更新内容来看,是对功能“借鉴”。所以系统功能性或者可玩性甚至超过了iOS。

99620

第一编程语言?Java会一直牛逼下去?

现在,微软宣布加入OpenJDK,拥抱Java技术。...3.2 系统应用开发 Java用于应用程序开发已经是很成熟方案了,目前绝大多数应用都是用Java写。很多程序员也都是学Java过来。...Java 占据 Android 开发绝对统治时代一去不复返了。Kotlin 可以编译成Java字节码,可以JVM上面运行,也可以编译成JavaScript,没有JVM机器运行。...3.2.4 小结 这一小节介绍了开发现状,Java作为曾经开发第一首选语言,正在面临诸如Kotlin语言,Flutter和Dart语言等新开发语言挑战,同时,随着应用开发逐渐出现H5...C#成为Java竞争对手,C#编写运行于Windows系统桌面应用程序具有优势,Java写桌面应用,虽然可以跨平台到处运行,这对于程序员当然是好事,但是对于用户来说,Windows运行个Java

1K10

专项测试实战 | 如何测试 App 流畅度(基于 FPS 和丢帧率)

显示有截断异常(图中Tear Point #1和Tear Point #2)。 为什么会这样呢?因为 CPU/GPU 处理和屏幕展示速度不一样但是使用是同一块内存。...手机屏幕刷新率是固定,FPS 则是一直变化,怎么才能保证能够运行流畅呢?从几个例子来看吧。...q-header-list=&q-url-param-list=&q-signature=ea209d44d3a1d73bcab19865a65592333b2a2811] 2.如上图信息表示了每一帧系统中四个阶段...每一帧系统中分4个阶段,4个阶段总和超过16.67(1秒60帧,算下来平均1帧间隔就约是16.67ms)就认为丢帧。...这个定义 Android6.0 以前是一定,但是现在已经没有固定标准了,因为目前系统有3层缓存机制,加上硬件进步,即使超过16.67,也不一定会出现卡顿感。

1.4K20

更新完miui11是不是有可能有些游戏就不能流畅玩了

昨天小米发通知说是可以更新MIUI11了,之前在网络也陆续看到有人在更新这个系统,更新这个系统之前已经有换手机打算,手机耗电量太快而且还比较容易卡顿,本来计划中年底换华为手机,但是更新完系统之后有几个明显改进...现在系统功能升级,小米公司会针对不同机型升级不同功能系统,也是为了保证系统还能继续流畅使用,因为早期有些很老手机本身功能配置比较低,升级成最新系统可能会导致系统卡顿更加厉害,会只主题上进行更新安版本号也不会做太大改动...系统升级主要做两个事情,就是针对框架进行性能优化,另外一种是系统基础增加新功能。手机从诞生到现在已经演化了很多个版本,不断增加功能以及优化运行性能。...手机相当于一直追着IOS屁股追赶,配置高端手机流畅度上已经不弱于苹果手机了,很大一部分原因在于谷歌公司一直针对系统性能进行优化,所以系统每次大升级都会有很大优化功能加入,这是手机能够流畅运行主要原因...针对手机性能方面,华为做出了方舟编译器主要针对运行时候效率而做,性能又有了大幅度提升,小米底层定制方面的投入无法和谷歌华为想比较,毕竟年轻企业就想着做核心技术,竞争激烈手机市场很明显会显得力不从心

69430

这就是鸿蒙系统?

程序运行在鸿蒙系统,非常欢畅,一点也没感觉到运行在一个不是操作系统。使用这几天,我将我手头app都使用了一下,没出现崩溃、无法启动、界面异常等情况。 ?...要说变化,感觉运行更加流畅了。当然这只是个人感觉,没有拿软件测试,也没有进行定量对比分析,可能是心理作用。...鸿蒙操作系统与华为之前定制版本如此之象,对于应用支持又是如此完美,令人浮想联翩,是不是又一个套壳系统?关于鸿蒙系统是套壳言论,网络已经很多,无需赘述。...系统并没有从头开发,而是选择了Linux内核,Linux内核基础构建了一套完善系统框架。 更重要是,大部分代码都是采用了Apache许可协议。...本来开发者为了跨桌面、、iOS系统开发,头大如牛,为了减少开发和维护成本,想出各种跨平台方案。现在多了一个鸿蒙系统要适配,而app既可以鸿蒙上运行,又能在系统跑,为什么要开发两套?

91220

蓝图已经画好了?透过“Q”看未来Android手机发展

历时多年,iOS这项功能终于被“移植”到了。虽然大家一般都对抄袭嗤之以鼻,但是这项功能我们觉得大家只会吐槽谷歌“为什么不早点抄?”。...这两个功能之所以放在一起说原因就是,原生Q搭载这三个功能之前,很多第三方定制UI就已经加入了这些功能,比如现在没有暗黑模式UI都不好意思称自己是主流UI。 ?...Q也用上同样手势之后,相信会迎来一次史无前例大统一(尽管只是导航手势)。...结语 近几年版本更新没有UI设计做过多改变,不过第三方定制UI倒是听话了很多,逐渐跟着原生设计规范走。...Q,我们同样也找不到肉眼可见外观设计变化,加上流畅度已经不是主要矛盾,谷歌依旧将重心放在了功能性和安全性更新

87520

吐槽下手机_吐槽手机像素不好说说

大家好,又见面了,我是你们朋友全栈君。 吐槽下手机 手机问题: 1、机子运行时间长了,都需要折腾,这就跟电脑一样,3-6个月恢复一次系统才快。...很少有系统不预装自己软件。 2、手机为了炒作,很多配备多核CPU,导致发热量很大,掉电很快,手机发烫厉害影响手感。...,软件ROM开发往往跟不上版本,内置软件不算多,还行。...联想内置软件也不多,VIBE挺流畅,双击亮屏,画V拍照,智能节能做挺不错,但是外观和宣传一般,而且收购摩托之后产品线拉太长,自己内部产品互博,联想砍掉了VIBE、ZUK等子品牌,走下坡路,可同样有多条产品线...看到那个效仿苹果红圆圈,就让人觉得很山寨,为什么就不能有自己特色点呢?就不能做个左中右三键触摸按键? 7、奇酷和360。

50810

iPhone 13发布会,苹果不想让你知道三个细节

由于之前多方爆料相当准确,这届“科技春晚”产品没有并没有什么惊喜。...两者除了屏幕和电池大小,以及Plus版本机身更大能多塞一颗摄像头之外,硬件是没有差距。 对于当时消费者来说,做选择很简单,喜欢大屏就买Plus版本,喜欢小屏就买数字版本。...设备上司空见惯配置,第一次登陆苹果设备后,还需要相当高溢价才能获得,已经成了苹果攥取高利润惯常打法。...然而,随后而在随后iPhone 12发布会上,关于A14处理器说辞还是iPad Air那一套,自始至终,苹果都未公布A14相比A13处理器性能提升率。...按照这样类比方式,就很容易理解,目前手机“桌面”一般情况下要大于iPhone。但由于内存管理机制区别,对内存使用没那么高效,相当于桌面很凌乱,虽然大,但并不高效。

60550

开发小哥困惑:为何要用第三方推送?

短视:混乱推送 你看,平台可就做出了不一样选择了。平台一开始推出时候并没有考虑到统一推送平台问题,所以平台上是没有一个统一推送解决方案。...再之,因为 Google 服务长期国内处于不可用状态,所以开发者也就懒得改了。 因为以上许多原因,你可以看到苹果和系统设计推送系统不同。这其实直接就导致了用户使用时体验。...对于苹果系统来说,因为 iOS 对推送做了严格规范,所以 iOS 系统推送代码都比较规范,不敢造次。而在平台上,因为没有了具体规范,所以经常会出现弹窗通知一大堆情况,过度打扰了用户。...回答你这个问题之前,我先问题几个问题。 iOS 设备,我们 App 使用了第三方推送。我们把 App 进程杀掉后,给该用户发送一条推送消息,你猜该 iOS 设备能否收到?...小树这下可真的完全不知道所以然了,为什么 iOS 设备杀掉进程后能收到推送,而 Android 设备却不行? 小树急像热锅蚂蚁,但小黑悠然自得地拿起旁边咖啡喝了起来。

1.9K51

为什么苹果系统这么流畅

今天我们就来谈谈为什么iOS产品使用过程中会让人觉得更加流畅一些,而为何一些Android手机则容易出现卡顿延迟情况。 ?...iOS手机为什么流畅 优先级别不同:iOS最先响应屏幕 当我们使用iOS或者是Android手机时,第一步就是滑屏解锁找到相应程序点击进入。...3开发机制不同:机制效率低 开发机制不同:机制效率低 Android编程语言是JAVA,而iOS则为Objective-C,不过要是说Android系统之所以有些卡顿是因为JAVA开发语言关系...4系统设计不同:APP无法统一 有了优先级关系,有了GPU加加速影响,还有两个系统各自编程以及机制问题,似乎已经可以说明为什么iOS相比Android更为流畅原因。...如果要是拿旗舰Android手机加上一个专为这款旗舰产品设计游戏,来和苹果iPhone 5运行对比的话,你真的不会遇到Android旗舰机出现卡顿延迟问题,为什么因为这款游戏针对这款手机设计,软硬等方面都达到了最大化兼容和优化

2.5K150

手机为什么越用越卡, 程序员来告诉你!

其实就内存配置,手机硬件来讲,手机是比我们现在苹果手机IOS等等要高几个级别的。例如现在iPhone X运存也是3GB,而我们现在旗舰已经是8G起步。...但是为什么给很多人印象手机还是没有苹果手机那么顺畅?其实刚开始用时候还是挺流畅,只不过是越用越卡而已。这也是大家众所周知事情。 ?...甚至超出了硬件范畴(实际大家会发现,很多中高端手机硬件参数上都优于同一代iPhone),但是手机用户们仍然会“惊喜发现”使用一年甚至一段时间后就会发现自己手机越来越卡了,曾经使用之处流畅丝滑感觉不见了...由于系统机制问题,程序都是运行在JAVA虚拟机上,而不像iPhone手机那样直接运行在操作系统。...手机app使用过后还是会在后台默默地吃内存吃流量。但是苹果手机APP使用是一经退出就是马上终止运行。如果我们使用手机的话,一定要定期清理后台。 ?

2.5K20

奥利奥好吃吗?Android 8.0 新特性适配测试报告来啦!

第三方应用市场下载程序低版本会出现安装失败、安装包错误等问题,更新版本可以解决。...而在通知中心中删除这些未读通知,应用图标上标记点也会消失。...四、后台进程限制 系统越用越卡、电池寿命问题一直是用户使用痛点,谷歌表示一直优化Android后台应用限制策略,以最大程度减小后台应用对电池消耗和对资源占用。...目前除了Nexus、Pixel等几个系列设备可以更新外,还未大范围推广,所以影响面较小,开发和测试等人员需要提早注意更新以便自己相关产品新系统版本顺利运行。...欢迎进入:http://wetest.qq.com/product/cloudphone 体验O系统真机 欢迎进入:http://wetest.qq.com/product/expert-compatibility-testing

2.3K00

华为「鸿蒙」出世:全球首个微内核全场景分布式OS,可取代,发布即开源

计算机上,微软一家独大,而在移动设备和苹果占据了手机操作系统市场,形成了双头垄断格局。华为鸿蒙系统,则面向物联网和 5G 时代。...使用鸿蒙 OS,可以根据设备内存和运行环境进行加载。 ? 不管是硬件能力强还是硬件能力弱硬件平台,都可以统一系统加载和部署。...方舟编译器加持,比常规快 60% 今年 4 月,华为发布 P30 系列手机时推出了「方舟编译器」它随着 EMUI 9.1 一同放出,据称能够改善应用编译效率,让 APP 从原先边解释边执行转变为全程机器码高效运行程序...华为宣称,方舟编译器可让系统操作流畅度提升 24%,系统响应速度提升 44%,第三方应用重新编译后流畅度可提升 60%。余承东表示,这是系统历史上重要一步。 ?...今天所有的应用都是 Java DEX code 和 C/C++库文件(APK),在运行时还需要手机再度编译为机器码再进行执行。

1.1K20

谷歌 Android Q Labs技术分享会,腾讯WeTest福利抢先看!!!

腾讯WeTest作为谷歌深度合作伙伴,第一时间全面适配Android Q Beta 3版本,并且交流会现场设有专门展位。 ?...福利介绍 1.个人认证用户一次性获得远程调试120分钟免费测试时长(仅限Q机型),标准兼容(仅限Q机型)6次免费测试次数; 2.企业认证用户一次性获得远程调试600分钟免费测试时长(仅限Q机型...(点击阅读原文即可马上体验) Android Q Beta 3新功能特性抢先看 1.隐私: 为了提供更好隐私保护并授予用户更多控制权,Android Q 之前几个版本基础,引入了多项跨平台变更,...7.Wi-Fi: Android Q 中,应用可启用高性能、低延迟自适应 Wi-Fi 模式,在网络延迟比较敏感场景下,如实时游戏、主动呼叫等,确保流畅用户体验。...ART 运行时优化: Android Q 大幅改进了 ART 运行时。开发者无需进行任何操作,便可有效缩短应用启动时间,减少内存消耗,并提高应用运行流畅度。

92740

iPhone「爆炸级」更新:电量百分比回归!

而在最新测试版中,电量百分比以数字形式重新显示电池里了,可以设置「电池」页面里找到开关选项。...苹果把数字显示电池里面,可以说抄袭了设计,简直卓里。 网友表示,「恭喜iPhone喜提Android10年前设计。」 「机一直都有啊,反正我是一直没用过苹果机。」...它有点响亮,并且与之前版本 iOS 16 提供声音不同。 从Apple Watch查找iPhone时,出现了一个新声音。...可有时候,手机还剩余8%电量,硬撑了一下午…… 所以,手机屏幕电量百分比,它到底是怎么计算出来呢? 为什么有的时候,因为温度变化,手机电量百分比会一下子从80%降到20%?...-当BMS发现电压处于波动,即非稳态条件下时,就采用时积分法来估算SOC。 最后,提问一个直击灵魂问题:为什么有时候手机1%电能用很久,有时却只能用一瞬间?

53110

谷歌公布Android 8.0发布会时间:8月21日全球首发

谷歌已上线了该发布会直播网站—— 将在东部时间 2:40PM,纽约向全球同步直播日全食以及Android O发布会。其中,对于日全食直播,谷歌将与NASA合作。...该网页,以日全食主题为背景倒计时已经开始(见下图)。 ?...当然了,Orangina似乎不太可能是8.0最终名称,因为之前Android SVP Hiroshi Lockheimer曾暗示,橙色汽水作为正式名称希望不大,不过最后是怎样也说不准。...以前,系统新版本发布,先交由处理器厂商进行适配修改,然后交给OEM对己方机型进行定制优化,最后协调运营商在网测试,一切就绪方能推送给用户。...Android O 升级主要在两方面 一、更流畅体验: 1、画中画功能 2、Notification Dots,点击小红点显示通知信息 3、Autofill,更智能智能填表 4、智能文本选择,双击自动文本选取

56220
领券