ATestKit是一款Android测试小工具。目前支持的功能有:
- 查看Activity中所有可以被反射获取的变量的值
- 查看应用内存开销、CPU消耗、流量使用情况
- 可以执行当前界面中通过
@TestMethod
标注过的方法 - 可以查看命令行输出(此功能还在完善中)
- 为应用添加一个后门Activity,可以用于放置开发中的一些后门入口
在build.gradle
中加入引用,不同的编译使用不同的引用:
dependencies {
debugCompile 'com.dannylee:atestkit:0.3'
releaseCompile 'com.dannylee:atestkit_no_op:0.3'
}
需要在被查看的Activity中添加:
@Override
protected void onStart() {
super.onStart();
TestKit.registActivity(this);
}
@Override
protected void onStop() {
super.onStop();
TestKit.unRegistActivity(this);
}
在 Application 中:
public class SampleApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// 注册通用信息
TestKit.registAllCommonTestType();
}
}
在需要支持此功能的Activity中添加:
@Override
protected void onStart() {
super.onStart();
TestKit.registEvent(this);
}
@Override
protected void onStop() {
super.onStop();
TestKit.unRegistEvent(this);
}
在需要被调用到的方法上添加@TestMethod
注解:
@TestMethod(name = "showToast", description = "just show Toast!", args = {"hello world!"})
private void showToast(String toast) {
Toast.makeText(getApplication(), toast, Toast.LENGTH_SHORT).show();
}
若要添加后门Activity,需要创建一个后门Activity的代理类,继承自BackDoorActivityProxy
:
public class SampleBackDoorActivityProxy extends BackDoorActivityProxy {
private static SampleBackDoorActivityProxy mInstance = new SampleBackDoorActivityProxy();
public static SampleBackDoorActivityProxy getInstance() {
return mInstance;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Activity activity = getActivity();
if (activity != null) {
...
}
}
}
并且在 Application 中注册:
public class SampleApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// 设置后门activity代理
TestKit.setBackDoorActivityProxy(SampleBackDoorActivityProxy.getInstance());
}
}
若想要查看命令行输出结果,可以直接调用:
String cmdStr = "logcat"
TestKit.executeCmd("cmdStr");