文档章节

记一次安卓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
深圳
热修复技术的实践之旅——微信TinkerPatch热修复结合Walle多渠道打包的详解

本文导语: 本文的核心内容介绍: (1)对比当前市场上的热修复方案,对Tinker热修复方案进行了简单的介绍。 (2)详细讲解了微信Tinker的完整接入过程,文末提供了一个自己写的非常轻量的D...

懂音乐码虫
05/29
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
开发过程更透明,Google 将 AndroidX 移至 AOSP

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

王练
07/31
0
0
Android Studio 3.3 Canary 6 发布,多项更新

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

达尔文
08/19
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

没有更多内容

加载失败,请刷新页面

加载更多

驼峰变量名的转换

package com.mmall.test;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * 需求:1. 将字符串 user_name_abc 转换为 userNameAbc * 2. 将字符串 us......

蚂蚁-Declan
25分钟前
3
0
HTTP请求方法

根据HTTP标准,HTTP请求可以使用多种请求方法。 HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。 HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。 序号 方...

踏破铁鞋无觅处
28分钟前
1
0
知识点043-selenium自动化测试网页工具的使用

【摘要】 Selenium是一个主要用于Web应用自动化测试的工具集合。但其作用不仅仅局限于测试领域,还可以用于浏览器行为模拟以及屏幕抓取等,在行业内有着广泛的应用。Selenium支持主流的浏览器...

侠客行之石头
35分钟前
1
0
B250F I219V安装windows server 网卡驱动

https://blog.csdn.net/ryu2003/article/details/50855146

梦想游戏人
35分钟前
1
0
MacOS Install Docker

使用 Homebrew 安装 macOS 我们可以使用 Homebrew 来安装 Docker。 Homebrew 的 Cask 已经支持 Docker for Mac,因此可以很方便的使用 Homebrew Cask 来进行安装: $ brew cask install dock...

Linux就该这么学
35分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部