Android Studio工具使用技巧

2023-11-18

作为一个Android开发者,熟练使用开发工具能让你工作效率提高,能让你少点加班,剩下时间学习其他的知识,是个多么好的事情。想高级攻城狮方向迈进。不费话了,直接进去主题:

(一)模版

(1.1)for循环的使用

遍历集合的时候,对象.for就可以生成迭代循环遍历:

.fori可以这样:

.forr可以反向:

数字.for也可以:

(1.2)判空

在写代码的时候,判空是不可避免的。判空可以这样,对象.null

非空可以这样,对象.notnull

非空还有更简单的方法,对象.nn

(1.3) if()

if可是我们最常用的了,但是我劝你再也不要写if()了,试试任何可以判断的语句后面加上.if:

(1.4) instance

(1.5) 活动模版自定义和查看入口

Preference->Editor->Live Templates,这个窗口下小伙伴们可以看到所有的活动模版,还可以自定义自己的活动模版。例如我就定义了一个tc,作为android:textColor=""的活动模版。

(2) 编辑

(2.1) 多行编辑

例如我们有四个Button要定义,可以先这样,按住alt键+鼠标左键一直向下拉,就可以选中多行,然后编辑就可以同时对多行进行编辑,编辑完相同部分再分别输入不同部分就ok了:

(2.2) 块编辑

比如我们要把上边定义的四个Button 改为TextView类型:

操作也是按住alt不放,拉对角线,拉出一块,就可以对选中的块,进行块编辑了。

(3) 快捷键

(3.1) Alt+Enter

这个是Android Studio神快捷键。如果你还认为Alt+Enter键是导入包,那就大错特错了。以后有事没事就按下吧。它会根据不同的情况给出操作建议,大大提高工作效率。

eg.

我要获取布局文件中的RecyclerView,findViewById写好了,这个时候需要强制类型转化,在红线上按使用该快捷键,给出了提示Cast to ...(此处省略好几个字),再回车,代码生成好了。

接下来是要给RecyclerView设置一个Adapter,那么我先写了没有的PersonAdapter类,那么这个类是没有的,提示红色,我们在该类上使用该快捷键,给出了提示:Create class ...,回车,这个类便创建好了。

但是我们要实现RecyclerView.Adapter中的方法,我们在红线部分使用快捷键,看到给出提示implement method,回车,方法实现了。

Alt+Enter快捷键是Android Studio中的神键,它的功能远不止这些,没事就按一按吧。按按更健康。

(3.2) 提取 方法,style,layout等

我在写代码的时候都是先写可用的代码,把功能都实现之后,立即重构,在这个时候我经常用到 提取方法 的这个快捷键:alt+command+M

提取sytle,layout等并没有默认的快捷键。如果你的有,可能我们用的不是同一套,不过无论怎样,你都可以去偏好设置里去自定义快捷键。那么打开keymap。找到Extract,可以看到,包括之前的提取方法操作也在这里,下面的style和Layout就是提取样式和和布局了。你也可以看到还有很多。你可以根据自己的喜好了来自定义快捷键。

演示:


提取布局

提取样式

(3.3) 内联

对于上面我们提取出的方法,样式或者布局,这些都可以使用内联把他们加回使用的地方。这个我并不是很常用。不过还是介绍一下吧。这个默认快捷键是:alt+command+N,在keymap表中的Inline


将布局内联到当前布局

(二) 搜索

在写代码的过程中,代码检索永远都少不了。如果你是眼睛去找,那效率真的不知道要差到哪里去了。

(2.1) 搜索基本操作

这些搜索操作我叫做基本操作

操作 Mac Windows
搜索类 Command+O Ctrl+N
文件中搜索 Command+F Ctrl+F
搜索文件 Command+shift+O Ctrl+shift+N
全局查找 Command+shift+F Ctrl+shift+F

要是懒的话,这四个基本可以解决查找问题。

(2.2) 大纲

大纲快捷键 Mac:Command+F12 Windows:我不知道。。。(我自己用的Mac有些Windows的我也不知道。欢迎补充,PS:我的Mac开启了将Fx键用作标准功能键,如果没有开启的小伙伴,你的快捷键就是Command+Fn+F12),大纲出来了,就可以查看该类中的成员变量和成员方法,直接输入名称就可以筛选查询。

(2.3) Search Everywhere

这个功能的强大就如它的名字一样,它的快捷键是双击shift,输入关键字就可以。就连窗口都可以搜索奥。

(三) 窗口

(3.1) 分屏

分屏可以上下,可以左右,我更喜欢左右分屏,有的时候很方便。

你可以直接使用Search Everywhere功能,然后输入split会有vertically和Horizontally两种,选择你要的就可以。或者在编辑窗口上的标签,右击,选择split vertically或者split Horizontally。我比较喜欢使用Search Everywhere,键盘总比鼠标快。

(3.2) Hierarchy窗口

Hierarchy窗口可以让我们看清楚层级关系,还记得之前非常火的一个段子讲,是好朋友不会让你学Java的,然后附了一张Java继承关系的图,在继承关系层级很深,很复杂的时候,这个窗口简直不能太好。

这个是类的继承关系:

打开这个窗口,可以使用Search Everywhere功能,输入Hierarchy就可以,Mac也可以使用快捷键ctrl+H,Windows快捷键也是ctrl+H。

还有一个Call Hierarchy,可以显示出方法的调用层级关系:

这个的快捷键是ctrl+alt+H。

(四)调试

调试过程在开发中也是少不了的。

(4.1) 快照

有关UI的编程,这个功能知道会省很多事。

在运行过程中,可以给手机截图,并保存。再也不用手机截图然后再传电脑了。

(4.2) 录屏

在做有关动画的功能的时候,录屏功能可以让你更好的检查动画是否正确。

(4.3 )断点

断点的使用,断点的用法不止是让程序停下来。试一试在停下来之后使用快捷键Alt+F8,调出Evaluate Expression界面,在该界面你可以输入你想查看的值,就可以显示出来。

除此之外在断点处右击,会出现如下的界面,你可以在图中光标处输入断点停下的条件,当你需要在一个循环中打断点的时候,这简直就是神技:

在上图中Suspend前的勾取消会看到这样的界面:

这个界面上内容更多,比如你选中了Log evaluated expression,然后在下面的输入框中输入你想要输出的log,那么这个断点就不会在这里停下来,而是在控制台输出一条日志。

(五) 查询示例程序

这个功能让我感觉越来越像代码的搬运工了! 使用该内容需要,Android Studio2.2以及在SDK Manager中下载Samples for SDK,然后重启AS,再然后尽人事听天命,昨天搞了半天就是出不来,不知道今天怎么好了……究竟是AS的灵异事件还是我的努力感动了上天,反正我成功了。

在一个不会用的类上右键,选择Find Sample Code,或者使用你看到的快捷键alt+F8,Windows版的快捷键自己查询。之后就可以方便的查看示例代码。例如我们查看ColorMatrix的示例代码:

查询结果会在下方出现,不过有的时候要等很久,有的还找不到:

不过已经非常不错了。首先有Android官方网站的官方文档。下面会有几个包涵ColorMatrix的栗子。单击可以在右边直接查看其内容。如果硬是出不了的话,又实在想看,那么就去github上去查看吧,有一个组织叫GoogleSample,去搜就行了。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android Studio工具使用技巧 的相关文章

  • Android Studio JNI开发入门教程

    概述 在Andorid Studio不支持JNI开发之前大家一般都是使用Eclipse开发JNI 各种配置让人觉得很蛋疼 从Andorid Studio支持JNI开发后 让我们开发JNI变的如此简单 下面我就介绍一下Android Stud
  • Android-Java和HTML5交互-混合开发-优化

    现在很多的 APP中会嵌套HTML5的页面 比如经常变化的等等 有一部分页面需要原生Java与HTML5中的js进行交互操作 下面介绍一下android中HTML5的使用 1 关于HTML5种cookie 网页中可能会用到 用户信息等很多参
  • android 注册页面实现

    自己动手做的第一个demo 简单的注册页面的实现 并且注册成功后返回注册信息 适用于android新手基本控件的使用 注册页面的实现 import android os Bundle import android app Activity
  • 从Map中 取出第一个key/第一个value的方法

    从Map中取出第一个 key 和 value 的方法 使用Map Entry进行操作 可与LinckedHashMap 按元素存入顺序排序的有序Hash表 搭配使用 实现特定的业务要求 获取map中第一个key值 param map 数据源
  • SVN文件夹图标不正常显示解决方案(win10)android studio

    在使用Android Studio提交代码时发现svn图标莫名其妙的不显示 其他操作都正常 在网上搜了一堆资料都有各种说法 结合了操作 一步步来试终于给我找到了 在这我自己总结一下 一部分也是拷贝别的图片 写一篇清楚文章好希望能帮助和我遇到
  • Android studio安装教程(2020/11/20最新版本的安装)

    一 安装前提 系统已经安装了jdk 而且版本在1 8以上 打开命令提示符界面 输入java version 切记之间有空格 就可以查看自己jdk安装版本了 二 安装准备 在官网下载最新安装包 接收协议进行下载 三 安装步骤 双击安装包 点击
  • Android adb 输出指定app 错误日志

    查看错误日志 adb logcat E 按照时间查看日志 adb logcat v time
  • 2019最新 国内唯一的Android从程序员到架构师全套教程

    课程目标 国内唯一的Android从程序员到架构师全套视频教程 适用人群 Android开发至少两年经验的IT工程师 想深入了解Android开源平台的资深工程师 Android项目团队技术管理者 课程概述 遵循敏捷的迭代过程 从思想 方法
  • java 字符串示例

    概述 最近项目上 需求 需要Android端在一段字符串分包处理 在此做个笔录 1 code public class Main public static void main String args System out println
  • Android Studio 如何设置logcat(控制台)的缓存大小,增加logcat控制台条数

    在一些比较大型的项目Logcat条数会很多 由于LogCat控制台经常刷新 速度太快导致之前的日志被冲洗掉 这里教大家一个方法 可以避免这种情况发生 改下logcat的缓存 缓冲区 大小 做到显示更多的LogCat日志 1 去找你所安装的A
  • ubuntu搭建android编译环境

    本文来自linux与嵌入式技术Q群52240781 ubuntu12 04 14 04安装后搭建android编译环境 注安装的是64位ubuntu系统12 04或14 04 请安装ubuntu的LTS版即12 04或14 04 每2年发布
  • Android SIM卡识别加载流程

    文章目录 总述 代码路径 UICC框架 SIM卡识别加载流程 日志分析举例 总述 本文基于Android N Android 7 首先要知道SIM卡一般是挂载在CP侧 MODEM侧 的 由MODEM给予真正的上电 识别 通信等 然后通过AP
  • Volley 源码解析

    1 功能介绍 1 1 Volley Volley 是 Google 推出的 Android 异步网络请求框架和图片加载框架 在 Google I O 2013 大会上发布 名字由来 a burst or emission of many t
  • Unity Android 长时间运行导致卡死的BUG

    抛出问题 最近项目中遇到一个问题 Unity 项目打包成 Android 长时间运行会导致 App 卡死 该问题出现在Unity 2021 3 19其他版本不详 由于项目中引入了arr库所以查找问题比较难受 好在搞安卓的同事帮忙研究了一下
  • Android NDK是什么

    官方给出的答案 Android NDK 是一套允许您使用原生代码语言 例如 C 和 C 实现部分应用的工具集 在开发某些类型应用时 这有助于您重复使用以这些语言编写的代码库 深入的学习 https developer android goo
  • android 实现自动输入文本效果

    此控件的功能是帮助用户实现自动输入 例如当用户输入一个字符后 能够根据这个字符提示显示出与之相关的数据 里面用到了一个适配器来实现此功能 源代码如下 package com example autosearch import android
  • Android 报错 : FATAL EXCEPTION:main 解决方法

    今天安卓开发课上碰到的新问题 前景提示 老师让我们自己试一下那个两个页面跳转的效果 于是我就开始写了 然后报错 解决方法 逐一排查 首先要看你mainfest xml里面有没有增加Activity 当然我是加了 但是他还报错 具体代码界面
  • Android Studio工具使用技巧

    作为一个Android开发者 熟练使用开发工具能让你工作效率提高 能让你少点加班 剩下时间学习其他的知识 是个多么好的事情 想高级攻城狮方向迈进 不费话了 直接进去主题 一 模版 1 1 for循环的使用 遍历集合的时候 对象 for就可以
  • 【Android Studio】Design editor is unavailable until next gradle sync.如何解决?

    Design editor is unavailable until next gradle sync 如何解决 打开一个网上开源的下载文件 在查看安卓页面布局 也就是控件布局时 会出现一个bug Design editor is unav
  • The style on this component requires your app theme to be Theme.MaterialComponents

    MD版本采用如下 implementation com google android material material 1 2 0 alpha01 再采用MD的Dialog的时候报标题错误 后经分析查找 当前版本强制APP主题为Mater

随机推荐

  • 【数据库】期末复习总结

    第一章 概念 数据库定义 是一种依照特定数据模型组织 存储和管理数据的文件集合 数据库和普通文件区别 支持不同应用对数据共享访问 数据管理复杂 可独立于应用 管理由DBMS实现 数据模型定义 描述事物对象的数据结构组成 数据语义联系 数据约
  • 实战22:文本摘要实战:基于句子相似度矩阵构建图结构实现文本摘要 代码+数据

    任务描述 自动文本摘要 Text Summarization 是指给出一段文本 我们从中提取出要点 然后再形成一个短的概括性的文本 自动的文本摘要是非常具有挑战性的 当我们作为人类总结一篇文章时 我们通常会完整地阅读它以发展我们的理解 然后
  • Pycharm和Python关系

    Pycharm和Python关系 简单来说 Pycharm是一个代码编辑器 是目前最流行的代码编辑器之一 用于编写python代码 Python是一个代码解释器 用于将Python代码翻译成计算机可以理解的指令 Pycharm下载地址 Py
  • OpenGL 入门 10:光源

    点光源 点光源的强度需要随着距离增加而减少 至于减少的系数公式大致如下 在这里d代表了片段距光源的距离 接下来为了计算衰减值 我们定义3个 可配置的 项 常数项Kc 一次项Kl和二次项Kq 常数项通常保持为1 0 它的主要作用是保证分母永远
  • Linux Kernel调度管理之task_struct

    task struct是进程描述符 struct task struct ifdef CONFIG THREAD INFO IN TASK For reasons of header soup see current thread info
  • 敌人进入攻击范围

    笔记 首先要用到游戏对象组件collider 添加组建collider给检测对象和被检测对象 检测对象的 IS trigger 要勾选 两个对象必须有一个添加了rigidbody组建 可以使用edit 中project中的physical进
  • Faster RCNN代码理解(Python)

    最近开始学习深度学习 看了下Faster RCNN的代码 在学习的过程中也查阅了很多其他人写的博客 得到了很大的帮助 所以也打算把自己一些粗浅的理解记录下来 一是记录下自己的菜鸟学习之路 方便自己过后查阅 二来可以回馈网络 目前编程能力有限
  • public boolean isAdmin(String adminId,String adminPwd)

    package cn edu zjgsu book biz import java sql Connection import java sql ResultSet import java sql SQLException import j
  • 报错Installation failed with message Failed to finalize session : INSTALL_FAILED_DUPLICATE_PERMISSION

    遇到这个报错问题 其实是真的挺受用的 把外包项目拿到手之后 发现里面的签名文件是用的系统签名文件 然后就自己从新打包签名后 再次安装后 就出现了上述这个报错 报错如下 Installation failed with message Fai
  • 无线发射功率

    无线电发射功率 无线电发射机输出的射频信号 通过馈线 电缆 输送到天线 由天线以电磁波形式辐射出去 电磁波到达接收地点后 由天线接收下来 仅仅接收很小很小一部分功率 并通过馈线送到无线电接收机 因此在无线网络的工程中 计算发射装置的发射功率
  • msm8937 usb power off charging log

    Format Log Type Time microsec Message Optional Info Log Type B Since Boot Power On Reset D Delta S Statistic S QC IMAGE
  • spark中repartition和coalesce的区别

    总的来讲 两者 对是否允许shuffle 不同 coalesce numPartitions shuffle false repartition numPartitions repartition 其实是 coalesce 中参数shuff
  • 调用拷贝构造函数的三种情况

    1 当用类的一个对象去初始化类的另一个对象时 如下代码中的 Rectangle p2 p1 用对象p1去初始化对象p2 拷贝构造函数被调用 代入法 还有一种是赋值法 Rectangle p2 p1 2 当函数的形参是类的对象 调用函数进行形
  • 中达优控一体机说明书_如何在中达优控一体机上实现温度显示?

    如何在中达优控一体机上实现温度显示 首先是硬件的连接 硬件连接良好是系统能运行的基础 第二就是软件的编程 包括PLC的编程和YKBuilder的组态编程 只有硬件连接好 软件编程没有错误 系统才能正常工作 才能正常显示传感器测量到的温度值
  • Windows环境IDEA下Ranger1.2.0源码编译

    文章目录 Windows环境IDEA下Ranger1 2 0源码编译 一 本地环境准备 二 源码编译 三 使用idea打开项目 1 安装数据库Mysql版 2 配置Tomcat 发布 security admin web项目 3 修改sec
  • 建立一个对象数组,内放5个学生的数据(学号、成绩),用指针指向数组首元素,输出第1,3,5个学生的数据。

    问题描述 建立一个对象数组 内放5个学生的数据 学号 成绩 用指针指向数组首元素 输出第1 3 5个学生的数据 样例输入 无 样例输出 101 78 5 103 98 5 105 95 5 补充程序 include
  • kill 命令 killall pkill

    killall 命令 Linux系统中的killall命令用于杀死指定名字的进程 kill processes by name 我们可以使用kill命令杀死指定进程PID的进程 如果要找到我们需要杀死的进程 我们还需要在之前使用ps等命令再
  • L1-071 前世档案 (20 分)–PAT 团体程序设计天梯赛 GPLT

    include
  • ES6 Promise详解

    优质资源分享 学习路线指引 点击解锁 知识定位 人群定位 Python实战微信订餐小程序 进阶级 本课程是python flask 微信小程序的完美结合 从项目搭建到腾讯云部署上线 打造一个全栈订餐系统 Python量化交易实战 入门级 手
  • Android Studio工具使用技巧

    作为一个Android开发者 熟练使用开发工具能让你工作效率提高 能让你少点加班 剩下时间学习其他的知识 是个多么好的事情 想高级攻城狮方向迈进 不费话了 直接进去主题 一 模版 1 1 for循环的使用 遍历集合的时候 对象 for就可以