Skip to content

runforprogram/android-delete-log

Repository files navigation

Android Log 删除工具

移除 java 和 kotlin 代码中的Log 调用,使用R8时不能移除StringBuilder 的代码。能够减少包体积和代码泄露风险

原理

  • Java 使用 annotationProcessor 机制移除
  • Kotlin 使用 KCP (Kotlin Compiler Plugin) 机制移除

发布到本地Maven仓库

要将插件发布到本地Maven仓库,请执行以下命令:

# 发布Java注解处理器
./gradlew :java-log-remover-processor:publishToMavenLocal

# 发布Kotlin编译器插件
./gradlew :kotlin-log-remover-plugin:publishToMavenLocal

在其他项目中使用

1. 配置项目的build.gradle

在项目根目录的build.gradle文件中添加以下配置:

buildscript {
    repositories {
        mavenLocal() // 添加本地Maven仓库
        // 其他仓库...
    }
    dependencies {
        // 添加Kotlin日志移除插件
        classpath 'com.delete.android.log:kotlin-log-remover-plugin:1.0.0'
        // 其他依赖...
    }
}

allprojects {
    repositories {
        mavenLocal() // 添加本地Maven仓库
        // 其他仓库...
    }
}

2. 配置应用模块的build.gradle

在应用模块的build.gradle文件中添加以下配置:

// 应用Kotlin日志移除插件
apply plugin: 'com.delete.android.log.kotlin-remover'

dependencies {
    // 添加Java日志移除注解处理器
    annotationProcessor 'com.delete.android.log:java-log-remover-processor:1.0.0'
    // 其他依赖...
}

// 配置Kotlin日志移除插件
logRemover {
    enabled = true // 启用日志移除
    logMethods = ['v', 'd', 'i', 'w', 'e', 'wtf'] // 要移除的日志方法
}

3. 使用效果

插件会在编译时移除所有的Android日志调用:

  • Java代码中的Log.d(), Log.i(), Log.e()等调用
  • Kotlin代码中的Log.d(), Log.i(), Log.e()等调用

这样可以确保发布版本中不包含调试日志,同时在开发过程中仍然可以使用日志进行调试。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors