持续更新中。。。
一、 日志输出框架:
Logger框架:极其优雅的Logger日志输出
项目地址:https://github.com/orhanobut/logger
使用步骤:
- 添加依赖:
implementation 'com.orhanobut:logger:2.2.0'
- 初始化Logger适配器(在项目中通常放在Application中初始化)
Logger.addLogAdapter(new AndroidLogAdapter()); //初始化Logger
- 直接使用
Logger.d("debug");
Logger.e("error");
Logger.i("information");
// 默认filter关键字为PRETTY_LOGGER
这里我们也可以自定义Logger的结构,代码如下:
Logger.addLogAdapter(new AndroidLogAdapter(formatStrategy)); //初始化Logger
public PrettyFormatStrategy formatStrategy = PrettyFormatStrategy.newBuilder()
.showThreadInfo(true) //(可选)是否显示线程信息。 默认值为true
.methodCount(1) // (可选)要显示的方法行数。 默认2
.methodOffset(5) // (可选)隐藏内部方法调用到偏移量。 默认5
.tag("doShare") //(可选)每个日志的全局标记。 默认PRETTY_LOGGER
.build();
注意事项:
1. 当在项目中多个Activity中需要使用到Logger时,可是直接在Application中对Logger进行初始化;
2. Logger打印路径可以在DiskLogAdapter类的构造函数,进入build()方法里;
二、json解析 / Java对象序列化框架
fastjson.android:这个是针对Android简化过的版本,原版本比较冗杂
项目地址:https://github.com/alibaba/fastjson
1.Java对象序列化步骤:
1.1.添加依赖
implementation 'com.alibaba:fastjson:1.1.71.android'
1.2.对对象进行序列化
//这里的group就是一个对象
String jsonString = JSON.toJSONString(group);
Logger.e(jsonString);
- json数据解析步骤:
对于json结构不是很了解的,可以点击这里:关于json数据类型和构成的介绍
下面我已下面这个在线API接口的返回数据为例进行json数据的解析:
{
"showapi_res_code": 0,
"showapi_res_error": "",
"showapi_res_body": {
"code": 100000,
"ret_code": 0,
"text": "我叫图灵机器人,聪明又可爱的图灵机器人"
}
}
我们需要提取出这个json序列中text的值
//这里的res字符串为从服务器上返回的json序列字符串
JSONObject resultData = JSON.parseObject(res);
String inString = resultData.getString("showapi_res_body");
JSONObject inData = JSON.parseObject(inString);
String result = inData.getString("text");
注意:1. json字符串转化成java对象字段不区分大小写;
三、数据库操作框架
greenDAO:轻量且高效
项目地址:http://greenrobot.org/greendao/
四、网络请求框架
- Volley框架:适合轻量级数据请求且请求频繁
项目地址:https://github.com/mcxiaoke/android-volley
使用步骤:点击这里
五、图片加载框架
2. Picasso:轻量级,几乎能够满足除壁纸类APP和图片社交类软件之外大部分应用需求
项目地址:https://github.com/square/picasso
依赖:implementation 'com.squareup.picasso:picasso:2.71828'
使用步骤:
ImageView iv_show = findViewById(R.id.iv_show);
String internetUrl = "https://a.36krcnd.com/photo/2014/5be404781da19da8778d6cbf0296acc1.jpg";
Picasso.get().load(internetUrl).into(iv_show);
六、其他常用功能框架:
- 数据与UI跨组件同步:即一个页面的某个数件发生变化后,另一个页面需要能实时捕获并进行UI更新;
实现方案:LiveData
使用方法及介绍:这里