文档章节

记一次安卓BUG修复的过程

l
 liuz430524
发布于 2016/05/17 22:36
字数 271
阅读 18
收藏 0

https://github.com/liuz430524/BBasic

项目重构完成后,发现循环动画时偶发卡顿,首先怀疑是不是有while循环或者互斥量死锁,检查了一遍代码没有发现,之后用傻办法,将涉及到的函数运行消耗时间计时输出,终于发现问题出现在showpic和stretchbltpageEx中,再次分析,确定了造成卡顿的罪魁祸首是Bitmap.createBitmap(Bitmap source, int, int, int, int, Pain),但重构之前代码貌似运行正常,遂怀疑是否是API更改致函数内部改变,查看源码发现真的有改变,但是并不太影响的样子,于是认真想了想,发现不需要调用重量级的createBitmap,直接用canvas的drawBitmap(Bitmap source, Rect, Rect, Paint)也可,而且更好,于是马上更改,果如所料,结果令人满意,正常运行,卡顿消失,且速度又快了一些。

幸好出了这个问题,不然一个使用频率这么高的函数,太浪费系统资源了。

© 著作权归作者所有

共有 人打赏支持
l
粉丝 1
博文 9
码字总数 2178
作品 0
深圳
开发过程更透明,Google 将 AndroidX 移至 AOSP

据外媒报道,Google 正试图通过将 AndroidX(以前被称为 Android 支持库)迁移到公开的 Android 开源项目(AOSP)中,为开发者提供更高的透明度。此举意味着主要功能开发和修复的过程将更开放...

王练
07/31
0
0
Android Studio 3.2 Canary 17 和 3.1.3 bugfix 版发布

Android Studio 发布了 3.2 Canary 17 和 3.1.3 bug-fix 版本。 Android Studio 3.1.3 bug-fix Memory leaks caused Android Studio to become slow and unresponsive after you had been u......

局长
06/08
0
0
Android Studio 3.3 Canary 6 发布,多项更新

Android Studio 3.3 Canary 6 已发布。主要更新内容如下: 您现在可以在 Android Studio 中查看活动的 Gradle 守护程序列表。 要执行此操作,请双击 Shift 键以显示“搜索所有位置”对话框,...

达尔文
昨天
0
0
Android Studio 3.1.2 bug 修复版发布,改进 lint 审查

Android Studio 3.1.2 bug 修复版已发布,本次更新修复了一些错误,并改进了某些场景下 lint 审查的速度。详细的修复内容请查看 Android Studio 3.1.2 的发布说明。 此外,Android Studio 3....

局长
04/24
0
1
Android Studio 3.3 Canary 发布,包含重要的 bug 修复

Android Studio 3.3 Canary 已发布。该版本带来了不少的新特性,还修复了一些重要的 bug,例如在打包 APK 时,Gradle 会消耗大量内存,从而导致出现 Java 堆栈溢出的错误。 新特性 The flag...

局长
06/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

[雪峰磁针石博客]软件测试专家工具包1web测试

web测试 本章主要涉及功能测试、自动化测试(参考: 软件自动化测试初学者忠告) 、接口测试(参考:10分钟学会API测试)、跨浏览器测试、可访问性测试和可用性测试的测试工具列表。 安全测试工具...

python测试开发人工智能安全
今天
2
0
JS:异步 - 面试惨案

为什么会写这篇文章,很明显不符合我的性格的东西,原因是前段时间参与了一个面试,对于很多程序员来说,面试时候多么的鸦雀无声,事后心里就有多么的千军万马。去掉最开始毕业干了一年的Jav...

xmqywx
今天
3
0
Win10 64位系统,PHP 扩展 curl插件

执行:1. 拷贝php安装目录下,libeay32.dll、ssleay32.dll 、 libssh2.dll 到 C:\windows\system32 目录。2. 拷贝php/ext目录下, php_curl.dll 到 C:\windows\system32 目录; 3. p...

放飞E梦想O
今天
0
0
谈谈神秘的ES6——(五)解构赋值【对象篇】

上一节课我们了解了有关数组的解构赋值相关内容,这节课,我们接着,来讲讲对象的解构赋值。 解构不仅可以用于数组,还可以用于对象。 let { foo, bar } = { foo: "aaa", bar: "bbb" };fo...

JandenMa
今天
1
0
OSChina 周一乱弹 —— 有人要给本汪介绍妹子啦

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享水木年华的单曲《中学时代》@小小编辑 手机党少年们想听歌,请使劲儿戳(这里) @须臾时光:夏天还在做最后的挣扎,但是晚上...

小小编辑
今天
85
8

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部