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 3 设定 tsconfig.json 档

>>:  [第03天]理财达人Mx. Ada-查询报价

[Day 21] Mattermost - RSS

Mattermost RSS 当你使用过Mattermost一段时间後,想试着使用RSS订阅一些像是...

失误的修补智慧

在各行各业工作时,很多人都有因为工作上失误,而被上司责骂的经验,这些必经的过程,被视为「学习」和「记...

AI ninja project [day 22] 变分自动编码器 Variational Autoencoder

如果讲了自动编码器(AE), 却不介绍变分自动编码器(VAE), 感觉有点太可惜了。 听到生成演算法...

30天零负担轻松学会制作APP介面及设计【DAY 28】

大家好,我是YIYI,今天我要来跟大家聊聊ICON。 ICON设计原则 我认为最重要的原则就是清晰,...

Day 07:我今天想不到标题之整合 tmux 和 zsh

我把从第一天到现在每天的 Home 目录都放上 GitHub 了,README.md 里面有说明 ...