Android开源项目分包方式学习(eoe、oschina、github)
2019独角兽企业重金招聘Python工程师标准>>>
总感觉Android中关于分包的文章很少,或者几乎可以说没有。但是合理地分包,又可以使整个项目模块化,减少包与包之间的依赖,让整个项目的框架更加清晰,更利于后续功能的拓展。
因为没有相关的文章,所以这里晒出三款开源项目的分包方式,供大家学习。
(一) 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 客户端
转载于:https://my.oschina.net/u/1765449/blog/261181
Android开源项目分包方式学习(eoe、oschina、github)相关推荐
- Android开源项目SlidingMenu本学习笔记(两)
我们已经出台SlidingMenu使用:Android开源项目SlidingMenu本学习笔记(一个),接下来再深入学习下.依据滑出项的Menu切换到相应的页面 文件夹结构: 点击Bluetooth能 ...
- 2016年GitHub上史上最全的Android开源项目分类汇总
以下内容为转载 版主原网址 http://itindex.net/detail/51896-github-android-开源 GitHub上史上最全的Android开源项目分类汇总 今天在看博客的时 ...
- GitHub上史上最全的Android开源项目分类汇总 (转)
GitHub上史上最全的Android开源项目分类汇总 标签: github android 开源 | 发表时间:2014-11-23 23:00 | 作者:u013149325 分享到: 出处:ht ...
- GitHub 优秀的 Android 开源项目 - 让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) - 博客频道 - CSDN.NET
原文地址为http://www.trinea.cn/android/android-open-source-projects-view/,作者Trinea http://www.cnblogs.com ...
- Android开源项目 资源 学习
转载了一个开源项目的文章,转载一篇有系统总结的文章.感谢博主的慷慨,让我们学习! Android开源项目系列汇总已完成,包括: Android开源项目第一篇--个性化控件(View)篇 Android ...
- Android 开源项目及其学习
Android 系统研究:http://blog.csdn.net/luoshengyang/article/details/8923485 Android 腾讯技术人员博客 http://hukai ...
- Github优秀Android开源项目,值得引用与学习(图文结合~~~)
刚进来的时候需要加载很多图片和gif图片, 所以想看图片效果需要耐心等待一下. JKeyboardPanelSwitch Android键盘面板冲突 布局闪动处理方案 点我跳转 给大家提供一个底部导航 ...
- Github优秀Android开源项目,值得引用与学习(注意!里面有巨图! )
内容添加(--根据trending(today)/java从上往下添加的,根据时间查看,都是github的项目,以及大佬们的点赞的GitHub项目 ) 刚进来的时候需要加载很多图片和gif图片, 所以 ...
- 的Android组件、工具、框架大全(转) android 学习 android 例子 android 开源项目
2015最流行的Android组件.工具.框架大全(转) 转自:2015最流行的Android组件.工具.框架大全 Android 是目前最流行的移动操作系统之一. 随着新版本的不断发布, Andro ...
最新文章
- java auth fail_com.jcraft.jsch.JSchException: Auth fail
- 使用Google Page Speed
- 关于DJANGO和JAVASCRIPT的时间
- LINQ :最终统治了​所有的语言!
- 【渝粤教育】国家开放大学2018年春季 0089-22TInternet和Intranet应用 参考试题
- Updating Homebrew... ...长时间卡住的问题
- adobe Director的一些快捷键(direct_Shortcut)
- 催眠与大脑的信息处理
- 3月6日服务器例行维护公告,热血江湖官方网站·系统公告
- Windows API (DAY07) ShowWindow 函数
- 《关键对话:如何高效能沟通(原书第2版)》 摘录及总结
- 实验05 指针及其在程序设计中的应用(2021级)
- 崔老哥python scrapy爬虫框架入门
- IDEA配置优化,idea配置大全
- 记:.net中海关终端节点报文加签与推送
- Verilog HDL 小练习(四)状态机
- 哈尔滨海鹰机器人_哈尔滨机器人产业园:机器人让“未来”照进现实
- 前端JS请求网络图片报错GET https://xxx.png 404 (Not Found)的解决办法
- 草莓棉花糖剧本-10
- 自动控制原理---频域