iT邦幫忙

2021 iThome 鐵人賽

DAY 3
0
Mobile Development

30 天從麻瓜變 Android 工程師系列 第 3

Day 03:Android 開發工具

前言


在開始寫 Android 之前,想先介紹如何提升寫 code 的速度,
如果從現在開始習慣,並記下快捷鍵,之後可以省下大量的時間。
這裡介紹的其實都不是必要,而是容易被忽略的、知道了能加速的功能,
因為 AS 有太多功能,需要用到的時候再找教學就好,
另外,進入設定(⌘+,)搜尋 keymap 可以修改大部分的快捷鍵,
但不建議這麼做,因為經常會需要告訴其他人,例如 demo 或是直接操作對方電腦的時候。

Android Studio


以下簡稱 AS

編輯器

AS 的編輯器功能非常強大,光一個 ⌥ 就能玩出很多花樣。

Live Templates (寫出關鍵字後 + tab)

用途:如 AS 內建的 logi + tab,我們可以自訂常打的 code,還可以自動帶入、等待輸入參數。
頻率:高


(可駝峰)搜尋

下面提到的輸入,都可以直接輸入大寫(駝峰)的部分,而且在看似沒有輸入框的地方,只要得到焦點也能直接輸入文字

Find Action (⌘+⇧+A)

用途:可以透過輸入上方選單內的選項直達功能,後面也會顯示功能路徑。
頻率:高
上方選單

快捷鍵畫面

Find Files (⌘+⇧+O)

用途:輸入檔案名稱,開啟檔案。
頻率:高

Find All (⇧x2)

用途:其實包含了上面 Action、Files,以及其他如 Class 等搜尋,上面特別講是因為有時候搜尋結果太多,不容易找。
頻率:高

Find in Files (⌘+⇧+F)

用途:搜尋程式碼用的,可以下過濾條件、regular expression 搜尋等功能。
頻率:高
示範:在所有 kt 檔中找 findViewById 後有接任意型別。

側邊欄 (⌘+數字)

用途:快速展開 / 收起側邊欄,在寫 code 的時候才有足夠的空間。
頻率:高

Git (⌘+9)

用途:Android Studio 的 Git 非常的厲害,很多特有功能,贏過其他專業 Git GUI 軟體,右下角可以快速切換 branch。
頻率:高

Problems (⌘+6)

用途:在 commit 之前,關心以下 lint,這樣 pull request 才不會被退回,會更花時間。
頻率:中

Terminal (⌥+F12)

用途:不需要再另外開 terminal 下指令了。
頻率:中

截圖 / 錄影

用途:Logcat 中的截圖 / 錄影功能,沒有浮水印,檔案會直接輸出在電腦裡。
頻率:中

External Tools (Find Action 或自訂快捷鍵)

用途:自訂執行外部腳本,如:shell、python,並且可以用 Find Action 找到或是設定快捷鍵。
頻率:高
這些是我自己會需要用到的功能, 裡面有 shell 也有 python,
這裡介紹 Density,目的是輸入 dpi,直接把手機改成平板界面,
就不需要再去拿平板或開 AS 內建的平板模擬器了。

設定頁面

Density.sh

prompt=$1
if [[ $prompt == "" ]]
then
	adb shell wm density reset
else
	adb shell wm density $prompt
fi

使用方式:Find Action

Plugins

ADB Idea

用途:快速移除 / 清除資料 / 重啟 / Android 權限重置,省去在手機上操作、進設定的時間。
頻率:高

Adb Input

用途:向手機發字串,省去手機打字時間,也有記錄可以省去經常輸入的文案。
頻率:高

Json Parser

用途:在 logcat 看到 json 格式,可以直接貼到側邊欄看格式化後的樣子。
頻率:高

官方釋出新功能

Google I/O
AS 的功能非常的多,可以關注 Google I/O、或從 官網 得知新功能。

內建模擬器

以前內建的模擬器很慢,支援也少,
但現在模擬器多了很多模擬功能,速度也快多了,
在不同裝置如 Automotive、Wear 這些比較不常用的裝置也都有持續在更新,
但要注意的是,目前內建模擬器並不是全面支援 Apple M1 晶片的。

ADB


ADB 有非常多好用的指令,建議找找更全面的介紹,
不需要都會,但要知道能做到哪些事情。

adb connect

用途:無線 adb,這樣手機就不需要接線到電腦了,跟接線能做到的事都相同,對於線材接觸不良、demo、遠端作業都非常好用。
頻率:高

外部工具


scrcpy

用途:低延遲、高清、沒有浮水印的手機及時鏡像,因為是用 ADB 實作,所以也可以無線串流。
頻率:中

結語


寫程式的時候最怕被打斷,追了好幾層的 code 又要重來、思路要重想,
各位應該有去查個資料,結果就分心到其他事物上的經驗,
如果能使用這些技巧,長期下來不只能省下非常多時間跟心力,
還能避免分心,例如 ADB Idea 可以避免滑手機,用內建的 Git 可以避免切換到通訊軟體,
甚至我連 GitHub 的 Pull Request 都在 AS 裡面發,
這能減少不必要的 content switch。


上一篇
Day 02:軟體業界常用軟體
下一篇
Day 04:程式語言
系列文
30 天從麻瓜變 Android 工程師30

尚未有邦友留言

立即登入留言