gpt4 book ai didi

android - Robolectric:ShadowApplication?

转载 作者:太空狗 更新时间:2023-10-29 15:55:32 26 4
gpt4 key购买 nike

我通过 stackoverflow 和谷歌在一些代码中看到很多对 ShadowApplication 的引用,但我不知道它做了什么。

我不知道我是否缺少一些文档资源,但我无法提供任何好的资源,javadoc api 也没有解释太多。

谁能提供有关 ShadowApplication 的更多信息,是否有更多资源,即培训、教程?

我确信除了 ShadowApplication 之外我还缺少很多东西

最佳答案

为了禁止在 JVM 而不是 Dalvik VM 中运行 android 代码,谷歌剥离了 android.jar 文件中的类,并将它们的所有方法体替换为:

throws new RuntimeException("Stub!");

一般来说,Robolectric 使用带有 View 和资源加载的影子对象来解决这个问题。

阴影对象是如何工作的?

  • Robolectric 拦截被测 Android 类的加载。
  • 重写 Android 类的方法主体(使用 javassist)。
  • 将影子对象绑定(bind)到新的 Android 对象。
  • 修改后的 Android 对象代理方法调用影子对象。
  • 阴影支持 Android 类(class)。即 ShadowImageView 支持 ImageView 类。
  • 对 Android 对象的方法调用将代理到具有相同签名的影子对象的方法(如果存在)。
  • 提供基本行为的简单实现。
  • 记录状态,以便在测试中验证。

查看主题演讲 herethis youtube session了解更多详情。

关于android - Robolectric:ShadowApplication?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11626380/

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