又刪了12個(gè)人
,節(jié)約了94M的空間赋除!【不要讓拉黑你的人占用你的空間账劲,您也試試吧戳护,復(fù)制我的消息,找到微信里的設(shè)置瀑焦,通用腌且,群發(fā)助手,全選榛瓮,復(fù)制粘貼消息發(fā)送就行铺董,誰的名字變色了,刪掉就行!】
已啦精续。
有朋友今天找我坝锰,說最近老是收到這條微信消息,被煩到不要不要的境地重付。
但是那么多人在發(fā)顷级,不知道是不是真的刪除幾個(gè)拉黑自己的人就能節(jié)省很大空間出來?只是想到自己收到類似信息時(shí)的反感心情确垫,又不敢輕易嘗試弓颈,所以搞得自己很糾結(jié)。
正好我曾經(jīng)做過類似的IM即時(shí)通訊工具删掀,為了有理有據(jù)翔冀,那么我就從微信客戶端的數(shù)據(jù)存儲角度來分析這個(gè)問題。
首先鑒于微信存儲的數(shù)據(jù)特征披泪,采用SQLite數(shù)據(jù)庫結(jié)合本地文件來存儲本地?cái)?shù)據(jù)纤子,數(shù)據(jù)庫為local.db,本地文件存儲在document目錄下的localfile文件夾中。
下面我們就來進(jìn)行詳細(xì)的數(shù)據(jù)庫表結(jié)構(gòu)分析款票。
1 msg表詳細(xì)信息
表名:msg 備注:消息數(shù)據(jù)存儲表
主鍵 | 字段名 | 數(shù)據(jù)類型 | 長度 | 可空 | 備注 |
---|---|---|---|---|---|
是 | 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控硼,對應(yīng)loginUser表的id |
注:每收發(fā)一條消息,均向該表中添加一條數(shù)據(jù)徽职,如果收發(fā)的是語音象颖、圖片佩厚、小視頻姆钉,則同時(shí)往localfile文件夾下存儲一個(gè)附件文件,消息的mediaPath項(xiàng)紀(jì)錄附件完整的路徑抄瓦。
2 contact表詳細(xì)信息
表名: contact 備注:聯(lián)系人信息存儲表
主鍵 | 字段名 | 數(shù)據(jù)類型 | 長度 | 可空 | 備注 |
---|---|---|---|---|---|
是 | id | string | 64 | 否 | 主鍵潮瓶,微信號 |
否 | Name | String | 64 | 否 | 名稱 |
否 | City | Stirng | 32 | 否 | 地區(qū) |
否 | HeadPic | String | 256 | 否 | 頭像鏈接 |
否 | Sex | Bool | 2 | 否 | 性別 |
否 | Signature | String | 256 | 是 | 個(gè)性簽名 |
否 | From | String | 64 | 否 | 來源 |
否 | Comments | String | 64 | 是 | 備注名 |
否 | PhoneNum1 | String | 11 | 是 | 備注,手機(jī)號碼1 |
否 | PhoneNum2 | String | 11 | 是 | 備注钙姊,手機(jī)號碼2 |
否 | PhoneNum3 | String | 11 | 是 | 備注毯辅,手機(jī)號碼3 |
否 | PhoneNum4 | String | 11 | 是 | 備注,手機(jī)號碼4 |
否 | PhoneNum5 | String | 11 | 是 | 備注煞额,手機(jī)號碼5 |
否 | TagId | Int | 64 | 是 | 標(biāo)簽id思恐,對應(yīng)tag表的主鍵,默認(rèn)無標(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描焰,對應(yīng)loginUser表的id |
3 chat表詳細(xì)信息
表名:chat 備注:聊天信息表
主鍵 | 字段名 | 數(shù)據(jù)類型 | 長度 | 可空 | 備注 |
---|---|---|---|---|---|
是 | id | int | 32 | 否 | 主鍵,會話id栅螟,群聊時(shí)為生成id荆秦,單聊則為對方id |
否 | isTop | Bool | 2 | 是 | 是否置頂篱竭,默認(rèn)不置頂 |
否 | Mute | Bool | 2 | 是 | 消息免打擾,默認(rèn)不開啟 |
否 | 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惑朦,對應(yīng)loginUser表的id |
4 group_member表詳細(xì)信息
表名:group_member 備注:群組成員表兽泄。
主鍵 | 字段名 | 數(shù)據(jù)類型 | 長度 | 可空 | 備注 |
---|---|---|---|---|---|
是 | ContactId | String | 64 | 否 | 聯(lián)合主鍵,contact表的主鍵 |
是 | ChatId | int | 32 | 否 | 聯(lián)合主鍵漾月,chat表主鍵 |
否 | GroupNickName | String | 32 | 是 | 用戶在群聊中的昵稱 |
5 tag 表詳細(xì)信息
表名:tag 備注:標(biāo)簽表
主鍵 | 字段名 | 數(shù)據(jù)類型 | 長度 | 可空 | 備注 |
---|---|---|---|---|---|
是 | id | int | 10 | 否 | 主鍵 |
否 | Name | String | 32 | 否 | Tag名稱 |
否 | loginUserId | Int | 32 | 否 | 當(dāng)前用戶id病梢,對應(yīng)loginUser表的id |
6 loginUser表詳細(xì)信息
表名: loginUser備注:登錄用戶信息表
主鍵 | 字段名 | 數(shù)據(jù)類型 | 長度 | 可空 | 備注 |
---|---|---|---|---|---|
是 | Account | String | 32 | 否 | 賬戶名,主鍵 |
否 | id | string | 64 | 否 | 微信號 |
否 | Name | String | 64 | 否 | 名稱 |
否 | City | Stirng | 32 | 否 | 地區(qū) |
否 | HeadPic | String | 256 | 否 | 頭像鏈接 |
否 | Sex | Bool | 2 | 否 | 性別 |
否 | Signature | String | 256 | 是 | 個(gè)性簽名 |
否 | From | String | 64 | 否 | 來源 |
否 | Comments | String | 64 | 是 | 備注名 |
表結(jié)構(gòu)分析到此結(jié)束梁肿。
怎么理解這個(gè)信息呢蜓陌,針對最后一張表loginUser表,我們可以理解為這就是一張excel的表格結(jié)構(gòu)定義吩蔑,這個(gè)表格包含了Account钮热、id、Name烛芬、City隧期、HeadPic、Sex赘娄、Signature仆潮、From、Comments這么多列遣臼。每次有不通的用戶登錄后性置,該表格中就多插入一條數(shù)據(jù)。(主鍵表示該列的數(shù)據(jù)唯一)
也就是說沒多一個(gè)聯(lián)系人揍堰,則contact表多一條數(shù)據(jù)鹏浅,都一條消息,則msg表多一條數(shù)據(jù)(語音屏歹、圖片隐砸、小視頻文件同時(shí)存入localfile文件夾中),多一個(gè)群組西采,則聊天表格多一條數(shù)據(jù)凰萨。
從上面分析可以看出,好友基本都是文本信息,占用空間微乎其微胖眷,而且好友數(shù)據(jù)相對固定(微信最多可加好友300人武通?)而真正數(shù)據(jù)膨脹的則是msg既聊天消息(微信對聊天條數(shù)并沒有限制,而且聊天中的圖片珊搀、表情冶忱、語音、視頻一般都是兆或者幾十兆的數(shù)據(jù)單位)境析。
所以囚枪,好友數(shù)和空間內(nèi)存沒有關(guān)系!
占用存儲空間的不是好友劳淆,而是和好友的聊天消息链沼!
(本文完)
ps:清理內(nèi)存的方法,設(shè)置--通用--清理儲存空間--查看微信儲存空間--選擇刪除
再ps:markdown插入表格的方法是在是坑~~~~