2013-06-24 88 views
11

我知道这个问题有很多,我也读了这个page。但是,我仍然对确切的选择感到困惑。什么值设置:“最低要求SDK”,“目标SDK”和“编译”

如果我有一个运行Android的2.3.6

我知道Minimum Required SDK应该是最低版本的Android,我的应用程序支持手机。 因此,例如,我会选择较值Android 2.2以下,说Android 1.5


混乱的部分Target SDKCompile with

我有这下面安装:(没有在SDK管理器没有Android 2.3.6提供)

的Android 4.2.2(API 17)
的Android 3.0(API 11)
的Android 2.3.3(API 10)
Android 2.2(API 8)

Target SDK应该设置为最大值,即Android 4.2.2,而不管我的手机使用什么;这是Android 2.3.6

选择Android 4.2.2会覆盖下面的所有电话吗?是对的吗?

或者

难道应该被设置为精确/最接近的值作为我的手机。这里可用的是Android 2.3.3?但不超过我的手机Android 2.3.6


Compile with必须设置为最大Android 4.2.2还是什么?

回答

6

目标SDK是否应该设置为Android 4.2.2, 的最大值,而不管我的手机使用什么;这是Android 2.3.6?

这取决于你,但它始终建议使用最新的sdk作为目标。

它只是说应用程序将在最小和目标sdk之间工作,但仅针对目标sdk进行测试,因此如果有任何兼容的设置系统必须处理它。

选择Android 4.2.2会覆盖下面的所有手机吗?是对的吗?

您的应用程序始终涵盖从Min-SDK到Max-SDK。如果Min-SDK是1并且Max-SDk没有设置,那么你的应用程序支持所有的API。

它应该设置为我的手机的确切/最接近的值。这里的 可用一个是Android 2.3.3?但不超过我的手机Android 2.3。6

必须是最新的SDK

是必须设置为最大的Android 4.2.2或编译什么?

它只是你选择哪个SDK来编译你的应用程序。但最好使用目标SDK,而目标SDK又是最新的。

+3

“您的应用程序只涵盖从Min-SDK到Target-SDK”不正确。应用程序可以在运行在比目标SDK更高API级别的设备上安装和运行。你只是没有从最近的API级别获得所有的好东西,并且可能会使用一些向后兼容模式 – laalto

+0

你能解释更多关于Compile with吗? – mavis

0

我一直将我的Compile with设置为与Target SDK相同。

目标应该是你已经测试和架构你的应用程序来处理。随着Android的发展,API行为可能会发生变化,如默认AsyncTask的串行/并行/串行属性(请参阅:Running multiple AsyncTasks at the same time -- not possible?http://commonsware.com/blog/2012/04/20/asynctask-threading-regression-confirmed.html),这取决于您的应用的目标API和设备API。那么有趣的时刻让我们发现它。

此外,各种API也会折旧,因此使用最新的API强制您只使用当前维护的内容。

相关问题