Android构建工具各种版本

Android构建工具各种版本

minSdkVersion <= targetSdkVersion <= compileSdkVersion

minSdkversion:

  • 作用:告诉应用市场安装该应用的最低版本,也表示了在编程中你必须保证所有的方法的最低sdk都需要大于该值,否则Androidstudio会提醒你添加sdk判断

compilesdkversion:

  • 作用:告诉 Gradle 用哪个 Android SDK 版本编译你的应用。使用任何新添加的 API 就需要使用对应 Level 的 Android SDK。

    targetsdkversion

    这个是比较难于理解的值了
  • 作用:主要是为了Android系统的向前兼容,targetSdkVersion 所暗示的许多行为变化都记录在 VERSION_CODES 文档中,所以当出现更新了新系统时,如果新系统版本大于了该应用的targetsdkversion版本,就不会在该应用使用最新的变化,

    targetSdkVersion 是 Android 提供向前兼容的主要依据,在应用的 targetSdkVersion 没有更新之前系统不会应用最新的行为变化

  • 举个例子,比如:Google表示,为保证用户数据和设备的安全,针对下一代 Android 系统(Android P) 的应用程序,将要求默认使用加密连接,这意味着 Android P 将禁止 App 使用所有未加密的连接,因此运行 Android P 系统的安卓设备无论是接收或者发送流量,未来都不能明码传输,需要使用下一代(Transport Layer Security)传输层安全协议,而 Android Nougat 和 Oreo 则不受影响。
    所以当实机的Android版本大于27,使用http请求报错时就会not permitted by network security policy,如何解决呢?
    那么这时,我们就可以利用targetsdkversion,将其设置为27,那么,当app运行在sdk28(大于27)的真机上时,他就不会去使用这条限制(不能使用http),而是使用sdk 27的规则,(当然这也限制了你不能使用其他sdk 28的新功能)。
  • 所以targetsdkversion的含义就是:我的这个app的目标sdk就是 27,我已经完全测试好了,跑在sdk27上没有一点问题,如果你的版本大于27,那就请先使用27的sdk,先不要使用你的高版本sdk,否则有些地方就可能出错。等我什么时候适配好了,我将sdk改为了28,那么你才能使用最新的sdk功能。

buildtoolversion

-作用:表示构建工具的版本,其中包括了打包工具aapt、dx等等,所以应该大于compile版本

,
© 2020 WPY's Android Tour All Rights Reserved. 本站访客数人次 本站总访问量
Theme by hiero