編輯:Android資訊
本文由碼農網 – 溫迪原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃!
Google最近發布了Android的下一個版本,Android N的開發者預覽版。此次預覽版,可以讓我們開發者在正式發布之前就測試代碼,包括一些新的API,甚至於也可以提前反饋那些對於我們來說有些困擾的變化。這次的發布版本只醞釀了幾個月,但是其中一些令人驚奇的功能已經看起來很棒了。相信你也一樣對此感到非常興奮!
接下來,列出一些我們迫不及待想要上手的新變化。
通常來講,Java在最性感的語言當中根本就排不上號。更不用說,那些還僅僅支持Java 7部分特性的平台了,要知道它已經發布5年了。我們急需一個更加現代化的Java,每個人都應該已經意識到了。
當Google宣布Android將基於OpenJDK的時候,我們就已經知道這樣的變化就要來了。這意味著,我們將要比原先期望的更早體驗到Java 8的新特性。
如果你打算使用 Jack toolchain(一個Google官方的編譯工具,可以自動打包、壓縮、混淆以及multidexes你的代碼)構建你的項目,那麼你可以像下面這個示例一樣兼容Java 8:
android { defaultConfig { jackOptions { enabled true } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }
這樣就可以使 Jack (下同)識別出部分Java 8的語言特性。不用擔心,你感興趣的部分都在裡面,比如:
好吧,其實我對可重用的注解不是很感冒,不過它已經包含在這些特性裡面了。如果你要寫更多的功能性代碼,你應該會需要用到。想像一下,當你不需要過多考慮有關對象創建的所有listener、Adapter等等其他東西的時候,你的代碼會變得多麼具有可讀性。
你也可以用 Lambda表達式直接指定一個OnClickListener,就像這段代碼一樣:
button.onClick( v -> Snackbar.make(v, "Hello sweet lambdas", Snackbar.LENGTH_LONG).show() );
如果你對Lambda表達式不是很熟悉,那麼可以參考一下 this helpful cheat sheet about Java 8 features and best practices.
而且,Lambda表達式還會以各種方式最低支持到Android 2.3版本。這都要得益於Jack 編譯器在兩年前就已經開始為此考慮。 把 Jack
作為默認編譯器,也會為我們構建的時間帶來諸多裨益。 Jack
會跳過常規的Java字節碼編譯,並直接生成dex文件。當然,一些外部引用的library,都會在dex文件上生效或更新,而不是字節碼文件。
而且可以預見,Jack
也有望全面增加支持其他一些已經得到廣泛應用的注解運行器,比如:Dagger、Dagger2、ButterKnife,這些項目本身也正變的越來越受歡迎 。
去年九月,iOS 9已經支持了多窗口。對於Android來說,這也只是個時間問題。如果你有一個大點屏幕的設備,你可能會一邊看YouTube,一邊在Facebook上聊天!這樣的情況真的會出現!
但是,這對開發者來說,意味著什麼呢?Activity的生命周期會變得非常復雜,開發者又要花費時間去熟悉。如果我們再把Fragment的生命周期加上去,那麼光是為了解決這些View生命周期的工作量都會大大增加。
即使是現在,也有很多人在走捷徑,鎖定屏幕方向,避免去處理這些活動的生命周期狀態。這樣一來,在兩個方向上縮放UI都會更加輕松。
看看到底會有多少開發者會重新考慮如何鎖定屏幕方向以使他們的App可以支持多窗口,這應該會是一件有趣的事。Activity and Fragment,我非常高興最終可以看到他們的生命周期圖表變得更加完善。
Doze
Doze
就是用來管理Android設備電量的。當你的手機還沒有同時進行較多任務的時候,它就可以起作用,限制應用程序對各種資源的訪問,以節省電量。
其實在Android M上已經有Doze
了,但是它只能在設備沒有使用的情況下才起作用,比如就放在桌子上不動的時候。
現在,在Android N上,當設備正在移動且屏幕是關閉的時候,Doze
也會起作用。
對於用戶而言,這意味著一個額外的好處——更長的電池壽命。對於開發者來說,在這也會更多的影響用戶的前提下,就要小心你的應用會受到Doze
的限制。最明顯的就是,對於CPU和網絡的限制,可能會讓你感到懊惱。不僅如此,Doze
同樣也會影響wakelock,鬧鐘,同步功能,還有GPS。
雖然這樣可能會使你的代碼稍微復雜一些,但這也是一個巨大的用戶體驗的提升。更長的電池壽命意味著我們可以有更多的精力去做更有用,更有影響力的事情。比如:糖果消消樂!
最後要說明的並非最不重要。通知經過了改版,現在所有來自同一應用的通知,都可以分組歸類在一起。而且這裡也提供給用戶可以直接輸入回復應用的選項。
看起來通知確實是得到了非常不錯的改進,特別是對於消息類的應用!用戶在應用之間的上下文切換會變少,這對於Android的生態系統也是一大裨益。
如果你想要了解關於這些新變化的更多細節,或者想要親自上手Android N預覽版。那麼 這份資料 可以指導你怎樣去做。順便提一句,Android Studio 2.1 preview(譯者注:原文鏈接已失效,正式版已出,此處換上官網鏈接) 也已經發布,並且支持Android N。好吧,我們在一開始就得到了全部工具的支持。
你最感興趣的Android N特性是什麼?我還漏掉什麼了嗎?在下面的評論裡分享你的想法,並在預覽文檔裡查證。偉大的時代即將來臨!
譯者注:谷歌官方推出的multidex兼容包,配合AndroidStudio實現了一個APK包含多個dex的功能。
本篇博客介紹如何使用Eclipse來創建一個Java Web程序,為後面講通過Android客戶端跟服務端進行交互打下基礎,關於服務端可以選用的程序很多,主流的搭
Jenkins簡介 Jenkins是一個開源軟件項目,旨在提供一個開放易用的軟件平台,使軟件的持續集成變成可能。目前大部分公司都在使用Jenkins來持續構建。
在Android設備上面,快速高效的顯示圖片是極為重要的。過去的幾年裡,我們在如何高效的存儲圖像這方面遇到了很多問題。圖片太大,但是手機的內存卻很小。每一個像素的
隨著現在社交網絡的日益繁多,眾多的社交客戶端已占據了人們的大量時間,所以在我們的應用中具有一鍵分享的功能對提高我們產品的知名度有很大的幫助。新浪微博、騰訊微博、騰