Android-DebugSnippets 是一个轻量级的辅助 Android 调试的工具库,帮助开发者在开发阶段添加调试开关。
- 提供全局调试模式开关
- 支持视图事件监控(如点击事件)
- 自动生成视图调试名称
- 内存安全设计,避免内存泄漏
- 模块化设计,易于集成
- Android SDK 21+ (Android 5.0 Lollipop)
- Java 8
定义可调试视图的基本行为,包括获取调试名称和事件监听。
提供调试名称获取功能,使用视图标签或类名作为调试名称。负责创建装饰性点击监听器,处理事件分发。
继承自 TextView 并实现 DebugApiView 接口的可调试文本视图组件。自动集成事件监听功能。
继承自 FrameLayout 并实现 DebugApiView 接口的可调试帧布局容器。自动集成事件监听功能。
全局调试控制中心,提供调试模式开关和事件处理机制。采用弱引用管理监听器,避免内存泄漏。
添加 Android-DebugSnippets 到您的项目中:
implementation 'io.github.xesam:android-debugviews:0.0.1'在应用启动时配置调试环境:
public class App extends Application {
private final DebugApiView.DebugListener mDebugListener = (event, debugView, view) -> {
if ("click".equals(event)) {
Log.d("DebugViews", "click:" + debugView.getDebugName());
}
};
@Override
public void onCreate() {
super.onCreate();
// 开启调试模式
DebugViews.setDebug(true);
// 设置调试监听器
DebugViews.setDebugListener(mDebugListener);
}
@Override
public void onTerminate() {
super.onTerminate();
// 清理资源
DebugViews.destroy();
}
}在布局文件中使用 DebugTextView 替代普通 TextView:
<io.github.xesam.android.debug.views.DebugTextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:tag="customDebugName" />通过设置 android:tag 属性可以自定义调试名称,否则将使用视图的类名作为默认调试名称。
您可以轻松扩展库以支持其他视图类型。只需遵循以下步骤:
创建一个继承自目标视图并实现 DebugApiView 接口的新类:
public class CustomDebugView extends YourTargetView implements DebugApiView {
private DebugViewHelper mDebugViewHelper;
public CustomDebugView(Context context) {
super(context);
init();
}
// 实现所有构造方法
// ...
private void init() {
mDebugViewHelper = new DebugViewHelper(this);
this.setOnClickListener(null);
}
@Override
public String getDebugName() {
return this.mDebugViewHelper.getDebugName();
}
@Override
public void setOnClickListener(OnClickListener l) {
super.setOnClickListener(this.mDebugViewHelper.createDecoratedOnClickListener(l));
}
}在布局文件中使用您的自定义视图:
<your.package.CustomDebugView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:tag="customViewDebugName" />通过遵循这个模式,您可以为任何 Android 视图创建可调试版本,使其能够集成到调试框架中,实现统一的事件监控和调试功能。
-
内存管理
- DebugViews 内部使用 WeakReference 引用监听器,确保不会因调试功能导致内存泄漏
- 开发者需确保监听器对象有足够长的生命周期,避免被意外回收
-
调试模式控制
- 建议仅在开发和测试阶段开启调试模式
- 正式发布版本中应关闭调试功能
-
生命周期管理
- 在应用终止时调用 DebugViews.destroy() 清理资源
本项目采用 MIT 许可证。