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_DCIM 或 Environment.DIRECTORY_PICTURES),那么这些文件可能会被媒体扫描器扫描并添加到设备的媒体库中。这可能会导致生成缩略图和其他元数据,这可能会消耗一些时间和系统资源。

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

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

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

相关推荐
事圆则缓19 分钟前
volatile 使用场景全解析:它能保证什么,又解决不了什么
android
蒲公英内测分发1 小时前
智能投影仪参加海外展会,未上架的 Android 配套 App 怎么让客户限时试用?
android
ii_best1 小时前
按键精灵手机端开发安卓版实战:手写一个可最小化、可拖动的「运行日志悬浮窗」(附完整 源码 + 踩坑记录)
android·ios·智能手机·自动化·ai编程·按键精灵
终端安全笔记1 小时前
安卓做 MDM 管控,先分清三种注册入口
android·安全·智能手机
乌萨达3 小时前
手机模拟器安卓怎么用?电脑安装应用、玩手游与账号同步指南
android·智能手机·电脑·雷电模拟器
美狐美颜SDK开放平台3 小时前
Android与iOS直播APP美颜有什么区别?视频美颜SDK开发详解
android·ios·音视频·视频美颜sdk
春猿火5 小时前
某市-2026【网安·论道】misc-afterimage_note-wp
android
恋猫de小郭6 小时前
Shopify 回应为什么从 RN 回到原生,为什么不用 KMP ?
android·前端·flutter
fundroid8 小时前
Android AI 开发,真正拉开差距的是工程闭环
android·ai·大模型·agent
脚踏实地,坚持不懈!8 小时前
Android 面试题全解(结合 AOSP 源码 · 截至 Android 17 / API 37)
android