GT库在创造出来初期,里面的日志工具就一直存在的,经历了很久的迭代变更,当目前的最新版本,日志工具已经创造出更高级的调试日志方式了,接下来咋们来看看GT库中的日志工具具体使用方法吧。
使用GT库里的,当然需要先依赖好GT库啦:
GitHub - 1079374315/GTContribute to 1079374315/GT development by creating an account on GitHub.https://github.com/1079374315/GT
普通日志:
GT.log("普通日志1号");
效果图:
这样的日志是不是很平淡也很普通,然后我们加入日志过滤 GT_i 试试后的效果图如下:
日志标题:
GT.log("日志标题", "普通日志2号");
效果图:
索引日志:
GT.logt("索引日志3号");
效果图:
这就是 索引日志 我们可以看到新增了一个 蓝色的索引 ,我们只需要单击这个蓝色的索引就会自动跳转到这行日志的代码上,效果如下:
这样的日志可以让咋们轻易的找到这个日志是出自那里的,极大的方便了我们调试
详细日志:
GT.logs("详细日志4号");
效果图:
这个日志可以将这条日志所在的类与所在的方法以及所在行数都显示出来,日志已经够详细了
全部日志:
GT.logAll("全部日志");
效果图:
这种日志是专门显示 网络请求下来的json格式数据的。
这种 全部日志 也是支持日志标题的
GT.logAll("请求下来的json","请求下来的json数据");
错误日志:
GT.err("错误日志1号");
GT.err("日志标题", "错误日志2号");
GT.errt("错误日志3号");
GT.errs("错误日志4号");
GT.errAll("全部日志");
GT.errAll("请求下来的json","请求下来的json数据");
效果图:
这种错误日志,唯一改变的就是 日志颜色 与 日志过滤标识 GT_e
当然,日志过滤标识 可以直接改为 GT_ 这样的话,普通日志 与 错误日志 都能看到了
效果图:
上面的日志中,其中最常用使用的日志类型是索引日志:
GT.logt("索引日志3号");
因为这种日志能显示 出自那个类 是类的多少行 且带有索引功能 ,这样的日志也非常简洁。
接下来,将来介绍GT库中 悬浮日志 功能的介绍了。
悬浮调试工具:
我们先看看效果图:
这是GT库中的 悬浮日志,形状是仿照了 手机 来制作的,
目前支持的基本功能有:
1.搜索应用
2.隐藏缩小
3.扩大放大
4.关闭悬浮日志
5.下拉状态栏
6.设置 悬浮日志 透明度
7.修改 悬浮日志 宽高
8.横屏旋转
9.开启全屏,隐藏下面的操作菜单
10.重置 悬浮日志
悬浮日志 桌面上显示的功能都是安卓 app 图标来显示的,目前默认提供的功能有:
1.日志图标 日志动态查看
2.数据库图标 数据库可视化
3.Fragment栈 栈内页面可视化(如果是使用了 GT库 Fragment封装那就可以用这个查看)
其他的 图标均为手机其他安装的app
上面是显示日志的效果图,悬浮日志使用的场景有很多,非常适合打包后去机顶盒上调试,但其他使用场景,还得看每个人具体的想法,看起来很华丽的 悬浮日志 ,那实现代码是咋样的呢?
实现代码:
第一步:先添加悬浮窗权限
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
第二步:核心代码
public class MainActivity extends AppCompatActivity {
private TextView tv;
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = findViewById(R.id.tv);
btn = findViewById(R.id.btn);
tv.setOnClickListener(view -> {
GT_Floating.setType_screenType(-1);//设置悬浮窗显示类型
GT.startFloatingWindow(MainActivity.this, GT_Floating.class);//启动悬浮窗
});
btn.setOnClickListener(view -> {
GT.log("索引日志:" + GT.GT_Date.getDateTime_CH() + "\n");//普通日志
});
}
}
当启动悬浮窗后,GT库所有的日志均可以直接在悬浮窗中显示。
当然,悬浮日志 里的图标是可以由我们自定义的,并且包括里面具体的图标功能,我们甚至也能自定义一个王者图标,然后里点击我们的王者图标后快速的切换复活装备。
自定义图标 效果图:
我给这个图标设置了单击事件与长按事件,核心实现代码如下:
public class MainActivity extends AppCompatActivity {
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = findViewById(R.id.tv);
tv.setOnClickListener(view -> {
//图标支持 本地资源也支持网络资源 网络图片资源:https://img2.baidu.com/it/u=2143833621,3783097164&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500
GT_Floating.addApp(new AppBean("王者换装", com.gsls.gt.R.mipmap.gt_logo,"wzhz","longWzhz", "", new GT.OnListener<Object>() {
@Override
public void onListener(Object... obj) {
//单击或长按后触发的逻辑
if (obj != null && obj.length > 0) {
switch (String.valueOf(obj[0])) {
case "wzhz":
GT.toast(MainActivity.this, "切换复活甲");
break;
case "longWzhz":
GT.toast(MainActivity.this, "切换名刀");
break;
}
}
}
}));
GT_Floating.setType_screenType(-1);//设置悬浮窗显示类型
GT.startFloatingWindow(MainActivity.this, GT_Floating.class);//启动悬浮窗
});
}
}
实现起来代码甚少,逻辑也很简单吧。
当然还有另一种触发事件的方式如下:
public class MainActivity extends AppCompatActivity {
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GT.EventBus.registers(this);//注册订阅者
tv = findViewById(R.id.tv);
tv.setOnClickListener(view -> {
//图标支持 本地资源也支持网络资源 网络图片资源:https://img2.baidu.com/it/u=2143833621,3783097164&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500
GT_Floating.addApp(new AppBean("王者换装", com.gsls.gt.R.mipmap.gt_logo, "wzhz", "longWzhz", ""));
GT_Floating.setType_screenType(-1);//设置悬浮窗显示类型
GT.startFloatingWindow(MainActivity.this, GT_Floating.class);//启动悬浮窗
});
}
@GT.EventBus.Subscribe
public void wzhz() {
GT.toast(MainActivity.this, "切换复活甲");
}
@GT.EventBus.Subscribe
public void longWzhz() {
GT.toast(MainActivity.this, "切换名刀");
}
@Override
protected void onDestroy() {
super.onDestroy();
GT.EventBus.unregisters(this);//取消订阅者
}
}