docs: update api docs

This commit is contained in:
2023-09-28 00:52:35 +08:00
parent c651776da0
commit dbe451d29c
9 changed files with 670 additions and 747 deletions

View File

@@ -50,7 +50,8 @@ const navigationLinks = {
baseApiPath + 'hook/type/android/ViewTypeFactory',
baseApiPath + 'hook/type/java/VariableTypeFactory',
baseApiPath + 'hook/type/defined/DefinedTypeFactory',
baseApiPath + 'hook/log/LoggerFactory',
baseApiPath + 'hook/log/YLog',
baseApiPath + 'hook/log/data/YLogData',
baseApiPath + 'hook/factory/ReflectionFactory',
baseApiPath + 'hook/factory/YukiHookFactory',
baseApiPath + 'hook/entity/YukiBaseHooker',

View File

@@ -377,7 +377,7 @@ object Configs
### debugLog <span class="symbol">- method</span>
```kotlin:no-line-numbers
inline fun debugLog(initiate: YukiHookLogger.Configs.() -> Unit)
inline fun debugLog(initiate: YLog.Configs.() -> Unit)
```
**Change Records**
@@ -386,7 +386,7 @@ inline fun debugLog(initiate: YukiHookLogger.Configs.() -> Unit)
**Function Illustrate**
> 配置 `YukiHookLogger.Configs` 相关参数。
> 配置 `YLog.Configs` 相关参数。
<h3 class="deprecated">debugTag - field</h3>
@@ -396,7 +396,7 @@ inline fun debugLog(initiate: YukiHookLogger.Configs.() -> Unit)
`v1.1.0` `deprecated`
请迁移到 `YukiHookLogger.Configs.tag`
请迁移到 `YLog.Configs.tag`
### isDebug <span class="symbol">- field</span>
@@ -422,7 +422,7 @@ var isDebug: Boolean
`v1.1.0` `deprecated`
请迁移到 `YukiHookLogger.Configs.isEnable`
请迁移到 `YLog.Configs.isEnable`
<h3 class="deprecated">isEnableModulePrefsCache - field</h3>
@@ -628,14 +628,14 @@ object HookEntry : IYukiHookXposedInit {
object HookEntry : IYukiHookXposedInit {
override fun onInit() {
YukiHookLogger.Configs.tag = "YukiHookAPI"
YukiHookLogger.Configs.isEnable = true
YukiHookLogger.Configs.isRecord = false
YukiHookLogger.Configs.elements(
YukiHookLogger.Configs.TAG,
YukiHookLogger.Configs.PRIORITY,
YukiHookLogger.Configs.PACKAGE_NAME,
YukiHookLogger.Configs.USER_ID
YLog.Configs.tag = "YukiHookAPI"
YLog.Configs.isEnable = true
YLog.Configs.isRecord = false
YLog.Configs.elements(
YLog.Configs.TAG,
YLog.Configs.PRIORITY,
YLog.Configs.PACKAGE_NAME,
YLog.Configs.USER_ID
)
YukiHookAPI.Configs.isDebug = BuildConfig.DEBUG
YukiHookAPI.Configs.isEnableModuleAppResourcesCache = true

View File

@@ -10,29 +10,391 @@ You can use the **Chrome Translation Plugin** to translate entire pages for refe
:::
# LoggerFactory <span class="symbol">- kt</span>
**Change Records**
`v1.0` `first`
**Function Illustrate**
> 这是 `YukiHookAPI` 的日志封装类,可实现同时向 `Logcat` 和 (Xposed) 宿主环境打印日志的功能。
## LoggerType <span class="symbol">- class</span>
# YLog <span class="symbol">- object</span>
```kotlin:no-line-numbers
enum class LoggerType
object YLog
```
**Change Records**
`v1.1.0` `added`
`v1.2.0` `added`
**Function Illustrate**
> 需要打印的日志类型
> 全局 Log 管理类
## inMemoryData <span class="symbol">- field</span>
```kotlin:no-line-numbers
val inMemoryData: MutableList<YLogData>
```
**Change Records**
`v1.2.0` `added`
**Function Illustrate**
> 当前全部已记录的日志数据。
::: danger
获取到的日志数据在 Hook APP (宿主) 及模块进程中是相互隔离的。
:::
## contents <span class="symbol">- field</span>
```kotlin:no-line-numbers
val contents: String
```
**Change Records**
`v1.2.0` `added`
**Function Illustrate**
> 获取当前日志文件内容。
如果当前没有已记录的日志会返回空字符串。
::: danger
获取到的日志数据在 Hook APP (宿主) 及模块进程中是相互隔离的。
:::
## contents <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun contents(data: List<YLogData>): String
```
**Change Records**
`v1.2.0` `added`
**Function Illustrate**
> 获取、格式化当前日志文件内容。
如果当前没有已记录的日志 (`data` 为空) 会返回空字符串。
::: danger
获取到的日志数据在 Hook APP (宿主) 及模块进程中是相互隔离的。
:::
## clear <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun clear()
```
**Change Records**
`v1.2.0` `added`
**Function Illustrate**
> 清除全部已记录的日志。
你也可以直接获取 [inMemoryData](#inmemorydata-field) 来清除。
::: danger
获取到的日志数据在 Hook APP (宿主) 及模块进程中是相互隔离的。
:::
## saveToFile <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun saveToFile(fileName: String, data: List<YLogData>)
```
**Change Records**
`v1.2.0` `added`
**Function Illustrate**
> 保存当前日志到文件。
若当前未开启 `Configs.isRecord` 或记录为空则不会进行任何操作。
日志文件会追加到 `fileName` 的文件结尾,若文件不存在会自动创建。
::: danger
文件读写权限取决于当前宿主、模块已获取的权限。
:::
## Configs <span class="symbol">- object</span>
```kotlin:no-line-numbers
object Configs
```
**Change Records**
`v1.2.0` `added`
**Function Illustrate**
> 配置 `YLog`
### TAG <span class="symbol">- field</span>
```kotlin:no-line-numbers
const val TAG: Int
```
**Change Records**
`v1.2.0` `added`
**Function Illustrate**
> 标签。
### PRIORITY <span class="symbol">- field</span>
```kotlin:no-line-numbers
const val PRIORITY: Int
```
**Change Records**
`v1.2.0` `added`
**Function Illustrate**
> 优先级。
### PACKAGE_NAME <span class="symbol">- field</span>
```kotlin:no-line-numbers
const val PACKAGE_NAME: Int
```
**Change Records**
`v1.2.0` `added`
**Function Illustrate**
> 当前宿主的包名。
### USER_ID <span class="symbol">- field</span>
```kotlin:no-line-numbers
const val USER_ID: Int
```
**Change Records**
`v1.2.0` `added`
**Function Illustrate**
> 当前宿主的用户 ID (主用户不显示)。
### tag <span class="symbol">- field</span>
```kotlin:no-line-numbers
var tag: String
```
**Change Records**
`v1.2.0` `added`
**Function Illustrate**
> 这是一个调试日志的全局标识。
默认文案为 `YukiHookAPI`
你可以修改为你自己的文案。
### isEnable <span class="symbol">- field</span>
```kotlin:no-line-numbers
var isEnable: Boolean
```
**Change Records**
`v1.2.0` `added`
**Function Illustrate**
> 是否启用调试日志的输出功能。
关闭后将会停用 `YukiHookAPI` 对全部日志的输出。
但是不影响当你手动调用下面这些方法输出日志。
`debug``info``warn``error`
`isEnable` 关闭后 `YukiHookAPI.Configs.isDebug` 也将同时关闭。
### isRecord <span class="symbol">- field</span>
```kotlin:no-line-numbers
var isRecord: Boolean
```
**Change Records**
`v1.2.0` `added`
**Function Illustrate**
> 是否启用调试日志的记录功能。
开启后将会在内存中记录全部可用的日志和异常堆栈。
需要同时启用 [isEnable](#isenable-field) 才能有效。
::: danger
过量的日志可能会导致宿主运行缓慢或造成频繁 GC。
:::
开启后你可以调用 [YLog.saveToFile](#savetofile-method) 实时保存日志到文件或使用 [YLog.contents](#contents-field) 获取实时日志文件。
### elements <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun elements(vararg item: Int)
```
**Change Records**
`v1.2.0` `added`
**Function Illustrate**
> 自定义调试日志对外显示的元素。
只对日志记录和 (Xposed) 宿主环境的日志生效。
日志元素的排列将按照你在 `item` 中设置的顺序进行显示。
你还可以留空 `item` 以不显示除日志内容外的全部元素。
可用的元素有:`TAG``PRIORITY``PACKAGE_NAME``USER_ID`
**功能示例**
打印的日志样式将按照你设置的排列顺序和元素内容进行。
> 示例如下
```kotlin
elements(TAG, PRIORITY, PACKAGE_NAME, USER_ID)
```
以上内容定义的日志将显示为如下样式。
> 示例如下
```:no-line-numbers
[YukiHookAPI][D][com.demo.test][999]--> This is a log
```
如果我们调整元素顺序以及减少个数,那么结果又会不一样。
> 示例如下
```kotlin
elements(PACKAGE_NAME, USER_ID, PRIORITY)
```
以上内容定义的日志将显示为如下样式。
> 示例如下
```:no-line-numbers
[com.demo.test][999][D]--> This is a log
```
## debug <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun debug(msg: String, e: Throwable?, tag: String, env: EnvType)
```
**Change Records**
`v1.2.0` `added`
**Function Illustrate**
> 打印 Debug 级别 Log。
## info <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun info(msg: String, e: Throwable?, tag: String, env: EnvType)
```
**Change Records**
`v1.2.0` `added`
**Function Illustrate**
> 打印 Info 级别 Log。
## warn <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun warn(msg: String, e: Throwable?, tag: String, env: EnvType)
```
**Change Records**
`v1.2.0` `added`
**Function Illustrate**
> 打印 Warn 级别 Log。
## error <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun error(msg: String, e: Throwable?, tag: String, env: EnvType)
```
**Change Records**
`v1.2.0` `added`
**Function Illustrate**
> 打印 Error 级别 Log。
## EnvType <span class="symbol">- class</span>
```kotlin:no-line-numbers
enum class EnvType
```
**Change Records**
`v1.2.0` `added`
**Function Illustrate**
> 需要打印的日志环境类型。
决定于模块与 (Xposed) 宿主环境使用的打印方式。
@@ -44,22 +406,12 @@ LOGD
**Change Records**
`v1.1.0` `added`
`v1.2.0` `added`
**Function Illustrate**
> 仅使用 `android.util.Log`
<h3 class="deprecated">XPOSEDBRIDGE - enum</h3>
**Change Records**
`v1.1.0` `added`
`v1.1.5` `deprecated`
请迁移到 `XPOSED_ENVIRONMENT`
### XPOSED_ENVIRONMENT <span class="symbol">- enum</span>
```kotlin:no-line-numbers
@@ -68,7 +420,7 @@ XPOSED_ENVIRONMENT
**Change Records**
`v1.1.5` `added`
`v1.2.0` `added`
**Function Illustrate**
@@ -88,7 +440,7 @@ SCOPE
**Change Records**
`v1.1.0` `added`
`v1.2.0` `added`
**Function Illustrate**
@@ -106,7 +458,7 @@ BOTH
**Change Records**
`v1.1.0` `added`
`v1.2.0` `added`
**Function Illustrate**
@@ -116,433 +468,12 @@ BOTH
模块环境仅使用 `LOGD`
## YukiLoggerData <span class="symbol">- class</span>
```kotlin:no-line-numbers
data class YukiLoggerData internal constructor(
var timestamp: Long,
var time: String,
var tag: String,
var priority: String,
var packageName: String,
var userId: Int,
var msg: String,
var throwable: Throwable?
) : Serializable
```
**Change Records**
`v1.1.2` `added`
`v1.1.4` `modified`
实现 `Serializable` 接口并标识为 `data class`
**Function Illustrate**
> 调试日志数据实现类。
## YukiHookLogger <span class="symbol">- object</span>
```kotlin:no-line-numbers
object YukiHookLogger
```
**Change Records**
`v1.1.0` `added`
**Function Illustrate**
> 调试日志实现类。
### inMemoryData <span class="symbol">- field</span>
```kotlin:no-line-numbers
val inMemoryData: ArrayList<YukiLoggerData>
```
**Change Records**
`v1.1.2` `added`
`v1.1.4` `modified`
类型由 `HashSet` 修改为 `ArrayList`
**Function Illustrate**
> 当前全部已记录的日志数据。
::: danger
获取到的日志数据在 Hook APP (宿主) 及模块进程中是相互隔离的。
:::
### contents <span class="symbol">- field</span>
```kotlin:no-line-numbers
val contents: String
```
**Change Records**
`v1.1.0` `added`
**Function Illustrate**
> 获取当前日志文件内容。
如果当前没有已记录的日志会返回空字符串。
::: danger
获取到的日志数据在 Hook APP (宿主) 及模块进程中是相互隔离的。
:::
### contents <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun contents(data: ArrayList<YukiLoggerData>): String
```
**Change Records**
`v1.1.5` `added`
**Function Illustrate**
> 获取、格式化当前日志文件内容。
如果当前没有已记录的日志 (`data` 为空) 会返回空字符串。
::: danger
获取到的日志数据在 Hook APP (宿主) 及模块进程中是相互隔离的。
:::
### clear <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun clear()
```
**Change Records**
`v1.1.0` `added`
**Function Illustrate**
> 清除全部已记录的日志。
::: danger
获取到的日志数据在 Hook APP (宿主) 及模块进程中是相互隔离的。
:::
你也可以直接获取 [inMemoryData](#inmemorydata-field) 来清除。
### saveToFile <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun saveToFile(fileName: String, data: ArrayList<YukiLoggerData>)
```
**Change Records**
`v1.1.0` `added`
`v1.1.5` `modified`
新增 `data` 参数
**Function Illustrate**
> 保存当前日志到文件。
若当前未开启 `Configs.isRecord` 或记录为空则不会进行任何操作。
日志文件会追加到 `fileName` 的文件结尾,若文件不存在会自动创建。
::: danger
文件读写权限取决于当前宿主、模块已获取的权限。
:::
### Configs <span class="symbol">- object</span>
```kotlin:no-line-numbers
object Configs
```
**Change Records**
`v1.1.0` `added`
**Function Illustrate**
> 配置 `YukiHookLogger`
#### TAG <span class="symbol">- field</span>
```kotlin:no-line-numbers
const val TAG: Int
```
**Change Records**
`v1.1.0` `added`
**Function Illustrate**
> 标签。
#### PRIORITY <span class="symbol">- field</span>
```kotlin:no-line-numbers
const val PRIORITY: Int
```
**Change Records**
`v1.1.0` `added`
**Function Illustrate**
> 优先级。
#### PACKAGE_NAME <span class="symbol">- field</span>
```kotlin:no-line-numbers
const val PACKAGE_NAME: Int
```
**Change Records**
`v1.1.0` `added`
**Function Illustrate**
> 当前宿主的包名。
#### USER_ID <span class="symbol">- field</span>
```kotlin:no-line-numbers
const val USER_ID: Int
```
**Change Records**
`v1.1.0` `added`
**Function Illustrate**
> 当前宿主的用户 ID (主用户不显示)。
#### isEnable <span class="symbol">- field</span>
```kotlin:no-line-numbers
var isEnable: Boolean
```
**Change Records**
`v1.1.0` `added`
**Function Illustrate**
> 是否启用调试日志的输出功能。
关闭后将会停用 `YukiHookAPI` 对全部日志的输出。
但是不影响当你手动调用下面这些方法输出日志。
`loggerD``loggerI``loggerW``loggerE`
`isEnable` 关闭后 `YukiHookAPI.Configs.isDebug` 也将同时关闭。
#### isRecord <span class="symbol">- field</span>
```kotlin:no-line-numbers
var isRecord: Boolean
```
**Change Records**
`v1.1.0` `added`
**Function Illustrate**
> 是否启用调试日志的记录功能。
开启后将会在内存中记录全部可用的日志和异常堆栈。
需要同时启用 [isEnable](#isenable-field) 才能有效。
::: danger
过量的日志可能会导致宿主运行缓慢或造成频繁 GC。
:::
开启后你可以调用 [YukiHookLogger.saveToFile](#savetofile-method) 实时保存日志到文件或使用 [YukiHookLogger.contents](#contents-field) 获取实时日志文件。
#### tag <span class="symbol">- field</span>
```kotlin:no-line-numbers
var tag: String
```
**Change Records**
`v1.1.0` `added`
**Function Illustrate**
> 这是一个调试日志的全局标识。
默认文案为 `YukiHookAPI`
你可以修改为你自己的文案。
#### elements <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun elements(vararg item: Int)
```
**Change Records**
`v1.1.0` `added`
**Function Illustrate**
> 自定义调试日志对外显示的元素。
只对日志记录和 (Xposed) 宿主环境的日志生效。
日志元素的排列将按照你在 `item` 中设置的顺序进行显示。
你还可以留空 `item` 以不显示除日志内容外的全部元素。
可用的元素有:`TAG``PRIORITY``PACKAGE_NAME``USER_ID`
**Function Example**
打印的日志样式将按照你设置的排列顺序和元素内容进行。
> The following example
```kotlin
elements(TAG, PRIORITY, PACKAGE_NAME, USER_ID)
```
以上内容定义的日志将显示为如下样式。
> The following example
```:no-line-numbers
[YukiHookAPI][D][com.demo.test][999]--> This is a log
```
如果我们调整元素顺序以及减少个数,那么结果又会不一样。
> The following example
```kotlin
elements(PACKAGE_NAME, USER_ID, PRIORITY)
```
以上内容定义的日志将显示为如下样式。
> The following example
```:no-line-numbers
[com.demo.test][999][D]--> This is a log
```
## loggerD <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun loggerD(tag: String, msg: String, type: LoggerType)
```
<h1 class="deprecated">LoggerFactory - kt</h1>
**Change Records**
`v1.0` `first`
`v1.1.0` `modified`
`v1.2.0` `deprecated`
新增 `type` 参数
**Function Illustrate**
> 向 `Logcat` 和 (Xposed) 宿主环境打印日志,级别 `D`
`tag` 的默认参数为 `YukiHookAPI.Configs.debugTag`,你可以进行自定义。
## loggerI <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun loggerI(tag: String, msg: String, type: LoggerType)
```
**Change Records**
`v1.0` `first`
`v1.1.0` `modified`
新增 `type` 参数
**Function Illustrate**
> 向 `Logcat` 和 (Xposed) 宿主环境打印日志,级别 `I`
`tag` 的默认参数为 `YukiHookAPI.Configs.debugTag`,你可以进行自定义。
## loggerW <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun loggerW(tag: String, msg: String, type: LoggerType)
```
**Change Records**
`v1.0` `first`
`v1.1.0` `modified`
新增 `type` 参数
**Function Illustrate**
> 向 `Logcat` 和 (Xposed) 宿主环境打印日志,级别 `W`
`tag` 的默认参数为 `YukiHookAPI.Configs.debugTag`,你可以进行自定义。
## loggerE <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun loggerE(tag: String, msg: String, e: Throwable?, type: LoggerType)
```
**Change Records**
`v1.0` `first`
`v1.1.0` `modified`
新增 `type` 参数
**Function Illustrate**
> 向 `Logcat` 和 (Xposed) 宿主环境打印日志,级别 `E`,可携带 `e` 异常信息,将打印异常堆栈。
`tag` 的默认参数为 `YukiHookAPI.Configs.debugTag`,你可以进行自定义。
请迁移到 `YLog`

View File

@@ -0,0 +1,34 @@
---
pageClass: code-page
---
::: warning
The English translation of this page has not been completed, you are welcome to contribute translations to us.
You can use the **Chrome Translation Plugin** to translate entire pages for reference.
:::
# YLogData <span class="symbol">- class</span>
```kotlin:no-line-numbers
data class YLogData internal constructor(
var timestamp: Long,
var time: String,
var tag: String,
var priority: String,
var packageName: String,
var userId: Int,
var msg: String,
var throwable: Throwable?
) : Serializable
```
**Change Records**
`v1.2.0` `added`
**Function Illustrate**
> 调试日志数据实现类。

View File

@@ -259,7 +259,7 @@ fun checkingVersionEquals(priority: ChannelPriority?, result: (Boolean) -> Unit)
### obtainLoggerInMemoryData <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun obtainLoggerInMemoryData(priority: ChannelPriority?, result: (ArrayList<YukiLoggerData>) -> Unit)
fun obtainLoggerInMemoryData(priority: ChannelPriority?, result: (List<YLogData>) -> Unit)
```
**Change Records**
@@ -272,13 +272,13 @@ fun obtainLoggerInMemoryData(priority: ChannelPriority?, result: (ArrayList<Yuki
**Function Illustrate**
> 获取模块与宿主之间的 `ArrayList<YukiLoggerData>` 数据。
> 获取模块与宿主之间的 `List<YLogData>` 数据。
由于模块与宿主处于不同的进程,我们可以使用数据通讯桥访问各自的调试日志数据。
::: danger
模块与宿主必须启用 [YukiHookLogger.Configs.isRecord](../../log/LoggerFactory#isrecord-field) 才能获取到调试日志数据。
模块与宿主必须启用 [YLog.Configs.isRecord](../../log/YLog#isrecord-field) 才能获取到调试日志数据。
由于 Android 限制了数据传输大小的最大值,如果调试日志过多将会自动进行分段发送,数据越大速度越慢。

View File

@@ -369,7 +369,7 @@ object Configs
### debugLog <span class="symbol">- method</span>
```kotlin:no-line-numbers
inline fun debugLog(initiate: YukiHookLogger.Configs.() -> Unit)
inline fun debugLog(initiate: YLog.Configs.() -> Unit)
```
**变更记录**
@@ -378,7 +378,7 @@ inline fun debugLog(initiate: YukiHookLogger.Configs.() -> Unit)
**功能描述**
> 配置 `YukiHookLogger.Configs` 相关参数。
> 配置 `YLog.Configs` 相关参数。
<h3 class="deprecated">debugTag - field</h3>
@@ -388,7 +388,7 @@ inline fun debugLog(initiate: YukiHookLogger.Configs.() -> Unit)
`v1.1.0` `作废`
请迁移到 `YukiHookLogger.Configs.tag`
请迁移到 `YLog.Configs.tag`
### isDebug <span class="symbol">- field</span>
@@ -414,7 +414,7 @@ var isDebug: Boolean
`v1.1.0` `作废`
请迁移到 `YukiHookLogger.Configs.isEnable`
请迁移到 `YLog.Configs.isEnable`
<h3 class="deprecated">isEnableModulePrefsCache - field</h3>
@@ -620,14 +620,14 @@ object HookEntry : IYukiHookXposedInit {
object HookEntry : IYukiHookXposedInit {
override fun onInit() {
YukiHookLogger.Configs.tag = "YukiHookAPI"
YukiHookLogger.Configs.isEnable = true
YukiHookLogger.Configs.isRecord = false
YukiHookLogger.Configs.elements(
YukiHookLogger.Configs.TAG,
YukiHookLogger.Configs.PRIORITY,
YukiHookLogger.Configs.PACKAGE_NAME,
YukiHookLogger.Configs.USER_ID
YLog.Configs.tag = "YukiHookAPI"
YLog.Configs.isEnable = true
YLog.Configs.isRecord = false
YLog.Configs.elements(
YLog.Configs.TAG,
YLog.Configs.PRIORITY,
YLog.Configs.PACKAGE_NAME,
YLog.Configs.USER_ID
)
YukiHookAPI.Configs.isDebug = BuildConfig.DEBUG
YukiHookAPI.Configs.isEnableModuleAppResourcesCache = true

View File

@@ -2,166 +2,29 @@
pageClass: code-page
---
# LoggerFactory <span class="symbol">- kt</span>
**变更记录**
`v1.0` `添加`
**功能描述**
> 这是 `YukiHookAPI` 的日志封装类,可实现同时向 `Logcat` 和 (Xposed) 宿主环境打印日志的功能。
## LoggerType <span class="symbol">- class</span>
# YLog <span class="symbol">- object</span>
```kotlin:no-line-numbers
enum class LoggerType
object YLog
```
**变更记录**
`v1.1.0` `新增`
`v1.2.0` `新增`
**功能描述**
> 需要打印的日志类型
> 全局 Log 管理类
决定于模块与 (Xposed) 宿主环境使用的打印方式。
### LOGD <span class="symbol">- enum</span>
## inMemoryData <span class="symbol">- field</span>
```kotlin:no-line-numbers
LOGD
val inMemoryData: MutableList<YLogData>
```
**变更记录**
`v1.1.0` `新增`
**功能描述**
> 仅使用 `android.util.Log`
<h3 class="deprecated">XPOSEDBRIDGE - enum</h3>
**变更记录**
`v1.1.0` `新增`
`v1.1.5` `作废`
请迁移到 `XPOSED_ENVIRONMENT`
### XPOSED_ENVIRONMENT <span class="symbol">- enum</span>
```kotlin:no-line-numbers
XPOSED_ENVIRONMENT
```
**变更记录**
`v1.1.5` `新增`
**功能描述**
> 仅在 (Xposed) 宿主环境使用。
::: danger
只能在 (Xposed) 宿主环境中使用,模块环境将不生效。
:::
### SCOPE <span class="symbol">- enum</span>
```kotlin:no-line-numbers
SCOPE
```
**变更记录**
`v1.1.0` `新增`
**功能描述**
> 分区使用。
(Xposed) 宿主环境仅使用 `XPOSED_ENVIRONMENT`
模块环境仅使用 `LOGD`
### BOTH <span class="symbol">- enum</span>
```kotlin:no-line-numbers
BOTH
```
**变更记录**
`v1.1.0` `新增`
**功能描述**
> 同时使用。
(Xposed) 宿主环境使用 `LOGD``XPOSED_ENVIRONMENT`
模块环境仅使用 `LOGD`
## YukiLoggerData <span class="symbol">- class</span>
```kotlin:no-line-numbers
data class YukiLoggerData internal constructor(
var timestamp: Long,
var time: String,
var tag: String,
var priority: String,
var packageName: String,
var userId: Int,
var msg: String,
var throwable: Throwable?
) : Serializable
```
**变更记录**
`v1.1.2` `新增`
`v1.1.4` `修改`
实现 `Serializable` 接口并标识为 `data class`
**功能描述**
> 调试日志数据实现类。
## YukiHookLogger <span class="symbol">- object</span>
```kotlin:no-line-numbers
object YukiHookLogger
```
**变更记录**
`v1.1.0` `新增`
**功能描述**
> 调试日志实现类。
### inMemoryData <span class="symbol">- field</span>
```kotlin:no-line-numbers
val inMemoryData: ArrayList<YukiLoggerData>
```
**变更记录**
`v1.1.2` `新增`
`v1.1.4` `修改`
类型由 `HashSet` 修改为 `ArrayList`
`v1.2.0` `新增`
**功能描述**
@@ -173,7 +36,7 @@ val inMemoryData: ArrayList<YukiLoggerData>
:::
### contents <span class="symbol">- field</span>
## contents <span class="symbol">- field</span>
```kotlin:no-line-numbers
val contents: String
@@ -181,7 +44,7 @@ val contents: String
**变更记录**
`v1.1.0` `新增`
`v1.2.0` `新增`
**功能描述**
@@ -195,15 +58,15 @@ val contents: String
:::
### contents <span class="symbol">- method</span>
## contents <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun contents(data: ArrayList<YukiLoggerData>): String
fun contents(data: List<YLogData>): String
```
**变更记录**
`v1.1.5` `新增`
`v1.2.0` `新增`
**功能描述**
@@ -217,7 +80,7 @@ fun contents(data: ArrayList<YukiLoggerData>): String
:::
### clear <span class="symbol">- method</span>
## clear <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun clear()
@@ -225,7 +88,7 @@ fun clear()
**变更记录**
`v1.1.0` `新增`
`v1.2.0` `新增`
**功能描述**
@@ -239,19 +102,15 @@ fun clear()
:::
### saveToFile <span class="symbol">- method</span>
## saveToFile <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun saveToFile(fileName: String, data: ArrayList<YukiLoggerData>)
fun saveToFile(fileName: String, data: List<YLogData>)
```
**变更记录**
`v1.1.0` `新增`
`v1.1.5` `修改`
新增 `data` 参数
`v1.2.0` `新增`
**功能描述**
@@ -267,7 +126,7 @@ fun saveToFile(fileName: String, data: ArrayList<YukiLoggerData>)
:::
### Configs <span class="symbol">- object</span>
## Configs <span class="symbol">- object</span>
```kotlin:no-line-numbers
object Configs
@@ -275,13 +134,13 @@ object Configs
**变更记录**
`v1.1.0` `新增`
`v1.2.0` `新增`
**功能描述**
> 配置 `YukiHookLogger`
#### TAG <span class="symbol">- field</span>
### TAG <span class="symbol">- field</span>
```kotlin:no-line-numbers
const val TAG: Int
@@ -289,13 +148,13 @@ const val TAG: Int
**变更记录**
`v1.1.0` `新增`
`v1.2.0` `新增`
**功能描述**
> 标签。
#### PRIORITY <span class="symbol">- field</span>
### PRIORITY <span class="symbol">- field</span>
```kotlin:no-line-numbers
const val PRIORITY: Int
@@ -303,13 +162,13 @@ const val PRIORITY: Int
**变更记录**
`v1.1.0` `新增`
`v1.2.0` `新增`
**功能描述**
> 优先级。
#### PACKAGE_NAME <span class="symbol">- field</span>
### PACKAGE_NAME <span class="symbol">- field</span>
```kotlin:no-line-numbers
const val PACKAGE_NAME: Int
@@ -317,13 +176,13 @@ const val PACKAGE_NAME: Int
**变更记录**
`v1.1.0` `新增`
`v1.2.0` `新增`
**功能描述**
> 当前宿主的包名。
#### USER_ID <span class="symbol">- field</span>
### USER_ID <span class="symbol">- field</span>
```kotlin:no-line-numbers
const val USER_ID: Int
@@ -331,13 +190,31 @@ const val USER_ID: Int
**变更记录**
`v1.1.0` `新增`
`v1.2.0` `新增`
**功能描述**
> 当前宿主的用户 ID (主用户不显示)。
#### isEnable <span class="symbol">- field</span>
### tag <span class="symbol">- field</span>
```kotlin:no-line-numbers
var tag: String
```
**变更记录**
`v1.2.0` `新增`
**功能描述**
> 这是一个调试日志的全局标识。
默认文案为 `YukiHookAPI`
你可以修改为你自己的文案。
### isEnable <span class="symbol">- field</span>
```kotlin:no-line-numbers
var isEnable: Boolean
@@ -345,7 +222,7 @@ var isEnable: Boolean
**变更记录**
`v1.1.0` `新增`
`v1.2.0` `新增`
**功能描述**
@@ -355,11 +232,11 @@ var isEnable: Boolean
但是不影响当你手动调用下面这些方法输出日志。
`loggerD``loggerI``loggerW``loggerE`
`debug``info``warn``error`
`isEnable` 关闭后 `YukiHookAPI.Configs.isDebug` 也将同时关闭。
#### isRecord <span class="symbol">- field</span>
### isRecord <span class="symbol">- field</span>
```kotlin:no-line-numbers
var isRecord: Boolean
@@ -367,7 +244,7 @@ var isRecord: Boolean
**变更记录**
`v1.1.0` `新增`
`v1.2.0` `新增`
**功能描述**
@@ -383,27 +260,9 @@ var isRecord: Boolean
:::
开启后你可以调用 [YukiHookLogger.saveToFile](#savetofile-method) 实时保存日志到文件或使用 [YukiHookLogger.contents](#contents-field) 获取实时日志文件。
开启后你可以调用 [YLog.saveToFile](#savetofile-method) 实时保存日志到文件或使用 [YLog.contents](#contents-field) 获取实时日志文件。
#### tag <span class="symbol">- field</span>
```kotlin:no-line-numbers
var tag: String
```
**变更记录**
`v1.1.0` `新增`
**功能描述**
> 这是一个调试日志的全局标识。
默认文案为 `YukiHookAPI`
你可以修改为你自己的文案。
#### elements <span class="symbol">- method</span>
### elements <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun elements(vararg item: Int)
@@ -411,7 +270,7 @@ fun elements(vararg item: Int)
**变更记录**
`v1.1.0` `新增`
`v1.2.0` `新增`
**功能描述**
@@ -459,82 +318,154 @@ elements(PACKAGE_NAME, USER_ID, PRIORITY)
[com.demo.test][999][D]--> This is a log
```
## loggerD <span class="symbol">- method</span>
## debug <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun loggerD(tag: String, msg: String, type: LoggerType)
fun debug(msg: String, e: Throwable?, tag: String, env: EnvType)
```
**变更记录**
`v1.2.0` `新增`
**功能描述**
> 打印 Debug 级别 Log。
## info <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun info(msg: String, e: Throwable?, tag: String, env: EnvType)
```
**变更记录**
`v1.2.0` `新增`
**功能描述**
> 打印 Info 级别 Log。
## warn <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun warn(msg: String, e: Throwable?, tag: String, env: EnvType)
```
**变更记录**
`v1.2.0` `新增`
**功能描述**
> 打印 Warn 级别 Log。
## error <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun error(msg: String, e: Throwable?, tag: String, env: EnvType)
```
**变更记录**
`v1.2.0` `新增`
**功能描述**
> 打印 Error 级别 Log。
## EnvType <span class="symbol">- class</span>
```kotlin:no-line-numbers
enum class EnvType
```
**变更记录**
`v1.2.0` `新增`
**功能描述**
> 需要打印的日志环境类型。
决定于模块与 (Xposed) 宿主环境使用的打印方式。
### LOGD <span class="symbol">- enum</span>
```kotlin:no-line-numbers
LOGD
```
**变更记录**
`v1.2.0` `新增`
**功能描述**
> 仅使用 `android.util.Log`
### XPOSED_ENVIRONMENT <span class="symbol">- enum</span>
```kotlin:no-line-numbers
XPOSED_ENVIRONMENT
```
**变更记录**
`v1.2.0` `新增`
**功能描述**
> 仅在 (Xposed) 宿主环境使用。
::: danger
只能在 (Xposed) 宿主环境中使用,模块环境将不生效。
:::
### SCOPE <span class="symbol">- enum</span>
```kotlin:no-line-numbers
SCOPE
```
**变更记录**
`v1.2.0` `新增`
**功能描述**
> 分区使用。
(Xposed) 宿主环境仅使用 `XPOSED_ENVIRONMENT`
模块环境仅使用 `LOGD`
### BOTH <span class="symbol">- enum</span>
```kotlin:no-line-numbers
BOTH
```
**变更记录**
`v1.2.0` `新增`
**功能描述**
> 同时使用。
(Xposed) 宿主环境使用 `LOGD``XPOSED_ENVIRONMENT`
模块环境仅使用 `LOGD`
<h1 class="deprecated">LoggerFactory - kt</h1>
**变更记录**
`v1.0` `添加`
`v1.1.0` `修改`
`v1.2.0` `作废`
新增 `type` 参数
**功能描述**
> 向 `Logcat` 和 (Xposed) 宿主环境打印日志,级别 `D`
`tag` 的默认参数为 `YukiHookAPI.Configs.debugTag`,你可以进行自定义。
## loggerI <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun loggerI(tag: String, msg: String, type: LoggerType)
```
**变更记录**
`v1.0` `添加`
`v1.1.0` `修改`
新增 `type` 参数
**功能描述**
> 向 `Logcat` 和 (Xposed) 宿主环境打印日志,级别 `I`
`tag` 的默认参数为 `YukiHookAPI.Configs.debugTag`,你可以进行自定义。
## loggerW <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun loggerW(tag: String, msg: String, type: LoggerType)
```
**变更记录**
`v1.0` `添加`
`v1.1.0` `修改`
新增 `type` 参数
**功能描述**
> 向 `Logcat` 和 (Xposed) 宿主环境打印日志,级别 `W`
`tag` 的默认参数为 `YukiHookAPI.Configs.debugTag`,你可以进行自定义。
## loggerE <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun loggerE(tag: String, msg: String, e: Throwable?, type: LoggerType)
```
**变更记录**
`v1.0` `添加`
`v1.1.0` `修改`
新增 `type` 参数
**功能描述**
> 向 `Logcat` 和 (Xposed) 宿主环境打印日志,级别 `E`,可携带 `e` 异常信息,将打印异常堆栈。
`tag` 的默认参数为 `YukiHookAPI.Configs.debugTag`,你可以进行自定义。
请迁移到 `YLog`

View File

@@ -0,0 +1,26 @@
---
pageClass: code-page
---
# YLogData <span class="symbol">- class</span>
```kotlin:no-line-numbers
data class YLogData internal constructor(
var timestamp: Long,
var time: String,
var tag: String,
var priority: String,
var packageName: String,
var userId: Int,
var msg: String,
var throwable: Throwable?
) : Serializable
```
**变更记录**
`v1.2.0` `新增`
**功能描述**
> 调试日志数据实现类。

View File

@@ -251,7 +251,7 @@ fun checkingVersionEquals(priority: ChannelPriority?, result: (Boolean) -> Unit)
### obtainLoggerInMemoryData <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun obtainLoggerInMemoryData(priority: ChannelPriority?, result: (ArrayList<YukiLoggerData>) -> Unit)
fun obtainLoggerInMemoryData(priority: ChannelPriority?, result: (List<YLogData>) -> Unit)
```
**变更记录**
@@ -264,13 +264,13 @@ fun obtainLoggerInMemoryData(priority: ChannelPriority?, result: (ArrayList<Yuki
**功能描述**
> 获取模块与宿主之间的 `ArrayList<YukiLoggerData>` 数据。
> 获取模块与宿主之间的 `List<YLogData>` 数据。
由于模块与宿主处于不同的进程,我们可以使用数据通讯桥访问各自的调试日志数据。
::: danger
模块与宿主必须启用 [YukiHookLogger.Configs.isRecord](../../log/LoggerFactory#isrecord-field) 才能获取到调试日志数据。
模块与宿主必须启用 [YLog.Configs.isRecord](../../log/YLog#isrecord-field) 才能获取到调试日志数据。
由于 Android 限制了数据传输大小的最大值,如果调试日志过多将会自动进行分段发送,数据越大速度越慢。