標籤:

為什麼一部分 iOS 應用刪除重裝之後舊的數據還在?

比如我把暴風影音刪除後,再次從 App Store 下載。結果發現賬號還在緩存的電影也在。我手機上所有的 App 都是這樣。恢復完手機之後從 App Store 里再次下載,所有的 App 數據都在就跟恢復之前一模一樣,就連那些 App 擺放的位置都沒變,文件夾也回來了。


針對你衝下暴風影音後緩存還在的問題,這個是iCloud自動同步導致的。
iCloud對於開發者來說分兩部分,一部分是由開發者自主控制的同步空間,另外一部分是由用戶控制的Document文件夾同步。前者需要開發者在軟體中集成相關代碼才可開啟,後者則是由用戶在設置中勾選通過iCloud備份後自動開啟。
按照iOS 軟體開發規範,或者說對於大部分應用來說,開發者都會將一些用戶數據如:本地緩存資料庫、影音文件存放位置或緩存數據存放位置給定義到軟體的Documents文件夾中。所以在開啟了iCloud備份之後,這部分資料會被同步到iCloud上,然後在你再次下載此軟體的時候自動同步回你的iOS設備上。

至於題主提到的App排列回復原裝,這個是因為iCloud將系統設置中App擺放位置信息也給同步到了iCloud伺服器上,在你完成手機恢復,並選擇通過iCloud恢復設備時,這部分設置內容被優先載入,之後系統才會根據你的App列表前往App Store下載軟體,同時下載iCloud伺服器上的App的Documents文件夾數據。

關於iCloud所備份的軟體Documents內容管理,你可以通過『設置——iCloud——儲存與備份——管理儲存空間——此iPhone或iPad——備份選項』裡面查看備份內容的大小,或者管理是否備份App的Documents文件夾內容。


1. 下載App重新安裝之後數據還在 和 恢復之後數據還在,App順序沒變是兩回事。
2. 下載App重新安裝數據還在是iCloud的功勞,不過沒啟用iCloud的應用不可能出現這種情況;
3. 恢復之後數據還在是你之前備份過,是從之前的備份內容中還原回來的。


1. iCloud備份
2. 有可能iOS刪除app的時候不是完全刪除而是留在緩存里以備不時之需。(只是猜測)

對了,謝邀。


如果數據放到了keychains裡面,刪除app不會導致數據消失


程序本身和程序數據是分開儲存的。

就再剛才我用ITOOLS看了一下我的文件系統。在var/moblie文件夾下分別有兩個文件夾,一個是library另外一個是application,根據文件夾的命名我猜想前面一個文件夾是用來存儲應用程序數據的,後面一個則是應用程序本身。

然後我稍微查看了兩個文件夾裡面的文件內容:
在library下面我發現了名為bitesms的文件夾,這個程序已經被我刪除了起碼半年了,裡面還存放著其DB文件;同時我又回想到之前修改百度輸入法皮膚時按照論壇教程指引的文件夾是在var/mobile。以上結果肯定了我的猜測。

至於application文件裡面每個文件夾名稱都是以類似加密形式命名的,實在沒心情多看。


因為ios應用可以寫入一塊內存 keychains,這塊內存數據是不會因為app的刪除而消失的。
大部分應用不用你註冊就可以使用,等你刪除應用重新下載之後,他還是會記錄你的賬號密碼。


iCloud備份的數據。說實話iCloud不好用,多個設備的時候存儲照片會很亂。


想和大家討論的是,KeyChain存數據有大小限制嗎?


iOS的緩存機制是這樣的。
刪除app,重啟,再下載剛才那個app,看看數據還在嗎?
cydia的程序另當別論。


推薦閱讀:

為何 Apple 在 iCloud.com 上使用微軟雅黑作為了中文字體?

TAG:iOS應用 | iCloud |