当前位置:首页 » 存储配置 » 安卓主存储

安卓主存储

发布时间: 2023-02-15 07:58:56

1. 安卓6.0系统怎么默认存储器为内存卡

如果你的设备存储空间较低,这个功能会变得非常实用,特别是当你有一张大容量microSD卡时。可如果设备的存储空间已经不小了,那么在开启这个功能时最好先想清楚。
当你首次插入SD卡时,系统会询问你是将其当作外置还是内置存储。如果选择前者,那么它的工作方式和任意外置存储卡相同。你可以把应用数据、图片、音乐和视频放入其中以节约本地存储空间。
但如果你选择将其作为内置存储使用,那它就会被格式化并加密。因此,你在这样做之前应该先把存储卡当中原本的内容进行备份。格式化之后,它便会成为设备的主存储空间,至于原本的内置存储空间,它并不会和存储卡合并,而是会“消失不见”。当你进入存储和USB选项时,只会看到如今被用作主存储空间的 microSD卡。你依然可以将应用安装在原来的内存空间当中,但照片和视频不会被存储在那里。
虽然手机的内置存储空间读取速度要比外置MicroSD卡快得多,但是更大容量的手机价格也更加昂贵。所以如果没有特殊的需求,使用外置存储卡是解决手机空间问题的最佳途径。

2. 怎么更改安卓手机的默认存储

1、首先打开手机主界面的设置功能。

3. 安卓的存储机制

安卓的文件存储分为内部存储和外部存储,在安卓早期,手机内置存储很小,都是用于应用的私有存储空间,外部存储就是sdcard。往后发展,手机的内置存储越来越大,同时也出现了一些不支持sdcard的手机。如今安卓的外部存储已经不限于sdcard了。

内部存储

手机内部存储除了放置应用的私有和系统空间以外都为外部存储,内部存储空间有限。对于设备中每一个安装的 App,系统都会在内部存储空间的 data/data 目录下以应用包名为名字自动创建与之对应的文件夹。这个文件夹用于 App 中的 WebView 缓存页面信息,SharedPreferences 和 SQLiteDatabase 持久化应用相关数据等。

内部存储包含的文件

外部存储

在安卓文件的外部存储部分又分为了应用的私有目录和共有目录。

私有目录

外部的存储的私有目录地址可以根据context的相应方法得到。

公共目录

外部的存储的公有目录可以根据Environment的相应方法得到。

创建文件测试

通过file创建data文件

Test 1

Filefile = newFile("data");

try{

//新建文件

booleanbl=file.createNewFile();

//判断文件创建是否成功

Log.d("myTag","onCreate:"+bl);

}catch(IOExceptione){

e.printStackTrace();

}

运行结果

文件创建失败

同时文件夹中没有出现该文件

猜测创建失败问题来自文件地址的问题

Test 2

Filefile=null;

file=newFile(getCacheDir()+"data");

try{

//新建文件

booleanbl=file.createNewFile();

//判断文件创建是否成功

Log.d("myTag","onCreate:"+bl);

}catch(IOExceptione){

e.printStackTrace();

}

运行结果

文件创建成功,同时在/data/data/com.example.myapplication的地址处生成了名为cachedata的文件

文件名与预期不同

Test 3

Filefile=null;

file=newFile(getFilesDir()+"data");

try{

//新建文件

booleanbl=file.createNewFile();

//判断文件创建是否成功

Log.d("myTag","onCreate:"+bl);

}catch(IOExceptione){

e.printStackTrace();

}

运行结果

创建了一个files文件夹及一个filesdata文件

filesdata文件位置:/data/data/com.example.myapplication/filesdata

Test 4

Filefile=null;

file=newFile(getCodeCacheDir()+"data");

try{

//新建文件

booleanbl=file.createNewFile();

//判断文件创建是否成功

Log.d("myTag","onCreate:"+bl);

}catch(IOExceptione){

e.printStackTrace();

}

运行结果

code_cachedata地址:/data/data/com.example.myapplication/code_cachedata

Test 5

Filefile=null;

file=newFile(getCacheDir().getPath(),"data");

try{

//新建文件

booleanbl=file.createNewFile();

//判断文件创建是否成功

Log.d("myTag","onCreate:"+bl);

}catch(IOExceptione){

e.printStackTrace();

}

运行结果

成功在cache文件下创建data文件

总结使用file类创建文件时需要详细的地址,这里的地址可以通过context的getcacheDir()等方法得到

使用openFileinputStream创建

FileInputStreaminputStream=null;

try{

inputStream=openFileInput("data");

}catch(FileNotFoundExceptione){

e.printStackTrace();

}finally{

try{

inputStream.close();

}catch(IOExceptione){

e.printStackTrace();

}

新建了一个文件夹而没有新建文件

将输入流改为输出流后

FileOutputStreamoutputStream=null;

try{

outputStream=openFileOutput("data",MODE_PRIVATE);

}catch(FileNotFoundExceptione){

e.printStackTrace();

}finally{

try{

outputStream.close();

}catch(IOExceptione){

e.printStackTrace();

}

成功创建文件

使用openfilexxxxstream在只输入文件名进行创建文件时会默认在data/data/包名/files处创建文件,若不存在files文件则会新建一个files文件

File file = new File();

方法会读取该文件地址的文件,如果没有也不会报错。

file.createNewFile();

会向该地址创建一个文件,返回一个bool值以判断是否创建成功

openFileInputstream/openFileOutputstream都只能操作data/data/包名 处的文件

Tast 6

Filefile;

file=newFile(getExternalCacheDir(),"data");

try{

booleanbl=file.createNewFile();

Log.d("myTag","onCreate:"+bl);

}catch(IOExceptione){

e.printStackTrace();

}

需要读写公共空间操作有所区别

Filefile;

file=Environment.(Environment.DIRECTORY_DOWNLOADS);

FilemFile;

mFile=newFile(file,"data");

try{

booleanbl=mFile.createNewFile();

Log.d("myTag","onCreate:"+bl);

}catch(IOExceptione){

e.printStackTrace();

}

需要申明读写权限对于android6.0以上还需要动态申请权限

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

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

最后附上安卓所有文件存储的地址的获取方法

4. 安卓刷机包怎么设置外置卡为主存储器

安卓系统本身是不允许把应用程序直接装在外置卡里的,只能直接装到内置闪存里,再移走。
你想移到外置卡,是可以的。在手机的应用管理里,找到你要移的应用,点开管理页面,就能看到移到SD卡等类似的选项。
另外,也可以通过第三方软件,直接把应用装到外卡上。但必须把手机连到电脑上安装,比如豌豆荚、XX手机助手的PC版等。

但有要注意:
1、杀毒、闹钟、输入法、微信、QQ等必须随系统启动的应用,不要移,移了就会有问题。
2、不是所有的程序都能移走。有些不让移。
3、有些软件可以移数据。比如高德地图,在这个软件里面可以指定数据存在内卡还是外卡。

5. 安卓刷了cm11后主存储如何改为外置SD卡

这个主意就是拍照的存储吧,拍照的话可以到相机里找到存储位置改成SD卡就可以了,装的APP的话,如果支持到SD卡的话就有移动到SD卡的,如果不支持的话就只能是在内置存储上了,这样运行起来很快些,减少相应时间提高流畅度。

6. 安卓4.0怎么把手机内存调回主存储

在手机中找到设置选项->存储->有个外置SD卡模式(设置外置SD卡为只存储设备),你这这里就能改回去了。

7. 安卓内外部存储完全解析 -- 别再弄混了

安卓开发离不开手机存储,然而大部分人对于安卓开发中的存储概念存在误区,内部外部SD卡傻傻分不清?

以下引用来自对 官方文档 的理解

呵呵呵,先别说话,然而重点来了(敲黑板),按照官方的说法,

内部存储是指系统的存储空间,没有root是访问不到的呦亲,比如sharedPreferenced或者database都是保存在这里面的。

外部存储,又分为 2 部分:

然而现实中,常常有同事把手机那个32G,64G存储叫做内部存储= =,宝宝好累,人家明明是 ExternalStorage !!

希望本篇能让大家对内外部存储有一个正确鲜明的认识

getFilesDir()

路径如下

文档 云:若想操作该路径,你需要一个输出流:

就像这样:

注: this 是 context 对象

路径下会看到新文件哦

如果你还想读取的话, 文档 云:你需要一个输入流:

Log如下

getCacheDir()

文档 云:

路径如下:

特别的,还有getDir() :

getDir("- -!.txt", Context.MODE_PRIVATE).getAbsolutePath()

路径如下:

app_是系统自己加上去的

内部存储就是系统的存储,没有root你是看不到的,内部存储最大特点就是可以用Context对象调用各个获取路径的方法。比如: context.fileList()
那就是

下的文件遍历。

而 deleteFile("ABC") 就是

删除下名为 ABC 的文件
</br></br></br>

操作外部存储你首先需要以下权限

当你申请了write权限,那么read权限默认也就通过啦

再判断状态:

if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState))

Environment.getExternalStorageDirectory()

这个路径根据手机厂家不同会有些许变化

直接传入 Environment 中的常量获取相应的路径,如下:

Environment.(Environment.DIRECTORY_ALARMS));

或者

Environment.(Environment.DIRECTORY_PICTURES));

公有目录下,系统会区分不同类别 (例如铃声在系统设置中显示为铃声而不是音乐)

4.4以后访问该目录不再需要权限了

getExternalFilesDir(String type)

eg.
getExternalFilesDir(Environment.DIRECTORY_MUSIC)

特别的:ContextCompat下的

ContextCompat.getExternalFilesDirs(context,type)

返回一个File[],在4.4以后第一条数据默认外部主存储目录,第二条数据就是sd卡路径啦,但是注意4.4之前是没有第二条数据的哦

该目录下的特点是卸载程序后,该目录和其下所有文件均会被删除

getExternalCacheDir()

注意,使用该目录注意管理空间,你不能等系统帮你清理,而是自己清理不再需要的缓存

特别的:ContextCompat下的

ContextCompat.getExternalCacheDirs()

道理同上

发现特点了吗朋友,无论外部内部,只有路径中有包名,那么就是私有的,而且是随着程序的卸载而被删除的, 有包名的路径均是Context中的方法,而公有的路径均是Environment调用的

这个货真真是要了老命,一般的方法根部不好使,结合网上有的方法加上公司项目中的方法,总结如下:

百分百好用的获取SD卡路径方法:

最后集合 path 中的值就是SD卡根目录

虽然无视版本百分百好用,但是如果你的手机有SD卡槽却没插SD卡,该方法最后 path 返回的是 null ,也就是说该方法无法判断到底是没插SD卡还是根本不支持SD卡

其实还有一种方法

String path = System.getenv("SECONDARY_STORAGE");

该方法只要你手机支持SD卡,无论你插没插SD卡,均会返回SD卡路径,但是 6.0及以上该方法被移除

Environment中源码其实就是根据这个方法获取路径的

安卓官方文档大家一定要看,他就是我们开发者的权威呀,圣经呀!!

热点内容
mssqlpython 发布:2025-07-13 17:24:34 浏览:468
oraclesqloracle数据库 发布:2025-07-13 17:19:04 浏览:218
磊科如何修改密码 发布:2025-07-13 17:03:06 浏览:864
oracle数据库类型 发布:2025-07-13 17:01:39 浏览:200
linuxeclipse安装 发布:2025-07-13 16:44:56 浏览:176
内部服务器做什么用 发布:2025-07-13 16:43:54 浏览:118
toppython 发布:2025-07-13 16:34:05 浏览:906
安卓微信好友删除怎么找回来 发布:2025-07-13 16:28:10 浏览:125
华为微信自动存储 发布:2025-07-13 16:26:45 浏览:197
svn外网不能访问 发布:2025-07-13 16:26:33 浏览:724