博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2015 年度 Android 开发者必备的 5 个开源库
阅读量:7247 次
发布时间:2019-06-29

本文共 3526 字,大约阅读时间需要 11 分钟。

本文讲的是2015 年度 Android 开发者必备的 5 个开源库,

在2014年6月,我们发表了一篇关于的文章,我们一直在用,并且相信每个 Android 开发者都应该了解这些开源库。从那之后,Android 方面已经发生了很多变化,所以我们写了这篇文章,我们最喜欢的5个开源库的更新版。

下面是更新列表:

1. 

当涉及到实现 REST APIs 时,Retrofit 仍是我们的最爱。

他们的网站上写着: “Retrofit 将 REST API 转换为 Java 接口。”是的,还有其他解决方案,但是 Retrofit 已经被证明是在一个项目中管理 API 调用最优雅、最方便的解决方案。使用注解添加请求方法和相对地址使得代码干净简单。

通过注解,你可以轻松地添加请求体,操作 URL 或请求头并添加查询参数。

为方法添加返回类型会使该方法同步执行,然而添加Callback(回调)会使之异步执行,完成后回调 success 或 failure 方法。

public interface RetrofitInterface {    // 异步带回调    @GET("/api/user")    User getUser(@Query("user_id") int userId, Callback
callback); // 同步 @POST("/api/user/register") User registerUser(@Body User user);}// 例子RetrofitInterface retrofitInterface = new RestAdapter.Builder() .setEndpoint(API.API_URL).build().create(RetrofitInterface.class);// 获取 id 为 2048 的用户retrofitInterface.getUser(2048, new Callback
() { @Override public void success(User user, Response response) { } @Override public void failure(RetrofitError retrofitError) { }});

Retrofit 默认使用 ,所以不需要手动解析 JSON。当然其他的转换器也是支持的。

现在 Retrofit 2.0 正在活跃地开发着,仍然是 beta,但你可以从获取到。从 Retrofit 1.9 开始,很多的东西都被砍了,也有一些重大的变化比如使用新的调用接口取代回调。

2. 

如果你正准备在你的项目中存储任意复杂的数据,你应该使用 DBFlow。正如他们的 GitHub 上所说,这是“一个速度极快,功能强大,而且非常简单的 Android 数据库 ORM 库,为你编写数据库代码”。

一些简单的栗子:

// Query a Listnew Select().from(SomeTable.class).queryList();new Select().from(SomeTable.class).where(conditions).queryList();// Query Single Modelnew Select().from(SomeTable.class).querySingle();new Select().from(SomeTable.class).where(conditions).querySingle();// Query a Table List and Cursor Listnew Select().from(SomeTable.class).where(conditions).queryTableList();new Select().from(SomeTable.class).where(conditions).queryCursorList();// SELECT methodsnew Select().distinct().from(table).queryList();new Select().all().from(table).queryList();new Select().avg(SomeTable$Table.SALARY).from(SomeTable.class).queryList();new Select().method(SomeTable$Table.SALARY, "MAX").from(SomeTable.class).queryList();

DBFlow 是一个不错的 ORM,这将消除大量用于处理数据库的样板代码。虽然 Android 也有其他的 ORM 方案,但对我们来说 DBFlow 已被证明是最好的解决方案。

3. 

Glide 是一个用于加载图片的库。当前备选方案有  和 ;但是,以我来看,Glide 是当前的最佳选择。

下面是一个简单的例子,关于如何使用 Glide 从 URL 加载图片到 ImageView。

ImageView imageView = (ImageView) findViewById(R.id.my_image_view);Glide.with(this).load("http://goo.gl/gEgYUd").into(imageView);

4. 

一个用于将 Android 视图绑定到属性和方法的库(例如,绑定一个 view 的 OnClick 事件到一个方法)。较之前版本而言,基本功能没有变化,但可选项增加了。栗子:

class ExampleActivity extends Activity {  @Bind(R.id.title) TextView title;  @Bind(R.id.subtitle) TextView subtitle;  @Bind(R.id.footer) TextView footer;  @Override public void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.simple_activity);    ButterKnife.bind(this);    // TODO Use fields...  }}

5. 

自从我们迁移到 MVP 架构,我们就开始了广泛使用依赖注入。Dagger 2 是著名的依赖注入库 Dagger 的继承者,我们强烈推荐它。

一个主要的改进就是生成的注入代码不再依赖反射,这使得调试容易了许多。

Dagger 为您创建类的实例,并满足他们的依赖。这依赖于 javax.inject.Inject 注解,以确定哪些构造函数或字段应被视为依赖。以著名的咖啡机(CoffeeMaker)为例:

译者注:Dagger 和 Dagger 2 的官方文档里都是使用这个例子,所以著名…

class Thermosiphon implements Pump {  private final Heater heater;  @Inject  Thermosiphon(Heater heater) {    this.heater = heater;  }  ...}

直接注入到字段的栗子:

class CoffeeMaker {  @Inject Heater heater;  @Inject Pump pump;  ...}

通过 modules 和 @Proivides 注解提供依赖(Dependencies):

@Moduleclass DripCoffeeModule {  @Provides Heater provideHeater() {    return new ElectricHeater();  }  @Provides Pump providePump(Thermosiphon pump) {    return pump;  }}
原文发布时间为:2016年01月07日
本文来自云栖社区合作伙伴掘金,了解相关信息可以关注掘金网站。

转载地址:http://jwbbm.baihongyu.com/

你可能感兴趣的文章
web服务器负载均衡解决方案
查看>>
动态规划-矩阵链乘
查看>>
linux awk命令详解
查看>>
MySQL备份和还原系列二:cp冷备份 和 mysqldump
查看>>
如何在Linux python中使用tab补全
查看>>
网络设备配置与管理----调试Cisco Catalyst交换机
查看>>
Java中的随机类Random
查看>>
浅析计算机的原理(一)
查看>>
jmc、jcmd和jfr介绍
查看>>
利用LVM增加根分区大小
查看>>
kafka 文档 (一)
查看>>
zookeeper学习之zkclient事件监听<十>
查看>>
【笔记】如何做好一场技术演讲——观点烙刻
查看>>
Laravel学习一
查看>>
快速搭建discuz论坛系统
查看>>
java自定义实现数值的四舍五入
查看>>
解决windows中输入法图标丢失的方法
查看>>
我的友情链接
查看>>
TcpDump安装设置
查看>>
squid proxy server简单应用
查看>>