通过插件去除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的方式,是可以使用的。

相关推荐
Chrome深度玩家1 小时前
谷歌翻译安卓版拍照翻译精准度与语音识别评测【轻松交流】
android·人工智能·语音识别
长点点1 小时前
从架构角度了解安卓APP(1):安卓核心组件的设计逻辑与演进
android·架构·app
用户71887350336801 小时前
Android适配最新SplashScreen方案
android·android jetpack
EQ-雪梨蛋花汤2 小时前
【Part 2安卓原生360°VR播放器开发实战】第二节|基于等距圆柱投影方式实现全景视频渲染
android·音视频·vr
Railshiqian2 小时前
Framework.jar里的类无法通过Class.forName反射某个类的问题排查
android·反射·framework.jar
鸿蒙布道师3 小时前
鸿蒙NEXT开发正则工具类RegexUtil(ArkTs)
android·ios·华为·harmonyos·arkts·鸿蒙系统·huawei
Anger重名了3 小时前
🌟 一篇文章搞懂Kotlin协程:比线程更轻量的并发神器
android
缘来的精彩4 小时前
adb常用的20个命令
android·adb·kotlin
tangweiguo030519874 小时前
Android kotlin通知功能完整实现指南:从基础到高级功能
android·kotlin