ROM,RAM,Android存储目录,Java代码中对内存的使用,ART的运行位置

来源:互联网 发布:兰亭序 知乎 编辑:程序博客网 时间:2024/06/01 10:53

安卓手机,有两个内存:机身内存、运行内存。

机身内存: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()   : /dataEnvironment.getDownloadCacheDirectory().getPath()  : /cacheEnvironment.getExternalStorageDirectory().getPath(): /mnt/sdcardEnvironment.getRootDirectory().getPath()           :/systemContext.getCacheDir().getPath()                    : /data/data/com.zhd/cacheContext.getExternalCacheDir().getPath()            :/mnt/sdcard/Android/data/com.zhd/cacheContext.getFilesDir().getPath()                    :/data/data/com.zhd/filesContext.getObbDir().getPath()                      :/mnt/sdcard/Android/obb/com.zhdContext.getPackageName()                           : com.zhdContext.getPackageCodePath()                       :/data/app/com.zhd-1.apkContext.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。


如有理解不对,请指正。


0 0
原创粉丝点击