Android 开发如何选择轮子(转)
一个项目的开发,我们不可能一切从0做起,如果真是这样,那同样要哭瞎。因此,善于借用已经做好的 “车轮” 非常重要,如:
- 网络访问框架:OKHttp、retrofit、android-async-http、volley
- 图片加载框架:Android-Universal-Image-Loader、Glide、Fresco、Picasso
- 缓存框架:DiskLruCache、 Robospice
- Json解析框架:Gson、Fastjson、Jackson
- 事件总线:EventBus、Otto
- ORM框架:GreenDAO、Litepal
- 还有其他各种各样开源的自定义控件、动画等。除了以上提到的开源框架,也包括一些不开源的SDK
- 数据统计:友盟统计,百度统计…
- 奔溃搜集:腾讯bugly、bugtags…
- 云存储:七牛…
- 即使通讯:环信、融云、阿里百川…
- 推送:小米推送、腾讯推送、百度推送…
- 安全加固:360加固宝、爱加密…
一般情况下,我在选择是否引入一些开源框架主要基于以下几个因素:
- 借助搜索引擎,如果网上有一大波资料,说明使用的人多,出了问题好找解决方案;当然,如果普遍出现差评,就可以直接Pass掉了
- 看框架的作者或团队,如 JakeWharton大神、Facebook团队等。大神和大公司出品的框架质量相对较高,可保证后续的维护和bug修复,不容易烂尾;
- 关注开源项目的 commit密度,issue的提交、回复、关闭数量,watch数,start数,fork数等。像那种个基本不怎么提交代码、提issue又不怎么回复和修复的项目,最好就pass掉;
针对不开源SDK的选择,也主要基于以下几点去考虑:
- 借助搜索引擎,查明口碑;
- 很多第三方SDK的官网首页都会告诉你,多少应用已经接入了此SDK,如果你看到有不少知名应用在上面,那这个SDK可以考虑尝试一下了。诸如,友盟官网:
- 查看SDK使用文档、它们的开发者社区、联系客服。好的SDK,使用文档肯定会详细指引你。出了问题,上开发者社区提问,他们的开发工程师也会社区上回答。实在不行只能联系客服,如果客服的态度都让你不爽,那就可以考虑换别家的SDK了。
Android 开发如何选择轮子(转)的更多相关文章
- Fedora15下安装Android开发环境
Fedora15下安装Android开发环境需要以下步骤: 完整步骤. 1. 安装正确版本的JDK. 2. 安装Eclipse. 3. 安装ADT. 4. 安装Android SDK. 5. 安 ...
- IntelliJ IDEA —— Android开发的另一个选择
IntelliJ IDEA —— Android开发的另一个选择 很早就听过Eclipse的大名,但在我初学Java的时候,一位前辈推荐的IDE却是IntelliJ IDEA.因为之前用过JetBra ...
- Android开发用过的十大框架
http://blog.csdn.net/u011200604/article/details/51695096 本文系多方综合与转载整合,意在Android开发中能够知道和使用一些好用的第三方支持, ...
- [转]Android开发最佳实践
——欢迎转载,请注明出处 http://blog.csdn.net/asce1885 ,未经本人同意请勿用于商业用途,谢谢—— 原文链接:https://github.com/futurice/and ...
- 【转】Android开发规范
转自:https://github.com/Blankj/AndroidStandardDevelop 摘要 1 前言 2 AS 规范 3 命名规范 4 代码样式规范 5 资源文件规范 6 版本统一规 ...
- 【转】Android 开发规范(完结版)
摘要 1 前言 2 AS 规范 3 命名规范 4 代码样式规范 5 资源文件规范 6 版本统一规范 7 第三方库规范 8 注释规范 9 测试规范 10 其他的一些规范 1 前言 为了有利于项目维护.增 ...
- [Android实例] 最全的Android开发资源整理--进阶必备
本帖最后由 一切随枫 于 2014-6-9 12:08 编辑 原文链接: http://stormzhang.github.io/android/2014/06/05/android-awesome- ...
- [转]Android开发要看的网站(不断更新中)
Android网址或Blog Android官网 身为Android开发者不知道这个网站就太说不过去了,上面有你任何你需要的东西 Android Developers Blog Android官网博客 ...
- Android 开发最佳实践
原文地址:https://github.com/futurice/android-best-practices/blob/master/translations/Chinese/README.cn.m ...
随机推荐
- 多线程迭代之——LINQ to TaskQuery
平时经常会迭代集合,如果数据多的话会很耗时. 例子: , , }; list.ForEach(a => DoSomething(a)); void DoSomething(int a) { // ...
- Python实现冒泡排序
array = [1,2,3,6,5,4] for i in range(len(array)): for j in range(i): if array[j] > array[j + 1]: ...
- DOM和DHTML等,复习总结
DOM(Document Object Model),文件对象模型.HTML(HyperText Markup Language),超文本标记语言.HTML的超类:Node->Document: ...
- 浅析Java.lang.Runtime类
一.概述 Runtime类封装了运行时的环境.每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接. 一般不能实例化一个Runtime对象, ...
- ajax动态添加的li不能绑定click事件
单纯的给li标签添加click事件,是不会执行的. 经过试验 <ul id="searchedUser"><li>搜索结果</li></u ...
- Linux 指令大全
作为一个小前端,以前有我们的运维大神在的时候,要给服务器做什么配置的时候就找他(那时幸福到哭),如今他走了,公司也没招人(想把这个钱省下来,让我发现了,毕竟我能当小运维用,虽然很这方面很渣渣,哈哈,偷 ...
- 关于sass的安装
关于sass的安装真是费了九牛二虎之力,这么说一点都不夸张,好了我就不多浪费口水了,直接进入正题 1.首先要安装ruby,这个大家可以去度娘上查询,很好安装的,相信大家的智慧与实力都是可以安装成功的 ...
- AfxBeginThread中使用updatedata出错
原因:MFC对象不支持多线程操作,不能供多个线程进程使用,所以尽量不要在线程里面更新界面. 解决办法: 1.将工程改为release 2.使用控件来SetWindowText 3.在线程里面发送消息 ...
- 动态规划(DP)
一.基本概念 动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移.一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划. 二.基本思想与策略 基本 ...
- My first python script for work
I write it yesterday to watch the NE process(rcpfd,cfgd) automatically, then i will write a window t ...