在什么情况下Target SDK版本和Build SDK版本("使用"在下面的屏幕中编译)会有所不同?
我试图弄清楚为什么Target SDK不能用于提供应用程序设计运行的API级别,以及针对同一SDK进行编译。
答案 0 :(得分:3)
在什么情况下Target SDK版本和Build SDK版本(下面屏幕中的“Compile with”)会有所不同?
当开发人员将它们设置为不同的值时。
我正在试图弄清楚为什么Target SDK不会用于提供应用程序设计运行的API级别,以及针对同一SDK进行编译。
在您创建新项目的时候,将构建SDK和目标SDK设置为相同是相当普遍的,这就是为什么这是新项目向导中的默认值。
但是,开发人员可能希望将构建SDK提升到更新的API级别,同时保留目标SDK。目标SDK版本控制着向前兼容性的一些元素,因此可能会改变开发人员尚未准备好解决的问题。
例如,假设开发人员在2013年中期创建了一个应用程序,那时将构建SDK和目标SDK都设置为18.然后,在今年年初,开发人员开始使用Android 4.4(API)等级19)。开发人员希望为她的应用添加打印功能。支持API Level 19打印的最简单方法是将构建SDK设置为19,这样她就可以直接引用相关的类。但是,KitKat还改变了AlarmManager
和set()
等经典setRepeating()
方法的行为,她决定她还没有准备好处理这个问题。自those changes are tied to the target SDK version起,她暂时将她的目标SDK版本保留在18,并记下如何支持将来AlarmManager
警报的新的不精确性。因此,此时,她的构建SDK为19,目标SDK为18。
答案 1 :(得分:0)
目标SDK:已测试应用程序的最高API级别。该应用程序应与具有此API级别或更新API的所有设备兼容。
编译:已编译应用程序的API级别。默认情况下,它是最高级别(现在应该是Android 4.4.4套件kat)