Android studio有很多API。但其中一些已经从API 13或API 17或API 20或更高的API中添加。如果我将最小API设置为Entity.dll
,我是否可以在我的项目中使用更高的API并且它们可以在android 2.1中运行良好?如果答案是肯定的,请解释我该怎么做?
答案 0 :(得分:3)
看看这里:http://developer.android.com/guide/topics/manifest/uses-sdk-element.html
我的建议是将TargetSdkVersion始终设置为最新的api版本。 minSdkVersion取决于您希望至少支持哪个平台。如果要在方法中使用较新的api调用,可以使用
注释它们@TargetApi(Build.version)
但请注意,这些调用仅适用于具有相同或更高api版本的设备(并且您需要在调用此类方法之前自行检查,否则应用程序可能会崩溃)。
请注意,对于某些API调用,可以使用android兼容包(http://developer.android.com/tools/support-library/index.html),使一些较新的调用/设计库可用于较旧的API。
答案 1 :(得分:2)
我认为这会回答你的一些问题。简而言之,您需要确定要为编译和运行时设置Target Framework
,Minimum Android Version
和Target Android Version
的SDK版本。
然后,在代码中,您将能够执行此类操作,仅根据SDK版本使用代码:
if (Android.OS.Build.Version.SdkInt >= Android.OS.BuildVersionCodes.Lollipop)
{
// Do things the Lollipop way
}
else
{
// Do things the pre-Lollipop way
}
答案 2 :(得分:1)
支持库为您提供了在您的过去版本中使用较新API的方法。但它们具有有限的功能集。
http://developer.android.com/tools/support-library/index.html
不同的支持库提供不同的features。他们的后向支持通常用后缀表示
例如v4支持库支持UI,可访问性,内容和应用程序组件的功能,直到API版本4.使用支持库被视为将功能支持扩展到以前版本的最佳实践。 CardView和Design Support Library等支持库可帮助您将Material设计扩展到以前的版本。 v7 mediarouter库提供了控制媒体通道和流从当前设备到外部屏幕,扬声器和其他目标设备的路由的强大功能。由于这些库具有特定的用例集。您可以轻松地使这些功能向后兼容,但是如果API不是由支持库提供的,则必须根据Build.Version
答案 3 :(得分:0)
您不能在低版本的android中使用高级API。这是直截了当的。假设某种程度(甚至不可能)你能够将项目设置最小值编译为7并使用一些只属于更高级别的API,当你的应用程序在设备上运行并尝试执行API时,OS会发现没有功能/ API,您的应用程序将崩溃。 有一件事是,如果API有一些像我们在支持库中那样的支持,那么你肯定可以在这些应用程序中使用它们。希望它能清除你的问题。