SAF
(2) Rest Client(http 的框架)
(3) Image Cache(图片缓存)
(4) Dependency Injection(依赖注入)
(5) Sqlite ORM(sqlite 的 orm)
(6) Router(Activity、Fragment 的 Router)
(7) Utils(各种常用的工具类)
SAF(Simple Android Framework)最早的定位是一个简单的 Android 框架,现在它可以为 Android App 开发提供一系列基础性的组件。这个项目第一次提交到 google code 是 2012 年的 3 月 26 号,我已经断断续续做了 5 年多了。
SAF 曾经在多个项目中使用,包括今夜酒店特价 app、锦江之星 app、京东内部的多个 app(京东众包、京明管家、众包商户端、众包运作主管)等等。 目前 google code 上的工程早已暂停维护,全部迁移到 github 上。SAF 目前文档版本是 1.1.19,下一个版本会是 1.2.0。1.2.0 发布在即,会有很多新的变化和特性。
遇到任何问题欢迎跟我联系,玩得开心:)
除了 SAF 自带的 demo app 外,魔窗的 android demo app也使用了 SAF,而且也是开源的
主要功能
- AOP(use aspectj) AOP 相关的注解框架
- RxAsyncTask(use rxjava) 使用 RxJava 开发的 AsyncTask,区别于 Android 系统自带的 AsyncTask
- Event Bus 事件总线
- Rest Client 网络框架
- Dependency Injection(use apt) 依赖注入
- Sqlite ORM 数据库操作框架
- Router Activity、Fragment 的路由框架
- Cache 缓存框架
- L 日志框架
- Permission 权限框架,用于适配 android6.0 之后新的权限框架
- RxLifecycle 管理 Activity、Fragment 生命周期的框架,防止由于使用 RxJava 而产生内存泄漏
- Utils 各种工具类
SAF 子项目
SAF 已经拆分成多个子项目,每个子项目都可以单独使用,没有任何的依赖关系。
日志框架:https://github.com/fengzhizi715/SAF-Kotlin-log
下载:
compile 'com.safframework.log:saf-log:1.5.5'
Activity 路由框架:https://github.com/fengzhizi715/SAF-Kotlin-Router
下载:
dependencies { implementation 'com.safframework.router:saf-router:1.2.1' implementation 'com.safframework.router:saf-router-annotation:1.2.0' annotationProcessor 'com.safframework.router:saf-router-compiler:1.2.0' ... }
依赖注入框架:https://github.com/fengzhizi715/SAF-Kotlin-InjectView
下载:
dependencies { implementation 'com.safframework.injectview:saf-injectview:1.1.1' implementation 'com.safframework.injectview:saf-injectview-annotation:1.1.1' annotationProcessor 'com.safframework.injectview:saf-injectview-compiler:1.1.1' ... }
AOP 框架:https://github.com/fengzhizi715/SAF-AOP
下载:
compile 'com.safframework:saf-aop:1.3.0'
缓存框架:在 saf 项目中,并未单独拆分成独立的项目
下载:
compile 'com.safframework:saf-cache:1.1.1'
消息队列框架:在 saf 项目中,并未单独拆分成独立的项目
下载:
compile 'com.safframework:saf-queue:1.0.1'
权限框架:在 saf 项目中,并未单独拆分成独立的项目
下载:
compile 'com.safframework:saf-permission:1.1.0'
RxLifecycle:在 saf 项目中,并未单独拆分成独立的项目
下载:
compile 'com.safframework:saf-rxlifecycle:1.1.2'
ChangeLog
Author
联系方式
Blog: http://www.jianshu.com/users/4f2c483c12d8/
Github: https://github.com/fengzhizi715
E-mail:fengzhizi715@126.com
Wechat:fengzhizi715
Contributors
- frankswu 完善老版本的 Inject 框架和 Router 框架
- ymcao 增加 AsyncTask 替换 android 系统的 AsyncTask
- aaron 修改 build.gradle,支持多个 module 合并到一个 jar 包。
TODO
- Utils 全部用 Kotlin 重写
- 优化 Router 框架
License
Copyright (C) 2012 - present, Tony Shen.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.