android 卡顿工具,Android开发性能优化工具

a4c3c32fa5ab

image.png

1. LeakCanary

LeakCanary用于内存泄露检测,并友好提示给开发者,便于分析和修改。

GitHub:leakcanary

LeakCanary 中文使用说明

LeakCanary集成后会在Activity.onDestory()后会自动监测Activity的内存泄露,仍需要在Fragment.onDestory()后主动监测,保证其工作。

dump耗时较长,需要耐心等待。

后根据堆栈信息修复代码。

使用方法:

在Application中初始化:

public class MyApplication extends Application {

//...

private void leakCanary() {

if (LeakCanary.isInAnalyzerProcess(this)) {

return;

}

mRefWatcher = LeakCanary.install(this);

}

public RefWatcher getRefWatcher() {

return mRefWatcher;

}

//提供获取方法

public static RefWatcher getRefWatcher(Context context) {

MyApplication application = (MyApplication) context.getApplicationContext();

return application.getRefWatcher();

}

}

监测Fragment:

public class BaseFragment extends Fragment {

protected Context mContext;

@Override public void onAttach(Context context) {

super.onAttach(context);

this.mContext = context;

}

@Override public void onDestroy() {

MyApplication.getRefWatcher(mContext)

.watch(this);

super.onDestroy();

}

}

2. CrashWoodPecker

GitHub:CrashWoodpecker

A nice uncaught exception handler library likes Square’s LeakCanary. Support showing logs both on Logcat & Woodpecker.

优雅的异常捕捉并提示。

public class MyApplication extends Application {

@Override public void onCreate() {

super.onCreate();

if (BuildConfig.DEBUG) {

CrashWoodpecker.flyTo(this);

}

}

}

3. BlockCanary

GitHub:AndroidPerformanceMonitor

BlockCanary — 轻松找出Android App界面卡顿元凶

BlockCanary分析android卡顿

这个库使用了Looper.getMainLooper().setMessageLogging(mainLooperPrinter);

来侵入式的检测,确实不一般。

通过该方法修改卡顿上限:

public int provideBlockThreshold() {

return 1000;

}

4. 代码审查工具

静态代码检查工具:Android studio—Analyze—Inspect Code.../Code cleanup...

Android lint工具是Android studio中集成的一个代码提示工具,它主要负责对你的代码进行优化提示,包括xml和java文件,很强大。

编写完代码及时进行lint测试,会让我们的代码变得非常规范而且避免代码冗余。让我们及时发现代码中隐藏的问题。

举个例子:我们在代码中建立全局变量,而这个变量实际并不需要全局便利,lint在检测之后会提示我们改成局部变量,这对内存优化是一个很强大的促进手段。

如何使用:

a4c3c32fa5ab

这里写图片描述

可以看到有Inspect Code,翻译就是检测代码

a4c3c32fa5ab

这里写图片描述

点击选择whole project(整个项目)即可。

除此之外还有:FindBugs、FireLine.

5. TraceView

TraveView是Android studio集成的一个性能优化工具,相信很多人都知道它,但是用到它的应该不多,它的使用比较复杂,应该说理解比较复杂。它主要计算工程内方法运行所占用的时间,调用次数,以此来优化App运行效率。

例如:一个方法,占用时间比较长,但是调用次数少,那么你就要检测这个方法耗时在什么地方,由什么原因导致?

6.Hierarchy Viewer

hierarchyviewer:检测布局复杂度

打开Hierarchy Viewer

启动Android Device Monitor成功之后,在新的的窗口中点击切换视图图标,选择Hierarchy Viewer,如下图:

a4c3c32fa5ab

image

7. 内存泄漏MAT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值