XMark 一个简易的Android埋点解决方案

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: XMark 一个简易的Android埋点解决方案

XMark



一个简易的埋点解决方案(基于JakeWharton的hugo基础上改造)


微信截图_20220527212136.png


关于我


微信截图_20220527212206.png


特点


  • JakeWharton的hugo的所有特点。


  • 内置默认的logcat打印突破了4000的打印限制。


  • 支持日志的自定义打印(不仅简单的Logcat)。你可以使用我的XLog进行扩展。



1、演示(请star支持)


20180408011328902.jpg


2、如何使用


目前支持主流开发工具AndroidStudio的使用,直接配置build.gradle,增加依赖即可.


2.1、Android Studio导入方法,添加Gradle依赖


1.先在项目根目录的 build.gradle 的 repositories 添加:


allprojects {
    repositories {
        ...
        maven { url "https://jitpack.io" }
    }
}


2.再在项目根目录的 build.gradle 的 dependencies 添加xmark插件:


buildscript {
    ···
    dependencies {
        ···
        classpath 'com.github.xuexiangjys.XMark:xmark-plugin:1.0.4'
    }
}


3.在项目的 build.gradle 中增加依赖并引用xmark插件


apply plugin: 'com.xuexiang.xmark' //引用xmark插件
dependencies {
    ···
    implementation 'com.github.xuexiangjys.XMark:xmark-runtime:1.0.4'  //添加依赖
}


2.2、设置日志是否打印


XMark.debug(true); //默认是false


2.3、使用@MarkLog进行埋点


1.记录方法的执行


priority: 打印日志的优先级


@MarkLog
private void printDemo1(String lab, String name) {
    Log.d("printing", lab + name);
}
@MarkLog(priority = Log.ERROR)
private String printDemo2(String lab, String name) {
    return lab + name;
}


2.记录类的创建


@MarkLog
static class Greeter {
    private final String name;
    Greeter(String name) {
        this.name = name;
    }
    private String sayHello() {
        return "Hello, " + name;
    }
}


2.4、修改日志的打印方式


1.可在应用初始化的Application下进行如下操作:


XMark.setLogger(new ILogger() { //设置日志打印的实现接口
    @Override
    public void log(int priority, String tag, String msg) {
        ···打印的方法
    }
});


2.设置打印日志的优先级

如果只想打印出错信息及以上的日志,可如下设置:


XMark.setPriority(Log.ERROR);


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
7月前
|
XML Android开发 数据格式
android点击FrameLayout、LinearLayout等父布局没响应的原因以及解决方案
android点击FrameLayout、LinearLayout等父布局没响应的原因以及解决方案
182 2
|
7月前
|
安全 Shell Android开发
Android系统 init.rc sys/class系统节点写不进解决方案和原理分析
Android系统 init.rc sys/class系统节点写不进解决方案和原理分析
384 0
|
24天前
|
安全 搜索推荐 程序员
深入探索Android系统的碎片化问题及其解决方案
在移动操作系统的世界中,Android以其开放性和灵活性赢得了广泛的市场份额。然而,这种开放性也带来了一个众所周知的问题——系统碎片化。本文旨在探讨Android系统碎片化的现状、成因以及可能的解决方案,为开发者和用户提供一种全新的视角来理解这一现象。通过分析不同版本的Android系统分布、硬件多样性以及更新机制的影响,我们提出了一系列针对性的策略,旨在减少碎片化带来的影响,提升用户体验。
|
2月前
|
开发框架 移动开发 Android开发
安卓与iOS开发中的跨平台解决方案:Flutter入门
【9月更文挑战第30天】在移动应用开发的广阔舞台上,安卓和iOS两大操作系统各自占据半壁江山。开发者们常常面临着选择:是专注于单一平台深耕细作,还是寻找一种能够横跨两大系统的开发方案?Flutter,作为一种新兴的跨平台UI工具包,正以其现代、响应式的特点赢得开发者的青睐。本文将带你一探究竟,从Flutter的基础概念到实战应用,深入浅出地介绍这一技术的魅力所在。
84 7
|
3月前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台解决方案
【9月更文挑战第27天】在移动应用开发的广阔天地中,安卓和iOS两大操作系统如同双子星座般耀眼。开发者们在这两大平台上追逐着创新的梦想,却也面临着选择的难题。如何在保持高效的同时,实现跨平台的开发?本文将带你探索跨平台开发的魅力所在,揭示其背后的技术原理,并通过实际案例展示其应用场景。无论你是安卓的忠实拥趸,还是iOS的狂热粉丝,这篇文章都将为你打开一扇通往跨平台开发新世界的大门。
|
2月前
|
Android开发
Android开发显示头部Bar的需求解决方案--Android应用实战
Android开发显示头部Bar的需求解决方案--Android应用实战
21 0
|
4月前
|
前端开发 开发工具 Android开发
探索安卓与iOS应用开发:跨平台解决方案的崛起
【8月更文挑战第27天】在移动设备日益普及的今天,安卓和iOS系统占据了市场的主导地位。开发者们面临着一个重要问题:是选择专注于单一平台,还是寻找一种能够同时覆盖两大系统的解决方案?本文将探讨跨平台开发工具的优势,分析它们如何改变了移动应用的开发格局,并分享一些实用的开发技巧。无论你是新手还是资深开发者,这篇文章都将为你提供有价值的见解和建议。
|
4月前
|
Android开发
Android编译出现Warning: Mapping new ns to old ns的解决方案
Android编译出现Warning: Mapping new ns to old ns的解决方案
357 3
|
4月前
|
前端开发 JavaScript Android开发
探索Android和iOS开发中的跨平台解决方案
【8月更文挑战第1天】随着移动应用市场的不断扩张,开发者面临一个共同的挑战——如何高效地为多个平台创建和维护应用程序。本文将深入探讨跨平台开发工具,特别是Flutter和React Native,通过比较它们的优势和限制,并辅以实际代码示例,揭示这些工具如何帮助开发者在保持高性能的同时,实现代码的最大化重用。
|
4月前
|
前端开发 JavaScript Android开发
安卓与iOS开发中的跨平台解决方案
【8月更文挑战第24天】在移动应用开发领域,安卓和iOS两大平台占据了主导地位。然而,为这两个平台分别开发和维护应用会带来额外的时间和成本。本文将探讨跨平台开发的概念、优势以及流行的跨平台框架,如React Native和Flutter,并分析它们如何解决多平台开发的挑战。