android开发/设计原则总结

来源:互联网 发布:淘宝买港行手机怎么样 编辑:程序博客网 时间:2024/05/17 18:11

做Android也有1年多了,上个月在部门开了个课程,总结了下一些开发的经验,这里把涉及到代码设计、开发的一些原则,或者说要注意的地方总结下:
1、局部变量优先于全局变量,无论性能上还是代码阅读上。在android开发里面,见过很多初学者,在写activity的时候,喜欢把页面上的所有控件全部声明为类变量,不管是否必须,感觉这样使用方便,其实这是很不好的习惯,既影响性能,又不便于阅读代码。
2、如果不是由于方法数的关系,对于有成员变量的类,要实现set和get方法来实现对成员变量的访问。因为我们很可能需要在赋值和获取的过程中做不同的操作。特别是当你想定位问题的时候,你会发现,setxx和getxx方法调试起来很方便。
3、尽量将循环依赖的类改成单向依赖,否则复用的时候会非常麻烦。这个主要是为了以后复用方便。
4、变量是有生命周期的!变量是有生命周期的!变量是有生命周期的!存储全局变量的类里面,一定要严格区分生命周期,尤其是存储在单例里面的变量。否则以后一定会为初始化和释放付出代价。
5、用户的账户密码绝对不要存储原文在终端本地,如果你一定要存储,那么存储密码对应的类似多重md5的值,也不要存储原文;也不要存储可逆的加密算法加密的密文,尽量用不可逆的方式加密。否则以后一定会付出安全的代价。
6、代码设计一开始,就要考虑测试和正式环境,版本开发完成之后,测试和正式环境必须做到动态可以切换,使得版本打包测试完成后,不需要任何改动就能发布,确保发布的和测试的版本是一致的。因为你要知道,即便只是重新打包,也是有可能出错的。
7、日志系统最好可以动态控制打开关闭,在测试的时候打开,发布时候关闭,另外app的log最好能够在出错的时候,写log文件到本地,这样你或者用户在发现现网问题的时候,能够得到用户运行时的日志定位问题,你要知道,用户是不可能给你抓日志的。
8、在网络通讯的时候,ip通常会比域名快,因为节省了dns解析的时间,但是域名通常会比ip能够适用的返回广,因此如果网络通信主要适用了ip,也不要抛弃域名,应该将域名作为ip不可能后的重试手段,当然,如果你说你有ip测速,那最好。
9、在发布版本里面,不需要的代码,最好直接删掉,如果担心以后要使用,那么就提交一个svn或者git的版本,然后再删掉;不要只是注释掉,一开始你注释掉,后面的同学以为你要用,更加不敢删掉,以后代码会一直遗留在这里,所以如果你不需要,请直接上传svn后,删掉代码。
10、终端本地保存的数据,通常只能提高被破解的门槛,因此如果有在前端存储秘钥等信息,需要将破解的门槛做到足够高,比如针对反编译做混淆。
11、写activity页面的时候,要依赖activity的生命周期顺序,不要依赖它的执行时机,比如官方文档里面提到,A页面跳转到B页面,如果A页面不finish,那么一般是不会被系统释放,除非系统内存不足需要回收,但是事实上在部分机型上,rom是经过优化的,有可能在跳转到B页面的时候,A页面完全可能直接被系统ondestroy了。
12、最后提一下吧,你很难设计出一个最优的解决方案,正确的方式应该是,设计一个能够解决问题的,同时你也能hold住的相对优方案,先扛住再不断优化

0 0
原创粉丝点击