欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android 存儲路徑選擇方法

 更新時(shí)間:2018年08月02日 09:53:41   作者:ZHU_文濤  
今天小編就為大家分享一篇Android 存儲路徑選擇方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

Android能用來存儲的地方有兩個(gè),一個(gè)是手機(jī)內(nèi)置的存儲空間,一個(gè)是外置的SD卡,內(nèi)置的存儲空間一般比較小,所以應(yīng)用的緩存建議存儲在外置的SD卡中。

在Android系統(tǒng)中如何獲得存儲的路徑呢?

 public static void getRootPath(Context context) {
  Log.d("ExternalDirectory->", Environment.getExternalStorageDirectory().getPath());

  Log.d("ExternalCacheDir->", context.getExternalCacheDir().getPath());

  Log.d("CacheDir->", context.getCacheDir().getPath());

  Log.d("FilesDir->", context.getFilesDir().getPath());
 }

以上對應(yīng)的輸出結(jié)果為

ExternalDirectory->: /storage/emulated/0 
ExternalCacheDir->: /storage/emulated/0/Android/data/zhuwentao.com.pathdemo/cache 
CacheDir->: /data/data/zhuwentao.com.pathdemo/cache 
FilesDir->: /data/data/zhuwentao.com.pathdemo/files

應(yīng)用的緩存建議存儲在通過getExternalCacheDir().getPath()獲取的路徑中,這里的zhuwentao.com.pathdemo會根據(jù)你的應(yīng)用程序包名不同會有差別,存在這個(gè)路徑,主要有以下幾個(gè)好處

一:該路徑是在SD卡中,所以不用擔(dān)心手機(jī)內(nèi)置存儲空間不足,只要SD卡夠大就行。

二:該路徑是Android系統(tǒng)默認(rèn)的應(yīng)用緩存路徑,對應(yīng)手機(jī)應(yīng)用設(shè)置里面應(yīng)用詳情的“清除緩存”和“清除數(shù)據(jù)”按鈕。

三:當(dāng)我們卸載應(yīng)用時(shí),該路徑下的數(shù)據(jù)也會被清空,這樣就避免了有些應(yīng)用卸載后還有殘留數(shù)據(jù)的問題。

如果需要保存用戶下載的數(shù)據(jù),就不建議存儲在getExternalCacheDir()中了,可以在Environment.getExternalStorageDirectory()下新建一個(gè)文件夾,用來存儲用戶下載的數(shù)據(jù)。

我們在選擇存儲路徑的時(shí)候,還要考慮到用戶的手機(jī)是否有SD卡,再進(jìn)行選擇,通過以下代碼判斷用戶是否有SD卡:

 /**
  * 獲取手機(jī)可存儲路徑
  * @param context 上下文
  * @return 手機(jī)可存儲路徑
  */
 public static String getRootPath(Context context) {
  // 是否有SD卡
  if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)
    || !Environment.isExternalStorageRemovable()) {
   return context.getExternalCacheDir().getPath(); // 有
  } else {
   return context.getCacheDir().getPath(); // 無
  }
 }

如果有SD卡或者SD卡不可被移除的時(shí)候則獲取SD卡下的路徑,沒有則獲取應(yīng)用程序緩存路徑。

有時(shí)候getExternalStorageDirectory()怎么也獲取不到外置SD卡,這是為何呢?

在Android4.0之前Environment.getExternalStorageDirectory()獲取到的是外置SD卡路徑,而在4.0之后由于很多手機(jī)的自帶內(nèi)存已經(jīng)很大了,不需要外置SD卡,所以Android就把內(nèi)置的內(nèi)存分一部分出來當(dāng)作SD卡使用了,導(dǎo)致不同版本的Android系統(tǒng)獲取到的SD卡路徑會存在差異。

需要注意的是,各個(gè)手機(jī)廠商的SD卡路徑也是會存在差異的,有些手機(jī)獲取到的路徑是“/mnt/sdcard/…”,而有的獲取的是“/storage/sdcard0/…”所以絕對不能寫死SD卡的路徑。

以上這篇Android 存儲路徑選擇方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android中可以作為Log開關(guān)的一些操作及安全性詳解

    Android中可以作為Log開關(guān)的一些操作及安全性詳解

    Android的調(diào)試好伙伴Log在調(diào)試時(shí)非常有用,基本可以看Log而無需單點(diǎn)調(diào)試,尤其對實(shí)時(shí)大數(shù)據(jù)量的設(shè)備調(diào)試尤其有效,下面這篇文章就來給大家詳細(xì)介紹關(guān)于Android中可以作為Log開關(guān)的一些操作及安全性的相關(guān)資料,需要的朋友可以參考下。
    2017-12-12
  • Android中SQLite 使用方法詳解

    Android中SQLite 使用方法詳解

    這篇文章主要介紹了Android中SQLite 使用方法詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Android 程序應(yīng)用的生命周期

    Android 程序應(yīng)用的生命周期

    本篇文章小編為大家介紹,Android 程序應(yīng)用的生命周期。需要的朋友參考下
    2013-04-04
  • Android 中使用 ViewPager實(shí)現(xiàn)屏幕頁面切換和頁面輪播效果

    Android 中使用 ViewPager實(shí)現(xiàn)屏幕頁面切換和頁面輪播效果

    ViewPager是谷歌官方給我們提供的一個(gè)兼容低版本安卓設(shè)備的軟件包,里面包囊了只有在安卓3.0以上可以使用的api。下面我們就展示下ViewPager可以實(shí)現(xiàn)的兩種簡單效果,感興趣的朋友一起看看吧
    2016-12-12
  • 淺談Android View滑動(dòng)沖突的解決方法

    淺談Android View滑動(dòng)沖突的解決方法

    本篇文章主要介紹了淺談Android View滑動(dòng)沖突的解決方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-02-02
  • Android開發(fā)之Activity管理工具類完整示例

    Android開發(fā)之Activity管理工具類完整示例

    這篇文章主要介紹了Android開發(fā)之Activity管理工具類,集合完整實(shí)例形式分析了Android操作Activity創(chuàng)建、添加、獲取、移除等相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • Android修改源碼解決Alertdialog觸摸對話框邊緣消失的問題

    Android修改源碼解決Alertdialog觸摸對話框邊緣消失的問題

    在開發(fā)的時(shí)候遇到一個(gè)問題,就是一觸摸對話框邊緣外部,對話框會自動(dòng)消失。這個(gè)問題很糾結(jié)啊,查找了一下發(fā)現(xiàn)從Android 4.0開始,AlertDialog有了變化,就是在觸摸對話框邊緣外部,對話框會自動(dòng)消失,查了源碼,找到解決辦法如下
    2013-11-11
  • Android app開發(fā)中Retrofit框架的初步上手使用

    Android app開發(fā)中Retrofit框架的初步上手使用

    這篇文章主要介紹了Android app開發(fā)中Retrofit框架的初步上手使用,Retrofit 2.0發(fā)布以來獲得了巨大的人氣增長,并且經(jīng)常被開發(fā)者們拿來與Volley比較,需要的朋友可以參考下
    2016-02-02
  • Android Broadcast原理分析之registerReceiver詳解

    Android Broadcast原理分析之registerReceiver詳解

    這篇文章主要介紹了Android Broadcast原理分析之registerReceiver詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Flutter路由管理插件fluro使用簡介

    Flutter路由管理插件fluro使用簡介

    這篇文章主要介紹了Flutter路由管理插件fluro使用簡介,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2021-11-11

最新評論