java8 語言新功能在Android 中的使用

原文地址

android 目前居我瞭解應該是完全支持java7的所有特性功能,而8的語言功能僅支持一半兒,支持java8 語言新功能需要添加一個名爲jack 的新編譯,jack 在Android studio 2.1中才被支持,因此要使用java8的新特性將要在android studio 2.1以上的開發工具中使用

android 目前不是完全支持所有的java8 語言功能,一下功能在開發面向android 7.0 的時候即可使用

1、默認和靜態接口方法

2、Lambda表達式 (在API 23的版本中也可以使用)

3、重複註解

4、方法引用 (在API 23的版本中也可以使用)

5、類型註解 (在API 23的版本中也可以使用) 僅在編譯中使用,在運行的時候不被使用


要在 Android 的較早版本中測試 Lambda 表達式、方法引用和類型註解,請前往您的 build.gradle 文件,將 compileSdkVersion 和 targetSdkVersion 設置爲 23 或更低。您仍需要啓用 Jack 工具鏈以使用這些 Java 8 功能。

此外,也可使用以下 Java 8 語言 API:

  • 反映和語言相關 API:
  • 實用程序 API:
  • 啓用 Java 8 功能和 Jack 工具鏈


    要使用新的 Java 8 語言功能,還需使用新的 Jack 工具鏈。新的 Android 工具鏈將 Java 源語言編譯成 Android 可讀取的 Dalvik 可執行文件字節碼,且有其自己的 .jack 庫格式,在一個工具中提供了大多數工具鏈功能:重新打包、壓縮、模糊化以及 Dalvik 可執行文件分包。

    以下是構建 Android Dalvik 可執行文件可用的兩種工具鏈的對比:

    • 舊版 javac 工具鏈:
      javac (.java → .class) → dx (.class → .dex)
    • 新版 Jack 工具鏈:
      Jack (.java → .jack → .dex)

    配置 Gradle

    要爲您的項目啓用 Java 8 語言功能和 Jack,請在模塊級別的 build.gradle 文件中輸入以下內容:

    android {
      ...
      defaultConfig {
        ...
        jackOptions {
          enabled true
        }
      }
      compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
      }
    }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章