安卓开发项目搭建项目的时候要思考的一些问题

1,应该考虑内存泄露的问题 http://www.liaohuqiu.net/cn/posts/leak-canary-read-me/
2.图片加载 


imageloader  https://github.com/nostra13/Android-Universal-Image-Loader 
1、多线程的图像加载(线程池的大小,HTTP选项纱、线程控件等);
2、能够很好的监听加载过程;
3、图片显示配置接口(动画,圆角可扩展);
4、内存和磁盘高速缓存;
5、扩展性强,研发人员只需要根据需求实现它提供的各种接口即可;


Picasso 
一行代码实现加载图片 建议轻量级应用的使用

Fresco
只有一点对内存控制非常好   降低了oom的可能性   

3.网络请求  
1---aSyncHttp   https://github.com/loopj/android-async-http  文档介绍:http://loopj.com/android-async-http/ 
可能是最能令人钟爱的网络请求框架,详细的使用文档,超简单的使用方式,但是对https协议支持不是很好
2---HttpRequest https://github.com/kevinsawicki/http-request
相对asynchttp来说httprequest是一种更简单的方式没有之一,一个请求可以包含在一句代码中   对于小项目来说是一个幸福的选择
3---okHttp    https://github.com/square/okhttp   
相比于loopj和HttpRequest,okhttp要更为强大,但是使用方式稍显复杂,但是有个好处是可以同chrome的开发工具来查看手机的网络访问情况
4---volley  https://github.com/smanikandan14/Volley-demo
①网络请求排序②网络请求优先级处理③缓存④多级别取消请求⑤和activity的生命周的联动(Activity结束时同时取消所有的网络请求)
5---Afinal  https://github.com/yangfuhai/afinal
(1)数据库模块:android中的orm框架,使用了线程池对sqlite进行操作
(2)注解模块:android中的ioc框架,完全注解方式就可以进行UI绑定和事件绑定。无需findViewById和setClickListener等
(3)网络模块:通过httpclient进行封装http数据请求,支持ajax方式加载,支持下载、上传文件功能
(4)图片缓存模块:通过FinalBitmap,imageview加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象
6---Xutils  https://github.com/wyouflf/xUtils
XUtils是目前git上比较活跃 功能比较完善的一个框架,是基于afinal开发的,比afinal稳定性提高了不少.
(1) 数据库模块:android中的orm框架,一行代码就可以进行增删改查;
            支持事务,默认关闭;
            可通过注解自定义表名,列名,外键,唯一性约束,NOT NULL约束,CHECK约束等(需要混淆的时候请注解表名和列名);
            支持绑定外键,保存实体时外键关联实体自动保存或更新;
            自动加载外键关联实体,支持延时加载;
            支持链式表达查询,更直观的查询语义,参考下面的介绍或sample中的例子。          
(2) 注解模块:android中的ioc框架,完全注解方式就可以进行UI,资源和事件绑定;
            新的事件绑定方式,使用混淆工具混淆后仍可正常工作;
            目前支持常用的20种事件绑定,参见ViewCommonEventListener类和包com.lidroid.xutils.view.annotation.event。
(3) 网络模块:支持同步,异步方式的请求;
            支持大文件上传,上传大文件不会oom;
            支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD,OPTIONS,TRACE,CONNECT请求;
            下载支持301/302重定向,支持设置是否根据Content-Disposition重命名下载的文件;
            返回文本内容的请求(默认只启用了GET请求)支持缓存,可设置默认过期时间和针对当前请求的过期时间。            
(4) 图片缓存模块:加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象;
            支持加载网络图片和本地图片;
            内存管理使用lru算法,更好的管理bitmap内存;
            可配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等...
7---ThinkAndroid https://github.com/white-cat/ThinkAndroid
(1)  MVC模块:实现视图与模型的分离。
(2)  ioc模块:android中的ioc模块,完全注解方式就可以进行UI绑定、res中的资源的读取、以及对象的初始化。 
(3)  数据库模块:android中的orm框架,使用了线程池对sqlite进行操作。  
(4)  http模块:通过httpclient进行封装http数据请求,支持异步及同步方式加载。
(5)  缓存模块:通过简单的配置及设计可以很好的实现缓存,对缓存可以随意的配置
(6)  图片缓存模块:imageview加载图片的时候无需考虑图片加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象。
(7)  配置器模块:可以对简易的实现配对配置的操作,目前配置文件可以支持Preference、Properties对配置进行存取。
(8)  日志打印模块:可以较快的轻易的是实现日志打印,支持日志打印的扩展,目前支持对sdcard写入本地打印、以及控制台打印
(9)  下载器模块:可以简单的实现多线程下载、后台下载、断点续传、对下载进行控制、如开始、暂停、删除等等。
(10) 网络状态检测模块:当网络状态改变时,对其进行检测
8---LoonAndroid https://github.com/gdpancheng/LoonAndroid
(1)  自动注入框架(只需要继承框架内的application既可)
(2)  图片加载框架(多重缓存,自动回收,最大限度保证内存的安全性)
(3)  网络请求模块(继承了基本上现在所有的http请求)
(4)  eventbus(集成一个开源的框架)
(5)  验证框架(集成开源框架)
(6)  json解析(支持解析成集合或者对象)
(7)  数据库(不知道是哪位写的 忘记了)
(8)  多线程断点下载(自动判断是否支持多线程,判断是否是重定向)
(9)  自动更新模块
(10) 一系列工具类

4.json 
gson Gson是目前功能最全的Json解析神器
fastJson  fastjson是高性能额解析工具能直接跑在jdk上,但是在解析复杂类型的bean上会出现一些问题
jackson jackson所依赖的jar包较少,简单易用并且性能也要相对高些,同时和fastjson一样对复杂的数据解析有些问题
在项目选型的时候可以使用Google的Gson和阿里巴巴的FastJson两种并行使用,如果只是功能要求,没有性能要求,可以使用google的Gson,
5.统计使用umeng统计
6.地图集成baidu 或者高德地图   包括定位服务
7.推送 jpush umeng xiaomi baidu ....
8.应用更新 umeng更新 或者自己检测更新

你可能感兴趣的:(安卓开发项目搭建项目的时候要思考的一些问题)