天天看點

内部存儲器與外部存儲器的差別

内部存儲器與外部存儲器的差別:

所有的安卓裝置都有外部存儲和内部存儲,這兩個名稱來源于安卓的早期裝置,那個時候的裝置内部存儲确實是固定的,而外部存儲确實是可以像U盤一樣移動的。但是在後來的裝置中,很多中高端機器都将自己的機身存儲擴充到了8G以上,他們将存儲在概念上分成了”内部internal” 和”外部external” 兩部分,但其實都在手機内部。是以不管安卓手機是否有可移動的sdcard,他們總是有外部存儲和内部存儲。最關鍵的是,我們都是通過相同的api來通路可移動的sdcard或者手機自帶的存儲(外部存儲)。

  • Android系統能夠直接把檔案存在裝置的内部存儲内。
  • 預設情況下,儲存在内部存儲内的檔案是應用程式私有的,其他應用程式(或使用者)是無法通路的。
  • 當使用者解除安裝此應用程式時,内部存儲的資料會一并清除。
  • Shared Preferences和SQLite資料庫都是存儲在内部存儲空間上的。内部存儲一般用Context來擷取和操作。
  • 内部存儲一般儲存在“/data/data”目錄下
    • 使用sdcard存儲的資料,不限制隻有本應用通路,任何可以有通路Sdcard權限的應用均可以通路,而Sdcard相對于裝置的内部存儲空間而言,會大很多,是以一般比較大的資料,均會存放在外部存儲中。
    • 要向外部存儲器寫入資料,你必須在清單檔案中申請WRITE_EXTERNAL_STORAGE權限
    • 外部存儲中的檔案是可以被使用者或者其他應用程式修改的,有兩種類型的檔案(或者目錄):
      • .公共檔案Public files:檔案是可以被自由通路,且檔案的資料對其他應用或者使用者來說都是由意義的,當應用被解除安裝之後,其解除安裝前建立的檔案仍然保留。比如camera應用,生成的照片大家都能通路,而且camera不在了,照片仍然在。
      • 私有檔案Private files:其實由于是外部存儲的原因即是是這種類型的檔案也能被其他程式通路,隻不過一個應用私有的檔案對其他應用其實是沒有通路價值的(惡意程式除外)。外部存儲上,應用私有檔案的價值在于解除安裝之後,這些檔案也會被删除。類似于内部存儲。
    • 外部存儲一般儲存在“/mnt/sdcard/Android/data/”下。

繼續閱讀