Android多渠道SDK开发心得(6)——sdk日志注入构建时间戳
来源:互联网 发布:android 知乎源码 编辑:程序博客网 时间:2024/05/29 17:14
sdk提供给第三方使用,出现问题后一般都需要抓日志进行分析排查,而分析问题时又往往需要确定sdk的版本或构建等信息、以便根据源码快速定位到问题。随着版本的不断迭代,仅仅通过日志往往无法快速判断出sdk是哪一版,此时如果能在sdk初始化及一些关键位置的日志中注入构建时间戳,这个问题立马也就迎刃而解了。
分别在各渠道初始化日志中加入以下”_ _BUILD_TIME”标志
sdk/src/alibaba/com/tobenull/sdk/SDK.java
public class SDK extends BaseSDK { ... @Override protected String getProductFlavor() { return "alibaba"; } @Override public void init() { TLog.d("SDK->init, _a_BUILD_TIME:"); ... } ...
sdk/src/baidu/com/tobenull/sdk/SDK.java
public class SDK extends BaseSDK { ... @Override protected String getProductFlavor() { return "baidu"; } @Override public void init() { TLog.d("SDK->init, _a_BUILD_TIME:"); ... } ...
在sdk中添加以下脚本:
sdk/build.gralde
rootProject.ext.SDKProperties.each { ... ant.replaceregexp(match:'_[a-z]+_BUILD_TIME:(20\\d{6}_\\d{6}.\\d{3})?', replace:"_${product}_BUILD_TIME:${rootProject.ext.buildTime}", byline:true) { fileset(dir: "src/$product/java/com/tobenull/sdk", includes: 'SDK.java') }}
上述脚本通过ant的replaceregexp任务实现自动匹配”src/$product/java/com/tobenull/sdk/SDK.java”文件中的”_ BUILD_TIME:”,并将其替换为”${product}_BUILD_TIME:${rootProject.ext.buildTime}”,在编译前将渠道标志与构建时间戳都达到该行日志中。从而,当sdk被apk使用时,输出日志自带该渠道信息及构建时间戳信息的效果。
在Build Variants窗口将渠道切换为baiduDebug并运行app,日志如下:
12-16 07:41:13.112 29532-29532/com.baidu.demo D/null-tobe: SDK->init, _baidu_BUILD_TIME:20171216_231210.39212-16 07:41:13.112 29532-29532/com.baidu.demo D/null-tobe: BaseSDK->init, baidu12-16 07:41:13.123 29532-29532/com.baidu.demo D/null-tobe: BaseManager->init12-16 07:41:13.123 29532-29532/com.baidu.demo D/null-tobe: SDK->initBaidu, init baidu...
根据第一行日志,发现其中带有渠道与构建时间戳信息,后续的每一次编译该时间戳也会随之发生变化。
出了在初始化日志中注入时间戳外,还可以在某些关键位置注入时间戳、以便出问题了能够快速进行排查。
阅读全文
0 0
- Android多渠道SDK开发心得(6)——sdk日志注入构建时间戳
- Android多渠道SDK开发心得(4)——多渠道sdk的开发与构建
- Android多渠道SDK开发心得
- Android多渠道SDK开发心得(5)——多渠道sdk的调试
- Android多渠道SDK开发心得(1)——最简单的aar包sdk
- Android多渠道SDK开发心得(2)——合并的aar包sdk
- Android多渠道SDK开发心得(8)——关于sdk资源的引用
- Android多渠道SDK开发心得(3)——生成jar包和so
- Android多渠道SDK开发心得(7)——自动生成demo
- Android多渠道SDK开发心得(9)——自动生成文档
- Android SDK开发心得总结
- Unity游戏开发——unity接入多渠道sdk
- sdk开发项目心得
- SDK开发心得
- 《ArcGIS Runtime SDK for Android开发笔记》——(4)、基于Android Studio构建ArcGIS Android开发环境
- 构建SDK项目开发分享
- unity多渠道sdk打包.
- Android sdk开发(二) Log日志类的设计
- 数据结构实验之图论十:判断给定图是否存在合法拓扑序列
- 排序算法
- 使用ajax请求提交数据时,日期类型无法转换为JAVA中的日期类型
- SQL SERVER 2008 编程入门经典读书笔记 -- SQL Server 复杂查询
- 让数据起飞,MySql索引
- Android多渠道SDK开发心得(6)——sdk日志注入构建时间戳
- kafka集群监控KafkaOffsetMonitor
- Android多渠道SDK开发心得(7)——自动生成demo
- Microsoft Visual Studio 2013
- 初始化,清空,逆置数组
- 整合SSH框架最基本的例子
- PAT一元多项式求导
- java面试题目总结
- 运算符