Android日志分析工具的开发介绍
一,软件下载地址:
技术交流:(用于公布软件最新版本信息和相关技术交流)
[V3.9.2] https://download.csdn.net/download/u0/
[V3.6.4] Android日志分析工具-V3.6.4_android日志分析工具,android日志查看工具-Android工具类资源-CSDN下载
[Linux-IDE]下载地址
[V1.0.1] 百度一下,你就知道
欢迎反馈意见到964195140@.com
软件界面预览

三,软件设计框架概览

34,新增安装APK到指定设备的功能;
38,优化软件以支持最新版win10系统;
六,软件版本升级日志
【V2.0.0】:升级版 2017/2/9 何晓龙 964195140@.com;
新增时间过滤器;
新增信息过滤器;
支持定位信息头的识别;
新增文件编码格式的设置;
新增当前文件重载功能;
【V3.0.0】:升级版 2017/3/17 何晓龙 964195140@.com;
新增“实时终端模式”,通过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 何晓龙 964195140@.com;
新增软件退出时自动删除缓存目录;
新增配置文件的备份和导入;
新增ADB连接状态指示灯显示;
新增进程过滤器,即只显示选中进程的相关日志信息;
更改软件配置文件存储路径为系统用户(即C盘中我的文档)的路径;
优化在线ADB设备信息显示,增加厂商、型号、系统版本号、SDK版本号等信息;
修复由于重复显示等待对话框却无法正常关闭,导致软件死机的BUG;
修复少数格式的PID进程号解析错误的BUG;
【V3.2.2】:优化版 2017/4/25 何晓龙 964195140@.com;
更改日志缓存文件后缀名为“.log”,以便支持在具有加密策略的电脑上使用该软件,为了兼容旧版本,仍支持对txt格式的日志文件进行离线分析;
优化日志缓存文件另存为的功能,使用户确定退出终端模式后,立即停止日志输出;
优化Filter栏选项排序为大小写不敏感;
修复实时终端模式下Filter栏的项乱跳的BUG;
修复实时终端模式下滑动滚动条导致软件闪退的BUG;
964195140@.com;
优化实时终端模式下日志内容刷新的代码:
*1)优化增量式文件加载器,新增文件光标位置定位器,每次加载时
直接跳转到上一次的位置;
*2)优化日志Tag提取器,将之前的每次计算所有Tag改为增量式计
算,即每次仅计算新增的内容,然后与之前的叠加即可;
*3)通过以上方式的优化后,实时模式下日志内容的刷新速度将不再
受文件大小的影响,且刷新时间基本在20ms以内,即显示刷新频率在
50Hz以上,真正意义上实现了日志内容实时刷新的功能;
新增日志Tag系统级过滤器,主要过滤掉输出数量占比较大且不具备很大分析价值的内容,既可以让更有价值的内容快速呈现,也很大程度的节省了内存的占用。该过滤器共分为一级过滤和二级过滤,一级过滤为完全不具备分析价值的内容,二级过滤为极少数情况可能会有一点分析价值;
新增日志内容搜索进度条显示,提醒用户当前的搜索状态,避免当搜索时间较长时给用户一种软件假死的现象;
软件启动前新增删除上一次软件异常闪退时未删除的日志缓存文件,并提示用户在删除前是否另存为;
新增对大文件进行分页加载的机制,可自动识别是否需要对文件进行分页,并设置有快速页跳转的功能;
*该机制的目的):使离线分析日志文件不再受文件大小的限制,同时保证了软件运行过程中不会无节制的占用系统内存;
*该机制的原理):每次加载当前页后才能确定下一页的光标偏移量,因此只有当第一次加载过所有页后,才可随意的进行页跳转,否则只能跳转下一页或前面的所有页;
新增实时模式下监控的日志行数达到设定的最大值后自动清空全局数据库,避免长时间的监控造成大量内存的占用(注意:此处清空仅为软件中数据清空,而实际缓存文件中的数据仍然是存在的);
新增实时终端模式下,ADB设备非人为断开或非人为退出终端模式时,自动备份当前的日志缓存文件,后期再对这些备份文件进行分析重构,还原为一个完整的日志文件,并对重构的过程设有进度条显示;
新增Tag日志头种类及其数量分析功能,并以图表的形式展现;
优化软件退出时若从未开启过ADB服务,则无需执行ADB服务的关闭;
修复有时软件退出后仍有等待对话框在显示的BUG;
修复无法输出系统进程system_process的部分日志信息的BUG;
修复文件加载进度条有时显示异常导致卡死,且无法关闭的BUG;
修复进行进程筛选后再执行系统过滤设置,在文件重载的过程中软件死机闪退的BUG;
修复行跳转到最后一行时偶尔造成软件死机闪退的BUG;
964195140@.com;
新增软件重启功能;
新增实时模式下清空当前显示的功能;
新增设置属性“是否启用调试指定APP”,在输入框输入eclipse或android studio中正在调试的APP包名,如“com.example.uidemo”,点击下载程序后,该工具可自动识别并跳转到该APP的进程,并显示相关日志信息;
优化实时模式下切换打印等级后,重新显示所有信息(旧版为仅显示后面更新的信息);
优化进程筛选执行后仅显示该进程的信息(旧版为只要包含了该进程的都会显示);
优化日志缓存文件重构过程,禁止重构进度的人为关闭,防止用户关闭该进程后导致日志文件破损;
优化文件加载进度条最大值的设定方式,自动识别文件是否需要进行分页处理;
优化日志内容显示区域中单行被选中时的显示方式,改为前景色不变,背景色高亮;
修复部分设备采用Log.wtf()打印时实际输出为’F’标志,导致无法解析该内容的BUG,而实际其相当于’A’等级的日志,故新增对其的支持;
修复日志显示区域自定义的滚动条偶尔出现滚动紊乱的BUG;
修复特殊情况下软件配置文件备份失败的BUG;
修复ADB设备名中包含有’-‘符号的设备无法连接的BUG;
修复等待对话框gif动画无法显示的BUG;
964195140@.com;
新增安装APK到指定设备的功能;
优化软件中主线程阻塞延时等待的实现机制,避免有时报已有事件在运行的警告;
优化ADB设备名显示格式,以缩短其显示长度;
优化显示日志等级的控制机制,只有在启动软件时自动初始化为VERBOSE,其他任何情况都保持不变,除非手动改变;
修复列表显示中设置和获取指定行可能存在行无效或获取对象为null而导致软件死机闪退的BUG;
修复有时ADB设备连接断开后仍显示连接成功状态的BUG;
修复ADB状态检测定时器与日志文件检测定时器冲突导致ADB不断重连的BUG;
修复实时终端模式下ADB连接断开后无法自动重连的BUG;
修复软件重启选择是或否都会重启的BUG;
修复实时终端模式下长时间运行后内存占用逐渐增大导致内存泄漏而使软件异常闪退的BUG,通过优化代码以及主动释放频繁申请的内存来解决;
修复实时终端模式下变换软件窗口尺寸时偶尔出现软件异常闪退的BUG;
修复实时终端模式下updateFile()接口执行过程中出现异常后无法正常退出,并死循环在此处的BUG;
964195140@.com;
支持对android studio自带日志工具导出的日志格式进行解析;
新增软件自动检查是否有更新版本发布,若有,则弹窗提示下载链接;
新增设置选项“是否启用软件安全机制”;
优化设置界面布局,合并字体设置和文件编码格式设置;
优化PID进程过滤器的显示,对PID号进行排序操作,便于快速定位;
优化软件设置功能,禁止在实时终端模式下设置编码格式和系统过滤;
优化时间过滤器控制逻辑;
964195140@.com;
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/202059.html原文链接:https://javaforall.net
