<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
gzip是一種常用的壓縮演演算法,它是若干種檔案壓縮程式的簡稱,通常指GNU計劃的實現,此處的gzip代表GNU zip。
HTTP協定上的GZIP編碼是一種用來改進WEB應用程式效能的技術。大流量的WEB站點常常使用GZIP壓縮技術來讓使用者感受更快的速度。
Gzip開啟以後會將輸出到使用者瀏覽器的資料進行壓縮的處理,這樣就會減小通過網路傳輸的資料量,提高瀏覽的速度。
/** * 位元組流gzip壓縮 * @param data * @return */ 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; }
/** * gzip解壓 * @param data * @return */ 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(); }
一、採用記憶體資料庫儲存記錄。
二、請求時採用重新開新執行緒方式,在子執行緒中請求網路請求。
三、資料請求後,可通過EventBus來設定返回結果的引數和返回資訊,若其它類需要獲取狀態時,需要自己註冊監聽,動態去獲取返回值。
使用場景:應用程式內各元件間、元件與後臺執行緒間的通訊。
比如請求網路,等網路返回時通過Handler或Broadcast通知UI,兩個Fragment之間需要通過Listener通訊,這些需求都可以通過EventBus實現。
1. 新增依賴:implementation 'org.greenrobot:eventbus:3.0.0' 2. 註冊:EventBus.getDefault().register(this);
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);
網路請求成功後,需要注意檔案流的大小,太大容易下載緩慢,解決緩慢問題
1、JSON返回格式,儘量去KEY,將JSONOBJECT修改為JSONArray格式。
2、對資料進行壓縮,採用GZIP對資料進行壓縮處理:網路請求時伺服器對資料壓縮,行動端請求到結果後,再進行解壓。
在網路傳輸中我們一般都會開啟GZIP壓縮,但是出於刨根問底的天性僅僅知道如何開啟就不能滿足俺的好奇心的,所以想著寫個demo測試一下比較常用的兩個資料壓縮方式,GZIP/ZIP壓縮。
GZIP是網站壓縮加速的一種技術,對於開啟後可以加快我們網站的開啟速度,原理是經過伺服器壓縮,使用者端瀏覽器快速解壓的原理,可以大大減少了網站的流量。
以上就是android中gzip資料壓縮與網路框架解壓縮的詳細內容,更多關於android gzip資料壓縮解壓縮的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45