gpt4 book ai didi

java - 在 Android 上的 dalvik 中动态类重新加载

转载 作者:行者123 更新时间:2023-11-29 21:44:46 24 4
gpt4 key购买 nike

我试图了解我是否可以在运行于 Android 的 Dalvik 虚拟机中动态重新加载现有类/加载新类。在线搜索给了我一些混合的答案:

What can you not do on the Dalvik VM (Android's VM) that you can in Sun VM?

How to load a Java class dynamically on android/dalvik?

http://android-developers.blogspot.com/2011/07/custom-class-loading-in-dalvik.html

http://larshamren.blogspot.com/2012/02/android-dynamically-loading-classes.html

有人可以确认是否可以在 Android 上这样做吗?它的工作方式是否与 Sun 的 vm 完全相同,也许除了 Dalvik 加载 .dex 文件并且它们需要打包在 jar 中之外? Android平台做类加载有什么限制吗?如果有关于此的官方 Dalvik 文档,那就太好了。

最佳答案

android-developers您列出的文章显示了如何使用“插件”方法通过 DexClassLoader 在 Dalvik 中加载类。

它的工作方式应该是,如果不再有对 ClassLoader 或从中加载的任何类的引用,则可以对类本身进行垃圾回收。实际上,当前版本的 Dalvik(Android 4.2“Jellybean”)不支持类卸载,因此类会保留。

您可以定义一个新的 DexClassLoader 并加载这些类的新版本,但是您会泄漏以前的副本。这可能是问题,也可能不是问题,具体取决于您期望加载一组新类的频率以及它们的大小。

关于java - 在 Android 上的 dalvik 中动态类重新加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16159473/

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