Android 基础库 - 调试体系 - 日志输出

需求定义

功能点

功能边界

备注

基本功能

与系统Android日志接口相同

TAG

 

 

等级

 

 

消息体

 

 

异常

 

 

特殊日志

 

 

Header

 

模块版本信息

线程名称

 

 

对象Dump

 

Log.d(TAG, “”, object)

扩展功能

 

 

可配置

配置文件

运行时配置命令

prop set debug.log show_toast true 

显示Toast

开关,可配置

show_toast=true

显示Trace

可配置

trace.PlayInfoForUI=[onInnerInfoChange]

调用上下文

类名,函数名

 

日志过滤

 

 

      等级控制

可配置

 

全局等级

 

 

TAG等级

 

priority.<TAG>=v

文件等级

 

 

    Dump控制

可配置

 

全局深度

 

 

TAG深度

 

 

写文件

只支持一个文件

 

日志格式

-vthreadtime

多线程安全性

文件大小

 

 

文件滚动

个数

多文件滚动

Java日志

可配置,可设置TAG(前缀)等级,提前过滤

第三方库一般使用java logger输出日志

多输出流

简单管理

 

控制台命令

 

实现运行时调试

日志输出

 

 

其他命令

trace

priority

 

日志线程

 

 

日志性能

 

 

压缩文件

 

批量日志文件

总体方案

  • 处理线程

在实际产生日志的线程同步处理,需要考虑时间性能优化,不能存在阻塞操作(写磁盘除外)。

  • 日志等级

两层等级控制:全局等级和TAG等级。TAG等级优先,没有定义的使用全局等级。

文件输出

使用线程局部存储(ThreadLocal)优化性能:

  1. 计算中间状态,减少重复工作
    1. 进程ID,% 6d
    2. 线程ID,% 6d
  2. 独立实例,消除线程同步锁
    1. 时间格式化:SimpleDateFormattor
    2. 字符串构建器:StringBuilder
    3. UTF8编码器:CharsetEncoder
  3. 固定缓存,减少分配释放销毁
    1. StringBuilder缓存
    2. UTF8编码缓存

日志命令

log [-w] [-f format] [-p priority] <tags>...

-w --wait:是否阻塞等待

如果等待,则其他线程的日志 post 到队列中,由执行命令的线程输出日志,命令执行线程被卡住;

如果不等待,命令立即返回,输出流不关闭,线程的日志直接输出,但是如果UI线程日志无法输出到网络上(会有异常)。

其他命令:

log trace -c <tag> [patterns]…

log priority -c <tag> <level>

需求与问题:

  • UI线程不是直接在网络上发送日志(已经解决)

UI线程不能直接在网络上发送日志,增加 -w 参数

  • 网络套接,不能检测到客户端断开(已经解决)

被 PrintWriter 抓住了 !!! ,调整后 OK 

  • 直接 dumpsys ,不能检测到客户端断开(已经解决)

原因同上

  • 通过 activity 服务中转的 dumpsys,会很快超时,而且会卡死UI线程

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是 Android Studio 的基础知识点: 1. 安装和配置:安装 Android Studio 后,需要配置 Android SDK 和开发环境,包括安装正确的 JDK、设置环境变量、连接 Android 设备或模拟器等。 2. 项目结构:Android Studio 项目由多个模块组成,每个模块包含了代码、资源和构建配置等。一个 Android 应用程序由一个或多个模块组成,包括应用程序模块、模块、测试模块等。 3. Gradle:Android Studio 使用 Gradle 作为项目构建工具,Gradle 是一种基于 Groovy 编程语言的构建自动化工具,可以管理项目依赖关系、执行测试、打包发布等任务。 4. 布局编辑器:Android Studio 的布局编辑器可以帮助开发者快速创建和编辑 Android 应用程序的用户界面,支持拖拽式布局和实时预览等功能。 5. 调试和测试:Android Studio 提供了丰富的调试和测试工具,包括调试器、日志记录器、代码分析器、单元测试和 UI 测试等。 6. Android SDK:Android Studio 包含了 Android SDK,其中包含了 Android 应用程序开发所需的各种工具和。 7. 版本控制:Android Studio 集成了 Git 版本控制工具,可以帮助开发者更好地管理代码和版本控制。 8. Android Jetpack:Android Jetpack 是一组和工具,可以帮助开发者更轻松地构建高质量的 Android 应用程序。Jetpack 提供了各种组件,包括 ViewModel、LiveData、Room、Navigation、WorkManager 等,可以帮助开发者简化开发流程、提高应用程序性能和稳定性。 以上是 Android Studio 的基础知识点的简要介绍,Android Studio 还有很多其他的工具和功能,可以帮助开发者更高效地开发 Android 应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fighting Horse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值