日韩性视频-久久久蜜桃-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ò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲free性xxxx护士hd | 99热这里只有精品在线观看 | 国产欧美日韩视频在线观看 | 色不卡| 国产情侣91 | 日本女人黄色片 | 性色AV无码久久一区二区三 | 青青草免费公开视频 | 婷婷亚洲综合五月天小说 | 国产视频一二三区 | 天天干在线观看 | 日韩经典在线 | 视频在线观看免费大片 | 日韩av毛片在线观看 | 精品一区二区久久久久久按摩 | 日日噜噜噜夜夜爽爽狠狠视频97 | 日本一区二区三区视频在线观看 | 国产无限制自拍 | 亚洲偷| 无码人妻精品一区二区三区不卡 | 国产亚洲欧美一区二区三区 | 成人免费毛片色戒 | 免费观看在线高清 | 精品亚洲永久免费精品 | 户外露出一区二区三区 | 99精品在线播放 | 香蕉视频在线观看免费 | 午夜av一区二区 | 夜夜爽夜夜操 | 日日爱影视 | 日韩欧美区 | 国产小视频在线免费观看 | 天堂av网站 | 十大污网站 | 大黄网站在线观看 | 日本中文字幕在线免费观看 | 精品国产免费观看 | 欧美精品久久久久性色 | 欧美性猛交一区二区三区精品 | 毛片视频网 | 99爱爱| 狠狠涩| 国产精品无码免费在线观看 | 丰满人妻翻云覆雨呻吟视频 | 91毛片在线观看 | 无码国产精品96久久久久 | 国产破处视频 | 免费毛片在线播放 | 舔花蒂| 永久av免费在线观看 | 成片免费观看视频大全 | 激情国产一区 | 久久久成人精品视频 | 草色噜噜噜av在线观看香蕉 | 小情侣高清国产在线播放 | 色呦呦影院 | 激情网页 | 99re6这里只有精品 | 成av人在线观看 | 美女午夜激情 | 日韩女优网站 | 欧美成人精品一区二区男人小说 | 韩日激情视频 | 一区二区三区网 | 精品人妻av一区二区三区 | 先锋影音中文字幕 | 欧美日韩一区视频 | 日本特级淫片 | 99草在线视频| 久久亚洲一区二区三区四区五区 | 日韩精品福利视频 | 亚洲国产精品女人久久久 | 国产乱了高清露脸对白 | 第一福利丝瓜av导航 | 99热中文 | 国产精品免费视频一区二区三区 | 好吊操妞 | 日本精品一区在线 | 成年人在线视频网站 | 少妇又色又紧又爽又刺激视频 | 日本人三级 | 国产99久久精品 | 男生尿隔着内裤呲出来视频 | 亚洲影视一区二区 | 黄色高清片| 亚洲人成网站999久久久综合 | 丝袜老师扒开让我了一夜漫画 | 天天躁夜夜躁 | 日韩综合一区二区三区 | 欧美成年人在线视频 | 亚洲a在线播放 | 一区二区三区日韩电影 | 影音先锋人妻啪啪av资源网站 | 看黄网站在线 | 一区二区在线影院 | 最近日韩中文字幕 | aaa一区二区 | 大胸美女啪啪 | 欧洲久久久久 |