查看原文
其他

一些提高Android开发效率的经验和技巧

空_欢喜 鸿洋 2019-04-05

本文作者


作者:空_欢喜

链接:

https://www.jianshu.com/p/377a8edf386e

本文由作者授权发布。


昨天的文章非常感谢大家的支持~

1利用好Android Studio自定义模板


1.关于Android Studio模板


Android Studio Template即AndroidStuido模板,是一种预先设定的代码模板,在需要用到的时候可快速生成相应的类或代码。


利用Android Studio自定义模板有时可减少很多重复性的工作,比如开发中常使用到的MVP,每个页面可能都需要创建相应的的Model/View/Presenter层,这意味着在创建MVP层时有很多重复性工作,而自定义模板就能有效解决这类问题


2.自定义Android Studio模板


关于如何自定义Android Studio模板参见鸿洋的这篇

Android Studio自定义模板 写页面竟然可以如此轻松


由于鸿洋的文章介绍的较为详细,故具体操作本文就不再赘述,下面介绍下自定义模板时可能遇到的问题和一些解决思路.


1) 在template.xml中不能有FreeMarker(以上自定义模板文章有介绍)语句,否则在Acitivity选项中没有对应自定义模板的选项


2)若自定义模板是copy了AndroidStudio自带模板(如EmptyActivity)并在此之上进行修改,则要注意recipe.xml.ftl里面由于依赖了一些其他外部模板文件如manifest、layout布局文件等(如下图),故不要轻易修改template.xml中元素id为activityClass和package的id值,否则可能造成依赖的外部文件在本模板中找不到对应元素。


当然你也可以删除recipe.xml.ftl中依赖的外部文件(前提是无需外部manifes/layout文件或者自己提供有manifest/layout),这样无需担心此问题了



自定义模板出错时,Android Studio右下角会提示框IDE Error Occured,点击后再点击Details,则可以查看到第哪个文件的哪个位置(如第7行15列)出错,继而进行错误分析并进行相应的修改。


遇到不知道怎么写的地方时可参考下AndroidStudio自带的一些模板(模板路径:Android Studio\plugins\android\lib\templates\activities),或参考gayhub上一些优秀模板如JessYan的MVPArmsTemplate。


自定义模板示例(一键MVP模板)如下图:



2开发以及使用AndroidStudio插件


相信各位在日常开发中多多少少也用到过插件,其好处就不必多说了。gayhub上已有很多有用或有意思的插件,如一键实现Parcelable 的Parcelable、翻译插件ECTranslation、自动生成findViewById等布局代码LayoutCreator等等。


  • https://github.com/mcharmas/android-parcelable-intellij-plugin

  • https://github.com/Skykai521/ECTranslation

  • https://github.com/boredream/BorePlugin


利用好这些现有的插件能让我们少写很多重复性的代码


关于如何写一个AndroidStudio插件,推荐看下个人认为写的很nice的插件开发系列文章https://blog.csdn.net/huachao1001/column/info/14048,当然英语还OK的话也可以直接看官方文档


当有特殊需求或个人习惯等导致现有插件无法满足需求时,如果你会AndroidStudio插件开发的话就能针对实际情况开发一款能够满足需求的插件。


比如我有个习惯就是有时会在控件id之后加一个后缀,比如登录、注册界面的都有name输入框,我就会在et_name后面加上后缀成et_name_activity_login、et_name_activity_register这种,虽说加与不加影响不大,但作为强迫症患者不加的话心里很不爽。


如果界面上控件比较少加个后缀都还好,但控件比较多的话后缀加起来就比较恶心了。


所以有时候就很犹豫,加吧,辣么多控件挨个加太特么烦,不加吧,强迫症患了又很不爽,肿么办?


后来想了想干脆写个后缀插入的插件,想加就加,不想就不加,岂不美哉?说干就干,在一番鼓捣之后,插件也终于有模有样了,如下:



哈哈,效果还不错,so我认为插件开发还是值得一学,不要害怕花时间,毕竟插件的使用有时能解决日常开发效率上的一些痛点,况且开发插件也花不了多少时间。


3Getter/Setter模板的修改


这是前段时间从玩android上一篇文章中看到的,觉得很不错,所以这里也简单提一下。


原文章链接:

https://www.jianshu.com/p/68fd5373effc


之所以要修改getter模板,是因为默认模板是直接将变量返回而未做其他操作如判断是否为null等,而有时我们又希望在getter中有类似这种判断非空的特殊操作。


getter/setter模板中使用的是一种叫做Velocity的模板引擎,其基于Java,允许任何人使用简单而强大的模板语言来引用Java代码中定义的对象。


具体Velocity语法可自行百度。


修改getter模板简单示例如下:



OK,目前大致就这些,想到了再加,希望对各位有所帮助!


对于开发效率,上述三个手段确实不错,我最近刚好也想整理这方面的文章,不过发现本号,其实已经对以下三个手段都有足够的详细介绍了,借本文给大家都找出来,看完一定有收获的。


自定义插件


包含一些好用的开源插件,以及如何自定义插件:


推荐几个好用的 Studio 插件

1024 送你几个用起来很爽的Studio插件

回顾下今年使用过的好用的插件、工具等

推荐几个你应该知道的Studio插件

Android MVP Plugin,一键完成MVP结构代码编写

神奇的Android Studio Template

Android Studio自定义模板 写页面竟然可以如此轻松


自定义模板


神奇的Android Studio Template

Android Studio自定义模板 写页面竟然可以如此轻松


Stuido 中的 Live Templates


Android 你可能忽略的提高敲代码效率的方式

分享两个提高效率的AndroidStudio小技巧


好的工具会让人编码更为高效与快乐,也能通过插件解决一些重复性、易出错以及保持一些规范性的行为,当时了,也更希望大家能够学会以上三种方式,创造出更加便捷的工具对外分享,正如:如果有这样一个东西就好了的时候,请注意,其实这是你的机会...


推荐阅读

拥抱Android开发的变化,才能拥抱未来

从0搭建Jetpack版的WanAndroid客户端


扫一扫 关注我的公众号

如果你想要跟大家分享你的文章,欢迎投稿~


┏(^0^)┛明天见!


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存