android开发/设计原则总结

做android也有3年多了,上个月在部门开了个课程,总结了下一些开发的经验,这里把涉及到代码设计、开发的一些原则,或者说要注意的地方总结下:

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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值