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

时间:2014-02-05 14:04:07

标签: android operating-system version target

在为应用开发选择目标Android操作系统之前,我需要考虑什么?

这是我对如何做到这一点的理解,任何澄清都将受到赞赏:

  1. 确定当前使用的操作系统版本最多。查看分布图等。
  2. 定位该版本。
  3. 这是我一直读到的,但我有一些问题。

    假设4.0是Android手机消费者中使用最多的版本,所以我应该定位4.0。现在,假设我不使用4.0特有的功能。我的应用程序是否适用于4.0以下的任何版本,包括1.5,2.3等?考虑相反的情况。如果我的目标版本是2.3,并且我的应用程序仅使用2.3可用的功能,我的应用程序可以在运行4.0版本的手机上运行,​​即使我不会使用4.0版本独有的功能吗?

    感谢。

3 个答案:

答案 0 :(得分:1)

看看你的AndroidManifest.xml
如果你想支持所有运行2.2及更高版本的设备,那么有一个targetSdkVersionminSdkVersion然后将minSdkVersion设置为api level 8(android 2.2)
但总的来说,它是一个很好的做法,可以针对最新的API作为目标(目前是API 19,Android 4.4)进行开发,因此您可以确保它可以从您选择的min到最新的OS api工作

所以如果你想支持至少Gingerbread到KitKat在你的清单中做到这一点:

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

并针对api 19开发:)

答案 1 :(得分:0)

  

假设4.0是Android手机消费者中使用最多的版本,所以我应该定位4.0。现在,假设我没有使用4.0新功能。我的应用程序可以使用4.0以下的任何版本,包括1.5,2.3等吗?

只有当您不使用在最早版本之后推出的API时,才能运行该应用。

  

如果我的目标版本是2.3,并且我的应用程序仅使用2.3可用的功能,那么我的应用程序可以在运行4.0版本的手机上运行,​​即使我不会使用4.0版本独有的功能吗?

是。某些功能在较新的操作系统版本中已被弃用,但大多数功能仍在较新的版本中用于保持兼容性。

我觉得这里需要强调的是Android 向后兼容,因此新版本几乎可以运行为旧操作系统版本开发的应用程序。

答案 2 :(得分:0)

目标版本是您测试它的最高版本。如果可以的话,你应该总是以最新的目标为目标。最小版本是能够安装应用程序的最低版本。

所以在清单中,你通常会有这样的东西:

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

根据应用运行所需的功能选择minSdkVersion

所以你可能想知道targetSdkVersion的目的是什么。一个原因是您的应用程序具有SDK的更高版本中的一些可选功能。 targetSdkVersion允许您使用这些后续功能,但您需要使用

之类的调用检查设备的SDK来保护这些方法调用
if (Build.VERSION.SDK_INT >= 11)
    myMethodThatUsesFeaturesOnlyInHoneycombAndLater();

另一个原因是,有时Android团队会对您的课程中的各种设置中的某些默认设置进行更改,但为了保持未测试您的应用的未来版本的兼容性,如果您的应用不支持,则会保留旧的默认设置声称要定位此更高版本。

例如,在Honeycomb之后,菜单应该与操作栏集成。但是使用早期SDK编译的旧应用程序尚未使用Honeycomb或更高版本进行测试,正如他们的targetSdkVersion小于11所证明的那样,因此操作系统知道显示旧样式菜单。一旦这个开发人员决定在更新的targetSdkVersion上测试他们的应用程序,他们就会更新值,并且操作系统可以相信他们已经在Honeycomb上测试了它,因此它可以安全地显示新的样式菜单。