Android日志分析工具的开发介绍
一,软件下载地址:
技术交流QQ群:513138238(用于公布软件最新版本信息和相关技术交流)
[V3.6.4] https://download.csdn.net/download/u013662621/10541109
[V3.6.3] http://download.csdn.net/detail/u013662621/9945190
[V3.5.3] http://download.csdn.net/detail/u013662621/9880724
[V3.5.2] http://download.csdn.net/detail/u013662621/9854456
[V3.4.2] http://download.csdn.net/detail/u013662621/9834711
[V3.2.2] http://download.csdn.net/detail/u013662621/9826442
[V3.1.1] http://download.csdn.net/detail/u013662621/9823293
[V3.0.0] http://download.csdn.net/detail/u013662621/9821571
[Linux-IDE]下载地址
[V1.0.1] http://www.baidu.com
二,软件简介
Android常用开发工具Eclipse和Android Studio本身自带有日志查看工具LogCat,一般性使用基本满足要求。但若长期处于Android的深度开发,会发现自带的工具内容缓冲区有限,会造成历史数据的丢失,且无法进行信息过滤和日志头自动提取分类。为了解决这些问题,故而开发了此款软件,该软件不仅解决了上述问题,而且还支持对日志文件进行离线分析和导出备份,支持对日志内容的横向过滤和纵向过滤,且可通过ADB工具直连物理设备进行日志的监控和分析,无需依赖开发工具。另外,软件为完全自主开发,对后期若有新的功能需求可以很方便的进行功能扩展和维护。
欢迎反馈意见到[email protected]
软件界面预览
三,软件设计框架概览
四,软件功能简介
1,左侧Filters为日志头过滤器栏,当载入日志文件时会自动识别;
2,日志内容会自动根据打印等级显示不同的颜色以区分;
3,可通过设置右上角的日志等级筛选出大于等于该等级的打印信息;
4,可通过中上方的搜索框搜索日志内容,搜索规则为:任意字符串,大小写不敏感;
5,可通过设置时间过滤器的起止时间来筛选出在该时间范围内的所有日志信息;
6,可通过设置信息过滤器的开关来选择是否显示对应的信息;
7,可通过工具栏中模式切换按钮在“离线查看模式”和“实时终端模式”之间切换;
8,可通过工具栏中ADB连接按钮,进行ADB设备的扫描、连接、断开等操作;
9,软件底部显示当前工作的状态,如:工作模式、ADB设备状态、当前打开的日志文件路径;
10,退出实时终端模式时可将日志缓存文件导出另存;
11,可在软件设置中配置外部ADB工具的路径;
12,对日志内容解析后,可提供:行号、时间、等级、PID进程号、Tag、文本信息;
13,在实时终端模式中,ADB设备断开或丢失后可自动重连3次,并自动恢复日志内容的显示,若3次重连失败则退出ADB环境;
14,可通过将鼠标移动到Tag列表栏的某一项上,预览该Tag的完整信息;
15,文件加载过程有进度条提示;
16,可通过菜单栏中最近打开的文件选项快速打开文件;
17,可通过快捷键“Ctrl+G”或者工具栏中的对应图标快速跳转到指定行;
18,支持保存软件的全局配置属性和重要数据到配置文件中,待软件下次启动时可恢复上一次的操作环境;若该文件不存在,则会自动生成配置文件;和导志内志信该软件;
19,支持软件配置文件的备份和导入;
20,支持快捷键Ctrl+C复制当前选中的日志内容;
21,支持进程过滤器,即仅显示与选中进程相关的日志信息;
22,支持在具有加密策略的电脑上使用该软件;支持软件配置文件的备份和导入;
23,优化实时终端模式下日志内容的刷新,新增文件光标定位器,并优化日志Tag提
提器,使得最终的日志内容刷新率高达50~100Hz,且刷新频率不再受文件大
小的影响,此机制的实现使得实时监控的连续时间可无限长;
24,新增日志Tag系统级过滤器,主要过滤输出数量占比较大且不具备很大分析价值
的内容,既可以让更有价值的内容快速呈现,也很大程度的节省了内存的占用;
25,新增日志内容搜索进度条的显示,提醒用户当前的搜索状态;
26,软件启动前新增重构并删除上一次软件异常闪退时未删除的日志缓存文件,并提
示用户在删除前是否另存为;
27,新增对大文件进行分页加载的机制,并设置有快速页跳转的功能(只有当首次遍
历过所有的页数据后,才可跳转任意页),该机制的实现使得离线分析不再受
文件大小的限制,同时也保证了软件运行时不会无节制的占用系统内存;
28,新增实时模式下监控的日志行数达到设定的最大值后自动清空全局数据库,避免
长时间的监控造成大量内存的占用;
29,新增实时终端模式下,ADB设备非人为断开或非人为退出终端模式时,自动备份
当前的日志缓存文件,后期再对这些备份文件进行分析重构,并还原为一个完
整的日志文件,且设有重构进度条的显示;
30,新增Tag日志头种类及其数量分析功能,并以图标的形式展现;
31,新增软件重启功能;
32,新增实时模式下清空当前显示的功能;
33,新增设置属性“是否启用调试指定APP”,输入eclipse或android studio中正在调试的APP包名,如“com.example.uidemo”,点击下载程序后,该工具可自动识别并跳转到该APP的进程,并显示相关日志信息;
34,新增安装APK到指定设备的功能;
35,支持对android studio自带日志工具导出的日志格式进行解析;
36,新增软件自动检查是否有更新版本发布,若有,则弹窗提示下载链接;
37,新增设置选项“是否启用软件安全机制”;
38,优化软件以支持最新版win10系统;
五,软件安全保护机制
为了防止软件被轻易的反编译和破解,于是在该软件中引入了注册码注册机制和软件加壳处理机制,仅对指定设备授权开源(未授权设备仍可以使用所有功能,只是无法查看部分软件信息而已),增大了反编译和破解的难度,一定程度上保护了软件的可维护性。
六,软件版本升级日志
【V1.0.0】:初始版 2017/2/6 何晓龙 [email protected];
支持Tag过滤;
支持打印等级过滤;
支持文本搜索;
支持根据打印等级以不同的颜色显示内容;
支持自动提取所有Tag种类以及其对应的数量;
支持文件的打开与关闭;
支持设置字体;
【V2.0.0】:升级版 2017/2/9 何晓龙 [email protected];
新增时间过滤器;
新增信息过滤器;
支持定位信息头的识别;
新增文件编码格式的设置;
新增当前文件重载功能;
【V3.0.0】:升级版 2017/3/17 何晓龙 [email protected];
新增“实时终端模式”,通过ADB连接Android设备,并支持ADB设备扫描、连接、断开、状态显示等功能,且可在“离线查看模式”和“实时终端模式”之间随意切换;
新增退出实时终端模式时可将日志缓存文件导出另存为的功能;
新增设置菜单中ADB路径设置的功能;
新增进程PID号的显示,并在信息过滤器中增加对PID的过滤开关;
新增实时终端模式下ADB设备连接断开或丢失后自动重连,并自动恢复实时显示日志内容的功能;
为日志Tag列表栏新增鼠标移动到Tag上时,自动弹出Tip提示,提示内容为该Tag的完整信息,以防止当Tag内容过长而无法完整显示;
升级ADB命令执行接口,之前为主线程(即UI线程)中阻塞式执行ADB命令,若命令执行时间较长,容易导致UI线程长时间无响应,严重地影响了用户体验;升级后为新建一个专门执行ADB命令的后台线程,使其与主线程互相独立运行,通过信号与槽的方式进行数据交换,如此便可以在不影响UI线程的前提下更好地执行ADB命令,提高了用户体验度;
新增日志文件加载进度条显示,以更好地提示用户当前的加载进度;
新增软件工具栏,将软件中常用的操作添加到工具栏中,并配备合理的图标和Tip提示信息,且工具栏可选择显示或隐藏,以及存放的位置(顶部、底部)等,此功能的增加提高了用户的操作性和软件使用的简易性;
重新设计“关于软件窗口”的布局方式,将软件功能简介和更新日志的详细信息默认隐藏,通过“查看细节”按钮显示详细信息;
软件菜单栏中新增最近打开文件的历史记录功能,可设置最大记录的文件数量,可通过历史菜单直接选择文件将其打开,无须每次都通过系统的文件管理器方式打开;
新增跳转到日志文件的指定行的功能,且设有快捷键“Ctrl+G”,可快速跳转到需要查看的行,并将其高亮显示;
新增退出软件确认对话框功能,防止用户误操作使软件直接退出,而导致分析数据的丢失;
新增软件全局配置文件的功能:可记录软件的属性设置、文件历史浏览记录、以及一些重要的数据到该文件中,待软件下次启动时可恢复上一次操作的环境;实现原理:定义配置文件的语法格式,创建能够对该文件进行识别、解析、读写的解析器,然后再主程序中通过该解析器来操作配置文件;
优化对日志数据内容的解析过程以及日志文件的加载,使解析效率提高了70%多;
优化日志内容显示功能,通过加入显示缓冲区的机制,每次仅加载显示缓冲区中的数据,大大提高了显示速度;
优化实时终端模式显示日志的方式,通过加入增量式解析的机制,每次仅解析新增的内容,不必重复解析之前已经解析过的内容,如此可将显示速度提升十倍以上,很好的达到了实时显示的效果;
优化ADB服务器启动功能,增加等待对话框,并新增3次自动重连功能,若3次连接失败,则退出ADB环境;
优化Tag列表栏的显示,对所有Tag进行按字母排序,以便用户快速查找需要查看的Tag;
优化自动调整标签栏位置的功能,使其自动调整更加智能且定位准确;
优化软件状态栏显示方式,使其更加直观舒适;
修复滚动日志内容到最低端后,仍可继续滚动的BUG;
修复日志内容显示区域滚动条有时往上滑动时无法滑动的BUG;
修改日志缓存文件的路径,并增加路径的安全性判断和自动建立的功能;
修复当退出实时终端模式时,ADB重连导致再次进入终端模式的BUG;
修复BUG,当快速重复点击“重载文件”按钮时导致多次加载同一文件。修改为仅当一个文件加载完毕后才可继续下一步操作;
修复BUG,当快速重复点击“连接ADB设备”按钮时导致多次重复执行扫描ADB设备的操作,以至于等待对话框无法正常关闭,而使软件进入假死状态。修改为仅当一次扫描完成后才可继续下一次扫描操作;
【注意】实时终端模式下,每次只能连续实时监控1小时,超过该时间后由于日志文件过大,导致解析时间比较长,无法达到实时显示的效果;但后台仍然在将日志内容输出到缓存文件,可等待执行完后再将该文件导出后进行离线分析即可;
【V3.1.1】:优化版 2017/4/21 何晓龙 [email protected];
新增软件退出时自动删除缓存目录;
新增配置文件的备份和导入;
新增ADB连接状态指示灯显示;
新增进程过滤器,即只显示选中进程的相关日志信息;
更改软件配置文件存储路径为系统用户(即C盘中我的文档)的路径;
优化在线ADB设备信息显示,增加厂商、型号、系统版本号、SDK版本号等信息;
修复由于重复显示等待对话框却无法正常关闭,导致软件死机的BUG;
修复少数格式的PID进程号解析错误的BUG;
【V3.2.2】:优化版 2017/4/25 何晓龙 [email protected];
更改日志缓存文件后缀名为“.log”,以便支持在具有加密策略的电脑上使用该软件,为了兼容旧版本,仍支持对txt格式的日志文件进行离线分析;
优化日志缓存文件另存为的功能,使用户确定退出终端模式后,立即停止日志输出;
优化Filter栏选项排序为大小写不敏感;
修复实时终端模式下Filter栏的项乱跳的BUG;
修复实时终端模式下滑动滚动条导致软件闪退的BUG;