Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android目标SDK与构建SDK_Android - Fatal编程技术网

Android目标SDK与构建SDK

Android目标SDK与构建SDK,android,Android,在什么情况下,目标SDK版本和构建SDK版本(“使用以下屏幕中的“编译”)会有所不同 我试图弄明白为什么目标SDK不能用于提供应用程序设计运行的API级别,以及针对同一SDK进行编译。目标SDK:应用程序已测试的最高API级别。应用程序应与具有此API级别或更高API级别的所有设备兼容 编译使用:已编译应用程序的API级别。默认情况下,它是可能的最高级别(现在应该是Android 4.4.4 kit kat) 在什么情况下,目标SDK版本和构建SDK版本(“使用以下屏幕中的“编译”)会有所不同

在什么情况下,目标SDK版本和构建SDK版本(“使用以下屏幕中的“编译”)会有所不同


我试图弄明白为什么目标SDK不能用于提供应用程序设计运行的API级别,以及针对同一SDK进行编译。

目标SDK:应用程序已测试的最高API级别。应用程序应与具有此API级别或更高API级别的所有设备兼容

编译使用:已编译应用程序的API级别。默认情况下,它是可能的最高级别(现在应该是Android 4.4.4 kit kat)

在什么情况下,目标SDK版本和构建SDK版本(“使用以下屏幕中的“编译”)会有所不同

当开发人员将它们设置为不同的值时

我试图弄明白为什么目标SDK不能用于提供应用程序设计运行的API级别,以及针对同一SDK进行编译

在创建新项目时,将构建SDK和目标SDK设置为相同是相当常见的,这就是为什么这是新项目向导中的默认设置

但是,开发人员可能希望将构建SDK提升到一个新的API级别,而不使用目标SDK。目标SDK版本控制转发兼容性的某些元素,因此可能会更改开发人员尚未准备好解决的问题

例如,假设一个开发人员在2013年年中创建了一个应用程序,当时将构建SDK和目标SDK都设置为18。然后,在今年年初,开发者开始使用Android 4.4(API级别19)。开发人员希望将打印功能添加到她的应用程序中。支持API级别19打印的最简单方法是将构建SDK设置为19,这样她就可以直接引用相关类。然而,KitKat也改变了经典的
AlarmManager
方法的行为,如
set()
setRepeating()
,她认为她还没有准备好处理这个问题。自那时起,她将目标SDK版本暂时保留在18日,并记录下今后如何支持
AlarmManager
alarms新的不精确性质。因此,此时,她的构建SDK是19,目标SDK是18