App框架设计与重构

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方法:
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();
}
然后让所有的Activity都继承自BaseActivity基类

3.统一事件编程模型

统一项目中的事件编程方式

4.实体化编程

1、在网络请求中使用实体,可使用GSON来实现
2、在页面跳转中使用实体,页面跳转可携带的实体需要进行 SerializableParcelable进行序列化,这里推荐使用Parcelable,相对于Serializable效率高一些


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值