儲存位置 內部儲存 外部儲存 SharePreference
1、概述
app在開發的時候經常會遇到要儲存一些文字,圖片,或者是網路獲取回來的更新包。這個時候就需要開闢它的儲存區域
2、儲存介紹
Android 的5中儲存方式:
許可權:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
SharedPreference 簡單操作訪問:
//預設SharePreference
mPreferences = PreferenceManager.getDefaultSharedPreferences(this);
mEditor = mPreferences.edit(); // edit 編輯完 commit 結束
mEditor.putString(prefix + mImageName, mImageDateString);// 更新時間
mEditor.commit();
//指定SharePreference
SharedPreferences settings = getSharedPreferences(PREFS_NAME,0);SharedPreferences.Editor editor = settings.edit(); editor.putBoolean("silentMode", mSilentMode);// Commit the edits! editor.commit();
SharedPreferences mySharedPreferences= getSharedPreferences("test", Activity.MODE_PRIVATE);
Ps: 注意下每次put的時候都要重新拿下edit()然後commit() 以下程式碼是錯誤的,不是同一個edit
錯誤的:
正確的:
3、儲存位置
這裡著重介紹幾種:
a) 儲存在app的私有目錄下,及在/data/data/包名下 (要root了才能看到)
dir = mContext.getDir("dir_name", Context.MODE_PRIVATE);
b) 儲存在sd卡公用目錄 (如果解除安裝該app 無法解除安裝該資料夾)
//普通的外部儲存器(應該先判斷是否擁有外部儲存器 External storage)
String pathString = Environment.getExternalStorageDirectory() + "/" +filename;
公有目錄:
Environment.getExternalStoragePublicDirectory
c) 儲存在sd卡的私有目錄,及在sdk卡開闢一個/Android/data/包名 (如果解除安裝該app 自動解除安裝該資料夾)
//使用app 在sd卡上的私有目錄 (應該先判斷是否擁有外部儲存器 External storage)
String pathString = context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS) + "/" +filename;
d) 判斷是否存在外部 External storage
摘自官網
/* Checks if external storage is available for read and write */publicboolean isExternalStorageWritable(){String state =Environment.getExternalStorageState();if(Environment.MEDIA_MOUNTED.equals(state)){returntrue;}returnfalse;}/* Checks if external storage is available to at least read */publicboolean isExternalStorageReadable(){String state =Environment.getExternalStorageState();if(Environment.MEDIA_MOUNTED.equals(state)||Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)){returntrue;}returnfalse;}
ps:app中get到的路徑列表
mContext.getDir("demoDir", Context.MODE_PRIVATE)
= /data/data/com.myapp_package/app_demoDir
mContext.getCacheDir()
= /data/data/com.myapp_package/cache
mContext.getFilesDir()
= /data/data/com.myapp_package/files
mContext.getObbDir()
= /storage/emulated/0/Android/obb/com.myapp_package
mContext.getExternalCacheDir()
= /storage/emulated/0/Android/data/com.myapp_package/cache
mContext.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS)
= /storage/emulated/0/Android/data/com.myapp_package/files/Download
Environment.getRootDirectory()
= /system
Environment.getDataDirectory()
= /data
Environment.getExternalStorageDirectory()
= /storage/emulated/0
相關推薦
儲存位置 內部儲存 外部儲存 SharePreference
1、概述 app在開發的時候經常會遇到要儲存一些文字,圖片,或者是網路獲取回來的更新包。這個時候就需要開闢它的儲存區域 2、儲存介紹 Android 的5中儲存方式: 許可權: <uses-permission android:name="androi
Android內部和外部儲存解析
安卓手機的儲存分為 2 部分,內部儲存 ( Internal ) 和外部儲存 ( External ) 內部儲存指的是系統儲存
Android如何程式設計設定APP安裝位置(外部儲存或內部儲存)?
Beginning with API Level 8, you can allow your application to be installed on the external storage (for example, the device's SD card).
Atitit 儲存方法大總結 目錄 1. 儲存方式分類 2 1.1. 按照資料分類為 結構化 半結構化 非結構化 2 1.2. 按照內外部可分類 內部儲存和外部儲存持久化 2 1.3. 按照本地遠
Atitit 儲存方法大總結 目錄 1. 儲存方式分類 2 1.1. 按照資料分類為 結構化 半結構化 非結構化 2 1.2. 按照內外部可分類 內部儲存和外部儲存持久化 2 1.3. 按照本地遠端分類 分散式儲存等 2 1.4. 臨時性cach
Android 外部儲存,內部儲存路徑
import android.content.Context; import android.os.Environment; import android.util.Log; public class DirectoryUtils { private static final String
Android 本地儲存之外部儲存/內部儲存路徑獲取大全
//:/system String rootDir = Environment.getRootDirectory().toString(); System.out.println("Environment.getRootDirectory()=:" +
android獲取手機內部儲存空間和外部儲存空間
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
Android五種資料儲存方式之檔案儲存 內部儲存 外部儲存 檔案讀取儲存操作封裝
檔案儲存 前言 檔案儲存 記憶體 內部儲存 外部儲存 內部儲存操作 API 讀寫操作 外部儲存操作 公共目錄 私有目錄
關於變數作用域(內部、外部)及儲存型別(auto、static、register)的總結
可見性就是在在什麼地方可以呼叫,能呼叫的地方就是可見,而存在性,就是在什麼地方什麼時候初始化,然後使用完後在什麼地方什麼時候釋放,存在性一般是在執行時的生命週期內起作用的,這個題目裡除了static其他都是在函式結束時自動釋放了。 一、變數的&n
Android Environment.getExternalStorageDirectory() 獲取的是內部儲存還是外部儲存?
這幾天在做Android應用的遠端更新功能,將下載的更新包放在移動裝置上指定的目錄。用的是 Environment.getExternalStorageDirectory() 這個方法,然後在獲取的目錄中新建一個hkapp資料夾,用來存放下載的apk檔案。 那麼,這個hk
Android外部儲存/內部儲存路徑獲取大全
String publicDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).toString(); (adsbygoogle = window.ads
內部儲存與外部儲存的區別
內部儲存: 內部儲存不是記憶體,而是一個位於系統中很特殊的一個位置。放入內部儲存中的資料一般都只能被你的應用訪問到,且一個應用所建立的所有檔案都在應用包名相同的目錄下,即/data/data/pack
Android內部儲存和外部儲存以及快取清理和記憶體清理!
android內部的儲存結構和路徑獲取方法:清除本地資料和快取:計算快取和記憶體資料的大小:計算快取大小以及刪除的方法:這文章裡面的檔案刪除方法有一些問題:沒有迴圈是資料夾的刪除方法;另外:File.list(); 獲取的是該資料夾下的所有子檔案的相對路徑;File.list
Android Studio——android中的檔案操作詳解以及內部儲存和外部儲存
原文連結:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2013/0923/1557.html 其實安卓檔案的操作和java在pc環境下的操作並無二致,之所以需要單獨講解是因為安卓系統提供了不同於
徹底理解android中的內部儲存與外部儲存
我們先來考慮這樣一個問題: 開啟手機設定,選擇應用管理,選擇任意一個App,然後你會看到兩個按鈕,一個是清除快取,另一個是清除資料,那麼當我們點選清除快取的時候清除的是哪裡的資料?當我們點選清除資料的時候又是清除的哪裡的資料?讀完本文相信你會有答案。 在android開發中
Android中記憶體、內部儲存及外部儲存的區別
我們在做專案的過程中,經常有新來的同學問我們手機是什麼配置的? 我們經常說3+32GB 或者3+64GB。這些數字又都是指的什麼?現在總結如下: 對於Android來說,我們把儲存主要分為三個部分:記憶體、內部儲存以及外部儲存。我們可以跟PC想比較來認識這三個部分。 (1
解析Android內部儲存、外部儲存的區別
1、背景 在開發過程中我們都會使用到手機的內部快取、外部快取。但有些開發者對這兩個儲存區域理解還夠透徹,以為手機內建的儲存卡(不可手機移除)就是內部儲存, 可插拔的SD卡就是外部儲存,其實這些理解都是有誤的。這個知識點本人也重複看過好幾次,但每次看完,過一段
android獲取外部儲存和內部儲存路徑
StorageManager sm = (StorageManager) activity.getSystemService(Context.STORAGE_SERVICE); // 獲取sdcard的路徑:外部儲存和內部儲存 String[] paths
淺談JAVA中字符串常量的儲存位置
數據 每一個 [] jit 返回 inf post 符號 boolean 在講述這些之前我們需要一些預備知識: Java的內存結構我們可以通過兩個方面去看待它。 一、從抽象的JVM的角度去看。相關定義請參考JVM規範:Chapter 2. The Structure o
java中資料的5種儲存位置(堆與棧)
任何語言所編寫的程式,其中的各型別的資料都需要一個儲存位置,Java中資料的儲存位置分為以下5種: 1.暫存器 最快的儲存區,位於處理器內部,但是數量極其有限。所以暫存器根據需求進行自動分配,無法直接人為控制。 2.棧記憶體 位於RAM當中,通過堆疊指標可以從處理器獲得直接支援。堆疊指標向下