偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

如何在Android N 預(yù)覽版中使用Java8的新特性

新聞 Android
Android團(tuán)隊(duì)發(fā)布的Android N Preview中給我們帶來(lái)了很多提升,包括由Jack編譯器提供的Java 8支持。在這篇文章中,我們將來(lái)看看它究竟對(duì)Android開(kāi)發(fā)者意味著什么,以及如何嘗試新的語(yǔ)言特性。

Android團(tuán)隊(duì)發(fā)布的Android N Preview中給我們帶來(lái)了很多提升,包括由Jack編譯器提供的Java 8支持。在這篇文章中,我們將來(lái)看看它究竟對(duì)Android開(kāi)發(fā)者意味著什么,以及如何嘗試新的語(yǔ)言特性。

概覽

在這篇文章中,去介紹Oracle Java 8的新特性并沒(méi)有太大意義 —— 很多信息已經(jīng)在互聯(lián)網(wǎng)上有了。

另一方面,Android 官方的Java 8公告留下了很多開(kāi)放的問(wèn)題給開(kāi)發(fā)者們,感覺(jué)上并非所有的原生 Java 8 功能都是可用的。更詳細(xì)的 技術(shù)公告確認(rèn)了這一點(diǎn)。我們可以根據(jù)在 Android N 中的可用性,將這些語(yǔ)言特性分類如下:

Android Gingebread (API 9)及以上:

  • Lambda 表達(dá)式

  • java.util.function

Android N及以上:

  • 默認(rèn)和靜態(tài)interface方法

  • 可重復(fù)的注解

  • 流(Streams)

  • 反射APIs

所以對(duì)Java 8特性和使用的minSdkVersion之間的關(guān)聯(lián)性,開(kāi)發(fā)者必須去精心選擇。我們也必須注意到語(yǔ)言向后兼容是由Jack編譯器提供的。在概念上,Jack編譯器將javac,ProGuard,以及dex的功能合并 到了一個(gè)轉(zhuǎn)換步驟中。這意味著其中沒(méi)有中間的Java字節(jié)碼可用,且像是JaCoCo和Mockito的工具將無(wú)法工作,DexGuard也一樣 (ProGuard的企業(yè)版本)。讓我們祈禱這只是一個(gè)早期的preview版本,且這些問(wèn)題將在未來(lái)被修復(fù)。

Lambda表達(dá)式以及相關(guān)的函數(shù)功能APIs —— 這是一個(gè)每個(gè)Android開(kāi)發(fā)都會(huì)喜歡的東西。這類功能將會(huì)對(duì)增加代碼可讀性極為有用 —— 它替代了提供事件監(jiān)聽(tīng)器的匿名內(nèi)部類。而之前只能通過(guò)額外的工具來(lái)實(shí)現(xiàn),或者由Android Studio編輯器去折疊代碼。

默認(rèn)及靜態(tài)interface方法可以幫助我們減少額外的工具類的數(shù)量,但顯然不是最需要的特性。還有一些其他的新增功能,我希望去說(shuō)的更詳細(xì)一些,因此不在本文的范圍內(nèi)。

對(duì)我來(lái)說(shuō)最有趣的事 —— Java 8 流(Streams) —— 在當(dāng)前的預(yù)覽版中不可用。我們可以發(fā)現(xiàn)事實(shí)上它剛被merge到AOSP源碼,所以期望可以在下個(gè)N Preview 或者 Beta release中見(jiàn)到它。如果你實(shí)在等不及去瀏覽 —— 可以試試使用 Lightweight-Stream-API,目前的一個(gè)開(kāi)源向后兼容。

總結(jié)

在這篇文章中,我們了解了Java 8的用例,以及目前其在Android N Preview SDK的實(shí)現(xiàn)情況。我們也看到了當(dāng)前Jack編譯器的限制,及其在***發(fā)布前可能被修復(fù)的功能。

責(zé)任編輯:張燕妮 來(lái)源: Bug制造機(jī)
相關(guān)推薦

2021-12-10 14:53:17

微軟Windows 11Windows

2013-06-27 09:35:26

Windows 8.1預(yù)覽版特性

2021-12-09 22:22:19

Windows 11操作系統(tǒng)微軟

2017-03-29 20:30:03

2013-06-27 13:01:58

Windows 8.1

2021-11-19 05:54:46

Windows 11操作系統(tǒng)微軟

2013-11-04 17:28:44

Android

2022-03-25 19:06:12

微軟Windows 11

2013-06-24 14:57:43

Windows 8.1

2009-04-16 07:50:51

GoogleAndroid移動(dòng)OS

2010-04-01 09:29:18

2021-07-23 20:00:40

微軟Windows 11Windows

2012-02-13 11:56:26

JavaJDKJava 8

2025-03-04 08:07:58

2016-10-18 13:42:17

UbuntuGNOME Sushi預(yù)覽

2009-05-06 17:37:17

MoonlightSilverlightRIA

2012-07-27 09:30:44

Windows Pho

2012-02-27 09:35:50

Windows 8預(yù)覽版

2012-02-29 10:09:14

Windows 8消費(fèi)者預(yù)覽版

2011-09-20 09:35:02

Windows 8密鑰
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)