溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Android Studio 3.0新功能有哪些

發(fā)布時間:2021-07-10 11:42:21 來源:億速云 閱讀:188 作者:小新 欄目:移動開發(fā)

這篇文章主要介紹Android Studio 3.0新功能有哪些,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

簡介:

Android Studio是Android的官方IDE。它是專為Android而打造,可以加快您的開發(fā)速度,幫助您為每款A(yù)ndroid設(shè)備構(gòu)建最優(yōu)應(yīng)用。

它提供專為Android開發(fā)者量身定制的工具,其中包括豐富的代碼編輯、調(diào)試、測試和性能分析工具。

上周四,Google 終于在經(jīng)歷大半年的打磨錘煉之后正式發(fā)布 Android Studio 3.0 版本,給廣大安卓開發(fā)人員一份滿意的答卷。如往常一樣,每次新版開發(fā)工具的發(fā)布,很多謹(jǐn)慎點的朋友仍擔(dān)心穩(wěn)定性、是否存在坑等問題,選擇隔岸觀火,等一段時間再更新升級。

經(jīng)過查看官網(wǎng)對新版開發(fā)工具的新功能介紹之后,當(dāng)天我就選擇了升級。事實上,我也的確折騰良久,但是截至目前,沒有發(fā)現(xiàn)所謂的坑。只是需要對舊的工程做一些配置上的調(diào)整而已。各方面響應(yīng)速度和新功能的使用,總體還是覺得值得升級。這篇文章,就來介紹新版開發(fā)工具給我們帶來哪些實用的改變,并以實際操作經(jīng)驗告訴大家,舊工程的配置需要如何做兼容修改。

3.0 帶來的改變

Kotlin Support

在 Android Studio 3.0 之前,使用 Kotlin 語言開發(fā)安卓應(yīng)用,需要額外配置 Kotlin 插件。而新版本內(nèi)置默認(rèn)支持 Kotlin 語言,來減少我們在配置上的工作。

選擇工具欄 Code -> Convert Java File To Kotlin File,或者使用快捷鍵的形式,你可以一鍵實現(xiàn) Java 文件到 Kotlin 文件的轉(zhuǎn)換。

Android Studio 3.0新功能有哪些

備注:關(guān)于快捷鍵的使用,你可以使用 Command + Shift + A 這組快捷鍵打開 Find Action 窗口,輸入關(guān)鍵字尋找對應(yīng)功能及其快捷鍵,效果就像上面 Gif 圖展示的這樣。

Java 8 Support

3.0 對 Java 8 語言特性的默認(rèn)支持使你不用在 build.gradle 配置文件中添加 jackOptions 一項。如果你有使用到的話,記得刪除:

android {
 ...
 defaultConfig {
 ...
 // Remove this block.
 jackOptions {
 enabled true
 ...
 }
 }
}

選擇工具欄 File ——》Project Structure,修改 Source Compatibility 和 Target Compatibility 選項到 1.8 即可使我們的項目支持 Java 8 語言特性。

Android Studio 3.0新功能有哪些

Android Profiler

過去我們使用的 Android Monitor 工具從 3.0 版本開始被 Android Profiler 替代掉了。如圖,run 按鈕一欄多了一個 Android Profiler 按鈕:

Android Studio 3.0新功能有哪些

Android Profiler 提供有 CPU、Memory 和 Network 三大調(diào)試分析利器,實時跟蹤 Apk 的運行狀態(tài),可以幫助我們可視化地做一些性能調(diào)優(yōu)工作。

這三個工具在開發(fā)階段非常實用,比如 CPU Profiler 能夠分析應(yīng)用中的線程使用情況,Memory Profiler 能夠檢測出內(nèi)存泄漏,Network Profiler 能夠攔截網(wǎng)絡(luò)請求實現(xiàn)抓包功能等。這里列舉一些使用圖片,簡單預(yù)覽一下這三大工具的風(fēng)采:

Android Studio 3.0新功能有哪些

Android Studio 3.0新功能有哪些

Android Studio 3.0新功能有哪些

有關(guān)這幾個工具的詳細使用細節(jié),可以參考官方的介紹:

  • CPU Profiler guide

  • Memory Profiler guide

  • Network Profiler guide

Device File Explorer

這個功能厲害了。新版開發(fā)工具帶來的資源管理器允許我們訪問連接設(shè)備的文件系統(tǒng),實現(xiàn) PC 端到手機或模擬器端的便捷文件傳輸。有了這個工具,從此就可以告別之前使用的「文件傳輸助手」等第三方工具啦。

Android Studio 3.0新功能有哪些

Adaptive Icons wizard

選擇 File -> New -> Image Asset,利用 Android Studio 提供的工具創(chuàng)建圖片資源一直以來也是開發(fā)利器之一?,F(xiàn)在,這個工具開始支持 vector drawables 格式,并且能夠創(chuàng)建用于適配 Android 8.0 系統(tǒng)上各種形狀的桌面圖標(biāo)。

Android Studio 3.0新功能有哪些

URL intent-filter validator

這個功能也蠻貼心的。Manifest 清單文件開始支持一個特殊的標(biāo)簽,用于測試給定的 Url 字符串是否符合 intent-filter 標(biāo)簽內(nèi)容所定義的規(guī)則。舉個例子:

Android Studio 3.0新功能有哪些

如圖,這里使用 data 標(biāo)簽定義一個 Url 規(guī)則,并使用 tools:validation 標(biāo)簽驗證一個錯誤的測試 Url 地址,檢測器能夠自動識別并給出錯誤提示。這個例子很簡單,肉眼一眼就能看出錯誤。那如果是比較復(fù)雜的規(guī)則呢,可能就不那么容易看得出來。這個時候,這個工具就可以派上用場啦。

APK Analyzer

3.0 版本對 APK Analyzer 的功能做了進一步強化。主要在于:對于使用 ProGuard 混淆過的 APK 文件,我們能夠上傳 mapping.txt 文件進行代碼還原;Dex 文件提供顯示各個包目錄的大??;等等。

Android Studio 3.0新功能有哪些

其他功能

除了上面介紹的這些變化,還有一些其他大大小小的變更。比如 Layout Inspector 和 Layout Editor 工具在 UI 上有所調(diào)整,比如 App Links Assistant 和 Firebase App Indexing Assistant 的強化使用,這些留著大家自己去探索發(fā)現(xiàn)吧。也可以訪問 Android Studio Release Notes 官網(wǎng),了解 3.0 版本的更多發(fā)布細節(jié)。

舊項目的適配

Android Studio 3.0 發(fā)布的同時,Android Plugin for Gradle 3.0.0 也同時發(fā)布。編譯速度整體都得到了大幅提升。升級完 Android Studio 之后,舊的工程需要做出部分改變,才能通過 Gradle 的編譯。這里根據(jù)我的一個實際項目,介紹一下需要改變的內(nèi)容。當(dāng)然,也許你的項目用不上這些,也可能不止這些。

distributionUrl

Plugin 3.0.0+ 需要配置 Gradle 的最小版本是 4.1,我們可以通過 File -> Project Structure -> Project 的方式設(shè)置 Android Plugin 的版本,或者修改 gradle.properties 文件的內(nèi)容,添加 distributionUrl 屬性:

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

Google's Maven repository

新版 Android Studio 工具默認(rèn)使用 Google's Maven Repository 用于下載依賴 Android Support Library,替代了 Android SDK Manager 的本地依賴方式。所以,需要在工程根目錄下的 build.gradle 文件中添加 google() 一行代碼:

allprojects {
 repositories {
 google()
 }
}

buildToolsVersion

Android Plugin For Gradle 3.0.0 默認(rèn)自動添加插件所需要用到的最小版本的編譯工具。所以,我們不需要再手動在 build.gradle 添加一行 buildToolsVersion 屬性的代碼。對于舊的項目,可以去掉這行配置,比如:

android {
 compileSdkVersion 26
 // remote buildToolsVersion
 buildToolsVersion "25.0.2"
 ...
}

flavor dimensions

Plugin 3.0.0 開始,如果 build.gradle 自定義有 productFlavors 配置的話,需要添加定義 flavorDimensions(風(fēng)味維度)。否則,編譯報錯:

rror:All flavors must now belong to a named flavor dimension.
The flavor 'flavor_name' is not assigned to a flavor dimension.

flavorDimensions 的出現(xiàn)使得構(gòu)建變種類型更加多樣化:

可構(gòu)建的變種數(shù)量 = 風(fēng)味維度的數(shù)量 * 構(gòu)建類型的數(shù)量

詳細使用可參考 配置構(gòu)建變體。對于舊項目,簡單的話,可以隨意定義一個風(fēng)味維度,保證編譯通過,如(這里的“minApi”可自由定義):

flavorDimensions "minApi"
productFlavors {
 beta {
 dimension "minApi"
 ...
 }
 production {
 dimension "minApi"
 ...
 }
}

each() 和 outputFile()

Plugin 3.0.0 版本移除了一些用于編譯配置的 API,其中比較常見的就是 each() 和 outputFile(),兩個常用于修改輸出

Apk 文件名和路徑的方法。

在之前的文章 Android Gradle 常用使用場景實現(xiàn)方式的總結(jié) 中有提到,自定義輸出 APK 文件名可以這樣做:

android {
 android.applicationVariants.all { variant ->
 variant.outputs.each { output ->
 output.outputFile = new File(output.outputFile.parent, rootProject.getName()
  + "-" + buildType.name
  + "-" + releaseTime()
  + "-v" + defaultConfig.versionName
  + "-" + defaultConfig.versionCode
  + ".apk");
 }
 }
}

但是使用 Plugin 3.0.0 時就會出現(xiàn)編譯報錯,我們需要修改 each() 和 outputFile() 方法為 all() 和 outputFileName,比如:

android {
 android.applicationVariants.all { variant ->
 variant.outputs.all { 
 outputFileName = rootProject.getName()
  + "-" + buildType.name
  + "-" + releaseTime()
  + "-v" + defaultConfig.versionName
  + "-" + defaultConfig.versionCode
  + ".apk";
 }
 }
}

對于舊的工程,基本上便是這些配置上的適配修改。如果你還遇到了別的問題,別緊張,按照編譯錯誤提示一步步操作,也能成功通過編譯??傮w來說,這次 Android Studio 3.0 和 Plugin For Gradle 3.0.0 的發(fā)布還是非常值得升級嘗試的,并沒有網(wǎng)上說的那么多坑。何況,我們作為寫代碼的程序員,本來不就是為了解決問題而來嘛。

以上是“Android Studio 3.0新功能有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI