Android App 代码架构

转载地址:http://frank-zhu.github.io/android/2014/11/22/android-app-code-architecture/

安卓APP代码架构搭建

搞安卓开发两年了,一直都想整理一份自己平时开发用得到的代码作为其他项目开发的基础架构,之前也整理过一份,但是碍于自己当时技术的短板,那份代码已经有点落后了,所以今天还是重新整理一份相对合理一点的代码备份下,如果你对之前的版本感兴趣可以点这里--->AndroidAppCodeFramework


新的代码结构我会采用如下开源库

  • 网络通信将使用这些开源库 Retrofit OKHTTP
  • 网络图片加载 Picasso / UIL
  • View注解 Butterknife
  • DB会用CursorLoader配合contentProvider来做本地缓存
  • JSON解析会采用GSON
  • 数据更新通知可能会采用EventBus或者otto代替broadcast
  • 消息提示AppMsg代替系统Toast
  • 圆形图片CircleImageView


  • adapter ListView/GridView 的适配器都放在此文件夹下

  • app 主要放APP的一些常量及配置文件

  • base 主要放activity及fragment的基类文件

  • dao 主要放数据库文件

   database  数据库的表
   datahelper  数据库数据操作的帮助类,每一张表派生出一个帮助类操作表
  • fragment 主要放不同页面的fragment文件
  • log APP打LOG的帮助类,可以通过开关关闭LOG的输出,也可以通过设置Gradle的编译混淆方式直接移除函数也可以。
  • model 数据模型类文件夹
  • network 主要放网络操作的文件 callback HTTP请求的基类文件存放 controller 主要存放APP中请求网络的控制类操作
  • ui 主要放activity文件
  • utils 一些帮助类均放在此文件夹下
  • view 自定义VIEW文件

每一个文件下我都做了注释,引用到的库也给出了链接地址,大部分用法稍微看下WIKI应该都没有什么问题。最后给出代码的下载地址,欢迎 Star 和 Fork GITHUB CODE 下载

对了,为了编码更快速,可能用上一些IDE的插件会更加快速 1、ButterKnife Plugin,一款IDEA插件,这个要配合这个开源库使用ButterKnife使用,一个注解库,源至于Dragger,出自大神JakeWharton之手。

2、Parcelable,安卓数据序列化插件,记得之前不到万不得已是不会用 Parcelable来序列化的,因为他写起来实在是太麻烦了,自从有了一款插件,妈妈再也不用担心我写arcelable序列化数据了,这是咋用咋爽啊


Android 应用程序的架构通常分为三层:表示层、业务逻辑层和数据访问层。 1. 表示层: 表示层是用户与应用程序交互的界面层,通常使用 Android 布局文件和 Java 代码实现。在这一层中,开发人员通常使用 Android SDK 提供的 UI 组件来构建应用程序的用户界面。例如,按钮、文本框、列表视图等。 2. 业务逻辑层: 业务逻辑层负责处理应用程序的业务逻辑,通常包括数据处理、业务逻辑的实现和应用程序的控制流程。在这一层中,开发人员可以使用 Java 或 Kotlin 等编程语言来实现应用程序的业务逻辑。 3. 数据访问层: 数据访问层负责应用程序与数据源之间的交互,例如数据库、网络接口或文件系统等。在这一层中,开发人员可以使用 Android SDK 提供的 API 或第三方库来访问和管理数据。例如,可以使用 SQLiteOpenHelper 类来访问 SQLite 数据库,或使用 Retrofit 库来访问 RESTful API。 在实际开发中,为了提高代码的可维护性和可扩展性,开发人员通常会使用一些设计模式和架构模式来组织应用程序的代码。例如,可以使用 MVP(Model-View-Presenter)模式或 MVVM(Model-View-ViewModel)模式来分离应用程序的表示层和业务逻辑层。同时,为了便于管理和维护代码,开发人员通常会将不同的功能模块分别放在不同的包中,或将不同的层分别放在不同的模块中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值