文档章节

Android开源项目分包方式学习(eoe、oschina、github)

Mobile-DEV彬
 Mobile-DEV彬
发布于 2015/12/18 11:24
字数 896
阅读 106
收藏 0

(一) eoe社区 Android 客户端

src

├ cn.eoe.app --存放程序全局性类的包 
├ cn.eoe.app.adapter --存放适配器的实现类的包 
├ cn.eoe.app.adapter.base --存放适配器基类的包 
├ cn.eoe.app.biz --存放DAO类的包 
├ cn.eoe.app.config --存放常量,配置和api接口等类的包 
├ cn.eoe.app.db --关于sqlite操作相关的类的包 
├ cn.eoe.app.db.biz --详细的增删改查类的包,暂时仅有一个类 
├ cn.eoe.app.entity --实体类包 
├ cn.eoe.app.entity.base --实体类基类包 
├ cn.eoe.app.https --网络访问相关类的包 
├ cn.eoe.app.indicator --导航相关的类包 
├ cn.eoe.app.slidingmenu --滑动菜单相关类包 
├ cn.eoe.app.ui --界面相关的包,activity的类 
├ cn.eoe.app.ui.base --activity相关的基类包 
├ cn.eoe.app.utils --工具类包 
├ cn.eoe.app.view --Fragment相关类的包 
├ cn.eoe.app.widget --自定义view组件包

 

├ com.google.zxing.camera --第三方定义,控制摄像头包 
├ com.google.zxing.decoding -- 二维码图像解码包 
├ com.google.zxing.view -- 自定义View,控制拍摄取景框和动画等

点评:config层是一个全局都可以访问到的配置层。另一个就是dao层,这层主要用来从json字符串中将数据提取出来。其他的也就是比较常见的adatper、ui等层。

(二) 开源中国社区 Android 客户端

src

├com.weibo.net — 新浪微博SDK源码包

├greendroid.widget — 快捷菜单栏组件(国外UI库GreenDroid)

├net.oschina.app — APP启动及管理包

├net.oschina.app.adapter — APP列表适配器包

├net.oschina.app.api — API访问包

├net.oschina.app.bean — APP实体包

├net.oschina.app.common — APP工具包

├net.oschina.app.ui — APP界面包

├net.oschina.app.widget — APP控件包

点评:开源中国的分包方式简单明了,它似乎将大量的业务逻辑放在了UI层,不过项目的业务逻辑不多的情况下,这倒也没有什么。Adatper层是UI层的数据源。Bean层中提供了各种实体类。oschina中没有数据库访问相关的包。

(三) github Android 客户端

由于我没有详细读过github的源代码,并且网上也没有关于github的Android客户端的分包的解析文章,因此下面github分包的解释可能有误。

├─com.github.mobile.accounts --账户相关类

├─com.github.mobile.core –业务层,实现整个客户端中的主要业务逻辑

│ ├─code

│ ├─commit

│ ├─gist

│ ├─issue

│ ├─ref

│ ├─repo

│ ├─search

│ └─user

├─com.github.mobile.persistence –数据持久化层

├─com.github.mobile.sync –同步信息层(不确定是不是这个作用)

├─com.github.mobile.ui –界面层

│ ├─code

│ ├─comment

│ ├─commit

│ ├─gist

│ ├─issue

│ ├─ref

│ ├─repo

│ ├─search

│ └─user

└─com.github.mobile.util –实用工具层

点评:github的开源客户端很明显地实现了UI和业务逻辑的分离。比较有趣的是,github项目中没有独立一个adapter层,而是直接放在了UI层。业务逻辑被大量地放在com.github.mobile.core,这个层里面针对每一个界面都单独地建立了文件夹,界面中的业务逻辑就大量地分布在这些文件夹中。我感觉,跟一个界面相关的业务逻辑直接集中在一个文件夹中,而不是分散在各个不同的包中,其实挺方便的。

文中涉及的开源项目

eoe android客户端

github Android客户端

oschina android 客户端


本文转载自:http://www.cnblogs.com/kissazi2/p/3516439.html

Mobile-DEV彬
粉丝 0
博文 15
码字总数 6603
作品 0
丰台
私信 提问

暂无文章

Android双向绑定原理简述

Android双向绑定原理简述 双向绑定涉及两个部分,即将业务状态的变化传递给UI,以及将用户输入信息传递给业务模型。 首先我们来看业务状态是如何传递给UI的。开启dataBinding后,编译器为布局...

tommwq
今天
2
0
Spring系列教程八: Spring实现事务的两种方式

一、 Spring事务概念: 事务是一系列的动作,它们综合在一起才是一个完整的工作单元,这些动作必须全部完成,如果有一个失败的话,那么事务就会回滚到最开始的状态,仿佛什么都没发生过一样。...

我叫小糖主
今天
6
0
CentOS 的基本使用

1. 使用 sudo 命令, 可以以 root 身份执行命令, 必须要在 /etc/sudoers 中定义普通用户 2. 设置 阿里云 yum 镜像, 参考 https://opsx.alibaba.com/mirror # 备份mv /etc/yum.repos.d/CentO...

北漂的我
昨天
3
0
Proxmox VE技巧 移除PVE “没有有效订阅” 的弹窗提示

登陆的时候提示没有有效的订阅You do not have a valid subscription for this server. Please visit www.proxmox.com to get a list of available options. 用的是免费版的,所以每次都提示......

以谁为师
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部