第1章、重构、夜未眠

1.1重新规划Android项目结构

基本上项目目录尽可能细分,容易快速查找界面。现在感觉mvp模式不错,可以采用。

1.2位Activity定义新的生命周期

核心:单一职责。一个类或方法,只做一件事情。

将onCreate分为三个子方法并为抽象的abstract:

  • initVariables():初始化变量,包括Intent带的数据和Activity。
  • initViews(savedInstanceState):加载layout布局文件,初始化控件,为控件挂上时间方法。
  • initDatas():调用MobileApi获取数据。

1.3统一事件编程模型

1、不要用switch...case...这种方式,也就是说,除了在initViews中,其他地方不要出现R.id.xxx这种。
2、点击事件直接在initViews中初始化,而且事件具体内容分离,独立私有方法。比如:
mBtn = (Button) findViewById(R.id.button2); mBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { test(0); } });

1.4实体化编程

1.4.1在网络请求中使用实体

网路编程中尽量把网络返回数据构建成实体类,而不是用到再get值。
在使用fastJson中,可能会出现下面问题:
1)加了符号Annotation的实体属性,一使用就崩溃。
2)当有泛型属性时,一使用就崩溃。
这很有可能是混淆没有加以下配置:
-keepattributes Signature //避免混淆泛型 -keepattributes *Animation* //不混淆注解

1.4.2实体生成器

快速理清Json-->实体类
可用EnityGenerater工具,也可用网络上JSON解析即可。

1.4.3在页面跳转中使用实体

使用实体类传递数据,序列化。

1.5Adapter模板

可以抽取公共Adapter来使用。
也可以规定Adapter都必须集成自BaseAdapter。
当然ViewHolder是不可少的。

1.6类型安全转换函数

一般来讲大部分转化在null、数组或其它越界较多。
所以对于MobileAPI返回的数据中,需要加工或者敏感信息(比如金钱)应该对数据进行判断,或进行try..catch捕获错误并进行处理,比如发送错误日志给服务器。也就是说错误信息有两种,一种没有捕获的,可以用友盟类似工具处理,另外一种捕获的可根据情况判断是否提交服务器。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.1,重新规划Android项目结构 Activity:存放与业务无关的Activity基类 BaseActiv...
    lookid阅读 1,560评论 0 0
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,620评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,461评论 19 139
  • 有这么多人爱着我,我怎么能不努力呢!
    铁星阅读 1,605评论 0 0
  • 金刚商学院第四阶静修营回顾(二) ----圆满关系,富足人生 早上散步,看见四处都是迎春花,如果曾...
    欣谊阅读 6,535评论 0 12