Android Studio 3.5新特性
在今天(美國時間8月20日)的早些時候,Android Studio(以下簡稱為AS) 3.5正式版終於發布了,從第一個bate版本發布到正式版本,歷時三個半月。AS一直以來被開發者吐槽,因此谷歌也放慢了版本的變化,對測試版本進行大力度的優化,提高了穩定性。從3.3版本開始,谷歌啟動了名為Project Marble的計划,意為谷歌團隊致力於使集成開發環境(IDE)的基本功能和流程變得堅如磐石,同時精煉和完善面向用戶的功能。而AS 3.5則是Project Marble主要成果的版本,下面來介紹主要成果。
Project Marble:系統健康
推薦的內存設置
如果AS檢測到可以增加操作系統為AS進程分配的最大RAM(例如IDE,Gradle守護程序和Kotlin守護程序)來提高性能,那么AS將會彈窗提示,如下圖(圖片來自官方文檔)
當然你也可以通過菜單打開配置,路徑File > Settings(mac: Android Studio > Preferences),可以在Appearance & Behavior > System Settings中找到Memory Settings的配置選項。
內存使用報告
AS的內存問題有時難以重現和報告,為幫助解決此問題,在AS 3.5中可以通過菜單欄中的Help > Analyze Memory Usage來生成內存使用情況報告,點擊之后會自動生成報告,提示重啟AS。重啟完畢后,會顯示內存使用報告,你可以發送報告給AS團隊,以分析使用問題。內存報告如下圖
Windows:殺毒軟件導致的IO問題
大部分開發者用的是Windows系統,而殺毒軟件的文件掃描系統會實時掃描新文件。在AS構建項目時,Gradle會編譯程序的資源和源代碼,然后將編譯后的資源打包在一起,在此過程中,會生成大量的文件,如果殺毒軟件進行掃描會嚴重降低構建速度。所以可以關閉殺毒軟件提升速度(不建議),或者把AS的一些目錄添加到殺毒軟件實時掃描的忽略目錄。有這些目錄
Gradle緩存目錄:%USERPROFILE%(用戶目錄)\.gradle
Android SDK目錄
Android項目目錄
Android Studio目錄
Project Marble:特色功能改進
Apply Changes
為了能不重啟應用就使修改的代碼和資源生效,以前推出了Instant Run,但是效果並不好,AS 3.5則推出了Apply Changes,與Instant Run重新編寫APK的字節碼技術不同,Apply Changes是通過利用Android 8.0(API級別26)或更高版本中支持的 Android JVMTI(https://docs.oracle.com/javase/8/docs/platform/jvmti/jvmti.html#bci)技術。所以如果想使用Apply Changes有兩個條件:
- Apk必須是debug包
- 必須在Android 8.0以上的手機上運行
Apply Changes按鈕在菜單欄上,在運行的右側新增兩個按鈕,如下圖(圖片來自官方文檔)
Apply Changes and Restart Activity:嘗試通過重新啟動活動但不重新啟動應用程序來應用資源和代碼更改。如果有代碼和資源的修改可以使用這個來使代碼和資源即時生效。
Apply Code Changes:嘗試僅應用代碼更改而不重新啟動任何內容。如果只有代碼修改,可以使用這個來使代碼生效。如果修改了代碼和資源,請使用“Apply Changes and Restart Activity ”。
當使用Apply Changes失敗時,AS會提醒是否重新運行應用,如果不想AS進行提醒而在失敗時直接重新運行應用,可以打開File > Settings(mac: Android Studio > Preferences),在Build, Execution, Deployment > Deployment中選擇兩個復選框即可。需要注意的是如果是修改了onCreate中的代碼則必須重啟應用修改才可生效。
應用部署流程
AS 3.5新增了一個下拉菜單,可以直接選擇需要部署的機器。而且菜單中還包含一個選項,可以同時部署到多台設備。下拉菜單如下圖
部署到多設備如下圖
改進了Gradle同步和緩存檢測
在以前的版本中,AS會定期清理下載的依賴項,可能會導致Sync失敗,而AS 3.5版本改進了這個策略,更好地確定Gradle清理緩存的實際,減少同步失敗的情況發生。
改進了構建錯誤輸出日志
在新版本中,在build時為以下的構建過程提供了更好的錯誤報告,例如指向文件的鏈接和報告錯誤的行:
- AAPT編譯和鏈接
- R8和ProGuard
- Dexing
- 資源合並
- XML文件解析
- Javac,Kotlinc和CMake編譯
項目升級
改進了更新體驗,提供了更多信息和操作,可以更好的更新IDE和Android Gradle插件。例如,如果出現錯誤,現在會有更詳細的同步和構建錯誤日志。
現在可以獨立的更新IDE而不影響其他的功能,例如Android Gradle插件可以在以后進行更新。
布局編輯器
AS 3.5對布局的可視化,管理和交互做了一些改進。
例如在使用ConstraintLayout布局時,屬性面板里的約束顯示了所有的約束關系,可以直接進行選擇 。如下圖(圖片來自官方文檔)
同時也可以選擇一個約束,然后點擊Delete鍵進行刪除約束。也可以按下Ctrl(mac:command)鍵,然后點擊一個約束進行刪除。當按下Ctrl(Command)鍵時,鼠標懸停在約束上時,任何與之關聯的約束都會變為紅色,表示可以點擊該約束進行刪除。
選擇視圖后,可以通過單擊屬性面板的約束小組件部分中的任何+圖標來創建約束,如下圖(圖片來自官方文檔)。創建新約束時,布局編輯器現在突出顯示約束,提供即時的可視反饋。
現在創建約束時,布局編輯器僅顯示可以約束的合格錨點。而在以前的版本中,無論是否可以約束它們,布局編輯器會突出顯示所有視圖上的所有錨點。此外,在約束的目標會突出顯示藍色疊加層。如下圖的對比
在AS 3.4中的表現
在AS 3.5中的表現
除上述更新外,AS 3.5還包含以下布局編輯器的改進:
- 該 Constraint Widget和margin下拉選項中會有dimens資源選項。
- 在布局編輯器的工具欄中,設備列表數據以及更新。此外,調整設備大小時的行為改進,現在調整設備大小的操作手柄始終可見。在調整大小時,會出現顯示常見的各種設備的疊加層。
- 現在布局編輯器有新的配色方案(變淺了),提高了一致性並降低組件,文本和約束之間的對比度。
- 藍圖模式包括了對未顯示文本的某些組件的文本支持。
Data Binding
此版本中,除了為數據綁定添加了增量處理支持之外,而且在XML中創建data binding表達式時改進了智能編輯器功能和性能。
在3.4版本中的效果
在3.5版本中的效果
改進了對C / C ++項目的支持
AS 3.5包含一些改進,對C / C ++項目更好的支持,對一些大型項目,大大提高了編譯的速度。
對Build Variants面板改進
您現在可以在Build Variants面板中指定Active Build Variant和Active ABI 。這個功能簡化了每個模塊的構建配置,還提高了Gradle同步的性能。
並行的NDK版本
現在可以並排使用多個版本的NDK。這個功能在配置項目時提供了更大的靈活性: 例如,如果項目在同一台計算機上需要使用不同版本的NDK就會很方便。
如果使用了Android Gradle Plugin3.5.0或更高版本,還可以指定項目中每個模塊應使用的NDK版本。可以使用這個功能創建可重現的構建,並減輕NDK版本與Android Gradle插件之間的不兼容性。
Chrome OS支持
AS現在正式支持Chrome OS設備,可以在下載頁面下載相應的版本。
動態特性支持
AS 3.5 增強了對應用程序包特性的支持,為應用程序包添加了動態特性支持。開發者可以根據硬件特性(如OpenGL版本、對AR的支持)設置條件,或者根據API級別和用戶國家地區設置條件。新建module時選擇Dynamic Feature Module並點擊Next就會出現如下圖所示的選項,具體的詳細配置可以參考https://developer.android.com/studio/projects/dynamic-delivery/conditional-delivery
IntelliJ IDEA 2019.1
AS 3.5的IDE已經更新了IntelliJ IDEA到2019.1的版本,關於IDEA2019.1版本的詳細更新可以參考這個鏈接
Android Gradle plugin 3.5.0
隨着AS 3.5的發布,Android Gradle plugin也更新到了3.5.0,關於plugin的更新內容可以參考這個鏈接
那么,現在升級到3.5.0吧,可以在AS內進行增量更新,也可以下載最新安裝包重新安裝。下載地址https://developer.android.com/studio#downloads
本文是轉載文章,支持原創,博主原地址:https://blog.csdn.net/jklwan/article/details/99974869