1.重新规划android项目结构
需要重新规划Android项目的目录结构,分两步走:
第一步:建立AndroidLib类库,将与业务无关的逻辑转移到AndroidLib类库中。
类库中至少包含五大部分:
1、activity 存放与业务无关的Activity基类
2、cache 存放缓存数据和图片的相关处理
3、net 存放网络底层的封装
4、ui 自定义控件
5、utils 存放各种与业务无关的共用方法
第二步:将主项目中的类分门别类地进行划分,放置在各种包中:
大体包含如下:
1、activity 按照模块继续拆分,将不同模块的Activity划分到不同的包下
2、adapter 将所有适配器都放在一起
3、entity 将所有的实体都放在一起,当实体有很多的情况下,可考虑将实体按照模块进行划分,实体中应该只有属性,没有业务逻辑的方法,如果需要,就将其移到engine这个包中的某个类下面
4、db Sqlite相关逻辑的封装
5、engine 将业务相关的类都放在一起
6、ui 将自定义的控件都放在这个包中
7、utils 将所有的公用方法都放在这个包中
8、interface 真正意义上的接口,命名以I最为开头
9、listener 基于Listener的接口,命名以On作为开头
2.为Activity定义新的生命周期
可在AndroidLib类库中的BaseActivity中,重写onCreate方法:然后让所有的Activity都继承自BaseActivity基类public abstract class BaseActivity extends Activity { @override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initVariables(); initViews(savedInstanceState); loadData(); } // 初始化变量,包括Intent带的数据和Activity内的变量 protected abstract void initVariables(); // 加载layout布局文件,初始化控件 protected abstract void initViews(Bundle savedInstanceState); // 加载数据,调用方法获取数据 protected abstract void loadData(); }
3.统一事件编程模型
统一项目中的事件编程方式
4.实体化编程
1、在网络请求中使用实体,可使用GSON来实现2、在页面跳转中使用实体,页面跳转可携带的实体需要进行 Serializable或 Parcelable进行序列化,这里推荐使用Parcelable,相对于Serializable效率高一些