返回顶部
首页 > 资讯 > 精选 >Kotlin语言中CompileSdkVersion与targetSdkVersion的区别是什么
  • 282
分享到

Kotlin语言中CompileSdkVersion与targetSdkVersion的区别是什么

2023-07-05 05:07:18 282人浏览 独家记忆
摘要

这篇文章主要介绍“Kotlin语言中CompileSdkVersion与targetSdkVersion的区别是什么”,在日常操作中,相信很多人在Kotlin语言中CompileSdkVersion与targetSdkVersion的区别是

这篇文章主要介绍“Kotlin语言中CompileSdkVersion与targetSdkVersion的区别是什么”,在日常操作中,相信很多人在Kotlin语言中CompileSdkVersion与targetSdkVersion的区别是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Kotlin语言中CompileSdkVersion与targetSdkVersion的区别是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

    前言

    build.gradle (Module) 文件中,我们通常会看到 CompileSdkVersiontargetSdkVersion 的使用,比如下面是一个完整的 build.gradle (Module) 文件:

    plugins {
        id 'com.Android.application'
        id 'org.jetbrains.kotlin.android'
    }

    android {
        compileSdk 32

        defaultConfig {
            applicationId "com.example.processbarvertical"
            minSdk 28
            targetSdk 32
            versionCode 1
            versionName "1.0"

            testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        }

        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            }
        }
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
        }
        kotlinOptions {
            JVMTarget = '1.8'
        }
    }

    dependencies {

        implementation 'androidx.core:core-ktx:1.7.0'
        implementation 'androidx.appcompat:appcompat:1.5.1'
        implementation 'com.Google.android.material:material:1.6.1'
        implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
        testImplementation 'junit:junit:4.13.2'
        androidTestImplementation 'androidx.test.ext:junit:1.1.3'
        androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
        implementation 'com.GitHub.transferwise:sequence-layout:1.2.0'
    }

    一旦新的 Android SDK 版本发布,我们通常会更新这两个值。 但为什么这样做如此重要? 另外,为什么有两个SdkVersion,而我们通常将它们设置为相同的值呢?这篇文章,我们来解释一下 CompileSdkVersiontargetSdkVersion 是什么,以及他们的区别。

    一.CompileSdkVersion与targetSdkVersion是什么

    compileSdkVersiontargetSdkVersion 对于处理安卓中的向前兼容性至关重要,因此它们都与新 Android SDK 版本出现时的操作有关。

    1.1 compileSdkVersion

    compileSdkVersion 定义了 gradle 将使用哪个 Android SDK 版本来编译我们的应用程序。比如,在 Android 12 / api 31 中引入了一个新的功能,使我们能够轻松实现启动画面:

    <item name="android:windowsSplashScreenBackground">@color/cyan_50</item><item name="android:windowsSplashScreenIconBackgroundColor">@color/cyan_200</item><item name="android:windowsSplashScreenAnimatedIcon">@color/ic_foreground</item><item name="android:windowsSplashScreenAnimationDuration">1000</item>

    如果我们想在应用程序中使用该功能,我们必须:

    • 在 Android Studio 中下载 API 31

    • 在应用程序中将 compileSdkVersion 更新为 31

    那么有人就要问了,有的手机没有升级到 Android 12 怎么办?对于那些版本低于 API 31 的用户/设备,我们必须提供一种替代方法来为那些无法访问此新 API 的旧设备显示上面这个新功能启动画面。同样,一些方法或属性可能会在此 Android SDK 版本中被弃用,其中一些甚至被删除。 这就是为什么一旦我们更新应用程序中的 compiledSdkVersion,我们将经常在编译期间看到一些必须解决的警告和错误,比如下图:

    Kotlin语言中CompileSdkVersion与targetSdkVersion的区别是什么

    但是单独更改 compileSdkVersion 并不会真正改变我们创建的应用程序的行为。那么安卓系统如何知道它是否可以使用此应用程序的新功能? 这就是 targetSdkVersion 发挥作用的地方。

    1.2 targetSdkVersion

    targetSdkVersion 是一个属性,它告诉系统应用程序是针对哪个安卓版本设计和测试的。

    如果用户在安卓版本高于此应用中定义的 targetSdkVersion 的设备上运行您的应用程序,对于新的安卓功能,系统可能会引入一些向后兼容行为以确保此应用程序仍然以某种方式工作。比如说,在 Android 12 中,自定义通知的外观发生了变化。 以前他们可以使用整个通知区域,但在 Android 12 系统中,将标准模板应用于所有自定义通知,因此它们看起来更加一致。

    Kotlin语言中CompileSdkVersion与targetSdkVersion的区别是什么

    如果我们的应用中设置 targetSdkVersion 低于 31,系统将假定此应用尚未测试该功能并将以旧方式显示通知,以将通知无法正确显示的风险降至最低。只有将目标 SDK 版本更新为 31 后,才会使用新的通知外观。

    Kotlin语言中CompileSdkVersion与targetSdkVersion的区别是什么

    二.compileSdkVersion和targetSdkVersion的关系

    即使 compileSdkVersiontargetSdkVersion 的含义完全不同,它们显然也不是独立的。

    简单地说,targetSdkVersion 不能高于 compileSdkVersion。理想情况下,compileSdkVersiontargetSdkVersion 应该相等,并且都指向最新的安卓版本。

    到此,关于“Kotlin语言中CompileSdkVersion与targetSdkVersion的区别是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

    --结束END--

    本文标题: Kotlin语言中CompileSdkVersion与targetSdkVersion的区别是什么

    本文链接: https://lsjlt.com/news/349764.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • Kotlin语言中CompileSdkVersion与targetSdkVersion的区别是什么
      这篇文章主要介绍“Kotlin语言中CompileSdkVersion与targetSdkVersion的区别是什么”,在日常操作中,相信很多人在Kotlin语言中CompileSdkVersion与targetSdkVersion的区别是...
      99+
      2023-07-05
    • Kotlin语言中CompileSdkVersion与targetSdkVersion的区别浅析
      目录前言一.CompileSdkVersion与targetSdkVersion是什么1.1 compileSdkVersion1.2 targetSdkVersion二.compi...
      99+
      2023-02-23
      Kotlin CompileSdkVersion与targetSdkVersion的区别 Kotlin CompileSdkVersion
    • Kotlin与Java的区别是什么
      Kotlin与Java的区别可以总结如下:1. 语法简洁:Kotlin的语法相对于Java更简洁易读,减少了冗余的代码和样板代码。例...
      99+
      2023-08-14
      Kotlin Java
    • Java语言中&&与& ||与|的区别是什么
      1、运算符两边的变量为boolean变量时       先列出代码:public class Test { public static void main(String[] args) {...
      99+
      2023-05-31
      java
    • java与c语言的区别是什么
      这篇文章将为大家详细讲解有关java与c语言的区别是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。java基本数据类型有哪些Java的基本数据类型分为:1、整数类型,用来表示整数的数据类...
      99+
      2023-06-14
    • C++与C语言的区别是什么
      这篇“C++与C语言的区别是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C++与C语言的区别是什么”文章吧。1. 结构...
      99+
      2023-06-29
    • 详解 MinSdkVersion、CompileSdkVersion、TargetSdkVersion 三者的区别、作用与关系(超详细图文教程)
      目录 一、什么是API级别 二、MinSdkVersion 2.1 概述 2.2 作用: 2.2.1  安装检测 2.2.2  API 可用性/兼容性检测 2.3  如何选择版本 三、CompileSdkVersion 3.1 概述 3....
      99+
      2023-09-04
      android
    • go语言中协程与线程的区别是什么
      区别:1、一个线程可以多个协程,一个进程也可以单独拥有多个协程;2、线程是同步机制,而协程则是异步;3、协程能保留上一次调用时的状态,线程不行;4、线程是抢占式,协程是非抢占式的;5、线程是被分割的CPU资源,协程是组织好的代码流程,协程需...
      99+
      2023-05-14
      Golang go语言 协程 线程
    • c语言中/与%的区别
      c 语言中的 / 和 % 运算符用于不同类型的除法运算:/ 执行浮点除法,返回浮点数作为结果。% 执行整数取模运算,返回整数作为余数。 C 语言中的 / 与 % 的区别 / 和 % 是...
      99+
      2024-04-28
      c语言
    • c语言中\与%的区别
      c语言中 \ 和 % 的区别在于:\ 用作转义字符,代表特殊字符(例如换行符),而 %` 用作格式化输出,指定输出变量值或格式的格式说明符。 c语言中\与%的区别 c语言中,\ ...
      99+
      2024-05-02
      c语言 格式化输出
    • c语言中/与\的区别
      c 语言中 / 和 \ 的区别:/:除法运算符,用于两个操作数的除法运算,返回商或余数。\:反斜杠转义字符,用于转义特殊字符、指定文本字符、终止预处理指令,并在 windows 系统中作...
      99+
      2024-05-02
      c语言
    • go语言和kotlin的区别有哪些
      这篇文章主要介绍了go语言和kotlin的区别有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。区别:1、Kotlin是多范式语言,对泛型与函数式有良好支持;而Go对泛型支...
      99+
      2023-06-15
    • go语言中的new与make有什么区别
      本篇内容主要讲解“go语言中的new与make有什么区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“go语言中的new与make有什么区别”吧!new() 和...
      99+
      2024-04-02
    • c语言实参与形参的区别是什么
      实参是调用函数时传递给函数的值或者变量,形参是函数定义中声明的变量,用来接收实参传递的值。实参和形参之间的区别主要体现在以下几点: ...
      99+
      2024-03-11
      c语言
    • C++语言与其他语言有什么区别
      本篇内容主要讲解“C++语言与其他语言有什么区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++语言与其他语言有什么区别”吧!本文着重进行对C++语言来说,在语法上要简单得多,因此初学者很容...
      99+
      2023-06-17
    • Python与C语言的区别有什么
      Python与C语言的区别有什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、语言类型Python是一种基于解释器的语言,解释器会逐行读取代码;首先将Pyt...
      99+
      2023-06-15
    • golang与C语言有什么区别
      golang与C语言的区别:1、golang是一门面向对象的编程语言,而C语言是一门面向过程的编程语言;2、golang通过包来管理代码,而C语言通过文件来管理代码;3、golang中一共有25个关键字,而C语言中一共有32个关键字;4、占...
      99+
      2023-07-10
    • go语言与gojs有什么区别
      go语言与gojs区别:1、Go语言的设计目标是提供一种简单、高效且安全的编程语言,而GoJS的设计目标是提供一个功能强大的图形化库,用于创建交互式的图形和数据可视化;2、Go语言的语法类似于C语言,而GoJS是一个基于JavaScript...
      99+
      2023-08-03
    • 汇编语言和c语言的区别是什么
      区别:1、因为汇编语言实质上是机器语言的助记符,是直接面对CPU的语言,所以汇编语言的运行效率比C语言高;2、汇编语言对硬件的可操控性强,C语言硬件可操控性比较差;3、汇编语言的目标代码体积小,C语言目标代码体积大;4、汇编语言不易维护,C...
      99+
      2023-05-14
      汇编语言 C语言
    • C语言中const和define的区别是什么
      本文小编为大家详细介绍“C语言中const和define的区别是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言中const和define的区别是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。def...
      99+
      2023-06-29
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作