頭條創(chuàng )作挑戰賽
起因是當關(guān)閉iCloud云盤(pán)之后,notability無(wú)法正常查看筆記,疑問(wèn)1:本地不是也會(huì )存儲嗎為什么關(guān)閉備份之后還打不開(kāi)了,一段摸索之后,重新打開(kāi)iCloud云盤(pán),軟件恢復正常,這不由得讓我好奇iCloud的同步機制是怎么樣的,基于所見(jiàn)情況,產(chǎn)生一下疑問(wèn)和推測。
出現情況1:notability本地占用緩存和iCloud中大小相近,都是五百多MB,不完全相同
出現情況2:當我在應用中關(guān)閉iCloud同步,會(huì )提示所有數據都已在iCloud保存,是否刪除ipad本地緩存,那我選擇保留,這時(shí)候內存似乎變成了倆個(gè)緩存相加,即1GB多,
推測1:當開(kāi)啟iCloud同步,本質(zhì)是保證在一個(gè)設備修改,在另一個(gè)設備也能接收,所以最簡(jiǎn)單的是完全復制,但是完全復制意味著(zhù)關(guān)閉同步,本地不會(huì )受影響,事實(shí)證明不是這樣的,若參考關(guān)閉關(guān)閉同步,倆個(gè)緩存相加,是否意味著(zhù)本地在開(kāi)啟iCloud同步時(shí)只會(huì )保存一部分數據,另一部分由iCloud保存,兩者不是完全鏡像,存在一定機制節約內存的同時(shí)確保能夠同步。
但是最簡(jiǎn)單的問(wèn)題,即如上面推測一樣,存部分真的可以同步嗎,由于沒(méi)有第二臺使用同一個(gè)apple id 的設備測試,此處無(wú)法驗證。
疑問(wèn)2:
當關(guān)閉iCloud同步時(shí),選擇了保存,注意!當時(shí)的提示是所有數據都已在iCloud保存,是否刪除ipad本地緩存,那么在經(jīng)過(guò)上述修改, 包括:1.對已有數據的修改,2.新增數據
系統會(huì )如何處理
推測2:
我更傾向于本地,云端之前是各存儲一部分,所以這里會(huì )進(jìn)行數據比對,已有沒(méi)有改變的不動(dòng),已有變化的之間新建一個(gè)變化前的備份
疑問(wèn)3:
當我先關(guān)閉iCloud同步,在對數據進(jìn)行修改,內存包括:1.對已有數據的修改,2.新增數據
現在開(kāi)啟同步,系統會(huì )如何處理。
推測3:
確定大核心,沒(méi)有在開(kāi)啟iCloud同步的時(shí)候修改,開(kāi)啟后iCloud存儲的東西不會(huì )變,即不會(huì )更新已有的數據,以及同步加上最新的數據,可以通過(guò)測試3進(jìn)行驗證
測試3:
確定測試前參數:
關(guān)閉iCloud同步,本地notability文稿與數據1.08GB, iCloud中文稿與數據592.4MB,
改變參數:
(1) 保持關(guān)閉iCloud同步狀態(tài),直接導入87.21MB pdf,以及在原有數據后面加上這個(gè)87.21MB pdf
(2) 打開(kāi)iCloud同步,查看內存,數據變化。
(3) 關(guān)閉iCloud同步,查看內存,數據變化。
測試結果:
1) Notability 文稿數據大小變成 1.36GB,136-108=28,這個(gè)數據很奇怪,于是我又導入一次87.21,結果是1.45,這次正確了,推測是在原有筆記上新增處理邏輯不同,相比直接導入,增加內存會(huì )多一點(diǎn)。但是在我把最后新增的刪除,內存不是變成1.38而是1.27???這樣看來(lái)(1.27-108)/2 又是對的,看來(lái)細小的差別不能成為判斷機制的標準,這里就不再重復測試,影響不大。
2) 先看本地notability文稿與數據 457.3MB iCloud中文稿與數據直接和之前本地同步了1.3G所以推測1錯誤,它就是會(huì )直接保持到完全一樣,這樣不難理解,畢竟初衷就是為了保持各個(gè)設備同步。
同時(shí)它可能判定差別太大,所以當我同步時(shí),他把所有的都復制一遍進(jìn)去(可以是因為我對已有數據進(jìn)行了修改)本地內存很小,我不知道這本地457MB到底是什么,但是這個(gè)1.3G,大概率是源加舊,包含大部分的數據冗雜。
這里新加一個(gè)測試項目,把兩個(gè)新增的測試項目刪除了,查看內存情況,以及關(guān)閉同步后情況。
刪除前:本地459.7MB,iCloud1.3G,刪除后:本地643.9MB,這是個(gè)大發(fā)現,由于沒(méi)有在回收站刪除,會(huì )把緩存儲存在本地以便恢復,此時(shí)iCloud 1.2G.
我又好奇,把回收站恢復會(huì )怎么樣,恢復后本地459.8,iCloud1.3G正常,沒(méi)有多余內存bug。
再正常刪除,把回收站也清除了,可以看到iCloud為1.2G,正確刪除內存,但是本地為459.7,說(shuō)明并沒(méi)有釋放內存,這部分數據完完全全儲存在iCloud?。。?!那么本地的459.7就是和創(chuàng )建筆記無(wú)關(guān)的東西,有理由推測關(guān)閉同步后,會(huì )把所有數據,即1.2G全部導入,最后內存來(lái)到1.7G嗎???
3) 最后一步了,關(guān)閉iCloud同步,同樣提示是否保留筆記副本,選擇保留
查看本地1.7G!!推斷完全正確,iCloud不變仍為1.2GB
至此驗證結束,總結一下
1. iCloud同步數據是儲存在云端的,本地直接不會(huì )儲存,所以關(guān)閉同步時(shí),必須選擇把數據保留在ipad上,否則需要重新利用iCloud導入
2. 若是關(guān)閉iCloud同步進(jìn)行修改,開(kāi)啟后,計算邏輯相對低級,會(huì )選擇直接復制一份過(guò)來(lái),同時(shí)刪除本地數據,更新最新的iCloud數據,達到一個(gè)最新版(這一切都建立在iCloud內存充足的情況下)
3. 最后,若關(guān)閉iCloud同步,選擇保留數據,會(huì )自動(dòng)把數據從iCloud返回本地。