# 快速上手

# 瞭解組織檔案的方式

對於照片、圖片、下載的檔案等使用者檔案,Android 系統建議將它們存放至 共享資料夾

全部共享資料夾
  • Alarms(鬧鈴)
  • Pictures(圖片)
  • DCIM(相機)
  • Documents(文件)
  • Download(下載)
  • Movies(影片)
  • Music(音樂)
  • Notifications(通知音)
  • Ringtones(鈴聲)

以最常用的 Pictures 為例,通行的做法是,每個應用程式各自在其中建立自己的資料夾。比如 Twitter 儲存圖片至 Pictures/Twitter

我們的建議是,按照上面的方式組織各個應用程式儲存的檔案。

# 清理已有檔案(首次使用)

如果你受到如同下面的例子一樣的問題的困擾,如果你不確定其中是否有重要檔案,我們建議你採取如下步驟。

例子:儲存空間中有大量未知的資料夾
例子
  1. 建立一個新的資料夾並將所有除了 標準資料夾 〔1〕以外的資料夾都移動進來
  2. 在該資料夾中建立一個名為 .nomedia 的檔案以避免其中的媒體檔案還可以被掃描
  3. 做好所有設定並找出其中重要的檔案後,刪除該資料夾

〔1〕 標準資料夾:Android Alarms DCIM Documents Download Movies Music Notifications Pictures Ringtones

# 如何正確設定隔離

在啟用隔離後,你需要檢查 可訪問的資料夾匯出被隔離的檔案 選項。

# 可訪問的資料夾

啟用隔離後,應用程式可以讀取及寫入的資料夾需要你來設定。它分為兩個部分。

  • 共享資料夾

    大部分時候需要設定的選項。比如,如果你希望應用程式可以使用你的照片,你就需要選擇 DCIM

    注意,我們只推薦將有限的資料夾設定為可訪問,否則隔離將沒有意義。

  • 其他應用程式的資料夾

    少數情況才需要使用的選項,具體請參閱下文

    對新手我們的建議是在 匯入線上規則 中選擇自己需要的部分,如果仍有問題再嘗試自己編寫規則。

# 匯出被隔離的檔案

如果應用程式儲存重要的檔案到 可訪問的資料夾 以外的資料夾,那些檔案就是被隔離的。你需要使用這個功能來匯出這些檔案。

對新手我們的建議是在 匯入線上規則 中選擇自己需要的部分,如果仍有問題再嘗試自己編寫規則。

注意,我們只推薦匯出使用者檔案(由使用者發起的儲存檔案操作,如儲存圖片、下載檔案等操作),匯出應用程式的私有資料檔案是沒有必要且違反使用隔離的目的。

例子

WeChat 儲存圖片至 tencent/MicroMsg/WeChat。需要建立一個從 tencent/MicroMsg/WeChatPictures/WeChat 的規則。

# 使用增強模式

增強模式是一個非常重要的組成部分,許多問題在使用增強模式的情況下才可以解決。

我們建議,當你確認一切正常後就開始嘗試增強模式(在應用程式內可以看到如何使用增強模式)。

# 如何解決涉及多個應用程式的問題

注意,這種問題只會出現在使用舊式做法的劣質應用程式上。

首先你需要了解為什麼會產生問題。

當啟用隔離後,被隔離的應用程式可見的儲存空間產生變化。

比如應用程式 com.example 嘗試儲存 1.txt 到 test/1.txt,實際上檔案會被儲存到 Android/data/com.example/sdcard/test/1.txt。但應用程序自身認爲文件位於 test/1.txt,因此應用程式如果直接傳遞路徑 test/1.txt 給其他應用程式(這種做法在 Android 4.4 後就應該被拋棄),因為此處根本沒有檔案存在,其他應用程式顯然無法在 test/1.txt 找到檔案。

要解決這樣的問題,首先你可以啟用“增強模式”中的“修復程式間互動”,這會解決使用 Android 系統標準的開啟檔案方式的問題。

如果仍有問題,你就需要拿起“武器”——“檔案監視”(需要增強模式)。通過“檔案監視”功能,你可以知道應用程式嘗試訪問了何處的檔案,通常只需要在 可訪問的資料夾 - 其他應用程式的資料夾 中建立相應的規則即可解決問題。

例子

QQInput 有傳送圖片到 QQ 的功能,啟用隔離後該功能無法工作。在“檔案監視”中你可以看到 QQ 和 QQInput 都在使用 Tencent/QQInput/Exp/Temp。需要建立一個共享 QQInput 的 Tencent/QQInput/Exp/Temp 到 QQ 的規則。

* 開發者個人並不使用 QQInput,例子只是根據其他使用者提供的規則編寫。

# 涉及 Xposed 模組

一些 Xposed 模組直接建立檔案來儲存配置。你需要了解,為 Xposed 模組啟用隔離實際只是為修改配置的介面啟用了隔離,Xposed 模組實際會在其注入的應用程式中執行。

例子

一個名為 MDWeChat 的修改 WeChat 的模組會建立 mdwechat 資料夾用於儲存設定。在為 MDWeChat 啟用隔離後,mdwechat 被保存於 MDWeChat 的隔離儲存空間。而 WeChat 的隔離儲存空間中並不包含 mdwechat 資料夾,因此結果一定是“模組失效”。需要建立一個共享 MDWeChat 的 mdwechat 資料夾至 WeChat 的規則。

* 開發者個人並不使用 Xposed,例子只是根據其他使用者提供的規則編寫。