1. 程式人生 > >儲存位置 內部儲存 外部儲存 SharePreference

儲存位置 內部儲存 外部儲存 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當中,通過堆疊指標可以從處理器獲得直接支援。堆疊指標向下