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。

相关推荐
千里马学框架2 天前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台2 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
AFinalStone2 天前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
致远ccc2 天前
Google Play 上架前如何测试 App?多国家 Android 环境测试
android·app测试·googleplay·多国家应用测试
ttyyttemo2 天前
Kotlin 协程中的 Job 结构化并发与取消
android
sun0077002 天前
tbox 4g/5g切换,导致wan ip 改变,导致车机旧网络不可用。需要重启车机才行
android
其实防守也摸鱼2 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
AFinalStone2 天前
Android7 SystemUI 源码解析(四)NavigationBar 导航栏与 SystemBars
android·systemui
JMchen2 天前
属性动画原理与高级动画实现
android·kotlin·canvas
AFinalStone2 天前
Android7 SystemUI 源码解析(二)启动流程深度解析
android·systemui