[Android Studio 进阶使用] 如何实现三天完成十几个页面

avatar
Android

image2023-9-18_20-53-3.png

工具的使用是人类区分和动物区别的关键。

——卡尔·马克思(Karl Marx)& 弗里德里希·恩格斯(Friedrich Engels)

一、引言

我们可以简单思考一下,为什么有的开发人员的开发速度会比一般人快? 换句话说,为什么有的人可以效率这么高?

个人理解无非以下几点:

  1. 项目熟悉度,大半个项目代码都是自己写的或仔细研读过;——提速30%
  2. 业务壁垒,往期从事的需求开发和业务内容相似性极高;——提速25%
  3. 开发经验,工龄积累下相当高的开发熟练度以及可复用代码;——提速20%
  4. 技术能力,对目标技术栈的认知深度远超他人;——提速15%
  5. 架构能力,优秀的架构设计可以节省许多重复工作;——提速10%
  6. 工具使用,便捷的流畅的工具使用更便捷的辅助开发进行;——提速5%30%\color{red}{工具使用,便捷的流畅的工具使用更便捷的辅助开发进行;——提速5\%-30\%}

1-5点能力也是各个程序员的能力指标,多数情况下也是招聘面试考核的关注重点,在此便不再赘述; 6 即为本文的核心:提高开发工具使用能力以提高开发效率。\color{red}{提高开发工具使用能力以提高开发效率。}

Tips:

  1. 此处的百分比不具有权威意义,仅仅是个人的大致估计;
  2. 此处估计的流程为传统开发流程,而非敏捷甚至是极限编程场景;
image2023-9-18_20-46-8.png

二、重要性分析

好像今天没做什么事,一天就结束了。

1. 具像化数据

最简单的例子,复制一行完全相同的代码在已有代码正下方需要多长时间?

  • 路径一:抬手,握住鼠标,左键长按拖选,Command+C,Command+V,Enter,Command+V——3s
  • 路径二:Command+方向键选中,Command+C,Command+V,Enter,Command+V——1-2s
  • 路径三:Command+D——0.5s

该操作每天进行几十次,单一操作上是否就慢了几分钟。

高频行为高效地使用工具可以大幅度提高效率。\color{red}{高频行为高效地使用工具可以大幅度提高效率。}

2.  效能数据

或许各位存在一些疑问,为什么工具使用的提效水平是有区间 5%-30% 的?

简要提供一下个人评价标准:

  1. 强相关性工具:Android Studio、GitLab、Jenkins等——直接影响应用开发过程;
  2. 弱相关性工具:Copilot、Python脚本等——不使用也不影响应用开发;

也就是 工具的多样性和适配性在很大程度影响提效水平。\color{red}{工具的多样性和适配性在很大程度影响提效水平。}

image2023-9-18_20-52-36.png

三、直入正题 

Android Studio

1. 快捷键

估计30%开发者常用的快捷键

  • Option + Up Arrow 逐渐增加当前选中的范围

  • Option + Down Arrow 缩小当前选中的范围

  • Command + Option + / 注释当前选中的内容

  • Command + Shift + - 折叠所有代码

  • Command + Shift + + 展开所有代码

  • Command + - 折叠光标所处位置代码

  • Command + + 展开光标所处位置代码

  • Command + Y 不跳转快速查看定义

  • Command + P 不跳转快速查看参数信息

估计50%开发者常用的快捷键

  • Command + O 自动格式化依赖项

  • Command + L 跳转目标行

  • Command + G 查找下一个匹配项

  • Command + Shift + G 查找上一个匹配项

  • Command + Shift + C 复制文件完整路径 (常用于Terminals命令)

  • Command + Shift + Up/Down Arrow 光标停留行上下移动

  • Command + Option + L 选定内容自动对齐(常在写完代码后配合Comman + A 全选使用)

估计80%开发者常用的快捷键

  • Ctrl + R 运行程序

  • Command + C 选中当前行 (复制妙用)

  • Command + X 删除光标所在行内容 (剪切妙用)

  • Command + / 注释当前行

  • Command + D 复制当前行内容到下一行

  • 双击Shift 全局文件检索

  • Command + Shift + F 全局字段检索 (检索器带有锁定大小写/文件类型/连续字段匹配等筛选条件)

  • Command + Option + Left/Right 切换上一个/下一个跳转页面

  • Option + Enter 自动修正选项卡 (重写/简化) (Import多行灰色用不到的可以用此功能一键清除 不用一行行的删)

不会干不了开发的快捷键 嘿嘿

  • Command + C

  • Command + V

2. 堆栈分析

2.1 Thread.dumpStack()

在任意位置打印堆栈轨迹;

打日志定位问题时,必要情况下可以加上该代码打印触发逻辑时的堆栈轨迹;

2.2 Code → Analyze Stack Trace

可将日志复制后粘贴到其中进行分析;

常用于 Log / Sentry / Firebase 获取错误日志后 快速跳转目标代码位置;

image2023-9-18\_19-44-42.png

3. 代码补全

Settings → Live Template

配置自定义代码补全,简单几个关键字,输出常用完整代码。

image2023-9-18_19-48-16.png image2023-9-18_19-48-0.png

4. 布局检查器

Tools → Layout Inspector

在设计UI绘制的需求中,当绘制不出所需要的效果时,可以打开布局检查器,逐层校验各个环节是否存在问题

  • Component Tree:布局中视图的层次结构。
  • Layout Display:按照应用布局在设备或模拟器上的显示效果呈现布局,并显示每个视图的布局边界。
  • 布局检查器工具栏:布局检查器的工具。
  • Attributes:所选视图的布局属性。

点击视图对应有问题组件的位置,在左侧层次结构中,逐层对照右侧视图属性是否正确,最终定位出问题所在进行修改。

image2023-9-18_19-50-43.png

5. 布局验证工具

右边栏 →  Layout Validation

主要用于验证布局在不同分辨率设备中显示效果, 包含四种配置:

  • Pixel Devices:预览布局在 Pixel 设备上的显示效果
  • Custom:自定义要预览的显示配置,可从各种设置(包括语言、设备或屏幕方向)中进行选择
  • Color Bind:为了方便色盲用户使用您的应用,通过常见色盲类型的模拟验证布局
  • Font Size:验证各种字体大小下的布局,并通过使用较大的字体测试布局,改进适用于视力障碍用户的无障碍功能

轻松完成屏幕适配。

image2023-9-18_19-54-53.png

6. Logcat 查看技巧

6.1 去除多余信息

日志信息中常常有许多内容是我们不需要关心的,
此时可以点击左边栏的齿轮按钮 Logcat Header 图标移除这些信息,只保留一个TAG,Logcat界面就会清爽很多

image2023-9-18_19-57-32.png

image2023-9-18_19-58-17.png

6.2 折叠信息

选中并右键点击那些多余且不关心的子字符串,点击 Fold lines like this 创建一个过滤器,

如右图,所有包含 Accessing 的 Log 被折叠,点击对应位置可再展开。

image2023-9-18_19-59-4.png

image2023-9-18_19-59-31.png

7. Debug 断点调试技巧

7.1 条件断点

我们把断点打到循环体里的某行代码,想看看循环到某一次时的运行状态。

条件为“true”,当代码命中这个条件时,就会停在这个断点!

image2023-9-18_20-3-30.png

7.2 日志断点

在运行到对应位置时获取想要查询的属性信息,而直接断点 Variables 菜单中的信息太多寻找较为麻烦,

会很自然的联想到使用日志输出所需信息,但这又回产生另一个问题:我们不希望把Log语句在代码中打得到处都是

此时日志断点会派上用场,在右键断点的 Condition 框中点击 More。

image2023-9-18_20-8-40.png

7.3 异常断点

强大的Android Studio提供了异常断点的功能。帮助我们在调试运行的App遇到异常,能够先快速准确的定位到产生异常的地方,而非第一时间停止App的运行。

顶部菜单栏——Run——View Breakpoints (快捷键 Command + Shift + F8

image2023-9-18_20-6-25.png

7.4 变量改值

当断点停在对应位置,可以右键点击需要改变的变量值,点击 Set Value 输入设定值,

令变量以设定值继续运行

image2023-9-18_20-7-36.png

7.5 断点组

当调试时想禁用一些不需要使用的断点,可打开 View Breakpoint 界面,对断点进行分组,批量取消Enabled勾选。

image2023-9-18_20-8-16.png

7.6 前置触发断点

当想要某种情况发生后,再触发该断点查看具体属性。

可增加断点前置条件。

image2023-9-18_20-5-48.png

8. Bookmarks

不想把Todo打得到处都是,可增加本地书签:

  • F3 标记光标所在代码行
  • Command + F3 查看所有标记
  • Option + F3 标记且添加数字等
image2023-9-18_20-15-6.png image2023-9-18_20-15-41.png

9. IDE管理

File -> Manage IDE settings

保存自己的IDE配置,更换电脑一键同步;

通过Git进行配置:Settings Repository

  • 在任意一个Git服务器新建一个仓库,比如github
  • 输入Git仓库Url
  • Overwrite Remote:将本地配置覆写到远程
  • Overwrite Local:将远程配置覆写到本地
  • Merge:合并本地和远程的配置
image2023-9-18_20-26-44.png

四、总结

高效使用 Android Studio,可在编译器提高开发效率,门槛低,上手快,无关技术,不受业务约束,通用性极强。

有事没事点一点Android Studio的菜单栏,试一试没用过的能力,偶尔会有新的惊喜。

上述仅列举了部分个人及融合团队其他人经验下的便捷使用方式,或许还有更多更厉害的便捷方式,还希望各位大佬能一起分享,共同提速,早点下班。

image2023-9-18_20-50-32.png