热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【android】Android项目代码优化的几点建议

要想写出高效优秀的代码,这就要求我们平常在开发过程中要规范自己的开发行为,只要能优化的地方就尽量都去优化,千里之行始于足下,一点一点的改变,最终能够让自己树立良好的意识。1、代码中

要想写出高效优秀的代码,这就要求我们平常在开发过程中要规范自己的开发行为,只要能优化的地方就尽量都去优化,千里之行始于足下,一点一点的改变,最终能够让自己树立良好的意识。

1、代码中不要直接用具体的字符串进行比较,写在常量文件中。

《【android】Android项目代码优化的几点建议》
《【android】Android项目代码优化的几点建议》

2、没必要的空行进行删除。

3、将某些代码提取成公共方法,简化代码结构(HomeActivity),另外在一些控制View显示隐藏的地方也可以写成公共方法,然后通过传入控件id形式控制其显示隐藏。

《【android】Android项目代码优化的几点建议》
《【android】Android项目代码优化的几点建议》

4、要理解不同Context的生命周期区别,ApplicationContext生命周期与项目是一致的,而Activity则不是,要避免长生命周期对象持有对短生命周期对象的引用。

5、避免在for循环当中用list.size()等形式,应当用变量代替list.size()。

《【android】Android项目代码优化的几点建议》

6、避免在项目中出现e.printStackTrace(),应将日志进行记录上传

《【android】Android项目代码优化的几点建议》

7、针对java变量命名,除了在布局文件中使用_分割,其他地方尽量还是以小写字母开头,让变量名通俗易懂的形式。

《【android】Android项目代码优化的几点建议》
《【android】Android项目代码优化的几点建议》

8、代码中该有空格的地方要用空格分割,便于阅读

《【android】Android项目代码优化的几点建议》

9、在多个变量叠加的时候,不要使用String的+连接,用StringBuffer和StringBuilder连接,因为用+连接的话会创建多个对象。

《【android】Android项目代码优化的几点建议》

10、在obj可能出现null的情况下慎用toString,应事先进行判断object是否为null。

《【android】Android项目代码优化的几点建议》

11、弹出对话框的方法等可以提取出工具类,便于调用

《【android】Android项目代码优化的几点建议》

12、尽量避免写重复代码,提取公共部分。

《【android】Android项目代码优化的几点建议》

13、代码中出现警告的地方,尽量都解决

14、在Switch语句中,default就是如果没有符合的case就执行它,default尽管并不是必须的,为了统一规范,大家都是加上的好。

《【android】Android项目代码优化的几点建议》

15、避免在布局文件中直接写汉字,应提取到strings.xml中。

《【android】Android项目代码优化的几点建议》

16、在进行变量命名的时候少用拼音,多用英文单词,如下图英文单词更新应该是update而不是updata,另外版本号不要直接写ban,要改成version比较好。

《【android】Android项目代码优化的几点建议》

17、布局文件中有警告的地方应予以解决,大小等值应该写在dimen.xml文件中进行调用

《【android】Android项目代码优化的几点建议》 Paste_Image.png

18、代码当中常量字符串要写到配置文件中

《【android】Android项目代码优化的几点建议》
《【android】Android项目代码优化的几点建议》

19、mipmap和drawable的区别

google 建议大家只把 app 的启动图标放在 mipmap 目录中,其他图片资源仍然放在 drawable 下面。

20、要对新建的类或者方法进行注释说明,便于其他开发人员理解。

《【android】Android项目代码优化的几点建议》
《【android】Android项目代码优化的几点建议》
《【android】Android项目代码优化的几点建议》

21、尽量简化代码结构,该有空格的地方要有空格

《【android】Android项目代码优化的几点建议》

可以改成,还有命名不要命名为OtherUtil

《【android】Android项目代码优化的几点建议》

22、变量命名尽量用java风格,而不是C、C++,布局文件除外

《【android】Android项目代码优化的几点建议》

23、建议写法 1 == model

《【android】Android项目代码优化的几点建议》

24、命名规范,常量字符串

《【android】Android项目代码优化的几点建议》

25、不要硬解析json数据,建议使用项目中阿里巴巴的fastjson

《【android】Android项目代码优化的几点建议》

硬解析不仅效率低,而且如果在response当中有特殊字符未过滤就会出现异常。

26、用foreach代替for循环,尤其是对List能极大地提高效率。

《【android】Android项目代码优化的几点建议》

27、将常量声明为static final,这样在编译器就能将常量放到常量池,提高效率。

《【android】Android项目代码优化的几点建议》

28、sd卡路径不要写成/sdcard这样的形式。

《【android】Android项目代码优化的几点建议》

可以用Environment.getExternalStorageDirectory().getPath()代替

29、可以简化的代码

《【android】Android项目代码优化的几点建议》
《【android】Android项目代码优化的几点建议》

30、SharedPreference的apply和commit区别

《【android】Android项目代码优化的几点建议》

Commit有返回值,是同步方法,apply是异步方法,没有返回值,如果对结果不关心可以使用apply以提高效率。

31、不要给一个方法传入太多的参数

《【android】Android项目代码优化的几点建议》

参数太多势必增加了调用出错的概率,也违背了面向对象原则,java讲究一切都是对象,咱们可以把传入的参数用实体类或者bundle传递进去。

32、使用静态内部类而不是非静态内部类。

该篇文章会继续更新,敬请期待。。。。。

如果文章当中有任何不正确的地方,还请广大读者纠正,非常感谢!


推荐阅读
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Android JSON基础,音视频开发进阶指南目录
    Array里面的对象数据是有序的,json字符串最外层是方括号的,方括号:[]解析jsonArray代码try{json字符串最外层是 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
author-avatar
853530960_eafb59
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有