日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

android log耗性能吗,一个高性能的Android日志库

發(fā)布時(shí)間:2025/3/20 Android 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android log耗性能吗,一个高性能的Android日志库 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

clue

一個(gè)高性能的Android日志庫(kù).

為什么性能高

通常的Android日志庫(kù), 為了獲取到class名, 方法名, 行號(hào), 都是通過(guò)以下API實(shí)現(xiàn)的:

StackTraceElement[] stacks = Thread.currentThread().getStackTrace(); //expensive cost

StackTraceElement element = stacks[4];

int lineNumber = element.getLineNumber();

String fileName = element.getFileName()

以上的方式損耗的性能是很高昂的, 線上代碼中不應(yīng)該出現(xiàn).

顯然, 如果代碼寫好, 在編譯之前, 所有的class名, 方法名, 行號(hào)是固定的, 不會(huì)再變化,不應(yīng)該在運(yùn)行時(shí)通過(guò)以上代價(jià)高昂的方式去動(dòng)態(tài)獲取.

clue日志庫(kù)沒(méi)有調(diào)用以上API來(lái)獲取class名, 方法名, 行號(hào), 而是換了另外一種思路, 它通過(guò)在編譯期操作class文件字節(jié)碼, 從中獲取這些信息. 這對(duì)于追求極致性能的應(yīng)用非常有價(jià)值, 或者不希望因?yàn)榇蛴∪罩径档蛻?yīng)用的性能, 或者需要記錄線上APP運(yùn)行日志的場(chǎng)景尤其有用.

功能

Class名字作為默認(rèn)的tag, 或者自定義tag

顯示調(diào)用者的方法名

顯示源代碼行號(hào)

顯示線程名

在Android Studio的日志窗口中點(diǎn)擊日志中的文件名跳轉(zhuǎn)到源代碼相應(yīng)的位置

無(wú)性能損耗地獲取以上日志信息

可擴(kuò)展的API接口設(shè)計(jì)

使用方法

1 在項(xiàng)目的頂級(jí) build.gradle 文件中引用插件的classpath.

buildscript {

repositories {

maven {

url "https://plugins.gradle.org/m2/"

}

}

dependencies {

classpath "gradle.plugin.com.github.linsea:clue-plugin:1.0.0"

}

}

2 在項(xiàng)目的 build.gradle 中應(yīng)用插件.

apply plugin: "com.github.linsea.clue-plugin"

3 在項(xiàng)目的 build.gradle 加入依賴庫(kù).

compile 'com.linsea:clue:1.0'

4 在 Application class中加入一個(gè)log實(shí)例.

public class MyApplication extends Application {

@Override

public void onCreate() {

super.onCreate();

Clue.addLog(new ConsoleLog()); //初始化Clue log,默認(rèn)使用系統(tǒng)的Logcat輸出到控制臺(tái).

}

}

5 調(diào)用 Clue 類的靜態(tài)方法記錄日志. 比如:

public static void v(String message, Object... args);

public static void vt(String tag, String message, Object... args)

public static void v(Throwable t, String message, Object... args)

public static void vt(String tag, Throwable t, String message, Object... args)

更詳細(xì)的使用方法請(qǐng)參考位于 clue/clue-sample 的示例項(xiàng)目.

擴(kuò)展接口

你可以添加自己的logger實(shí)現(xiàn)來(lái)擴(kuò)展Clue, 比如繼承BaseLog實(shí)現(xiàn)一個(gè)把日志寫入文件的Log Receiver, 然后調(diào)用Clue.add(...)把它添加進(jìn)Clue中, 具體可以參考庫(kù)中ConsoleLog的實(shí)現(xiàn).

總結(jié)

以上是生活随笔為你收集整理的android log耗性能吗,一个高性能的Android日志库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲性生活视频 | 国产日韩欧美精品在线观看 | 无码人妻一区二区三区一 | 日本午夜视频在线观看 | 天天射天天干天天舔 | 97国产在线 | 久久伊人av | 深夜福利在线播放 | wwwwww色| 小蝌蚪视频色 | 久久综合亚洲色hezyo国产 | 国产视频一区二区在线播放 | 精品黑人一区二区三区国语馆 | 在线观看av毛片 | 欧美激情自拍 | 国产叼嘿视频在线观看 | 国产伦精品一区二区三区四区 | 伊人久久国产精品 | 天天躁日日躁bbbbb | 亚洲人成人无码网www国产 | 日韩一区免费观看 | 日韩欧美卡一卡二 | 永久免费国产 | 国产剧情在线视频 | 亚洲成人精品在线观看 | 亚洲精品综合网 | 亚洲午夜av在线 | 亚洲色图综合网 | 18久久久 | 午夜视频网站在线观看 | 亚洲国产日韩一区无码精品久久久 | 国产精品69久久久久孕妇欧美 | 一区二区三区久久 | 欧美日本韩国一区二区 | 日中文字幕| 久久久在线视频 | 我们俩电影网mp4动漫官网 | 午夜av影院 | av影视网 | 国产超91 | 黑人操亚洲女 | 2021狠狠干| 日本免费www| 成年人在线视频 | 欧美日韩黑人 | 免费暧暧视频 | 在线视频日韩欧美 | 91精品视频免费观看 | 91av手机在线 | 欧美人与性动交a欧美精品 日韩免费高清视频 | 国产成人中文字幕 | 日韩精品高清视频 | 国产浪潮av| 在线看三级 | 精品久久久久久久久久久久久久 | 亚洲一卡二卡在线 | 极品粉嫩国产18尤物 | 亚洲三区在线观看无套内射 | 狠狠躁18三区二区一区传媒剧情 | 国产国产乱老熟女视频网站97 | 九九在线观看免费高清版 | 新呦u视频一区二区 | 午夜网站视频 | 国产精品永久免费观看 | 激情伊人网 | 国产手机在线观看 | 久久99热精品 | 久久激情av | 国产美女视频网站 | 超碰国产97 | 伊人中文字幕在线观看 | 欧美日本亚洲韩国国产 | 国产午夜性春猛交ⅹxxx | 亚洲欧美成人 | 男女日批免费视频 | 国产丝袜视频在线 | 免费三级av | 少妇激情视频 | 午夜性福利 | 国产精久久一区二区三区 | 国产对白羞辱绿帽vk | 国产精品理论片在线观看 | 国产精品久久久一区二区三区 | 亚洲激情区 | 中文字幕自拍 | 国产在线观看网站 | 一二三四国产精品 | 久久精品国产清自在天天线 | 蜜桃成人在线观看 | 性欧美在线视频观看 | 天天操网站 | 极品国产91在线网站 | 久久婷婷五月国产色综合激情 | 亚洲一区二区在线电影 | 波多野结衣之潜藏淫欲 | 国产精品专区在线观看 | 思思久久久 | 插综合 | 老司机午夜av |