Android Studio修行手册,快速涨薪-【界面预览】、【自带截图】、【自动排序代码】、【快速查看界面】和【预览列表】、【Null判断】

本文主要是介绍Android Studio修行手册,快速涨薪-【界面预览】、【自带截图】、【自动排序代码】、【快速查看界面】和【预览列表】、【Null判断】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我对你的爱就如闪电,狂暴而剧烈,飞出的飞镖是向你传达的思念。

往期文章分享

点击跳转=>熬夜再战Android从青铜到王者-开发效率插件篇
点击跳转=>Unity粒子特效系列-龙卷风预制体做好了,unitypackage包直接用!
点击跳转=>姐姐喊我解锁套娃新技能:FairyGUI在Unity中实现List嵌套List/立体画廊等,玩出花儿来
点击跳转=>Unity新手必备5款宝藏插件–价值上千元白嫖最新版
爆肝万字C#基础入门大总结【建议收藏】
Android修行手册-玩转TextView,想不到有这么多属性
【万字】熬夜修行Android Studio技巧到出神入化,快速涨薪【建议收藏】
Android修行手册之从头到尾学Kotlin【全】

本文5.8千字,新手阅读需要7分钟,复习需要3分钟 【收藏随时查阅不再迷路】

👉关于作者

众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣 !!!
专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
有什么需要欢迎私我,交流群让学习不再孤单

👉前提

这是小空坚持写的Android系列,欢迎品尝。
当前环境
2021年10月8日最新下载2020.3.1 Patch 2 版本

👉实践过程

😜界面预览

Android发展到现在,已经很成熟了。相信很多公司都有自己的适配方案,适配已经不是很难解决的问题了。开源适配方案又以今日头条适配最为火热。

使用了AndroidAutoSize的也一定修改过页面预览设置。

不仅这个方案,哪怕其他方案肯定少不了各种界面预览,我们总不能“奢望”公司各种分辨率的手机和平板全部买来吧?就算买来,就这抽插抽插数据线都磨练人。

什么?你说无线调试?安装过程不耗时吗。得不偿失啊,所以最好的是先用Android Studio提供的专用预览工具先预览预览,感觉差不多了再运行真机调试。省事省力省心。
image.png
除了默认的谷歌自带的分辨率为
image.png
还支持自定义分辨率
image.png
不同的预览切换不同的设备即可,有的人可能遇到创建后发现在设备列表中没找到或者每次打开一个布局都要重新选择。

这时候你选择你想预览的布局重启Android Studio即可。

😜自带截图

在开发过程中,有不少场景需要截图录像和别人沟通。一般首先想到的就是真机截图和录像功能,没错,这方法很对。

但,还有个不错的方法。

Android Studio提供了截图和录像功能,直接就保存到电脑上了,这个在开发中能提供很大便利。想发给谁发给谁。
image.png

😜自动排序代码

随着不断的更新,甚至不更新,方法会越来越多,代码也会越来越多。如果在同一个类中方法封装的多了,就是A调B调C调D。

如果你要是没有按照顺序往下写,而是乱的,这会导致越来越杂乱无章。别说他人看你的代码了,过几天你自己看都得回忆回忆,甚至找半天。

所以我们要将代码尽量按照就近原则,比如A调B调C调D,那么这四个方法是紧挨着的。当然了,在编写代码过程中就可以这么做,但别太相信自己了,随时有可能忘记这一规则,久而久之,就又乱套了。

所以我们要借住工具来帮我们处理。快捷还安全,更不会忘记。

打开路径【File-Settings-Editor-Code Style-Java-Arrangement】
image.png
主要就是上图中框起来的两个内容:

Keep overridden methods together

她的里面后面又有两个选项一个【keep order】按照原顺序,一个【order by name】按照字母表排序。该功能是带有override标志的方法排序设置,这些方法要么是系统的,要么是自定义的,放在一起更加规范一些。建议直接使用【keep order】

Keep dependent methods together

这个是一般方法排序,后面也是两个选项【breadth-first order】和【depth-first order】,从字面翻译前者是广度优先,后者是深度优先。广度排序就是排好方法A排方法B,不管理方法里面的方法顺序,而深度是排方法A,里面有嵌套方法就一直深挖排序,没有则回来接着找下一个方法。

点击保存设置,还差最后一步,快捷键【Ctrl + Alt + Shift + L】
image.png

至此,以后使用快捷键**【Ctrl + Alt + L】格式化代码的时候,会连带着感觉设定规则整理方法排序。

😜快速查看界面

在工作中对接项目是必不可少的环节,下载导入学习开源项目也是时有的事,当前显示的页面找到对应的类,有时候还真得耽误不少时间,所以我们就要利用“手段”快速找到当前类。

如果当下项目Activity继承有一个统一的【BaseActivity】(没有的话自己写一个继承下),之后在【onCreate】中添加:

Log.e(“TAG”,“当前界面显示的是:”+getClass().getName());

运行后,日志中可随时查看的啊,方便的很,一劳永逸啊
image.png

😜预览列表

界面的普通预览我们很容易做到,直接打不布局即可。
但是默认列表布局如【ListView】【GridView】【RecyclerView】是没有预览效果的,不过官方也提供了解决方案:利用tool关键字来实现

即使写很普通的布局,相信大家也能看到tool的存在。
image.png

不仅仅是列表预览,Fragment页面默认我们也不能预览,同样也能利用【tool:layout】可以实现预览。这把效率提升的可以说很稳了。

除此之外列表预览里还有头布局【tools:listheader】和尾布局【tools:listfooter】预览。

还有【@tools:sample/】的强大功能,她可以做到列表布局的预览数据以JSON形式读取。这节我们不讨论此功能。

另外再提一句:从中可以看出android属性其实是可以替换为tool属性的,可以达到预览的效果,发布后还不会显示,很欢乐。
image.png

😜Null判断

此处先不讨论Kotlin语言。

据小空瞎JB统计,Null异常应该是遇到的最多的异常了。平时我们也养成了非空判断的代码规范。虽然这样的主观一是很棒,但这往往还不够,百密一疏。除了平时测试测出来的容易发现外,尤其是线上的产品,基本都是靠JSON数据通信的,服务器什么时候出问题那可不保准,这之后基本能出不少NULL,比如String和List,除了我们开发过程中提前的try之外,还可以在Model的实体中再getXXX()方法那就进行Null判断,确保返回不是Null。

那么我们就得利用工具来实现对应的代码模板了。

点击快捷键【Alt+Insert】选择【Getter and Setter】
image.png

#if($field.modifierStatic)
static ##
#end
$field.type ##
#if($field.recordComponent)${field.name}##
#else
#set($name = $StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project))))
#if ($field.boolean && $field.primitive)is##
#elseget##
#end
${name}() {#if ($field.string)return $field.name == null ? "" : $field.name;#else#if ($field.list)if ($field.name == null) {return new ArrayList<>();}return $field.name;#elsereturn $field.name;#end#end
}
#end

👉其他

📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:https://zhima.blog.csdn.net/
📢欢迎点赞👍收藏🌟留言📝

这篇关于Android Studio修行手册,快速涨薪-【界面预览】、【自带截图】、【自动排序代码】、【快速查看界面】和【预览列表】、【Null判断】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/741612

相关文章

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

Android ClassLoader加载机制详解

《AndroidClassLoader加载机制详解》Android的ClassLoader负责加载.dex文件,基于双亲委派模型,支持热修复和插件化,需注意类冲突、内存泄漏和兼容性问题,本文给大家介... 目录一、ClassLoader概述1.1 类加载的基本概念1.2 android与Java Class

C++中NULL与nullptr的区别小结

《C++中NULL与nullptr的区别小结》本文介绍了C++编程中NULL与nullptr的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编... 目录C++98空值——NULLC++11空值——nullptr区别对比示例 C++98空值——NUL

Python中将嵌套列表扁平化的多种实现方法

《Python中将嵌套列表扁平化的多种实现方法》在Python编程中,我们常常会遇到需要将嵌套列表(即列表中包含列表)转换为一个一维的扁平列表的需求,本文将给大家介绍了多种实现这一目标的方法,需要的朋... 目录python中将嵌套列表扁平化的方法技术背景实现步骤1. 使用嵌套列表推导式2. 使用itert

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp

Mysql实现范围分区表(新增、删除、重组、查看)

《Mysql实现范围分区表(新增、删除、重组、查看)》MySQL分区表的四种类型(范围、哈希、列表、键值),主要介绍了范围分区的创建、查询、添加、删除及重组织操作,具有一定的参考价值,感兴趣的可以了解... 目录一、mysql分区表分类二、范围分区(Range Partitioning1、新建分区表:2、分

Go语言中nil判断的注意事项(最新推荐)

《Go语言中nil判断的注意事项(最新推荐)》本文给大家介绍Go语言中nil判断的注意事项,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.接口变量的特殊行为2.nil的合法类型3.nil值的实用行为4.自定义类型与nil5.反射判断nil6.函数返回的

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机