我的编程空间,编程开发者的网络收藏夹
学习永远不晚

android中gzip数据压缩与网络框架解压缩怎么实现

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

android中gzip数据压缩与网络框架解压缩怎么实现

这篇“android中gzip数据压缩与网络框架解压缩怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“android中gzip数据压缩与网络框架解压缩怎么实现”文章吧。

    theme: smartblue

    gzip是一种常用的压缩算法,它是若干种文件压缩程序的简称,通常指GNU计划的实现,此处的gzip代表GNU zip。

    HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。大流量的WEB站点常常使用GZIP压缩技术来让用户感受更快的速度。

    开GZIP有什么好处?

    Gzip开启以后会将输出到用户浏览器的数据进行压缩的处理,这样就会减小通过网络传输的数据量,提高浏览的速度。

    Java中gzip压缩和解压实现

    字节流压缩:

            public static byte[] gZip(byte[] data) {        byte[] b = null;        try {            ByteArrayInputStream in = new ByteArrayInputStream(data);            ByteArrayOutputStream out = new ByteArrayOutputStream();            GZIPOutputStream gzip = new GZIPOutputStream(out);            byte[] buffer = new byte[4096];            int n = 0;            while((n = in.read(buffer, 0, buffer.length)) > 0){                gzip.write(buffer, 0, n);            }            gzip.close();            in.close();            b = out.toByteArray();            out.close();        } catch (Exception ex) {            ex.printStackTrace();        }        return b;    }

    字节流解压:

            public static byte[] unGZip(byte[] data){        // 创建一个新的输出流        ByteArrayOutputStream out = new ByteArrayOutputStream();        try {            ByteArrayInputStream in = new ByteArrayInputStream(data);            GZIPInputStream gzip = new GZIPInputStream(in);            byte[] buffer = new byte[4096];            int n = 0;            // 将解压后的数据写入输出流            while ((n = gzip.read(buffer)) >= 0) {                out.write(buffer, 0, n);            }            in.close();            gzip.close();            out.close();        } catch (Exception e) {            e.printStackTrace();        }        return out.toByteArray();    }

    网络框架解压缩(gzip)

    一、采用内存数据库保存记录。

    二、请求时采用重新开新线程方式,在子线程中请求网络请求。

    三、数据请求后,可通过EventBus来设置返回结果的参数和返回信息,若其它类需要获取状态时,需要自己注册监听,动态去获取返回值。

    使用场景:应用程序内各组件间、组件与后台线程间的通信。

    比如请求网络,等网络返回时通过Handler或Broadcast通知UI,两个Fragment之间需要通过Listener通信,这些需求都可以通过EventBus实现。

    使用步骤:

    \1. 添加依赖:implementation 'org.greenrobot:eventbus:3.0.0'\2. 注册:EventBus.getDefault().register(this);
    构造消息发送类(post调用的对象)
    public class Student {private String name;private int age;public Student(String name, int age) {this.name = name;this.age = age;}public void setName(String name) {this.name = name;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public int getAge() {return age;}}
    发布消息
    EventBus.getDefault().post(new Student("刘哈哈", 27));
    接收消息:可以有四种线程模型选择
    //接收事件@Subscribe(threadMode = ThreadMode.MAIN)public void studentEventBus(Student student){mShow.setText("姓名:"+student.getName()+" "+"年龄:"+student.getAge());}

    解注册(防止内存泄漏):EventBus.getDefault().unregister(this);

    网络请求成功后,需要注意文件流的大小,太大容易下载缓慢,解决缓慢问题

    JSON返回格式,尽量去KEY,将JSONOBJECT修改为JSONArray格式。

    对数据进行压缩,采用GZIP对数据进行压缩处理:网络请求时服务器对数据压缩,移动端请求到结果后,再进行解压。

    以上就是关于“android中gzip数据压缩与网络框架解压缩怎么实现”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    android中gzip数据压缩与网络框架解压缩怎么实现

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    android中gzip数据压缩与网络框架解压缩怎么实现

    这篇“android中gzip数据压缩与网络框架解压缩怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“android中
    2023-07-04

    android中gzip数据压缩与网络框架解压缩

    这篇文章主要为大家介绍了android中gzip数据压缩与网络框架解压缩实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-13

    怎么在java中利用压缩流实现压缩与解压

    本篇文章给大家分享的是有关怎么在java中利用压缩流实现压缩与解压,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程
    2023-06-14

    Redis怎么实现数据的压缩和解压缩

    Redis可以通过以下方式实现数据的压缩和解压缩:使用Redis的压缩功能:Redis可以通过配置选项来启用对数据的压缩功能。通过配置redis.conf文件中的rdbcompression选项为yes,可以启用RDB文件的压缩功能,从而减
    Redis怎么实现数据的压缩和解压缩
    2024-05-07

    Android GZip的使用-开发中网络请求的压缩实例详解

    Android GZip: gzip是GNUzip的缩写,它是一个GNU自由软件的文件压缩程序。HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。一般服务器中都安装有这个功能模块的,服务器端不需做改动。当浏览器支持gzi
    2022-06-06

    VB.NET中怎么实现数据库压缩

    VB.NET中怎么实现数据库压缩,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。当我们往数据库中添加数据,然后删除,如此反复,数据库就会变得很大,这样就需要对其进行压缩下面的
    2023-06-17

    Android中怎么实现图片压缩与上传功能

    Android中怎么实现图片压缩与上传功能,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。首先需要对图片进行压缩,这方面可以使用第三方的库,我在实际的开发中使用的
    2023-05-30

    Hive中怎么实现数据压缩和列式存储

    在Hive中,可以通过以下几种方式实现数据压缩和列式存储:使用压缩表属性:在创建表时,可以指定表的压缩格式,比如使用snappy、gzip等压缩算法来对表中的数据进行压缩,减小存储空间。CREATE TABLE table_name(..
    Hive中怎么实现数据压缩和列式存储
    2024-04-09

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录