Android 常用的开源库


1、GSON

Gson是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库。可用于将Java对象转换成对应的JSON表示,也可以将JSON字符串转换成一个等效的Java对象。如果与API打交道的话,那么这将会是你经常需要的东西。我们主要使用JSON的原因就是,相较XML,轻量级的JSON要简单的多。Jar 百度下随便下载。。

// Serialize   
String userJSON = new Gson().toJson(user);  
  
// Deserialize  
User user = new Gson().fromJson(userJSON, User.class);  

2、EVENTBUS

地址:http://greenrobot.github.io/EventBus/
EventBus是用于简化应用中各个部件之间通信的一个库。比如从一个Activity发送消息到一个正在运行的服务,亦或是片段之间简单的互动。而下面使用的示例,就是如果网络连接丢失,该如何通知一个活动:
public class NetworkStateReceiver extends BroadcastReceiver {  
  
    // post event if there is no Internet connection  
    public void onReceive(Context context, Intent intent) {  
        super.onReceive(context, intent);  
        if(intent.getExtras()!=null) {  
            NetworkInfo ni=(NetworkInfo) intent.getExtras().get(ConnectivityManager.EXTRA_NETWORK_INFO);  
            if(ni!=null && ni.getState()==NetworkInfo.State.CONNECTED) {  
                // there is Internet connection  
            } else if(intent  
                .getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY,Boolean.FALSE)) {  
                // no Internet connection, send network state changed  
                EventBus.getDefault().post(new NetworkStateChanged(false));  
            }  
}  
  
// event  
public class NetworkStateChanged {  
  
    private mIsInternetConnected;  
  
    public NetworkStateChanged(boolean isInternetConnected) {  
        this.mIsInternetConnected = isInternetConnected;  
    }  
  
    public boolean isInternetConnected() {  
        return this.mIsInternetConnected;  
    }  
}  
  
public class HomeActivity extends Activity {  
  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
  
        EventBus.getDefault().register(this); // register EventBus  
    }  
  
    @Override  
    protected void onDestroy() {  
        super.onDestroy();  
        EventBus.getDefault().unregister(this); // unregister EventBus  
    }  
  
    // method that will be called when someone posts an event NetworkStateChanged  
    public void onEventMainThread(NetworkStateChanged event) {  
        if (!event.isInternetConnected()) {  
            Toast.makeText(this, "No Internet connection!", Toast.LENGTH_SHORT).show();  
        }  
    }  
  
}  

3、ACTIVEANDROID

地址:http://www.activeandroid.com/
ActiveAndroid算是一个轻量级的ORM(对象关系映射),让你无需编写一个单独的SQL语句,就可以保存和检索SQLite数据库记录。每个数据库记录都被包裹整齐地归为一类,如delete()和save()的方法。

4、UNIVERSAL IMAGE LOADER

地址:https://github.com/nostra13/Android-Universal-Image-Loader

UIL是是一个开源项目,其目的就是提供一个可重复使用的仪器为异步图像加载、缓存和显示。它的使用很简单:

[js]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. imageLoader.displayImage(imageUri, imageView);  

尽管Picasso拥有更好的API,但其缺乏自定义。而使用UIL构建器几乎可以配置所有(其中最重要的就是在抓取和缓存大型图片时,Picasso会失败)。

良好的开源库会让你的开发变得更简单更快速,而普遍流行的库通常测试良好且易用使用。在大多情况下,你可以很容易的将它们从Maven中导入到Android Studio项目里。将它们添加到相关性的build.gradle 文件。并且同步之后,在你的应用里将能够很好的实现它们。



5、butterknife

地址:http://jakewharton.github.io/butterknife/
作为一名Android开发,是不是经常厌烦了大量的findViewById以及setOnClickListener代码,而ButterKnife是一个专注于Android系统的View注入框架,让你从此从这些烦人臃肿的代码中解脱出来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值