哪些因素在选择目标Android OS进行开发方面很重要



在选择目标Android OS进行应用程序开发之前,我需要考虑什么?

这是我对如何做的理解,任何澄清都将不胜感激:

  1. 确定当前使用哪种OS版本。查看分布图等。
  2. 针对该版本。

这就是我一直在阅读的内容,但是我有一些问题。

假设4.0是Android电话消费者中使用最多的版本,因此我应该以4.0为目标。现在,假设我不使用4.0唯一的功能。我的应用程序是否可以使用4.0以下的任何版本,包括1.5、2.3等?考虑相反的情况。如果我针对2.3版,并且我的应用仅使用2.3可用的功能,我的应用程序将在运行4.0版的电话上使用,即使我不会使用版本4.0唯一的功能?

谢谢。

请查看您的androidManifest.xml
如果要支持运行2.2及以上的所有设备,则有一个targetSdkVersionminSdkVersion但总的来说,对于针对目标的最新API(目前API 19,Android 4.4),这是一种很好的做法,因此您可以确保它可以从所选的最小钟到最新的OS API

因此,如果您想至少支持姜饼,请在您的清单中执行此操作:

<uses-sdk android:minSdkVersion="9"
    android:targetSdkVersion="19" />

并反对API 19:)

假设4.0是Android电话消费者中使用最多的版本,因此我应该以4.0为目标。现在,假设我不使用新功能4.0的功能。我的应用程序是否可以使用4.0以下的任何版本(包括1.5、2.3等)工作?

仅当您不使用希望该应用程序运行的最早版本之后引入的API时。

如果我针对2.3版,并且如果我的应用仅使用2.3可用的功能,我的应用程序在运行4.0版的手机上也可以使用,即使我不会使用版本4.0唯一的功能?

是。有些功能在较新的OS版本中被弃用,但其中大多数仍然可以在较新的版本中起作用以保持兼容性。

我觉得在这里强调的是Android是向后兼容,因此较新版本几乎可以运行为较旧的OS版本开发的应用程序。

目标版本是您已测试的最高版本。如果可以的话,您应该始终瞄准绝对最新的目标。最低版本是能够安装应用程序的最低版本。

因此,在清单中,您通常会有类似的东西:

<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="19" ...

根据您的应用程序运行绝对需要的功能选择minSdkVersion

因此,您可能会想知道targetSdkVersion的目的是什么。原因之一是您的应用程序具有一些可选功能,这些功能是SDK的以后版本。targetSdkVersion将允许您使用这些以后的功能,但是您需要使用

之类的呼叫来保护这些方法呼叫
if (Build.VERSION.SDK_INT >= 11)
    myMethodThatUsesFeaturesOnlyInHoneycombAndLater();

另一个原因是,有时Android团队会更改您类的各种设置中的某些默认值,但是要维持未测试应用程序的将来版本的兼容性,如果您的应用程序不使用,则它们会保留旧默认值't声称以此为目标。

例如,在蜂窝之后,菜单应该与动作栏集成在一起。但是,与较早的SDK一起编译的旧应用程序尚未与Honeycomb或更晚进行测试,因为它们的targetSdkVersion少于11,因此OS知道显示旧样式的菜单。一旦该开发人员决定在最近的targetSdkVersion上测试其应用程序,他们会更新该值,并且操作系统可以相信他们已经在蜂窝上测试了它,因此它可以安全地显示新样式菜单。

最新更新