当我将minSDK级别设置为4时,我正在阅读的内容和发生的错误让我有点转弯。您可能会认为,当平台的新版本生成时,它将向后兼容早期版本;因此,如果我在SDK 17中创建软件,使用其功能将在使用早期版本(如4)的设备上运行。但事实似乎并非如此。因为我买了一部运行android 2.3.6版本的手机,所以我想确保我开发的软件可以在这台手机和其他旧设备上运行,也可以在新的操作系统上运行。但似乎并不能保证向后兼容性。所以,开发者是只针对更新的设备进行开发,还是有一种方法可以确保我在新环境中编写的内容能够在设备上运行,而无需跳过一堆障碍?我正在尝试使用支持库,但它似乎没有新版本的所有api。能否以某种方式将所需的api导入到支持库中?如果有的话,你能给我指一篇这样做的文章吗?
我试图创建一个在操作栏中有标签的应用程序,使用活动和片段,我不断得到版本不匹配的错误,说明类似的东西,"最低SDK级别是4。应该是13英寸。
我很确定我可以让这个应用程序在更新的设备上工作,但我肯定不是所有的潜在用户都有新手机。所以,我在寻求你的见解,以解决我认为是一个持续存在的问题。
感谢您的真知灼见。
谢谢
你可能会认为,当一个新版本的平台被生成时,它将向后兼容早期的版本;因此,如果我在SDK 17中创建软件,使用其功能将在使用较早版本的设备上运行,例如4,或任何
API Level 4中存在的特性通常在API Level 17中存在,并且支持这些特性的代码通常是向后兼容的。
然而,新版本的Android有附加功能。这些不一定是向后兼容的,因为根据定义,它们是更新的和附加的。
那么,一个人只是为新设备开发,还是有一种方法可以确保我在新环境中编写的内容可以在设备上运行,而不必跳过一堆障碍?
一个人当然可以开发出适用于旧设备和新设备的应用程序。存在于旧设备和新设备上的api,您只需使用,通常不会出现问题。只存在于新设备上的api,你必须注意不要在旧设备上使用这些功能。有多种技术可以做到这一点,例如通过检查Build.VERSION.SDK_INT
并跳过旧设备上的新API内容。
由于没有"jump through a bunch of hoops"的规范定义,您需要自己决定。它确实要求您能够阅读文档,因为其中有相当多的文档是关于如何构建向后兼容的应用程序的,例如关于开发向后兼容的ui的讨论。还有大量的博客文章和类似的内容涵盖了向后兼容开发的具体方面,可以通过您最喜欢的搜索引擎获得。
我正在尝试使用支持库,但它似乎没有新版本的所有api
它不应该有,也没有被宣传为有。它有一些东西的后台,但不是所有的。在一定程度上,这只是一个工程时间的问题。在某种程度上,这是因为有些东西不能向后移植,因为它们是对操作系统的核心更改,而不仅仅是框架类。
我试图创建一个在操作栏中有标签的应用程序,使用活动和片段,我不断得到版本不匹配的错误,说明类似的东西,"最低SDK级别是4。应该是13"
正如abbath所指出的,操作栏不是Android支持包的一部分,尽管ActionBarSherlock填补了这个角色。类似的后端口也可以用于Android支持包中没有的其他东西,可以在AndroidViews.net等网站上找到。
ActionBar是不久前才引入的,这就是为什么你需要API level 13才能使用它。
如果你想使用带有选项卡的ActionBar,但也想为较低的sdk版本开发,请尝试使用兼容性库,例如ActionBarSherlock