android framework,GitHub - zhaozepeng/Android_framework: android framework 用来快速开发的android框架...

android_framework

an android framework in order for rapid development

##1.开发环境##

环境为android studio + jdk1.7

952979b01a5078191048c1db1bb8caf1.png

##2.框架结构##

该框架分为三个部分:

libcore层

libcore-ui层

testsample层

第三层为测试代码,重点在第一和第二层...

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

###第一层libcore###

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

Application封装,使用了weakRefrence指向当前Activity的context,方便使用,还增加了应用crash,应用关闭等处理

最基础的Activity和Fragment类,配合Application类和ActivityManager类进行Activity的集中管理

ActivityManager类,使用栈来管理所有的activity

BaseNetApi类,实现了网络请求,网络访问的底层使用的是volley框架。现在提供两种方案:第一种就是可更换的网络框架,为了可更换,就要对volley进行大程度的封装,所有子module不可直接使用volley相关类,以后网络框架更改,只需要修改这几个相关类即可,由于volley功能的复杂性,只能封装最基本的网络访问功能,tag和cache等功能由于不通用性,暂时不封装;

BaseVolleyApi类,第二种就是纯粹的volley框架,不会更换网络访问框架,只需对其进行最基本的封装,所有功能类都可在子module中使用,所以会增大项目对volley框架的耦合性

ImageLoader类,用来进行图片的加载,封装的是volley的imageloader功能,支持lrucache和sd卡二级存储功能

log类,用来打印log,打印的日志信息非常完整

Toast类,该类用来弹出toast,支持弹出toast的位置

GuideManager类,用来显示指引蒙版,支持全屏展示和只在内容区域展示

BaseDialog类,定义了一个应用dialog所应该具备的基础行为

数据库相关类,将数据库类进行了非常便捷的封装,创建数据库应该继承自BaseDB类,为了该数据库的访问应该再创建一个helper类继承自BaseDBHelper,封装该数据库的所有操作,另外还需要对表名和列名进行了枚举的封装,这样使用该数据库直接使用该枚举类获取表名和表的相关列名。对数据库的版本升级也做了相应快捷的处理

CacheManager类,这个类使用SharedPreference来存储基本对象,有临时和永久两种,临时存储将会在每次应用退出之后自动清空,永久存储则永久存储

FileDownloadManager类,用来下载相关文件,为多线程断点续传式下载,支持开始,停止和删除操作

Utils类:

CommonUtils,用来集中管理一些杂项函数,比如dp2px等

FileUtils,用来管理文件的相关操作

ImageUtils,用来处理图片的相关操作

###第二层libcore-ui层###

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

扩展实现的Activity和Fragment类,BaseActivity类中定义了整个应用的基本简单样式(现在提供两种样式,顶部透明样式和底部透明样式),顶部bar的样式(顶部bar有自定义bar和系统控件toolbar)等,BaseActivityWithPopWindow类继承BaseActivity类,实现了底部的弹出框;Fragment类定义了fragment和activity之间的通信方式和topbar的交互,

NetApi类,NetApi继承自BaseNetApi类,在原来的基础上扩展相关的功能,支持自定义继承自volley request的请求,额外的处理就只是在NetApi类中添加相应的函数

VolleyApi类,用来对BaseVolleyApi类进行功能扩展

PermanentCacheDB类,用来存储一些和应用生命周期相关的变量,写入数据库,永久保存

WebFragment类,该fragment用来显示网页,可以单独作为一个fragment嵌入一个页面的任何地方

WebActivity类,该activity用来展示网页,传入url即可显示网页,有进度条和刷新操作

AppDialog类,该类继承自父类BaseDialog类,定义了基本的样式,实现了基础的行为

DialogCreator类,该类用来生成基本样式的dialog

LoadingDialog类,用来定义一个应用最基本的加载框

基本实用的控件:

SimpleGridLayout类,自定义网格布局,自动换行,自定义attr

FlowLayout类,自定义流式布局,支持方向选择,自动换行,自定义attr

###第三层应用层###

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值