android sd卡存储使用实例

目录

申请权限:

sdcard路径替代:

视频目录

写文件示例:


申请权限:

XML 复制代码
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />

    <application
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:requestLegacyExternalStorage="true"

sdcard路径替代:

/storage/emulated/0

相当于 /sdcard,二者指向目录相同

视频目录

Environment.DIRECTORY_MOVIES 是 Android 系统为了帮助组织媒体文件而设立的一种标准目录类型。当你调用 getExternalFilesDir(Environment.DIRECTORY_MOVIES) 方法时,系统会返回一个指向应用专用的,用于存储电影和其他类似媒体文件的文件夹的 File 对象。

写文件示例:

java 复制代码
    String path = "/storage/emulated/0/Android/data/com.codec.cameraframetest/files/DCIM/" + log_file ;
                        File dir = new File(Environment.getExternalStorageDirectory(), "aaaa");
                        if (!dir.exists()) {
                            dir.mkdir();
                        }

                        // 在 'aaa' 目录下创建 'log.txt' 文件
                        File logFile = new File(path);
                        if (!logFile.exists()) {
                            logFile.createNewFile();
                        }

                        FileOutputStream fileOutputStream = new FileOutputStream(logFile, true);
                        OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream, "UTF-8");

                        outputStreamWriter.write(index+" test\n");
                        outputStreamWriter.flush();
                        outputStreamWriter.close();

如果保存在其他目录,会检索加入图库,生成缩略图导致保存视频慢吗

如果你将视频文件保存在其他目录,特别是在公共目录(如 Environment.DIRECTORY_DCIMEnvironment.DIRECTORY_PICTURES),那么这些文件可能会被媒体扫描器扫描并添加到设备的媒体库中。这可能会导致生成缩略图和其他元数据,这可能会消耗一些时间和系统资源。

然而,这种影响通常不会导致保存视频文件明显变慢。媒体扫描器通常在文件被写入磁盘后异步运行,不会阻塞写入操作。然而,如果你的应用连续写入大量的视频文件,那么媒体扫描器可能会消耗大量的CPU和I/O资源,这可能会影响设备的总体性能。

如果你不希望你的视频文件被添加到媒体库,或者你希望避免媒体扫描器的开销,你可以考虑在你的视频文件名后面添加".nomedia"后缀,或者在你的目录中创建一个名为".nomedia"的文件。这将告诉媒体扫描器忽略这个文件或目录。

请注意,从Android 10(API级别29)开始,应用默认无法直接访问设备的整个外部存储空间。如果你的应用需要将文件保存在公共目录,你可能需要使用存储访问框架(Storage Access Framework)或者媒体存储API。

相关推荐
老哥不老1 小时前
MySQL安装教程
android·mysql·adb
xcLeigh2 小时前
html实现好看的多种风格手风琴折叠菜单效果合集(附源码)
android·java·html
图王大胜3 小时前
Android SystemUI组件(07)锁屏KeyguardViewMediator分析
android·framework·systemui·锁屏
InsightAndroid3 小时前
Android通知服务及相关概念
android
aqi005 小时前
FFmpeg开发笔记(五十四)使用EasyPusher实现移动端的RTSP直播
android·ffmpeg·音视频·直播·流媒体
Leoysq5 小时前
Unity实现原始的发射子弹效果
android
起司锅仔5 小时前
ActivityManagerService Activity的启动流程(2)
android·安卓
猿小蔡6 小时前
Android Bitmap 和Drawable的区别
android
峥嵘life6 小时前
Android14 手机蓝牙配对后阻塞问题解决
android·智能手机
猿小蔡6 小时前
Android混淆不要怕--一文搞定
android