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

简介:

总感觉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 客户端


作者:kissazi2 
出处:http://www.cnblogs.com/kissazi2/ 
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

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

目录
相关文章
|
1月前
|
编解码 Oracle Java
java9到java17的新特性学习--github新项目
本文宣布了一个名为"JavaLearnNote"的新GitHub项目,该项目旨在帮助Java开发者深入理解和掌握从Java 9到Java 17的每个版本的关键新特性,并通过实战演示、社区支持和持续更新来促进学习。
79 3
|
2月前
|
Java Maven 开发工具
第一个安卓项目 | 中国象棋demo学习
本文是作者关于其第一个安卓项目——中国象棋demo的学习记录,展示了demo的运行结果、爬坑记录以及参考资料,包括解决Android Studio和maven相关问题的方法。
第一个安卓项目 | 中国象棋demo学习
|
1月前
|
JSON JavaScript 前端开发
《进阶篇第7章》学习vue中的ajax之后,练习vue案例-github用户搜索案例
《进阶篇第7章》学习vue中的ajax之后,练习vue案例-github用户搜索案例
15 0
|
1月前
|
Unix Shell 网络安全
git学习六:(bug总结)git@github.com: Permission denied (publickey).等
本文是关于解决在使用Git和GitHub时遇到的“git@github.com: Permission denied (publickey)”错误的指南。文章提供了详细的步骤,包括确认SSH Agent运行状态、检查密钥配置、确保密钥匹配、验证仓库URL、检查权限和代理设置,以及配置SSH文件。这些步骤帮助用户诊断并解决SSH认证问题。
88 0
|
1月前
|
Web App开发 编解码 视频直播
视频直播技术干货(十二):从入门到放弃,快速学习Android端直播技术
本文详细介绍了Android端直播技术的全貌,涵盖了从实时音视频采集、编码、传输到解码与播放的各个环节。文章还探讨了直播中音视频同步、编解码器选择、传输协议以及直播延迟优化等关键问题。希望本文能为你提供有关Andriod端直播技术的深入理解和实践指导。
45 0
|
2月前
|
Android开发
Android学习 —— 测试init.rc中的条件触发的处理顺序
Android学习 —— 测试init.rc中的条件触发的处理顺序
|
3月前
|
JavaScript 前端开发 Java
Github 2024-08-01 开源项目月报 Top17
根据Github Trendings统计,2024年8月共有17个项目上榜。按开发语言分类,项目数量如下:Python项目6个,非开发语言项目与TypeScript项目各4个,JavaScript项目3个,Java、Go及Vue项目各1个。其中,免费编程学习平台freeCodeCamp.org以381,011个Star数领先,提供全栈网页开发和机器学习课程。其他项目涵盖编程书籍、API集合、低代码开发平台等多种资源。
39 1
|
3月前
|
搜索推荐 Android开发
学习AOSP安卓系统源代码,需要什么样的电脑?不同配置的电脑,其编译时间有多大差距?
本文分享了不同价位电脑配置对于编译AOSP安卓系统源代码的影响,提供了从6000元到更高价位的电脑配置实例,并比较了它们的编译时间,以供学习AOSP源代码时电脑配置选择的参考。
237 0
学习AOSP安卓系统源代码,需要什么样的电脑?不同配置的电脑,其编译时间有多大差距?
|
3月前
|
数据采集 数据可视化 Ruby
GitHub星标破万!Python学习教程(超详细),真的太强了!
Python 是一门初学者友好的编程语言,想要完全掌握它,你不必花上太多的时间和精力。 Python 的设计哲学之一就是简单易学,体现在两个方面: 1. 语法简洁明了:相对 Ruby 和 Perl,它的语法特性不多不少,大多数都很简单直接,不玩儿玄学。 2. 切入点很多:Python 可以让你可以做很多事情,科学计算和数据分析、爬虫、Web 网站、游戏、命令行实用工具等等等等,总有一个是你感兴趣并且愿意投入时间的。
|
3月前
|
人工智能 JavaScript 前端开发
Github 2024-07-01开源项目月报 Top15
根据Github Trendings统计,2024年7月有15个热门项目。按开发语言分类,项目数量如下:Python项目6个,JavaScript项目3个,C++项目2个,PHP、Blade、非开发语言、C#、Lua、Go、MDX、Jupyter Notebook项目各1个。这些项目涵盖技术重建指南、生成式AI教程、模块化GUI、云平台、数据库系统、视频生成模型、AI框架、Shell提示渲染器、Neovim配置、PDF转Markdown工具及语音识别等多种领域和技术。
107 0