> Android反射系列:
Android通过反射打造可以存储任何对象的万能SharedPreferences-- http://blog.csdn.net/nugongahou110/article/details/46913461
Android 通过反射让SQlite建表如此简单-- http://blog.csdn.net/nugongahou110/article/details/46926345
Android 通过反射随手可得的Application对象-- http://blog.csdn.net/nugongahou110/article/details/46928537
Android自己动手打造XML解析框架-- http://blog.csdn.net/nugongahou110/article/details/46963767
Android Json解析-- Google的Gson和阿里的FastJson。
> Android开发常用开源框架
首先是如何选择开源项目?建议优先选择github上比较活跃的开源项目,尽量避免从网页上零散的拷贝代码。选择开源项目的原则有下面这些:
- Stars, Issues, Pull Requests
- 文档和Demo,典型用户
- 弄清楚原理
- 结合实际业务场景
推荐Android开源项目汇总,基本上常见UI效果都能找到https://github.com/Trinea/android-open-project
下面我把常用的框架分为下面几类,分别推荐
UI框架和自定义控件
网络请求框架
图片缓存框架
数据存储框架
事件总线框架
插件化和热部署
1. UI框架和自定义控件
- View注入框架
Butter Knife专注于Android 系统View 的注入框架,结合Android Studio插件使用 - 下拉刷新和加载更多
Android-PullToRefresh,android-Ultra-Pull-to-Refresh,Android-PullToRefreshRecyclerView - 侧边栏菜单
推荐官方Design支持库自带的
SlidingMenu,通过拖动屏幕边缘滑出菜单,支持屏幕左右划出,支持菜单 Zoom、Scale、Slide Up 三种动画样式出现 - base-adapter-helper
对传统的BaseAdapter ViewHolder 模式的一个封装,主要功能就是简化书写 AbsListView 的 Adapter 的代码,如 ListView,GridView
MPAndroidChart图表库
2. 网络请求框架
目前推荐使用Volley + OKHTTP,
参考我们自己的脚手架项目,新安卓项目要求使用。
3. 图片缓存框架
推荐使用谷歌官方建议的Glide,备选Facebook的Freso
4. 数据存储框架
无特殊需求推荐使用DBFlow ORM框架。
5. 事件总线框架
推荐使用EventBus。
手机App项目根据需求决定是否用EventBus;安卓平板项目,主要基于Fragment实现UI,需要使用EventBus。
6. 插件化和热部署
这块我们只进行了一些实验,没有实际部署。
插件化推荐DroidPlugin
热部署推荐androidFix
-----------------------------------------------
> 网络请求:Volley框架现在已经不再升级,可以使用最新稳定版本OkHttp3.3
以前的Android项目网络框架是基于Volley和OKHttp2。现在由于Aliyun SDK升级和整合React Native模块的原因,它们现在都是用了OkHttp3,因此需要统一升级到最新稳定版本OkHttp3.3。
参考了网上的一些资料,主要是有下面几个问题:首先是'org.apache.http'在Android6.0版本已经去掉了,因此需要用'org.apache.http.legacy'代替下。
OkHttp3Stack是参考了下面的Gist代码实现的,评论里面说不支持https。但是我实际测试过是支持https和http2的。
https://gist.github.com/alashow/c96c09320899e4caa06b
另外一种方法是不再使用org.apache.http相关的类,参考http://blog.csdn.net/qq_28656671/article/details/50608239
最后提醒一下,Volley框架现在已经不再升级了,后面的新项目不建议使用了,推荐使用基于Retrofit和OkHttp3的请求框架,老项目升级成本有点高,就不折腾了。google已经默认okhttp为底层网络请求框架?