谷歌2017 I/O大會後續:Android Studio 3有哪些新特性?(翻譯)

原文鏈接地址

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

預覽版官方下載地址
預覽版國內下載地址

一、內置支持Kotlin
本次大會上宣佈的一個重大消息是谷歌讓Kotlin成爲了安卓開發最好的語言。儘管之前AS可以通過插件的形式支持Kotlin,現在將Kotlin內置AS後可以讓開發者更加容易開始使用Kotlin。

AS3支持三種方式使用Kotlin.
方式一:新建Kotlin工程
首先,你會在創建工程的嚮導中看到”Kotlin support”複選框。如下圖:
image

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

buildscript {
  ext.kotlin_version = '1.1.2-4'
  repositories {
      maven { url 'https://maven.google.com' }
      jcenter()
  }

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

apply plugin: 'com.android.application' 
apply plugin: 'kotlin-android'
...
...
...
dependencies {
  compile fileTree(dir: 'libs', include: ['*.jar'])
  androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
      exclude group: 'com.android.support', module: 'support-annotations'

  })

  compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"

方式二:將已有的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同樣會出現配置提示語音,解決方法同上。
假如你對Kotlin不熟悉,並想知道要注意的細節,你可以參考這系列文章。
點此打開該系列文章

二、一個新的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,內存使用情況,它們都是實時更新。
imag

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

Network Profiler
該Profiler展示了網絡活動時間表,顯示發送的數據和接收的數據,以及當前的連接數。要注意的是,Network Profiler只能支持HttpURLConnection 庫和OkHttp 庫,所以假如你使用了不同的庫,你可能無法看到你的app網絡活動情況。
CPU Profiler
該Profiler展示了你的app的CPU使用和線程活動情況。你還能夠精確的看到哪些方法正在被執行,並且每個方法消耗CPU資源的情況,這些通過記錄一個方法的蹤跡完成。
爲了記錄蹤跡,打開下拉菜單,選擇Sampled 或Instrumented,然後點擊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.
這裏寫圖片描述

-選擇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:

distributionUrl=https\://services.gradle.org/distributions/gradle-4.0-milestone-1-all.zip

然後打開工程build.gradle文件,確保你正在使用谷歌的最新Maven 庫。
將Gradle插件 更新到v 3.0.0-alpha1,

buildscript {
  repositories {
      maven { url 'https://maven.google.com' }
      jcenter()
  }

   dependencies {
       classpath 'com.android.tools.build:gradle:3.0.0-alpha1'

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



defaultConfig {

   // Remove the following block//

   jackOptions {
       enabled true
       ...
   }

}`
最後你需要增加Java8的compileOptions 到 build.gradle文件:

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}

五、更加容易的自定義字體
給app增加自定義字體,通過在Android O版本上將字體這種資源提升至完全被支持的資源類型,谷歌正在讓這件事變得更加容易。雖然我們已經研究了 working with custom fonts
但是,AS3預覽版增加更加方便的特性,該特性可以更加方便的瀏覽自定義字體,並且更加方便的添加到工程。
-打開任何包含TextView的layout資源文件
-選擇Design 按鈕
-在編譯器裏面選擇TextView,Properties 菜單會出現在AS窗口左側。
-滾動菜單的textAppearance 部分,並且點擊箭頭展開。打開fontFamily 下拉框,選擇More fonts。你就會打開一個可供下載的字體庫窗口。
這裏寫圖片描述
-如果想要增加字體,選中後點擊OK -打開工程的res/font文件夾,你就會看到剛纔被增加的字體,準備被你使用。-爲了將此字體應用於任何文本,只需要增加屬性android:fontFamily="@font/name-of-your-font"

六、其他值得注意的更新
一些有用的新工具
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.
這裏寫圖片描述

結語
本文探索了AS3預覽版的新工具和特性,包括內置Kotlin語言支持,對Java8支持的改進,新的Android Profiler。

原文鏈接地址

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