gpt4 book ai didi

java - Android 运行时字节码操作

转载 作者:行者123 更新时间:2023-12-01 07:51:45 24 4
gpt4 key购买 nike

我想知道为什么 Android 运行时字节码操作不可能的原因?是因为目前没有支持库还是因为DEX格式是无法操作的

最佳答案

在运行时,类加载后,该类的定义就无法修改。对于任何类似 JVM 的系统都是如此,包括 Android 的 Dalvik。不过,您可以在编译之后但在包含到 APK 之前修改类,我已经在 Android 应用工具中进行了广泛的修改。 APK 构建后,您无法进行任何更改,因为 APK 已签名以验证存档的内容。

不要与 Objective-C 中称为方法调配的类似技术相混淆,它确实允许您在运行时有效地更改对象定义。 Objective-C 运行时是可变的,而 JVM 运行时则不然。

如果您想在将外部 dex 加载到 Android 应用程序之前对其进行修改,您也可以这样做,但同样,一旦类已被 ClassLoader 加载,它们就无法修改。

关于java - Android 运行时字节码操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36205725/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com