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

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

by
Difficulty:BeginnerLength:MediumLanguages:

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 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 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 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 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

結語

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

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

关注我们的公众号
Advertisement
Advertisement
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.