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

相关推荐
杉氧几秒前
Compose 渲染内核 (3):Slot Table 与 Gap Buffer —— 极速重组的数学艺术
android·架构·android jetpack
阿巴斯甜1 小时前
ContentObserver的使用:
android
casual_clover1 小时前
【Android 控件】使用 Navigation 实现底部导航功能时左右滑动退出页面功能
android·底部导航滑动退出
urkay-1 小时前
Kotlin Flow分类
android·开发语言·kotlin
阿pin2 小时前
Android随笔-MVC/MVP/MVVM/MVI
android·mvc·mvvm·mvp·mvi
阿pin2 小时前
Android随笔-View绘制流程
android·开发语言·view
2501_916008892 小时前
iOS 证书管理最佳实践 从创建到续期的完整指南
android·ios·小程序·https·uni-app·iphone·webview
Digitally3 小时前
9 款优质无线传输软件,实现安卓设备与电脑互传数据
android·电脑
私人珍藏库11 小时前
[Android] PeakFinder AR v4.8.89 (山峰全景识别+增强现实山峰查看器)
android·人工智能·智能手机·ar·工具·软件
researcher-Jiang12 小时前
高性能计算之OpenMP——超算习堂学习1
android·java·学习