gpt4 book ai didi

android - 向后兼容性和 Android Open Accessory 库

转载 作者:行者123 更新时间:2023-11-29 02:07:39 24 4
gpt4 key购买 nike

问题:我正在编写一个 Android 应用程序,它的一个功能需要 Open Accessory 兼容性,这仅适用于 3.1 及更高版本(以及某些 2.3 版本的向后移植。 4).我需要的包(android.hardware.usb 或 android.future.usb)在早期的 API 级别中完全不存在,但我需要该应用程序至少在 Android 2.2 上运行。现在,它甚至不会安装(我在 Eclipse 中得到“INSTALL_FAILED_MISSING_SHARED_LIBRARY”)。

我已经做了一些研究并提出了以下可能的解决方案,但我需要帮助来选择哪个是“最好的”(最容易实现、最干净、最容易维护、最合乎逻辑...)或者是否有我忽略的另一个解决方案。


解决方案#1:创建项目的两个分支:一个支持配件,一个用于旧手机。

专业版:保持整洁,我可以将一个项目指定为仅限手机,另一个指定为仅限平板电脑。

缺点:需要我设置一个库项目或编写某种自定义构建脚本,这样我就不必在两个项目中复制我的所有代码。


解决方案#2:使用反射在运行时手动加载必要的类,如果类不存在则抛出异常。

优点:我可以保持向后兼容性,而无需创建多个项目。

缺点:看起来有点乱/hacky


简而言之......我如何使用仅存在于 API 级别 12 及更高级别的包,但仍让应用程序在早期版本上运行?

如有任何建议,我们将不胜感激。谢谢!

最佳答案

我最终选择了Library Project 解决方案。绝大多数应用程序代码都在 Library 项目中,但与 Open Accessory 相关的所有内容都已移至其自己的项目中。由于共享了如此多的代码,它实际上最终变得非常容易维护。无需复杂的构建脚本!

关于android - 向后兼容性和 Android Open Accessory 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9137147/

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