ROM,RAM,Android存儲目錄,Java代碼中對內存的使用,ART的運行位置

安卓手機,有兩個內存:機身內存、運行內存。

機身內存:ROM //相當於給電腦添加一塊硬盤。運行內存:RAM //相當於電腦裏的內存條。容量越高,響應速度越快,操作越流暢。手機買來就是固定不變的。


ROM機身內存包含:在手機內部的持久化存儲器中。android裏的文件存儲、SP、SQLit、網絡存儲、ContentProvider五種存儲方式都是在ROM中。

①內部存儲

②系統存儲

③系統緩存

①內部存儲:

//判斷手機是否插入外置SDCard,並且應用程序具有讀寫權限。

Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState());

要使用存儲功能,還要添加權限,在manifest.xml中:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

Environment.getExternalStorageDirectory().getAbsolutePath() + File.separatorChar//獲取SDCard的局對路徑 + "/"
Environment.getDownloadCacheDirectory().getAbsolutePath() + File.separatorChar//下載緩存目錄的內容 + "/"
Environment.getDataDirectory();//獲取手機內置存儲目錄


/**android 獲取系統默認路徑:*/
Environment.getDataDirectory().getPath()	   : /data
Environment.getDownloadCacheDirectory().getPath()  : /cache
Environment.getExternalStorageDirectory().getPath(): /mnt/sdcard
Environment.getRootDirectory().getPath()           :/system
Context.getCacheDir().getPath()                    : /data/data/com.zhd/cache
Context.getExternalCacheDir().getPath()            :/mnt/sdcard/Android/data/com.zhd/cache
Context.getFilesDir().getPath()                    :/data/data/com.zhd/files
Context.getObbDir().getPath()                      :/mnt/sdcard/Android/obb/com.zhd
Context.getPackageName()                           : com.zhd
Context.getPackageCodePath()                       :/data/app/com.zhd-1.apk
Context.getPackageResourcePath()                   :/data/app/com.zhd-1.apk



=========華麗分割線=========start

獲取內置、外置存儲空間目錄,以及空間大小。

http://blog.csdn.net/hudashi/article/details/7716653


不同的設備上,調用getExternalStorageDirectory()返回值卻不一樣。查詢了Android的文檔,才找到原因,

原來這個方法返回的是當前設備廠商所認爲的“外部存儲”,有可能返回外置的SD卡目錄(Micro SD Card),也可能返回內置的存儲目(eMMC)。

通過掃描系統文件遍歷"system/etc/vold.fstab” 來實現內置eMMC存儲的路徑

https://my.oschina.net/liucundong/blog/288183


涉及Android內置存儲路徑,外置存儲路徑

=========華麗分割線=========end


②系統存儲

如果不刷機,就一直存在的值。可以通過ContentProvider提供使用。

③系統緩存

見獲取cache路徑下方法。



RAM


斷電後,所有內容消失

相當於Java內存的使用,對象池,線程池,dalvik,art,堆棧緩存一類都是在RAM中。

關於一些內存的優化,就是指的RAM。


如有理解不對,請指正。


發佈了30 篇原創文章 · 獲贊 3 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章