虚拟大师 卡android界面,找出造成Android App界面卡顿的原因- BlockCanary
BlockCanar介绍
BlockCanary对主线程操作进行了完全透明的监控,并能输出有效的信息,帮助开发分析、定位到问题所在,迅速优化应用。其特点有:
非侵入式,简单的两行就打开监控,不需要到处打点,破坏代码优雅性。
精准,输出的信息可以帮助定位到问题所在(精确到行),不需要像Logcat一样,慢慢去找。
目前包括了核心监控输出文件,以及UI显示卡顿信息功能。仅支持Android端。
如何使用?
配置 build.gradle文件compile 'com.github.moduth:blockcanary-android:1.2.1'
// 仅在debug包启用BlockCanary进行卡顿监控和提示的话,可以这么用
debugCompile 'com.github.moduth:blockcanary-android:1.2.1'
releaseCompile 'com.github.moduth:blockcanary-no-op:1.2.1'
新建一个类,继承自BlockCanaryContext,实现自己的监控上下文,代码示意如下public class AppBlockCanaryContext extends BlockCanaryContext {
//设置卡顿判断的阙值
public int getConfigBlockThreshold() {
return 500;
}
//是否需要显示卡顿的信息public boolean isNeedDisplay() {
return BuildConfig.DEBUG;
}
//设置log保存在sd卡的目录位置public String getLogPath() {
return "/blockcanary/performance";
}
在自定义的Application对象中初始化Block的配置信息public class MyApplication extends Application {
public void onCreate() {
super.onCreate();
//初始化配置信息
BlockCanary.install(this, new AppBlockCanaryContext());
}
}
记得在清单文件的Application节点中声明android:name=”.MyApplication”
OK,环境搭建完毕,我们来模拟一个主界面卡顿的代码,用BlockCanary进行检测
在xml布局中添加一个按钮,来触发模拟卡顿的代码
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="imitateClick"
android:text="模仿UI卡顿"/>
在代码中使主线程阻塞3秒钟public void imitateClick(View view) {
SystemClock.sleep(3000);
}
OK,代码已经写完,很简单,只是在布局中添加了一个按钮,并且在按钮点击之后让主线程阻塞2秒钟
整个程序界面如下:
当我们点击按钮之后等待3秒,查看BlockCanary给我们的提示信息
至此,我们可以清晰的看到,第20行代码就是界面的元凶,我们就可以修改20行的代码来解决界面卡顿的状况.
虚拟大师 卡android界面,找出造成Android App界面卡顿的原因- BlockCanary相关推荐
- 如何找出标有App Store 精华,Essentials的所有软件?
如何找出标有"App Store 精华","Essentials"的所有软件? 中国区: +"App Store 精华" site:http ...
- android qq弹出菜单,Android开发实现qqminihd 左右滑动菜单效果
类型:编程工具大小:13.8M语言:英文 评分:5.5 标签: 立即下载 观察qqminihd界面,发现其界面能够左右滑动来实现两侧菜单效果. 自定义Layout:ScrollLayout.java ...
- android 界面代码,一个漂亮的app界面代码
效果如下: device-2017-12-22-234223.png device-2017-12-22-234149.png 代码如下所示: xmlns:android="http://s ...
- ipa 上传卡在鉴权_上传app,一直卡在“正在通过 App Store 进行鉴定”
虽然做iOS时间也不短了,不过还是第一次写简书,发现不写后来就都忘了,写写留做纪念吧. 提交审核上传ipa包时,有时候会一直卡在"正在通过App Store进行鉴定"这个地方,以下 ...
- android 锁屏界面弹出qq,Android锁屏状态下弹出activity,如新版qq的锁屏消息提示
Android锁屏状态下弹出activity,如新版qq的锁屏消息提示 发布时间:2020-06-26 21:27:13 来源:51CTO 阅读:1643 作者:lp5345 在接收消息广播的onRe ...
- android 拍照屏幕大小,Android Camera 找出屏幕的最佳尺寸大小
大家平时都会调用到Camera 这个API,在设置Camera.Paramera的参数的时候,有一个预览大小.也就是: setPreviewSize(int width, ing height) 这个 ...
- 在VMware虚拟机上使用网络测试命令找出虚拟机的IP地址
第一种方式输入命令:ifconfig -a,然后回车,或者去掉 -a 也是可以的 第二种方式我们输入ip查询命名 ip addr 发现ens33 没有inet 这个属性,那么就没法通过IP地址连接虚拟 ...
- android 点击退出账号,Android应用退出登录的实现方法
每一个app都会有一个"退出登陆"的功能,当点击退出之后需要将所有的Activity都finish掉,开始是想将栈中的所有Activity清除掉,但是没有找到方法,后来用广播实现了 ...
- android 不停弹出权限,Android部分手机“后台弹出界面权限”解决方案
在前段时间的编程开发中,突然发现一个小坑的地方,其实在Android官方中并没有限制,但是在很多厂商的系统中却做了修改限制,那就是"后台弹出界面权限" 最开始发现这个问题,是因为我 ...
最新文章
- Vsftpd 服务的部署及优化
- 十二、解析H.264码流的宏块结构(上)
- 源码下编译APK,却是总是提示,找不到符号:SystemProperties 。。。
- php动态生成链接,PHP动态生成javascript文件的2个例子
- AlexNet网络构建与训练
- python查看字符编码_python如何查看字符集
- 如何快速清除 Ubuntu 的系统缓存
- linux小程序实验报告,linux 小程序分析
- 关于JAVA调用oracle存储过程
- 电信用户流失预测Telco customer churn—(基于逻辑回归)
- 现代浏览器(HTML5)缓存接口文档收集
- java编程手册_Java编程手册
- 软件质量保证基本知识加复习建议
- JavaScript笔记
- 笔记本计算机故障排除,笔记本电脑常见故障原因 笔记本电脑常见故障解决方法【详解】...
- Vyos防火墙功能配置
- 有线路由器加无线路由器的组网方法
- 5G技术能不能支持在高铁列车上的多路虚拟现实业务?
- 自定义NDK交叉编译链(toolchain)
- urlrewrite使用介绍
热门文章
- 2022SDUT知到/智慧树----C语言第五章测试题解(答案~)大家看清顺序
- K9S操作手册k8s镜像问题
- 小唐开始刷蓝桥(五)2016年第七届C/C++ B组蓝桥杯省赛真题
- 在线拼接图片工具HTML源码
- Windows 录屏软件哪个好?据说这几款录制工具还不错!
- 迪杰斯特拉算法详解+模版+例题
- jqueyr开发实现公众号上传永久视频页面--微信开发素材管理4
- 小程序云开发(一)微信登录实现
- 教你学会html添加自定义字体,使用@font-face和免费字体网站
- 基于GAN框架的时间序列异常检测研究综述