从框架到完整项目搭建,实战项目《约个球》(5)-为我们自己的框架导入网络的开源框架

来源:互联网 发布:网络交易计积分信用卡 编辑:程序博客网 时间:2024/06/09 14:24

项目github地址:https://github.com/CameloeAnthony/DatingBall

有朋友问,初学者是否适合直接使用github上的开源框架,我简单回答下:合适。但推荐稳定、可商用、简约单纯的框架,理由很简单:便于学习。1. 初学者受困于经验,获取通用问题的最佳解决方式较难,借助已有的良好框架会做的更好。2. 尽量使用专注、精简的框架,这样便于垂直学习,干扰很少,也便于拆分、砍掉。3. 只有不断的阅读、学习良好的代码,才能提升自己代码质量。--------引用自知乎开发android app,你会用到哪些开源框架? 

为了极大程度的减轻我们开发的难度,以及学习优秀的开源框架,我们已经在本项目的框架中引用众多优秀的开源框架。

这里依次作介绍


1 引入的jar包:

1.1 android-support-v4.jar 

作用:Android Support v4 是最早(2011年4月份)实现的库。用在Android1.6 (API lever 4)或者更高版本之上。它包含了相对V4, V13大的多的功能。
例如:Fragment,NotificationCompat,LoadBroadcastManager,ViewPager,PageTabAtrip,Loader,FileProvider 等。

参考网址: http://developer.android.com/reference/android/support/v4/app/package-summary.html

1.2 gson-2.4.jar

作用:Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。

参看网址:https://github.com/google/gson 

1.3 nineoldandroids-2.4.0.jar

作用:自Android 3.0以上的版本,SDK新增了一个android.animation包,里面的类都是跟动画效果实现相关的,通过Honeycomb API,能够实现非常复杂的动画效果。但如果开发者想在3.0以下的版本中也能使用到这套API,那么Nine Old Androids就会是你最好的选择,该API和Honeycomb API完全一样,只是改变了你使用com.nineoldandroids.XXX的入口。

参考网址:http://nineoldandroids.com/

1.4 okhttp-2.7.0.jar

作用:Android为我们提供了两种HTTP交互的方式:HttpURLConnection 和 Apache HTTP Client,虽然两者都支持HTTPS,流的上传和下载,配置超时,IPv6和连接池,已足够满足我们各种HTTP请求的需求。但更高效的使用HTTP 可以让您的应用运行更快、更节省流量。而OkHttp库就是为此而生。
OkHttp是一个高效的HTTP库:
支持 SPDY ,共享同一个Socket来处理同一个服务器的所有请求
如果SPDY不可用,则通过连接池来减少请求延时 
无缝的支持GZIP来减少数据流量
缓存响应数据来减少重复的网络请求
会从很多常用的连接问题中自动恢复。如果您的服务器配置了多个IP地址,当第一个IP连接失败的时候,OkHttp会自动尝试下一个IP。OkHttp还处理了代理服务器问题和SSL握手失败问题。
使用 OkHttp 无需重写您程序中的网络代码。OkHttp实现了几乎和java.net.HttpURLConnection一样的API。如果您用了 Apache HttpClient,则OkHttp也提供了一个对应的okhttp-apache 模块。

参考网址:https://github.com/square/okhttp

1.5 universal-image-loader-1.9.4-with-sources.jar

作用:多线程下载图片,图片可以来源于网络,文件系统,项目文件夹assets中以及drawable中等;

支持随意的配置ImageLoader,例如线程池,图片下载器,内存缓存策略,硬盘缓存策略,图片显示选项以及其他的一些配置;
支持图片的内存缓存,文件系统缓存或者SD卡缓存;
支持图片下载过程的监听;
根据控件(ImageView)的大小对Bitmap进行裁剪,减少Bitmap占用过多的内存;
较好的控制图片的加载过程,例如暂停图片加载,重新开始加载图片,一般使用在ListView,GridView中,滑动过程中暂停加载图片,停止滑动的时候去加载图片;
提供在较慢的网络下对图片进行加载;

参考网址:https://github.com/nostra13/Android-Universal-Image-Loader

1.6  xutils.jar

作用:xUtils 包含了很多实用的android工具。
xUtils 支持大文件上传,更全面的http请求协议支持(11种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响...
xUitls 最低兼容android 4.0 (api level 14), (源码最低兼容至2.3.3, 可以自己修改最低兼容设置).
xUtils3变化较多所以建立了新的项目不在旧版(github.com/wyouflf/xUtils)上继续维护, 相对于旧版本:
HTTP实现替换HttpClient为UrlConnection, 自动解析回调泛型, 更安全的断点续传策略.
支持标准的Cookie策略, 区分domain, path...
事件和数据库注解去除不常用的功能, 提高性能.
图片绑定支持gif, webp; 支持圆角, 圆形, 方形等裁剪, 支持自动旋转...

参考网址:https://github.com/wyouflf/xUtils3

1.7 xutils-3.2.6-sources.jar

作用:xutils的源代码文件

参考网址:略

2 引入第三方开源框架:

2.1 Android-PullToRefresh-library

作用:下拉刷新和上拉加载的开源库

参考网址:https://github.com/chrisbanes/Android-PullToRefresh

2.2 PagerSlidingTabStrip

作用:类似网易新闻客户端的导航栏

参考网址:https://github.com/astuetz/PagerSlidingTabStrip

2.3 SlidingMenu

作用:侧滑菜单
参考网址:https://github.com/jfeinstein10/SlidingMenu

2.4ViewPagerIndicator

作用:图片或者文字指示器

https://github.com/JakeWharton/ViewPagerIndicator
2.5 Volley

作用:Volley可是说是把AsyncHttpClient和Universal-Image-Loader的优点集于了一身,既可以像AsyncHttpClient一样非常简单地进行HTTP通信,也可以像Universal-Image-Loader一样轻松加载网络上的图片。除了简单易用之外,Volley在性能方面也进行了大幅度的调整,它的设计目标就是非常适合去进行数据量不大,但通信频繁的网络操作,而对于大数据量的网络操作,比如说下载文件等,Volley的表现就会非常糟糕。

https://github.com/mcxiaoke/android-volley

好了。到这里已经介绍完了。我也将上面提到的所有jar包和开源框架集成到了我们自己的框架中。在后面的项目开发中,用起来就会方便很多。

项目github地址:https://github.com/CameloeAnthony/DatingBall

0 0
原创粉丝点击