当前位置:操作系统 > 安卓/Android >>

android开发关于和使用本机内存,内置存储卡和外置存储卡大揭秘

android开发关于和使用本机内存,内置存储卡和外置存储卡
 
 
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
关于android存储器简介:
 
 
                 android开发常常需要涉及数据缓存,这就需要我们了解手机当前使用的内存状况,是否存在外置存储卡,如果有怎么办,没有是否使用内置存储卡。
 
 
 
 
 
首先手机本机存储器,有Rom,Ram。
 
 
 
   Rom  :在android中Rom相当于系统盘,当C盘用 ,很多时候要使用需要获取root权限。
 
              一般可以分为机身内存和内置存储(三星的多是叫:USB存储器);
 
             机身内存包括system、data和cache等分区目录,软件默认都是安装机身内存或者内置存储卡里的 。
 
            data(就是手机储存总量)+system(手机系统占用)
 
            
 
                具体看是什么手机;
 
 
 
   Ram:在相当于电脑的运行内存,运存  。不多做解释,就是随机运行时内存,断电数据全部消失。
 
 
 
        外置存储器有:手机存储器 (TF卡), 相当于D,E ,F 等硬盘。
 
 
 
 
 
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
 
 
 
 
 
android开发中读取手机存储器和外置存储器。
 
 
Android读取手机内存之机身内存
这个我反复试验过,可以弄入以及读取数据到data目录下,但是需要获取root权限,这个真有点纠结,难道要使用**软件的人都去root下?。嘿嘿,所以这里不推荐,这里就不粘贴代码了........
 
 
 
 
 
Android读取手机内存之内置存储器实例
 
下面给出一个小例子来说明如何Android读取手机内存里的文件,这在Android开发中是比较重要的一部分,如何要是掌握不好的话,我们就没法把数据库里保存的数据给读出来,也就是说我们我们每一次玩游戏的时候,我们的数据库都是最原始的数据,这样就会给我们带来很多的麻烦。如果出现这样的事情,那么你的应用就是非常烂的,代码如下:
 
 
[java] view plaincopy
public static InputStream readInternalFileInputStream(Context context,String fileName){      
    
    
    
/**    
* 读取手机内存文件    
*    
*/      
    
try{      
FileInputStream fis = context.openFileInput(fileName);      
    
return fis;      
}catch(Exception e){      
return null;      
}      
    
}      
public static String readInternalFile(Context context,String fileName){      
    
    
/**    
* 读取手机内存文件    
*    
*/      
    
try{      
byte[] buffer = new byte[512];      
int read =0;      
StringBuffer stringbuffer = new StringBuffer();      
FileInputStream fis = context.openFileInput(fileName);      
    
    
do{      
read = fis.read(buffer);      
if(read>0)      
stringbuffer.append(new String(buffer, 0, read, "utf-8"));      
    
}while(read!=-1);      
    
    
fis.close();      
return stringbuffer.toString();      
    
    
}catch(Exception e){      
return null;      
}      
    
}     
 
 
 
外置内存
android 读取sd卡中的图片
 
一 读取sd卡中的图片
     1 获取读取sd的权限
        在AndroidMainfest.xml文件中添加
 
  
 
[java] view plaincopy
        <!-- 在SDCard中创建与删除文件权限 -->  
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" ></uses-permission>  
<!-- 往SDCard写入数据权限 -->  
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" ></uses-permission>  
<uses-permission android:name="android.permission.RESTART_PACKAGES" ></uses-permission>  
 
 
 
 
    注意:在<application...></application>前添加
    2 找到sd卡的目录(以真机的情况说明)
 
 /**
      *图片文件路径
 *打印Environment.getExternalStorageDirectory()得到:"/mnt/sdcard",即找到了sd卡的根目录
      */
[java] view plaincopy
public String filePath=Environment.getExternalStorageDirectory()+"/client/tile/1_0_0.jpg";  
 
 
   3 根据路径获取图片    
[java] view plaincopy
File mfile=new File(path);  
if (mfile.exists()) {//若该文件存在  
Bitmap bm = BitmapFactory.decodeFile(path);  
return bm;  
}  
 
二 注意事项
    在读取sd卡中图片的过程中的一些可用判断
     1 Environment.getExternalStorageState()获取路径是否成功
       /*如获取成功,返回值为MEDIA_MOUNTED*/
 
 
[java] view plaincopy
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))  
 {  
  
      String filePath=Environment.getExternalStorageDirectory().getPath();  
 }  
 
 
 
 
   2 获取sd卡的权限成功
     /*fileName=Environment.getExternalStorageDirectory()+"/client" 是个文件夹目录*/
[java] view plaincopy
补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,