gpt4 book ai didi

android - 在我的应用程序 APK 中包含早期版本的 android 框架 JAR?

转载 作者:行者123 更新时间:2023-11-29 18:09:13 25 4
gpt4 key购买 nike

我构建了一个在 Android 2.3.* 和 4.0.* 上运行良好的 Android 应用程序。但是,将我的设备升级到 Jelly Bean (4.1.1) 后,我发现我的应用程序不再正常运行(崩溃、ANR 等)。

作为临时解决方法,我想知道是否可以将 Android 框架 JAR 的早期版本(例如 Android 2.3)打包到我的 APK 中并强制我的所有代码使用该 JAR 中的类/API?

我认为在我的 APK 中包含 JAR 应该更容易。但我不知道如何在运行时强制我的代码使用 JAR 中的类/API。

我知道这不是一个像样的修复(黑客攻击、包大小、法律问题等),即使它会起作用。但我只是好奇它是否可行。

如有任何建议或提示,我们将不胜感激!

(编辑)

我尝试了以下方法:

  1. 从 Android 2.3 ROM 中提取了 /system/framework/framework.odex
  2. 对其进行解压缩并将其转换为 JAR 文件(例如 framework.jar);
  3. 我验证了 framework.jar,它包含实际的框架代码,而不是 stub 方法;
  4. 将framework.jar放入我项目的libs文件夹,构建APK;
  5. 我验证了结果 APK,并且确实包含了 android 框架类。

但是,我的代码似乎仍在使用安装在 Android 设备中的实际 SDK 版本的类/API。 :(

(编辑)

出于性能原因,Zygote 在系统启动期间似乎已经从设备 (/system/framework/framework.odex) 预加载了所有框架/核心类。因此,即使我已将这些类包含在我们的 APK 中,预加载的类仍将被实例化。

这对我来说听起来像是死胡同... :(

最佳答案

As a temporary workaround, I am wondering if it is possible to pack an earlier version (say Android 2.3) of the Android framework JAR into my APK and force all my code to use classes/APIs in that JAR?

抱歉,这是不可能的。您所认为的“Android 框架 JAR”没有代码——它只是 Android SDK 中公开的类和方法的 stub 实现。真正的 Android 框架驻留在固件中,您无法替换它。

关于android - 在我的应用程序 APK 中包含早期版本的 android 框架 JAR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11649463/

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