展开

关键词

Android:StatFs类 获取系统sdcard存储空间信息

在存储文件时,为了保证有充足的存储空间大小,通常需要知道系统内部或者sdcard的剩余存储空间大小,这里就需要用到StatFs类。 1. -- 在SDCard中创建与删除文件权限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" -- 往SDCard写入数据权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 接着我们在使用 获取外部设置的当前状态 一般指SDcard, android系统中对于外部设置的状态,比较常用的是 MEDIA_MOUNTED(SDcard存在且可以进行读写) MEDIA_MOUNTED_READ_ONLY (SDcard存在,只可以进行操作) 当然还有其他的一些状态,可以在文档中进行查找到。

1.8K50

Android shell 下dd命令浅析

一、前言 小编在最近的测试过程中遇到了一个需要构造Android手机存储空间不足的场景,并且还需要覆盖验证各种机型,而单个拷贝大文件到测试机器又太繁琐,小编查阅资料发现Linux下的dd命令可以协助小编完成此项任务 ,正好借此机会给大家分享一下dd命令在Android shell下的一些用法: 二、dd命令介绍 dd是Linux下一个非常有用的命令,该命令用于读取、转换并输出数据; dd命令在Android shell Android shell中可支持的常用命令参数如下: 1. if=文件名:输入文件名,即指定源文件。 注:bs不支持使用单位书写(例:bs=10M),此项与dd命令在linux系统下使用不同 2、在手机/mnt/sdcard/目录下生成一个超大文件,填满整个手机存储空间 adb shell dd if 注:bs=4294967295(约4GB)为手机下最大读入/输出块大小,可以缩短大文件的填充时间 3、将手机/mnt/sdcard/目录下的yysdk文件打包并使用gzip工具进行压缩 adb shell

1.6K20
  • 广告
    关闭

    《云安全最佳实践-创作者计划》火热征稿中

    发布文章赢千元好礼!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android 11 快来了,IO 性能下降了 SDCardFS Vs FUSE

    现在曾经被称为/ sdcard挂载点的现在只是指位于数据分区-/ data / media / 0中的虚拟文件系统Android虚拟文件系统的历史 现在,“ sdcard”被视为虚拟文件系统,这意味着它可以被格式化为Google想要的任何文件系统。 与实际安装“ sdcard”的USB大容量存储模式不同,MTP允许用户在插入电源后继续使用其设备。此外,Android手机上的文件系统对于计算机识别设备上的文件不再重要。 进行I / O测试:一种涉及复制大文件,另一种涉及复制许多小文件。 这意味着诸如Maps在/ sdcard上存储大文件的Music应用程序,存储大量音乐文件的Music应用程序,Camera应用程序和照片等应用程序。

    38610

    Android数据存储实现的5大方式

    Android数据存储实现的5大方式 数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,更加系统详细的介绍了5种存储的方法和异同。 把文件存入SDCard: 使用Activity的openFileOutput()方法保存文件,文件是存放在手机空间上,一般手机的存储空间不是很大,存放些小文件还行,如果要存放像视频这样的大文件,是不可行的 对于像视频这样的大文件,我们可以把它存放在SDCardSDCard是干什么的?你可以把它看作是移动硬盘或U盘。 第四种: 使用ContentProvider存储数据 Android这个系统和其他的操作系统还不太一样,我们需要记住的是,数据在Android当中是私有的,当然这些数据包括文件数据和数据库数据以及一些其他类型的数据 Android这么优秀的系统不会让这种情况发生的。解决这个问题主要靠ContentProvider。

    2.8K90

    Android外部存储

    4.1 ● 开发者选项出现”强制应用声明权限才可以进行操作”的开关 3、Android 4.2 ● 支持多用户,每个用户拥有独立的外部存储 4、Android 4.4 ● 操作需要声明READ_EXTERNAL_STORAGE 实现原理 系统/system/bin/sdcard守护进程,使用FUSE实现类FAT格式SD卡文件系统的模拟,也就是我们经常说的内置SD卡。 (详细代码可以参考:/xref/system/core/sdcard/sdcard.c) > 用户空间文件系统(Filesystem in Userspace,简称FUSE)是一个面向类Unix计算机操作系统的软件接口 [5.png] ● 在/mnt/sdcard目录挂载fuse文件系统。 [6.png] ● 开线程,在线程中处理文件系统事件,并将结果写回。 [7.png] 经过上面一系列步骤,sdcard进程在/mnt/sdcard路径上创建了一个FUSE文件系统,所有对/mnt/sdcard将转为事件由sdcard守护进程处理,并对应到/data/media

    86860

    Android外部存储

    )、PTP协议(Picture Transfer Protocol) 2、Android 4.1 ● 开发者选项出现”强制应用声明权限才可以进行操作”的开关 3、Android 4.2 ● 支持多用户 ,每个用户拥有独立的外部存储 4、Android 4.4 ● 操作需要声明READ_EXTERNAL_STORAGE权限 ● 应用读写在外部存储的应用目录(/sdcard/Android/<pkg>/ 实现原理 系统/system/bin/sdcard守护进程,使用FUSE实现类FAT格式SD卡文件系统的模拟,也就是我们经常说的内置SD卡。 (详细代码可以参考:/xref/system/core/sdcard/sdcard.c) 用户空间文件系统(Filesystem in Userspace,简称FUSE)是一个面向类Unix计算机操作系统的软件接口 ● 在/mnt/sdcard目录挂载fuse文件系统。 ? ● 开线程,在线程中处理文件系统事件,并将结果写回。 ?

    25130

    Android外部存储》

    | 导语 外部存储作为开发中经常接触的一个重要系统组成,在Android历代版本中,有过许许多多重要的变更。 4.1 开发者选项出现”强制应用声明权限才可以进行操作”的开关 Android 4.2 支持多用户,每个用户拥有独立的外部存储 Android 4.4 操作需要声明READ_EXTERNAL_STORAGE 实现原理 系统/system/bin/sdcard守护进程,使用FUSE实现类FAT格式SD卡文件系统的模拟,也就是我们经常说的内置SD卡。 (详细代码可以参考:/xref/system/core/sdcard/sdcard.c) 用户空间文件系统(Filesystem in Userspace,简称FUSE)是一个面向类Unix计算机操作系统的软件接口 进程在/mnt/sdcard路径上创建了一个FUSE文件系统,所有对/mnt/sdcard将转为事件由sdcard守护进程处理,并对应到/data/media目录。

    1.4K50

    保存文件到SD卡

    /****************2016年5月4日 更新*****************************/ 知乎:为什么很多Android应用要把文件写到/sdcard目录下而不是写到/data log写到/sdcard目录下面? 这两个文件夹区别在于 data 分区有权限控制,除非应用自己同意,否则其他应用无法读取内部的数据,而sdcard/Android下的文件只要有外置空间读取权限就可以读取。 所以data下一般放私密信息,而sdcard/Android 下放可以公开的缓存数据。 : EACCES (Permission denied) 在清单文件中添加权限 android.primission.WRITE_EXTERNAL_STORAGE 4.0以前的系统sd卡不需要权限,有很大的安全隐患

    1.5K20

    Android 8.0 读取内部和外部存储以及外置SDcard的方法

    最近碰到询问我这个读取SDcard的问题, 很久没有看这部分了,所以大致看了一下, 顺便记录一下。在Android 8.0上做了测试。 Android通过Seandroid对权限进行了管理。 /sdcard。 这个其实是Android手机的internal storage。 READ_EXTERNAL_STORAGE 是, WRITE_EXTERNAL_STORAGE 是写, 有写的权限就自动有的权限。 外置sdcard 这个对应的是你放入手机sdcard插槽的microSD卡。 有时候也叫removable storage。 Android里无法通过申请权限来获取读写的权利。 以上这篇Android 8.0 读取内部和外部存储以及外置SDcard的方法就是小编分享给大家的全部内容了,希望能给大家一个参考。

    84920

    Android数据存储实现的5大方式

    把文件存入SDCard: 使用Activity的openFileOutput()方法保存文件,文件是存放在手机空间上,一般手机的存储空间不是很大,存放些小文件还行,如果要存放像视频这样的大文件,是不可行的 对于像视频这样的大文件,我们可以把它存放在SDCardSDCard是干什么的?你可以把它看作是移动硬盘或U盘。 第四种: 使用ContentProvider存储数据 Android这个系统和其他的操作系统还不太一样,我们需要记住的是,数据在Android当中是私有的,当然这些数据包括文件数据和数据库数据以及一些其他类型的数据 Android这么优秀的系统不会让这种情况发生的。解决这个问题主要靠 ContentProvider。 创建你的数据存储系统。大多数Content Provider使用Android文件系统或SQLite数据库来保持数据,但是你也可以以任何你想要的方式来存储。 4.

    32420

    MTP模式与USB存储模式(MTP in Android)「建议收藏」

    Android手机通过UMS将sdcard挂载到PC后,PC就拥有对sdcard的绝对控制权。这样,手机就无法同时访问sdcard了。 这也是Android早期版本中一个很明显的特点。另外,由于PC在操作sdcard时可能弄坏其文件系统,这将导致sdcard重新挂载到手机后不能被识别。 如果Android手机的sdcard以MTP模式挂载到PC机上,sdcard的控制权其实还是属于手机。只不过智能手机通过MTP协议向PC机构建了一个虚拟文件系统。 而UMS模式下,当sdcard挂载回手机后,Android还得花较长时间重新扫描媒体文件以更新媒体数据库。 UMS挂载到PC后,PC操作系统拥有绝对控制权。此时,Android系统将无法操作这些设备。根据前文举的Camera例子而言,这对越来越高级的Android版本而言是不可接受的。

    44020

    解决Android 5.1限制外置SD卡写入权限的问题

    Android 4.4中,如果你同时使用了机身存储和SD卡, 那么应用程序将无法在SD卡中创建、修改、删除数据。 比如,你无法使用酷我音乐盒下载保存Mp3到外置存储卡了,也无法使用快免费小说将TXT版小说下载保存到外置存储卡了。但是应 用程序仍然可以往主存储(机身存储)的任意目录中写入数据,不受任何限制。 Google表示, 这样做的目的是,,通过这种方式进行限制,系统可以在应用程序被卸载后清除遗留文件。 破解方法其实很简单,就是添加外置存储卡的写入权限。前提是手机必须Root。 " <group gid="<em>sdcard</em>_r" / (此行代码有些机型或rom没有, 没有的可以忽略不计) <group gid="<em>sdcard</em>_rw" / sdcard_r" / <group gid="<em>sdcard</em>_rw" / <group gid="media_rw" / </permission (注意:段首对齐,

    1.2K20

    Android开发中使用外部应用获取SD卡状态的方法

    被卸载前己被移除 MEDIA_CHECKING:表明对象正在磁盘检查 MEDIA_MOUNTED:表明sd对象是存在并具有/写权限 MEDIA_MOUNTED_READ_ONLY:表明对象权限为只读 MEDIA_NOFS:表明对象为空白或正在使用不受支持的文件系统 MEDIA_REMOVED:如果不存在 SDCard 返回 MEDIA_SHARED:如果 SDCard 未安装 ,并通过 USB 大容量存储共享 返回 MEDIA_UNMOUNTABLE:返回 SDCard 不可被安装 如果 SDCard 是存在但不可以被安装 MEDIA_UNMOUNTED:返回 SDCard 已卸掉如果 相关内容感兴趣的读者可查看本站专题:《Android编程开发之SD卡操作方法汇总》、《Android文件操作技巧汇总》、《Android数据库操作技巧总结》、《Android编程之activity操作技巧总结 》、《Android开发入门与进阶教程》、《Android资源操作技巧汇总》、《Android视图View技巧总结》及《Android控件用法总结》 希望本文所述对大家Android程序设计有所帮助。

    55220

    android mtp简介

    Android手机通过UMS将sdcard挂载到PC后,PC就拥有对sdcard的绝对控制权。这样,手机就无法同时访问sdcard了。 这也是Android早期版本中一个很明显的特点。另外,由于PC在操作sdcard时可能弄坏其文件系统,这将导致sdcard重新挂载到手机后不能被识别。 如果Android手机的sdcard以MTP模式挂载到PC机上,sdcard的控制权其实还是属于手机。只不过智能手机通过MTP协议向PC机构建了一个虚拟文件系统。 而UMS模式下,当sdcard挂载回手机后,Android还得花较长时间重新扫描媒体文件以更新媒体数据库。 UMS挂载到PC后,PC操作系统拥有绝对控制权。此时,Android系统将无法操作这些设备。根据前文举的Camera例子而言,这对越来越高级的Android版本而言是不可接受的。

    1.9K60

    自己来实现Binder机制

    Android系统为什么需要Binder机制 因为各个进程都在自己的虚拟地址空间,进程A无法直接调用进程B的方法。为了能让进程A调用进程B的方法,有什么办法,我们自己也可以想想。 我自己想了一个简单粗暴的方法,进程B在SD卡中创建一个文件"sdcard/B",然后每隔一秒,去这个文件,进程A写一个方法名和参数到SD卡中的文件"sdcard/B",进程A每隔1秒去这个文件"sdcard /B",进程B发现文件"sdcard/B"内容有更新,读到了方法名和参数,然后根据方法名调进程B的方法,再将返回的结果写到这个文件"sdcard/B"中。 进程A发现文件"sdcard/B"内容有更新就读取返回结果,这样子就完成了一次跨进程通信。虽然我这个方案,从易用性和性能来说都有一点差,但是Binder机制本质上就是类似这样子的方式。 端 进程B就是Server端,在进程B在创建文件"sdcard/B"后,把注册进程B信息和文件名,写到SM的文件中,SM把进程B的信息和文件名存在SM进程中内部的一个红黑树,方便查询。

    39941

    3.数据存储

    * 4.3之前,sd卡路径:mnt/sdcard * 4.3开始,sd卡路径:storage/sdcard * 所有存储设备,都会被划分成若干个区块,每个区块有固定的大小 * 存储设备的总大小 = //创建并显示吐司对话框 Toast.makeText(this, "登录成功", 0).show(); }       注意:             当内存不足时,系统可能帮我们删除 /info.txt"); 写sd卡需要权限 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> android:attr/preferenceInformationStyle" android:title="@string/memory_available" android: 中,每一个应用是一个独立的用户 drwxrwxrwx 第1位:d表示文件夹,-表示文件 第2-4位:rwx,表示这个文件的拥有者用户(owner)对该文件的权限 r: w:写 x:执行 第5-7位:rwx

    47970

    Android全能开源项目xUtils3开发教程、简单封装

    Android全能开源项目xUtils3开发教程、简单封装 一、简介 xUtils是一个比较全能的开源项目了, 包含了orm, http(s), image, view注解, 但依然很轻量级(246K) 这是xUtils3 的 github地址https://github.com/wyouflf/xUtils3 xUtils3 的一些特性 xUtils支持超大文件(超过2G)上传,更全面的http请求协议支持 Cookie策略, 区分domain, path; (3)事件注解去除不常用的功能, 提高性能; (4)数据库api简化提高性能, 达到和greenDao一致的性能; (5)图片绑定支持gif(受系统兼容性影响 :name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE ); x.image().bind(imageView, "file:///sdcard/test.gif", imageOptions); x.image().bind(imageView, "file

    41151

    Android适配踩到的坑

    Android4.4机型的特性,发现: KitKat(即Android4.4系统版本)之后的版本,Google更改了用户对外置SDcard(Secondary Storage)的写入的权限; 以前我们可以直接获取 2、继续跟踪中,既然上面提到了Android4.4系统版本禁止第三方APP对外置sdcard的写权限,那么我们分析下测试手里的Note3 Android4.4.2这款未出现bug的机型的Android系统的权限管理文件 3、与开发人员沟通,开发在试图获取外置sdcard是否有可写权限时,是判断了/storage/extSdCard这个目录,那么我们就顺藤摸瓜,来看下这个目录在Android系统下的权限吧,如下: 先连接设备 >的gid)且为Android4.4以上的系统能复现此问题,而测试这边为了保障测试系统版本的全面性,Android4.4以上系统均为自己刷的ROM,platform.xml中权限被修改,所以不能复现此问题 那么以后如何规避这类问题呢: 1、加强代码review,考虑到KitKat系统的这个特性,后续需要写入外置sdcard的相关功能,均改为在外置sdcardandroid/data/[package name

    74880

    android经常使用的电话操作

    批量插入短信,读取文件从SDcard,写入文件到SDcard。 。。。。 ; import android.content.Context; import android.content.Intent; import android.database.Cursor; import ; ContentResolver cr = context.getContentResolver(); // 首先向RawContacts.CONTENT_URI运行一个空值插入,目的是获取系统返回的 联系人 private String number;//联系号码 private String content; private long date; private int read;//0未 1已 private int type;//联系类型 1接收 2发送 3草稿 public SmsInfo(){} public SmsInfo(String linkman, String

    6210

    扫码关注腾讯云开发者

    领取腾讯云代金券