Android基础知识常用框架的使用方法

本文介绍了Android开发中常用的开源库,包括图片处理框架Picasso、Glide等,网络库OkHttp3,JSON解析库GSON,数据库框架Litepal及视图绑定库ButterKnife。这些库能够显著提高开发效率和应用程序质量。
摘要由CSDN通过智能技术生成

 

  在开发中或多或少会用到开源库,用开源库的好出是,简化自己的代码,提升程序的稳定性(毕竟开源库已经经过很长时间的检验了)。下面就来总结一下android  开发中常用到的开源库

有关图片的框架:

(1)Picasso       (毕加索)

android端图片处理的神器 官网:http://square.github.io/picasso/

集成的方法  gradle  集成   implementation 'com.squareup.picasso:picasso:2.5.2'

具体的用法:

1)  Picasso.get().load(url).into(view); 可以继续加连缀  

2)Picasso.get()

 .load(url)

 .resize(50, 50)

 .centerCrop()

 .into(imageView)

3) Picasso.get().load(R.drawable.landing_screen).into(imageView1);   

    Picasso.get().load("file:///android_asset/DvpvklR.png").into(imageView2);

    Picasso.get().load(new File(...)).into(imageView3);

 

(2)Glide  

(Glide滑行的意思,可以看出这个库的主旨就在于让图片加载变的流畅)

跟Picsso有很大的类似  

集成的方法  gradle 集成   implementation 'com.github.bumptech.glide:glide:3.7.0'

基本的使用方法和Picsso很类似,但是Glide在加载gif图和缓存机制上还是明显优于Picsso的,Glide的方法要多于Picsso。

(3)circleimageview  (轻易实现图片的圆形化,)

集成的方法: gradle 集成   implementation  ‘de.hdodenhof:circleimageview:2.1.0’

基本的使用:

<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android" 

    xmlns:app="http://schemas.android.com/apk/res-auto" 

   android:id="@+id/activity_main" 

   android:layout_width="match_parent" 

   android:layout_height="match_parent" 

   android:gravity="center">  

   <de.hdodenhof.circleimageview.CircleImageView 

       android:id="@+id/circleImageView" 

       android:layout_width="150dp" 

       android:layout_height="150dp" 

       android:src="@mipmap/psb" 

       app:civ_border_color="@android:color/holo_red_dark" 

       app:civ_border_width="5dp" /> 

</RelativeLayout> 

 (4)banner 简单快速实现图片轮播

 

集成方法:gradle 集成: implementation 'com.youth.banner:banner:1.4.10'

基本的使用:

布局:

 

<com.youth.banner.Banner
    android:id="@+id/Lunbotu"
    android:layout_width="match_parent"
    android:layout_height="150dp"
    android:layout_marginTop="5dp"
    android:layout_marginRight="12dp"
    android:layout_marginLeft="12dp"
    />

 

后台代码:

 

private void setBanner() {
    //设置图片集合
    List<Integer> imgs = new ArrayList<>();
    imgs.add(R.drawable.abc);
    imgs.add(R.drawable.bcd);
    imgs.add(R.drawable.efg);
    List<String> titles = new ArrayList<>();
    titles.add("教育图片1");
    titles.add("教育图片2");
    titles.add("教育图片3");
    banner.setImages(imgs)
            .setBannerStyle( BannerConfig.CIRCLE_INDICATOR_TITLE)
            .setBannerTitles( titles )
            .setDelayTime(4000)
            .setBannerAnimation( Transformer.Tablet)
            .setImageLoader(new GlideImageLoader()).start();

}

 

 

有关网络的开源库

 

 

(1)okhttp3  

官网地址:http://square.github.io/okhttp/

为高效而生

集成方法 dradle 集成  implement   ‘ com.squareup.okhttp3:okhttp:3.2.0’

我们在一般的项目中应用的时候,编写一个网络类,用的时候调用该类的静态方法就可以了,

public class HttpUtil {

   public static  void  sendOKHttpRequest(String adress,

                                          okhttp3.Callback callback){

       OkHttpClient okHttpClient=new OkHttpClient();

       Request request=new Request.Builder()

                .url( adress )

                .build();

       okHttpClient.newCall( request ).enqueue( callback );

    }

}

传入url就可以请求到网络资源,

 HttpUtil.sendOKHttpRequest( "url", new okhttp3.Callback() {

           @Override

           public void onFailure(Call call, IOException e) {

           }

           @Override

           public void onResponse(Call call, Response response) throws IOException{ 

                StringresponseData=response.body().string()         

           }

       } );

 有关解析的

GSON    

gradle集成方式 : implement ‘com.google.code.gson:gson:2.7’

能将json字符串自动映射成一个对象,

基本的用法:

Gson gson =new Gson();

List<App> applist =gson.fromJson(jsonData,newTypeToken<List<App>>(){}.getType());

for (App app: applist){ 

}

有关数据库的

Litepal 

官网地址:https://github.com/LitePalFramework/LitePal#latest-downloads

LitePal是一款开源的Android数据库框架,采用对象关系映射(ORM)模式,将常用的数据库功能进行封装,可以不用写一行SQL语句就可以完成创建表、增删改查的操作。并且很轻量级,jar包不到100k,几乎零配置。

Gradle 集成 不再赘述,可自行搜索

ButterKnife的使用

1、强大的View绑定和Click事件处理功能,简化代码,提升开发效率

2、方便的处理Adapter里的ViewHolder绑定问题

3、运行时不会影响APP效率,使用配置方便

4、代码清晰,可读性强

基本的使用步骤

https://github.com/JakeWharton/butterknife

在gradle文件中加入如下代码

dependencies {
  implementation 'com.jakewharton:butterknife:9.0.0-rc1'
  annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-rc1'
}

该框架的好处在于采用注解的方式省去了一些findviewByid的重复操作

 @BindView(R2.id.button) //绑定button 控件  
    public Button button ; 

点击事件可以这样写

@OnClick(R2.id.button1 )    
   
 public void showToast(){  
     
   Toast.makeText(this, "is a click", Toast.LENGTH_SHORT).show(); 
 
    }

1、volley 项目地址 https://github.com/smanikandan14/Volley-demo (1) JSON,图像等的异步下载; (2) 网络请求的排序(scheduling) (3) 网络请求的优先级处理 (4) 缓存 (5) 多级别取消请求 (6) 和Activity和生命周期的联动(Activity结束时同时取消所有网络请求) 2、android-async-http 项目地址:https://github.com/loopj/android-async-http 文档介绍:http://loopj.com/android-async-http/ (1) 在匿名回调中处理请求结果 (2) 在UI线程外进行http请求 (3) 文件断点上传 (4) 智能重试 (5) 默认gzip压缩 (6) 支持解析成Json格式 (7) 可将Cookies持久化到SharedPreferences 3、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容器快速滑动时候出现的图片错位等现象。 FinalBitmap可以配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等。FinalBitmap的内存管理使用lru算法, 没有使用弱引用(android2.3以后google已经不建议使用弱引用,android2.3后强行回收软引用和弱引用,详情查看android官方文档), 更好的管理bitmap内存。FinalBitmap可以自定义下载器,用来扩展其他协议显示网络图片,比如ftp等。同时可以自定义bitmap显示器, 在imageview显示图片的时候播放动画等(默认是渐变动画显示)。 4、xUtils框架 项目地址:https://github.com/wyouflf/xUtils 主要有四大模块: (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内存; 可配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等... 5、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) 网络状态检测模块:当网络状态改变时,对其进行检 6、LoonAndroid 项目地址:https://github.com/gdpancheng/LoonAndroid 主要有以下模块: (1) 自动注入框架(只需要继承框架内的application既可) (2) 图片加载框架(多重缓存,自动回收,最大限度保证内存的安全性) (3) 网络请求模块(继承了基本上现在所有的http请求) (4) eventbus(集成一个开源的框架) (5) 验证框架(集成开源框架) (6) json解析(支持解析成集合或者对象) (7) 数据库(不知道是哪位写的 忘记了) (8) 多线程断点下载(自动判断是否支持多线程,判断是否是重定向) (9) 自动更新模块 (10) 一系列工具类
xUtils简介 xUtils 包含了很多实用的android工具 xUtils 最初源于Afinal框架 进行了大量重构 使得xUtils支持大文件上传 更全面的http请求协议支持 10种谓词 拥有更加灵活的ORM 更多的事件注解支持且不受混淆影响 xUitls最低兼容android 2 2 api level 8 目前xUtils主要有四大模块: DbUtils模块: android中的orm框架 一行代码就可以进行增删改查; 支持事务 默认关闭; 可通过注解自定义表名 列名 外键 唯一性约束 NOT NULL约束 CHECK约束等(需要混淆的时候请注解表名和列名); 支持绑定外键 保存实体时外键关联实体自动保存或更新; 自动加载外键关联实体 支持延时加载; 支持链式表达查询 更直观的查询语义 参考下面的介绍或sample中的例子 ViewUtils模块: android中的ioc框架 完全注解方式就可以进行UI 资源和事件绑定; 新的事件绑定方式 使用混淆工具混淆后仍可正常工作; 目前支持常用的20种事件绑定 参见ViewCommonEventListener类和包com lidroid xutils view annotation event HttpUtils模块: 支持同步 异步方式的请求; 支持大文件上传 上传大文件不会oom; 支持GET POST PUT MOVE COPY DELETE HEAD OPTIONS TRACE CONNECT请求; 下载支持301 302重定向 支持设置是否根据Content Disposition重命名下载的文件; 返回文本内容的请求 默认只启用了GET请求 支持缓存 可设置默认过期时间和针对当前请求的过期时间 BitmapUtils模块: 加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象; 支持加载网络图片和本地图片; 内存管理使用lru算法 更好的管理bitmap内存; 可配置线程加载线程数量 缓存大小 缓存路径 加载显示动画等 ">xUtils简介 xUtils 包含了很多实用的android工具 xUtils 最初源于Afinal框架 进行了大量重构 使得xUtils支持大文件上传 更全面的http请求协议支持 10种谓词 拥有更加灵活的ORM 更多的事件注解支持且不受混淆影响 xUitls最低兼 [更多]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值