通过插件去除Kotlin混淆去除 @Metadata标记

在Kotlin中,Metadata是指描述Kotlin类的元数据。它包含了关于类的属性、函数、注解和其他信息的描述。Metadata的作用主要有以下几个方面:

  • 反射:Metadata可以用于在运行时获取类的信息,包括类的名称、属性、函数等。通过反射,我们可以在运行时动态地访问和操作类的成员。

  • 序列化和反序列化:Metadata可以用于将类的信息转换为字节流并进行存储或传输。这样就可以将类的状态保存下来,以便在需要时进行恢复或重建。

  • 虚拟机优化:Metadata中的信息可以帮助虚拟机进行优化,例如对类的成员进行内联、优化函数调用等。这样可以提高程序的性能和效率。

如:

复制代码
@Metadata(
  mv = {1, 1, 9},
  bv = {1, 0, 2},
  k = 1,
  d1 = {"..."},
  d2 = {"Lcom/bennyhuo/kotlinspecifics/reflect/SubClass;", "Lcom/bennyhuo/kotlinspecifics/reflect/SuperClass;", "()V", "Companion", "production sources for module app"}
)

public final class SubClass extends SuperClass {
   ...
}

但是这些内容会暴漏一些信息

使用 https://github.com/oliver-jonas/unmeta 插件,能够在打包时移除class中的Metadata标签信息

目前尝试的是将本地项目移动到unmeta项目进行发布aar的方式,是可以使用的。

相关推荐
alexhilton35 分钟前
玩转Shader之学会如何变形画布
android·kotlin·android jetpack
whysqwhw5 小时前
安卓图片性能优化技巧
android
风往哪边走5 小时前
自定义底部筛选弹框
android
Yyyy4826 小时前
MyCAT基础概念
android
Android轮子哥6 小时前
尝试解决 Android 适配最后一公里
android
雨白7 小时前
OkHttp 源码解析:enqueue 非同步流程与 Dispatcher 调度
android
风往哪边走8 小时前
自定义仿日历组件弹框
android
没有了遇见8 小时前
Android 外接 U 盘开发实战:从权限到文件复制
android
Monkey-旭9 小时前
Android 文件存储机制全解析
android·文件存储·kolin
zhangphil9 小时前
Android Coil 3拦截器Interceptor计算单次请求耗时,Kotlin
android·kotlin