BlockCanary在Android原生开发中的配置方法

BlockCanary对主线程操作进行了完全透明的监控,并能输出有效的信息,帮助开发分析、定位到问题所在,迅速优化应用。 
下面介绍配置方法。 
1. 找到配置BlockCanary的jar包和arr包 
blockcanary-android-1.5.0.aar 
blockcanary-analyzer-1.5.0-sources.jar 
2. mk文件中引入jar包和arr包 
引入jar包方法: 
LOCAL_STATIC_JAVA_LIBRARIES := dialerblockcanary-analyzer 
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES:=\ 
dialerblockcanary-analyzer:libs/blockcanary-analyzer-1.5.0-sources.jar 
dialerblockcanary-analyzer为jar包的别名,注意不能跟其它mk中文件里面的别名重复。

引入aar包方法: 
LOCAL_STATIC_JAVA_AAR_LIBRARIES := dialerblockcanary-aar 
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES:=\ 、dialerblockcanary-aar:libs/blockcanary-android-1.5.0.aar

打包资源文件 
LOCAL_AAPT_FLAGS := \ 
–extra-packages com.github.moduth.blockcanary

  1. 新建一个类,继承自BlockCanaryContext,实现自己的监控上下文,代码示意如下

public class AppBlockCanaryContext extends BlockCanaryContext { 
// 实现各种上下文,包括应用标示符,用户uid,网络类型,卡慢判断阙值,Log保存位置等. 
//简单使用只需根据需要重写下面一个方法即可(默认为1000ms) 
……….. 
@Override 
public int provideBlockThreshold() { 
return 500;//阻塞时间超过多少秒发通知 

}

  1. 在自定义的Application对象中初始化Block的配置信息

public class MyApplication extends Application { 
public void onCreate() { 
super.onCreate(); 
//初始化配置信息 
BlockCanary.install(this, new AppBlockCanaryContext()); 


备注:最后在编译时发现找不到block_canary_max_stored_count字串,看名字是最多可记录的阻塞信息条数。所以在values/config.xml中加上 
10000 
即成功编译通过。

时间: 2024-11-03 03:46:13

BlockCanary在Android原生开发中的配置方法的相关文章

Android实际开发中的bug总结与解决方法(一)

                                                                             Android实际开发中的bug总结与解决方法(一) Android开发中有很多bug,我们是完全可以在线下避免的,不要等到线上报的BUG的再去修复.下面是我在实际开发中遇到过的bug和解决方法. BUG 1: java.lang.RuntimeException: Unable to start activity ComponentInfo

Android应用开发中的风格和主题(style,themes)(转)

Android应用开发中的风格和主题(style,themes) 越来越多互联网企业都在Android平台上部署其客户端,为了提升用户体验,这些客户端都做得布局合理而且美观.......Android的Style设计就是提升用户体验的关键之一.Android上的Style分为了两个方面: Theme是针对窗体级别的,改变窗体样式: Style是针对窗体元素级别的,改变指定控件或者Layout的样式.      Android系统的themes.xml和style.xml(位于\base\core

Android应用开发中三种常见的图片压缩方法

Android应用开发中三种常见的图片压缩方法,分别是:质量压缩法.比例压缩法(根据路径获取图片并压缩)和比例压缩法(根据Bitmap图片压缩). 一.质量压缩法 private Bitmap compressImage(Bitmap image) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); image.compress(Bitmap.CompressFormat.JPEG, 100, baos);//质量压缩方法,这里

android游戏开发中图形绘制:Canvas和Paint的使用

android游戏开发中,使用android.graphics中的类来绘制2D向量图和文字. 一 画布Canvas 在Android中的绘图应该继承View组件,并重写它的onDraw(Canvas canvas)方法. Canvas代表指定View上的画布,常用方法如图: 二 画刷Paint Paint代表Canvas上的画刷,主要用于绘制风格,包括画刷颜色.画刷笔触粗细.填充风格等. 大体上可以分为两类,一类与图形绘制相关,一类与文本绘制相关. 常用方法如图: 三 路径Path Path表示

Android应用开发中对Bitmap的内存优化

在Android应用里,最耗费内存的就是图片资源.而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常.所以,对于图片的内存优化,是Android应用开发中比较重要的内容. 1) 要及时回收Bitmap的内存 Bitmap类有一个方法recycle(),从方法名可以看出意思是回收.这里就有疑问了,Android系统有自己的垃圾回收机制,可以不定期的回收掉不使用的内存空间,当然也包括Bitmap的空间.那为什么还需

Android 应用开发中如何自定义 Drawable 背景?

2020-02-06 关键字:EditText自定义背景.shape.corners 通过 xml 定义 View 的背景 Drawable 资源还是挺常用的. 本篇博文记录几种常用的自定义 Drawable 方式. 1.圆角矩形 A.普通圆角矩形 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/

为什么android源码中有的public方法,在官网会查不到并且我们也用不了?

比如,看这个: 在android开发官网上搜是搜不到这个方法的,我们也调用不了,为什么呢?这是因为我们只能调用到android Framework层给我们提供的api,而这个方法框架层不开放调用,所以自然我们就调用不到了.不过,我们可以通过反射的方式间接调用此类方法(详细见我上一篇博客). 附在线看android源代码网址:http://grepcode.com/project/repository.grepcode.com/java/ext/com.google.android/android

IOS开发中重写init方法使用需谨慎

IOS开发中重写init方法使用需谨慎 今天在写一个小软件的时候出现一点问题,这个软件的功能是搜索全国学校,首页就是搜索输入框,在框中输入完要查询的学校所在省份,点击buttom后就会跳转到对应的视图控制器中,然后把搜索结果呈现在一个TableView上,但是我在调试时,每次输入完然后点击搜索按钮时,弹出结果列表总是空的,我需要返回到首页再点击一次搜索才会出现结果,而且我在首页更改搜索关键字之后,点击搜索,结果还是上次的搜索结果,必须返回点击一次才会出现这次的搜索结果. 经过大神指点,原来这个问

我的Android进阶之旅------&gt; Android在TextView中显示图片方法

面试题:请说出Android SDK支持哪些方式显示富文本信息(不同颜色.大小.并包含图像的文本信息),并简要说明实现方法. 答案:Android SDK支持如下显示富文本信息的方式. 1.使用TextView组件可以显示富文本信息.在TextView组件中可以使用富文本标签来显示富文本信息,这种标签类似于HTML标签,但比HTML标签简单,支持有限的几种显示富文本的方式.如<font>标签用于设置字体和颜色,<b>用于设置粗体.包含这些标签的文本不能直接作为TextView.se