Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android SDK

穀歌2017 I/O大會後續:Android Studio 3 有哪些新特性?

by
Read Time:10 minsLanguages:

Chinese (Traditional) (中文(繁體)) translation by tianyiliang (you can also view the original English article)

在這個系列文章中,我們已經探索了今年穀歌 I/O大會上的一些新的安卓特性和工具,今天你能獲取更詳細的資訊。

本文將介紹AS3(Android Studio 3)預覽版的主要新特性。

假如你還沒有AS3預覽版,你可以從安卓官方網站下載。需要注意的是,這是一個早期發佈版本,所以最好不要在日常開發工作中使用。

一、內置支持Kotlin

本次大會上宣佈的一個重大消息是穀歌讓Kotlin成為了安卓開發最好的語言。

儘管之前AS可以通過外掛程式的形式支援Kotlin,現在將Kotlin內置AS後可以讓開發者更加容易開始使用Kotlin。

AS3支援三種方式使用Kotlin:

方式一:新建Kotlin工程

首先,你會在創建工程的嚮導中看到“Include Kotlin support”核取方塊。如下圖: 

When youre creating a project you can select the Include Kotlin Support checkboxWhen youre creating a project you can select the Include Kotlin Support checkboxWhen youre creating a project you can select the Include Kotlin Support checkbox

當你勾選後,AS會自動產生支持Kotlin的所有代碼。假如你打開工程build.gradle檔,你將會在buildscript裡面看到你正在使用的Kotlin版本:

假如你打開模組build.gradle文件,你會發現一些Kotlin相關代碼被添加進來。

方式二:將已有的Java檔轉換為Kotlin

第二種方式是將已有的Java檔轉換為Kotlin:

  • Project視圖下選擇你要轉換的檔(單個)
  • 在AS工具列選擇Code > Convert Java file to Kotlin file此步驟通過轉換器將java檔轉換為等價的Kotlin代碼
  • 此時AS會提示你Kotlin在你的工程沒有配置,點擊該提示語中的Configure 按鈕。
  • 選擇Android with Gradle
  • All modules, All modules containing Kotlin files中選擇,或者選擇你想要支持Kotlin的module。
  • 點擊OK

方式三:給已經存在工程增加Kotlin類 

在你想要創建Kotlin檔的目錄右擊,然後選擇New > Kotlin file / class,假如你的工程沒有配置支援Kotlin,AS同樣會出現Configure提示框,解決方法同上。

假如你對Kotlin不熟悉,並想知道要注意的細節,你可以參考這系列文章。 點此打開該系列文章getting started with Kotlin for Android development.

二、一個新的Android Profiler

AS3預覽版用一個全新的Android Profiler替換了 Android Monitor視窗。

打開該新工具的方式為,View > Tool Windows > Android Profiler ,或者點擊IDE視窗底部的Android Profiler 按鈕。

類似於Android Monitor, Android Profiler也只能連接正在運行的app,所以你要確保你想要測試的app在模擬器或真機上運行,這樣才能在螢幕上可見。點擊下拉式功能表選擇你想要分析的設備和進程

一旦你選擇了一個進程,Android Profiler會自動連接到該進程,並且顯示當前運行app的網路時間表,還有CPU,記憶體使用情況,它們都是即時更新。

The Android Profiler displays three timelines CPU Memory and NetworkThe Android Profiler displays three timelines CPU Memory and NetworkThe Android Profiler displays three timelines CPU Memory and Network

如果想查看它們的詳細資訊,只需要點擊Android Profiler按鈕,你會看到一個專門顯示你選擇主題(比如說CPU)的新profiler。

Network Profiler

該Profiler展示了網路活動時間表,顯示發送的資料和接收的資料,以及當前的連接數。要注意的是,Network Profiler只能支援HttpURLConnection 庫和OkHttp 庫,所以假如你使用了不同的庫,你可能無法看到你的app網路活動情況。

CPU Profiler

該Profiler展示了你的app的CPU使用和執行緒活動情況。你還能夠精確的看到哪些方法正在被執行,並且每個方法消耗CPU資源的情況,這些通過記錄一個方法的蹤跡完成。

為了記錄蹤跡,打開下拉式功能表,選擇SampledInstrumented,然後點擊Record 按鈕。 花一些時間在你的app交互上以確保你想要記錄的內容被你都操作過,然後點擊Stop recording按鈕。CPU Profile就會展示剛才採樣週期的資料記錄。

Memory Profiler

該Profiler通過展示app記憶體使用情況圖表説明你識別記憶體洩漏,記憶體抖動和不合理的記憶體分配方式。你還以使用它捕獲heap dump,提供app記憶體分配快照,知道每一個物件佔用了多少記憶體,以及每一個物件在你的代碼中的什麼地方被引用。 最後點擊Record memory allocations按鈕,你能夠記錄app記憶體分配情況。

三、創建獨立的即時app模組 

安卓即時app可以讓用戶通過URL快速運行app,而無需先安裝app。基於此,你就可以將你app中的大部分重要功能面向更多的用戶,而不是希望他們下載安裝整個app。

在工程中增加安卓即時app功能的第一步是將你的app劃分為更小的module,以便使用者下載你的工程中的某一部分。由於將你的app被劃分為多個獨立的module不是一件容易的事,AS3預覽版引入了將你的任何類別模組化的新特性。 

  • 打開你想模組化的類,並且選中該類名。
  • 右擊,選擇Refactor > Modularize
Control-click a class and select Refactor Modularize from the dropdown that appearsControl-click a class and select Refactor Modularize from the dropdown that appearsControl-click a class and select Refactor Modularize from the dropdown that appears
  • 選擇Preview 來查看即將被融合到新模組中的類,方法和資源。
  • 你可以反選不需要被引入到新模組的子項。假如你不刪除某些子項,你一般都需要花些時間來調整代碼以確保能夠正確運行。
  • 當你選擇好了以後,點擊OK,創建模組。

四、改善對Java8的支持 

AS3預覽版內置對Java8語言特性子集的支援,並且支援使用了這些特性的協力廠商庫,比如:

  • Lambda 運算式 
  • 方法引用 
  • 類型注解 
  • 預設和靜態介面方法 
  • 重複注解

除此之外,如下的Java8特性相容API24及更高:

  • java.lang.annotation.Repeatable
  • java.util.function
  • java.lang.reflect.Method.isDefault()
  • java.lang.FunctionalInterface
  • java.util.stream
  • annotatedElement.getAnnotationsByType(Class)

為了改善對Java8的支援,你需要將Gradle外掛程式 更新到v 3.0.0-alpha1(或者更高)。打開gradle-wrapper.properties檔,修改distributionUrl

然後打開工程build.gradle檔,確保你正在使用穀歌的最新Maven 庫。 將Gradle外掛程式 更新到v 3.0.0-alpha1:

為了使用AS對Java8支持的改善,假如你之前打開了Jack 編譯器,你需要關閉它。為了刪除Jack,打開modlue的build.gradle,刪除jackOptions 部分:

最後你需要增加Java8的compileOptionsbuild.gradle文件:

五、更加容易的自訂字體 

給app增加自訂字體,通過在Android O版本上將字體這種資源提升至完全被支持的資源類型,穀歌正在讓這件事變得更加容易。雖然我們已經研究了 working with custom fonts 。但是,AS3預覽版增加更加方便的特性,該特性可以更加方便的流覽自訂字體,並且更加方便的添加到工程。 

  • 打開任何包含TextView的layout資源檔
  • 選擇Design 按鈕
  • 在編譯器裡面選擇TextView,Properties 功能表會出現在AS視窗左側。
  • 捲動功能表的textAppearance 部分,並且點擊箭頭展開。 打開fontFamily 下拉清單,選擇More fonts。你就會打開一個可供下載的字體庫視窗。 
In the Properties menu expand the textAppearance section and then open the subsequent fontFamily dropdownIn the Properties menu expand the textAppearance section and then open the subsequent fontFamily dropdownIn the Properties menu expand the textAppearance section and then open the subsequent fontFamily dropdown
  • 如果想要增加字體,選中後點擊OK
  • 打開工程的res/font資料夾,你就會看到剛才被增加的字體,準備被你使用。
  • 為了將此字體應用于任何文本,只需要增加屬性android:fontFamily="@font/name-of-your-font"

六、其他值得注意的更新

AS3.0預覽版還提供了一些有用的新工具 

APK Debugger 

該工具使得分析和調試apk更加容易,在AS工具列選擇 File > Profile or debug APK,然後選擇你想要查看的APK 。或者在AS的Welcome 介面選擇Profile or debug APK。 

Device File Explorer 

與設備的檔案系統交互,包括查看,複製,刪除以及上傳檔到設備。右擊AS螢幕,選擇Device File Explorer,或者從AS工具列選擇View > Tool Windows > Device File Explore

Adaptive Icon Wizard(可適應的icon嚮導) 

在Android O中,原始的設備製造商能將mask應用到設備上的所有app啟動圖示。為了確保應用圖示正確的展示,而不用考慮mask,你需要提供一個adaptive launcher icon。

雖然,我們之前探索過相關話題,但是AS3預覽版引入了專用嚮導,有了它就可以更容易的創建可適應的icon。 打開嚮導的方法,右擊工程的 res資料夾,選擇New > Image Asset。 在出現的視窗中,打開 Icon type下拉清單,將它設置為 Launcher Icons (Adaptive and Legacy)。選擇前置背景層和後置背景層後創建可適應的icon.

Android Studios Image Asset window will walk you through the process of creating an adaptive icon Android Studios Image Asset window will walk you through the process of creating an adaptive icon Android Studios Image Asset window will walk you through the process of creating an adaptive icon

結語

本文探索了AS3預覽版的新工具和特性,包括內置Kotlin語言支援,對Java8支持的改進,新的Android Profiler。有了這些新特性,開發安卓app將變得越來越有趣。

下面是我們關於安卓app開發的其他教程和視頻課程。

关注我们的公众号
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.