Android开发——规划项目结构(分层,分模块,分包)

规划Android项目结构

1.建立Android Lib类库,将与业务无关的逻辑转移到Android Lib。Android Lib至少包括五大部分:包名+ acticity,cache,net,ui,utils 。

  • activity包里面存放的是与业务无关的Activity基类。
  • net包里存放的是网络底层封装。
  • cache包里面存放的是缓存数据的封装,比如:图片和图片的相关处理。
  • ui包中存放的是自定义控件
  • utils包中存放的是各种与类无关的公用方法。

将主项目的类分门别类的进行划分,放置在各种包中。

  • activity:我们按照模块继续划分,将不同模块的Activity划分到不同的包中。
  • adapter:所有的适配器都放在一起
  • entity:所有的实体都放在一起
  • db:SQLite相关逻辑的封装
  • engine:将业务相关的类都放在一起
  • ui:将自定义控件都放在这个包里
  • utils:将所有的公用方法都放在这里
  • interfaces:真正意义上的接口,命名以I作为开头
  • listener:基于Listener的接口,命名以On作为开头

2. 为Activity定义新的生命周期

可以把onCreate方法拆成三个子方法

  • initVariables:初始化变量,包括Intent带的数据和Activity内的变量
  • initViews:加载layout布局文件,初始化控件,为控件挂上事件方法
  • loadData:调用MobileAPI获取数据

3. 统一事件编程模型

只要在一个团队内部达成了协议,决定使用某种事件编程方式,所有开发人员就要按照同样的方式编写代码。

4. 实体化编程

4.1在网络请求中使用实体

一些开发人员不使用实体化编程,在获取MobileAPI网络请求返回的JSON数据时,使用JSONObject或者JSONArray来承载数据,然后把返回的数据当作一个字典,根据键取出响应的值。介绍fastJSON和GSON这种实体化编程的方式.

使用fastJSON如下

WeatherEntity weatherEntity = JSON.parseObject(content, WeatherEntity.class);
        WeatherInfo weatherInfo = weatherEntity.getWeatherInfo();
        if (weatherInfo != null) {
            tvCity.setText(weatherInfo.getCity());
            tvCityId.setText(weatherInfo.getCityid());
        }

使用GSON如下:

Gson gson = new Gson();
        WeatherEntity weatherEntit
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值