android开发中常犯的几个错误整理
新手程序猿,在开发中难免会犯各种各样的错误,以下是整理的一些android开发中常见的错误,一起来看看吧。
1.避免将多个类放在一个文件夹里面,除非是一次性使用的内部类。
就是一个文件,最好给分它同名的主类。
2.一个方法的代码长度最好不要超过35行
就是我们这个方法,别把它写的太长,

像是翻了几行的方法,要么拆分成几个方法,把里面很多公用的方法拿出来放在另外一个函数里,要不重构。
3.原则上,尽量不要手工的修改机器产生的代码
比方说,android项目中的R.java类

还有自动生成的类,也不要修改,如果这些类是跟数据结构相关的,改了数据结构,好不容易手动修改一大堆内容,结果现在数据库里面,改了一个字段又要把这个类重新在生成一遍。
4.Final String取代直接“String”,同理int
在用常量的时候,不要直接在Message box在弹出消息的时候,直接去打印“您好,输入错误”。
定义常量的时候,不要打这些值。
5.不推荐在循环语句中,进行直接的return操作
循环语句要让它,正常的循环退出,return是异常的循环退出,非正常情况下的退出。
6.不要用goto语句
7.处处要考虑异常
特别是IO(输入输出流)操作,一定要考虑到它的异常。
下面一定要try-catch,甚至要try好几个catch。
Try
{
}
catch (Exception e)
{
// TODO: handle exception
}
8.仅仅需要对外公布才用public,其余的用private or internal,这样一些成员变量。
9.尽量不要提供public and protected程序员变量,使用属性代替他们
我们对外公布的时候,一般情况下我们不只也用public,一般情况下我们都用get,set的这种方式设置。
这样子也有一些好处,在get和set的时候,还可以针对私有变量,做一些事情。
甚至有的时候,你只给他只读,不给它可写。
10.不要在系统自动生成的函数直接写业务代码,最好自定义函数,然后调用。
在onCreate里面不要这样写。
代码例:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
int _StudentCount = 5;
return _StudentCount ;
int _StudentCount = 5;
return _StudentCount ;
Toast.makeText(this,this.MESSAGE_WARN,3000).show();
}

而是把它们定义到函数里头,然后放到这里面调用。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.calulateStudetsCount(CLASS_ON) ;
Toast.makeText(this,this.MESSAGE_WARN,3000).show();
}

定义在函数里面。

调用
如果你要进行初始化,也是一样的,在定义一个函数。
private void initDisplay()
{
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.calulateStudetsCount(CLASS_ON) ;
initDisplay() ;
Toast.makeText(this,this.MESSAGE_WARN,3000).show();
}
因为这是系统生成的,不要把复杂的逻辑关系,复杂关系放到这里,这些里面尽量做一些组织工作。

11.总是使用接口,推荐使用显示接口实现。
我们都知道这种实现分为显示和隐示两种方式。一般情况下,比如说你有一些业务代码,你还是要把它定义在接口里面。
因为最后你要公布出去的,不要认为接口没用,全部写到类里去。
就自定义的一些代码,比方说:对外要公布什么呢,计算学生数量,你就把它定义在相关的接口里面。把这个方法定义在里面,然后再用这些类来实现接口。
12.在switch语句中总是要有default字句来默认显示信息
文章来源:麦子学院
原文链接:http://www.maiziedu.com/wiki/android/error/
android开发中常犯的几个错误整理的更多相关文章
- AngularJS 开发中常犯的10个错误
简介 AngularJS是目前最为活跃的Javascript框架之一,AngularJS的目标之一是简化开发过程,这使得AngularJS非常善于构建小型app原型,但AngularJS对于全功能的客 ...
- Web开发人员常犯的10个错误
说到开发一个运行在现代网络中的网站:Web开发人员需要选择虚拟主机平台和底层数据存储,准备编写HTML.CSS和JavaScript用的工具,要有设计执行方式,以及一些可用的JavaScript库/框 ...
- OI中常犯的傻逼错误总结
OI中常犯的傻逼错误总结 问题 解决方案 文件名出错,包括文件夹,程序文件名,输入输出文件名 复制pdf的名字 没有去掉调试信息 调试时在后面加个显眼的标记 数组开小,超过定义大小,maxn/ ...
- Java开发最常犯的10个错误,打死都不要犯!
原文:http://www.programcreek.com/2014/05/top-10-mistakes-java-developers-make/ 译文:cnblogs.com/chenpi/p ...
- AngularJS开发最常犯的10个错误
简介 AngularJS是目前最为活跃的Javascript框架之一,AngularJS的目标之一是简化开发过程,这使得AngularJS非常善于构建小型app原型,但AngularJS对于全功能的客 ...
- 开发中常遇到的linux系统配置操作整理
一直以来,工作中使用xshell连接linux虚拟机.常常需要在虚拟机中搭建一个新的Linux系统,为了满足操作需要,必不可少的是一系列配置.之前对这些指令都是记录在云笔记,但是零零散散,每次用时,都 ...
- Android开发中常用的ListView列表的优化方式ViewHolder
在Android开发中难免会遇到大量的数据加载到ListView中进行显示, 然后其中最重要的数据传递桥梁Adapter适配器是常用的,随着市场的需 求变化ListView'条目中的内容是越来越多这就 ...
- Android学习探索之Java 8 在Android 开发中的应用
前言: Java 8推出已经将近2年多了,引入很多革命性变化,加入了函数式编程的特征,使基于行为的编程成为可能,同时减化了各种设计模式的实现方式,是Java有史以来最重要的更新.但是Android上, ...
- android开发中fragment获取context
在用到fragment时无法使用.this来指定当前context内容,android开发中fragment获取context,可以使用getActivity().getApplicationCont ...
随机推荐
- 转:java23种设计模式
以下是学习过程中查询的资料,别人总结的资料,比较容易理解(站在各位巨人的肩膀上,望博主勿究) 概述 设计模式是针对某一类问题的最优解决方案,是从许多优秀的软件系统中总结出的. Java中设计模式(ja ...
- jquery点击li 获取当前父节点所在类的索引
jquery点击li 获取当前父节点所在类的索引 $('.jbcz').find('.content li').click(function(){ //alert($('.jbcz').find('. ...
- flutter开发之配置环境以及一些问题的处理方案~
今天flutter1.0已经发布了,有没有一点小小的兴奋,为了纪念这个令人激动的日子,我决定发一篇flutter的基本环境搭建的教程送给大家:) 由于这是一篇关于flutter配置环境的教程, ...
- 电子商城实录------定义init初始化的方法
路由方法的设置 //路由方法 private static function dispatch(){ //获取控制器名称(类比:英文单词的后缀) $controller_name=CONTROLLER ...
- python应用:TXT文件的读写
python读写TXT文件不需要导入包 python中常用的读写方式: 文件打开模式 描述 r 以只读模式打开文件,并将文件指针指向文件头:如果文件不存在会报错 w 以只写模式打开文件,并将文件指针指 ...
- Node.js 学习笔记 (一) 安装配置
Node.js 安装配置 本安装教程以Node.js v4.4.3 LTS(长期支持版本)版本为例 Window 上安装Node.js 你可以采用以下两种方式来安装. 1.Windows 安装包(.m ...
- Python3爬虫(二)网络爬虫的尺寸与约束
Infi-chu: http://www.cnblogs.com/Infi-chu/ 一.网络爬虫的尺寸: 1.小规模,数据量小,爬取速度不敏感,Requests库,爬取网页 2.中规模,数据规模较大 ...
- SapScript
* [OPEN_FORM] SAPscript: フォーム印刷の開始 * [START_FORM] SAPscript: 書式を開始 * [WRITE_FORM] SAPscript: 書式ウィンドウ ...
- C++11中rvalue references的使用
Rvalue references are a feature of C++ that was added with the C++11 standard. The syntax of an rval ...
- 用Kettle的一套流程完成对整个数据库迁移 费元星
原地址 :http://ainidehsj.iteye.com/blog/1735434 需求: 1.你是否遇到了需要将mysql数据库中的所有表与数据迁移到Oracle. 2.你是否还在使用kett ...