又刪了12個(gè)人 ,節(jié)約了94M的空間!——來(lái)讓做過(guò)IM應(yīng)用的人幫你分析

讓技術(shù)宅來(lái)辟謠

又刪了12個(gè)人
,節(jié)約了94M的空間!【不要讓拉黑你的人占用你的空間,您也試試吧,復(fù)制我的消息,找到微信里的設(shè)置,通用,群發(fā)助手,全選,復(fù)制粘貼消息發(fā)送就行,誰(shuí)的名字變色了,刪掉就行!】
已啦。

有朋友今天找我,說(shuō)最近老是收到這條微信消息,被煩到不要不要的境地。
但是那么多人在發(fā),不知道是不是真的刪除幾個(gè)拉黑自己的人就能節(jié)省很大空間出來(lái)?只是想到自己收到類似信息時(shí)的反感心情,又不敢輕易嘗試,所以搞得自己很糾結(jié)。

正好我曾經(jīng)做過(guò)類似的IM即時(shí)通訊工具,為了有理有據(jù),那么我就從微信客戶端的數(shù)據(jù)存儲(chǔ)角度來(lái)分析這個(gè)問(wèn)題。

首先鑒于微信存儲(chǔ)的數(shù)據(jù)特征,采用SQLite數(shù)據(jù)庫(kù)結(jié)合本地文件來(lái)存儲(chǔ)本地?cái)?shù)據(jù),數(shù)據(jù)庫(kù)為local.db,本地文件存儲(chǔ)在document目錄下的localfile文件夾中。

下面我們就來(lái)進(jìn)行詳細(xì)的數(shù)據(jù)庫(kù)表結(jié)構(gòu)分析。

1 msg表詳細(xì)信息

表名:msg 備注:消息數(shù)據(jù)存儲(chǔ)表

主鍵 字段名 數(shù)據(jù)類型 長(zhǎng)度 可空 備注
ID int 32 消息唯一id
m_chatId String 64 聊天id
m_strOppositeSideName String 64 發(fā)消息者名稱
m_strMessageBody String 256 消息內(nèi)容
m_isFromSelf Bool 2 是否是自己發(fā)的小
m_messageStatus Int 32 消息狀態(tài)
m_strTime String 32 消息時(shí)間戳
m_oppositeChaterId String 64 發(fā)送方id
m_contentType Int 32 內(nèi)容類型
mediaPath String 256 附件路徑
loginUserId Int 32 當(dāng)前用戶id,對(duì)應(yīng)loginUser表的id

注:每收發(fā)一條消息,均向該表中添加一條數(shù)據(jù),如果收發(fā)的是語(yǔ)音、圖片、小視頻,則同時(shí)往localfile文件夾下存儲(chǔ)一個(gè)附件文件,消息的mediaPath項(xiàng)紀(jì)錄附件完整的路徑。

2 contact表詳細(xì)信息

表名: contact 備注:聯(lián)系人信息存儲(chǔ)表

主鍵 字段名 數(shù)據(jù)類型 長(zhǎng)度 可空 備注
id string 64 主鍵,微信號(hào)
Name String 64 名稱
City Stirng 32 地區(qū)
HeadPic String 256 頭像鏈接
Sex Bool 2 性別
Signature String 256 個(gè)性簽名
From String 64 來(lái)源
Comments String 64 備注名
PhoneNum1 String 11 備注,手機(jī)號(hào)碼1
PhoneNum2 String 11 備注,手機(jī)號(hào)碼2
PhoneNum3 String 11 備注,手機(jī)號(hào)碼3
PhoneNum4 String 11 備注,手機(jī)號(hào)碼4
PhoneNum5 String 11 備注,手機(jī)號(hào)碼5
TagId Int 64 標(biāo)簽id,對(duì)應(yīng)tag表的主鍵,默認(rèn)無(wú)標(biāo)簽
DescString String 256 描述
DescPhoto String 64 描述圖片路徑
IsStar Bool 2 是否星標(biāo)好友,默認(rèn)不是
CanSeeMe Bool 2 可以看我朋友圈,默認(rèn)可看
SeeHis Bool 2 看他朋友圈,默認(rèn)可看
Black Bool 2 加入黑名單,默認(rèn)不加
loginUserId Int 32 當(dāng)前用戶id,對(duì)應(yīng)loginUser表的id

3 chat表詳細(xì)信息

表名:chat 備注:聊天信息表

主鍵 字段名 數(shù)據(jù)類型 長(zhǎng)度 可空 備注
id int 32 主鍵,會(huì)話id,群聊時(shí)為生成id,單聊則為對(duì)方id
isTop Bool 2 是否置頂,默認(rèn)不置頂
Mute Bool 2 消息免打擾,默認(rèn)不開(kāi)啟
Background String 64 聊天背景,默認(rèn)不使用
isGroup Bool 2 是否群聊
GroupName String 32 群聊名稱,默認(rèn)前三個(gè)人名,群聊有效
Code String 32 群二維碼,群聊有效
Notice String 256 群公告,群聊有效
NikeName String 32 我在本群的昵稱,默認(rèn)用微信昵稱
ShowNickName Bool 2 顯示他人在群里的昵稱
loginUserId Int 32 當(dāng)前用戶id,對(duì)應(yīng)loginUser表的id

4 group_member表詳細(xì)信息

表名:group_member 備注:群組成員表。

主鍵 字段名 數(shù)據(jù)類型 長(zhǎng)度 可空 備注
ContactId String 64 聯(lián)合主鍵,contact表的主鍵
ChatId int 32 聯(lián)合主鍵,chat表主鍵
GroupNickName String 32 用戶在群聊中的昵稱

5 tag 表詳細(xì)信息

表名:tag 備注:標(biāo)簽表

主鍵 字段名 數(shù)據(jù)類型 長(zhǎng)度 可空 備注
id int 10 主鍵
Name String 32 Tag名稱
loginUserId Int 32 當(dāng)前用戶id,對(duì)應(yīng)loginUser表的id

6 loginUser表詳細(xì)信息

表名: loginUser備注:登錄用戶信息表

主鍵 字段名 數(shù)據(jù)類型 長(zhǎng)度 可空 備注
Account String 32 賬戶名,主鍵
id string 64 微信號(hào)
Name String 64 名稱
City Stirng 32 地區(qū)
HeadPic String 256 頭像鏈接
Sex Bool 2 性別
Signature String 256 個(gè)性簽名
From String 64 來(lái)源
Comments String 64 備注名

表結(jié)構(gòu)分析到此結(jié)束。

怎么理解這個(gè)信息呢,針對(duì)最后一張表loginUser表,我們可以理解為這就是一張excel的表格結(jié)構(gòu)定義,這個(gè)表格包含了Account、id、Name、City、HeadPic、Sex、Signature、From、Comments這么多列。每次有不通的用戶登錄后,該表格中就多插入一條數(shù)據(jù)。(主鍵表示該列的數(shù)據(jù)唯一)

也就是說(shuō)沒(méi)多一個(gè)聯(lián)系人,則contact表多一條數(shù)據(jù),都一條消息,則msg表多一條數(shù)據(jù)(語(yǔ)音、圖片、小視頻文件同時(shí)存入localfile文件夾中),多一個(gè)群組,則聊天表格多一條數(shù)據(jù)。

從上面分析可以看出,好友基本都是文本信息,占用空間微乎其微,而且好友數(shù)據(jù)相對(duì)固定(微信最多可加好友300人?)而真正數(shù)據(jù)膨脹的則是msg既聊天消息(微信對(duì)聊天條數(shù)并沒(méi)有限制,而且聊天中的圖片、表情、語(yǔ)音、視頻一般都是兆或者幾十兆的數(shù)據(jù)單位)。

所以,好友數(shù)和空間內(nèi)存沒(méi)有關(guān)系!
占用存儲(chǔ)空間的不是好友,而是和好友的聊天消息!
本文完

ps:清理內(nèi)存的方法,設(shè)置--通用--清理儲(chǔ)存空間--查看微信儲(chǔ)存空間--選擇刪除
再ps:markdown插入表格的方法是在是坑~~~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容