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。

相关推荐
ANYOUZHEN3 小时前
bugku shell
android
南宫码农6 小时前
我的电视 - Android原生电视直播软件 完整使用教程
android·开发语言·windows·电视盒子
道亦无名6 小时前
音频数据特征值提取 方法和步骤
android·音视频
Lancker6 小时前
定制侠 一个国产纯血鸿蒙APP的诞生过程
android·华为·智能手机·鸿蒙·国产操作系统·纯血鸿蒙·华为鸿蒙
2601_949809597 小时前
flutter_for_openharmony家庭相册app实战+通知设置实现
android·javascript·flutter
液态不合群8 小时前
【面试题】MySQL 中 count(*)、count(1) 和 count(字段名) 有什么区别?
android·数据库·mysql
雪球Snowball10 小时前
【Android关键流程】资源加载
android
2501_9159184110 小时前
常见 iOS 抓包工具的使用,从代理抓包、设备抓包到数据流抓包
android·ios·小程序·https·uni-app·iphone·webview
墨月白11 小时前
[QT]QProcess的相关使用
android·开发语言·qt
enbug12 小时前
编译安卓内核:以坚果R1、魔趣MK100(Android 10)系统为例
android·linux