编译版本与最低要求版本Android

时间:2013-04-13 09:46:50

标签: android android-custom-view android-version

在我的自定义视图中,我使用的方法drawTextOnPath(...)在4.1之前不支持硬件加速。

所以我想添加一个if语句,该语句在运行时检查当前的Android版本,如果此版本大于或等于4.1,则打开硬件加速。 我的问题是我使用Android 4.0 SDK(这是我的最低版本)编译我的项目,所以我没有Android 4.1的Build.VERSION_CODES

我应该用4.1编译我的项目,尽管我的最低版本是4.0?

2 个答案:

答案 0 :(得分:5)

我写了一次:Android targeting system

重要部分:

  

使用Java 7编译器编译Java应用程序时,则不能   将它与Java 6解释器一起使用。口译员会告诉你,那   它无法解释生成的字节码,即使你不是   使用任何Java 7语言功能。如果你想用。编译   最新的编译器,但你的字节码可以在旧的JVM上运行   实例,你需要告诉编译器这样做(使用   -target-标志)。

     

在Android中,您可以声明您支持的平台版本   清单文件,使用<uses-sdk> - 元素和它   android:minSdkVersionandroid:targetSdkVersion - 属性。   这些“定位机制”之间的区别在于Android   不关心编译应用程序的平台版本。

     

如果您声明您的应用程序与API Level 4兼容,   Android会很乐意安装它,即使你编译它也是如此   Android 4.1(API级别16)。

简而言之:

  
      
  • 如果您希望自己的应用程序与最新的Android平台一起使用,请根据它进行构建。
  •   
  • 使用minSdkVersion声明应用程序支持的最低API级别。
  •   
  • 作为targetSdkVersion,使用编译应用程序的API级别。
  •   
  • 使用[Android] Lint检查(可能)不支持的API调用。
  •   
  • 使用条件执行和@ TargetApi-annotation在可用时使用更新的API。
  •   

使用最新的SDK构建应用程序时,您将拥有所有Build.VERSION_CODES

答案 1 :(得分:0)

是的,如果你使用4.1的功能,你必须编译4.1,即使你有条件地这样做,否则编译器将无法构建你的应用程序,因为它会将所有4.1功能视为无效(不存在)