Skip to content

zhaozepeng/Android_framework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

216cd58 · Mar 3, 2017
Mar 3, 2017
Mar 3, 2017
Mar 3, 2017
Mar 3, 2017
Jul 7, 2015
Mar 3, 2017
Nov 20, 2016
Nov 20, 2016
Jul 6, 2015
Nov 15, 2015
Nov 13, 2015
Mar 3, 2017
Jul 6, 2015
Jul 6, 2015
Jul 6, 2015
Jul 6, 2015

Repository files navigation

android_framework

an android framework in order for rapid development

##1.开发环境## 环境为android studio + jdk1.7
framework

##2.框架结构## 该框架分为三个部分:
libcore
libcore-ui
testsample
第三层为测试代码,重点在第一和第二层...

##3.框架详细概述##

###第一层libcore### 该层为基础核心代码层,该层的代码特点是封装了应用所应该使用的基础功能,好处是封装的功能仅仅提供简单的接口,使得应用只需要更改libcore的封装实现,而不用修改底层的代码,从而轻松实现功能的变更,功能列表如下所示

  1. Application封装,使用了weakRefrence指向当前Activity的context,方便使用,还增加了应用crash,应用关闭等处理
  2. 最基础的Activity和Fragment类,配合Application类和ActivityManager类进行Activity的集中管理
  3. ActivityManager类,使用栈来管理所有的activity
  4. BaseNetApi类,实现了网络请求,网络访问的底层使用的是volley框架。现在提供两种方案:第一种就是可更换的网络框架,为了可更换,就要对volley进行大程度的封装,所有子module不可直接使用volley相关类,以后网络框架更改,只需要修改这几个相关类即可,由于volley功能的复杂性,只能封装最基本的网络访问功能,tag和cache等功能由于不通用性,暂时不封装;
  5. BaseVolleyApi类,第二种就是纯粹的volley框架,不会更换网络访问框架,只需对其进行最基本的封装,所有功能类都可在子module中使用,所以会增大项目对volley框架的耦合性
  6. ImageLoader类,用来进行图片的加载,封装的是volley的imageloader功能,支持lrucache和sd卡二级存储功能
  7. log类,用来打印log,打印的日志信息非常完整
  8. Toast类,该类用来弹出toast,支持弹出toast的位置
  9. GuideManager类,用来显示指引蒙版,支持全屏展示和只在内容区域展示
  10. BaseDialog类,定义了一个应用dialog所应该具备的基础行为
  11. 数据库相关类,将数据库类进行了非常便捷的封装,创建数据库应该继承自BaseDB类,为了该数据库的访问应该再创建一个helper类继承自BaseDBHelper,封装该数据库的所有操作,另外还需要对表名和列名进行了枚举的封装,这样使用该数据库直接使用该枚举类获取表名和表的相关列名。对数据库的版本升级也做了相应快捷的处理
  12. CacheManager类,这个类使用SharedPreference来存储基本对象,有临时和永久两种,临时存储将会在每次应用退出之后自动清空,永久存储则永久存储
  13. FileDownloadManager类,用来下载相关文件,为多线程断点续传式下载,支持开始,停止和删除操作
  14. Utils类:
    • CommonUtils,用来集中管理一些杂项函数,比如dp2px等
    • FileUtils,用来管理文件的相关操作
    • ImageUtils,用来处理图片的相关操作

###第二层libcore-ui层### 该层为基础核心扩展层,扩展libcore的层的代码,并且定义应用的基本样式,够统一样式,方便管理

  1. 扩展实现的Activity和Fragment类,BaseActivity类中定义了整个应用的基本简单样式(现在提供两种样式,顶部透明样式和底部透明样式),顶部bar的样式(顶部bar有自定义bar和系统控件toolbar)等,BaseActivityWithPopWindow类继承BaseActivity类,实现了底部的弹出框;Fragment类定义了fragment和activity之间的通信方式和topbar的交互,
  2. NetApi类,NetApi继承自BaseNetApi类,在原来的基础上扩展相关的功能,支持自定义继承自volley request的请求,额外的处理就只是在NetApi类中添加相应的函数
  3. VolleyApi类,用来对BaseVolleyApi类进行功能扩展
  4. PermanentCacheDB类,用来存储一些和应用生命周期相关的变量,写入数据库,永久保存
  5. WebFragment类,该fragment用来显示网页,可以单独作为一个fragment嵌入一个页面的任何地方
  6. WebActivity类,该activity用来展示网页,传入url即可显示网页,有进度条和刷新操作
  7. AppDialog类,该类继承自父类BaseDialog类,定义了基本的样式,实现了基础的行为
  8. DialogCreator类,该类用来生成基本样式的dialog
  9. LoadingDialog类,用来定义一个应用最基本的加载框
  10. 基本实用的控件:
    • SimpleGridLayout类,自定义网格布局,自动换行,自定义attr
    • FlowLayout类,自定义流式布局,支持方向选择,自动换行,自定义attr

###第三层应用层### 该层为模拟应用层,用来测试下层的代码。一个应用在使用了libcore层和libcore-ui层之后,可能还需要在封装一层或几层module,但是保证最基础的两层是应用所通用的module即可

About

android framework 用来快速开发的android框架

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published