sd

Android手机之 App2SD 和 App2SD+ 教程

只谈情不闲聊 提交于 2019-12-06 09:41:34
App2SD和App2SD+简介 在Android手机刚面世的时候,系统版本1.5和后来的2.1都不支持把程序装到SD卡上,由于系统内置的空间较小,装不了太多软件,于是有国外的牛人搞出了App2SD的概念,就是把软件装在SD卡上。在官方推出2.2版本系统的时候就把这个概念整合到系统, 于是出现了2种App2SD. 为了区分2种App2SD,这里重新命名一下: App2SD: Android 2.2版本内置的App2SD App2SD+: 国外牛人从1.5系统开始搞的App2SD 这两种App2SD有着明显的区别,区别如下: App2SD: 直接把软件装在SD卡的Fat32分区上,这个分区就是手机连接电脑使用磁盘驱动器的时候看到的那个硬盘分区,这样做有2个很大的缺点: 当使用磁盘驱动器模式的时候,SD卡被电脑独占,装在SD卡上的程序无法运行,会导致很多插件和软件消失 目前来说Android上面的软件很多还是不支持App2SD的,只有极少数一部分可以装在SD卡上 App2SD+: 通过给SD卡分区, 一个Swap分区(可选),一个Ext分区(安装软件的地方),一个Fat32分区。这种方式很好的解决了官方2.2系统自带App2SD的缺点,所有程序都可以装在SD卡上,在使用磁盘驱动器模式的时候也不会影响到SD卡上程序的运行。 所以,我个人强烈推荐使用App2SD+。注: Infiniti

磁盘分区脚本

岁酱吖の 提交于 2019-12-06 04:30:31
由于需要处理的硬盘太多,所做的重复操作太多,写成脚本parted.sh方便。 # /dev/sda|b|d|e|g|h|i|j|k|l 分别是10块硬盘,/dev/sdc 和 /dev/sdf 是用做 journal 的 SSD: # vi parted.sh #!/bin/bash set -e if [ ! -x "/sbin/parted" ]; then echo "This script requires /sbin/parted to run!" >&2 exit 1 fi DISKS="a b d e g h i j k l" for i in ${DISKS}; do echo "Creating partitions on /dev/sd${i} ..." parted -a optimal --script /dev/sd${i} -- mktable gpt parted -a optimal --script /dev/sd${i} -- mkpart primary xfs 0% 100% sleep 1 #echo "Formatting /dev/sd${i}1 ..." mkfs.xfs -f /dev/sd${i}1 & done SSDS="c f" for i in ${SSDS}; do parted -s /dev/sd${i}

Android获取外置SD卡读写路径

浪尽此生 提交于 2019-12-05 20:08:53
1. 外置SD卡的一些问题 1.1 关于外置SD卡上的读写路径 Android 4.4 及以上版本,应用的外置SD卡读写路径被限定在固定路径上( 外置SD卡根路径/Android/data/包名/files )。 Android4.4 以下版本,申请了外置SD卡读写权限的应用在整个外置SD卡上都有读写权限。 1.2 关于外置SD卡路径 另外 Android 没有提供获取外置SD卡路径的API( getExternalStorageDirectory() 获取的实际是内置SD卡路径)。 2. 获取应用在外置SD卡读写根路径 在 Android 4.4 以下版本,获取的应该是外置SD卡的根目录(类似 /storage/sdcard1 )。在 Android 4.4 及以上版本,获取的是应用在SD卡上的限定目录( 外置SD卡根路径/Android/data/包名/files/file ) 代码如下: public static String getExternalSDPath (Context aContext) { String root = null ; if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) { root = getExternalSDPathKITKAT

Android写入内部存储和sd卡

丶灬走出姿态 提交于 2019-12-05 18:53:37
在 AndroidManifset.xml文件进行权限设置 <!-- SDCard中创建与删除文件权限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <!-- 向SDCard写入数据权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 接着在使用SDcard进行读写的时候 会用到Environment类下面的几个静态方法: 1:getDataDirectory() 获取到Android中的data数据目录(sd卡中的data文件夹) 2:getDownloadCacheDirectory() 获取到下载的缓存目录(sd卡中的download文件夹) 3:getExternalStorageDirectory() 获取到外部存储的目录 一般指SDcard(/storage/sdcard0) 4:getExternalStorageState() 获取外部设置的当前状态 一般指SDcard,比较常用的应该是 MEDIA_MOUNTED(SDcard存在并且可以进行读写)还有其他的一些状态,可以在文档中进行查找。 5:getRootDirectory()

关于Android手机获取SD卡路径的问题

自闭症网瘾萝莉.ら 提交于 2019-12-05 17:52:46
在开发的时候经常会使用到SD卡,比如图片缓存等需要大的存储空间的时候,Android中获取SD卡的接口只有一个 String path= Environment.getExternalStorageDirectory().getAbsolutePath(); 从接口的命名上来看是获取外置的SD卡,从国内手机的发展来看,原来手机本身存储小,都会外置一个SD卡,通过上面的接口获取外置SD卡的路径很容易理解,同时由于SD卡是可插拔的,所以又有了下面的这个接口 String state = Environment.getExternalStorageState(); //是否挂载 boolean result = state.equals(Environment.MEDIA_MOUNTED) 但是现在的手机基本上都没有外置的SD卡了,那么现在的手机通过上面的接口获取到内置存储的路径一般是 /storage/emulated/0 ,那么这个时候判断SD卡是否挂载的接口好像就没什么用了,鉴于上面的两种情况,我们在使用SD卡的时候要怎么做判断呢,那么有没有什么判断来判断一个手机有没有外置的SD卡呢,我发现了下面这个接口: boolean isRemove = Environment.isExternalStorageRemovable(); 这个接口的意思很明确了,就是判断外齿存储卡可不可移除

如何区分手机内置存储卡与外置存储卡

你说的曾经没有我的故事 提交于 2019-12-05 17:50:02
android系统自从升级到2.3以后,多一个功能,可以判断存储卡是否是可以卸载的。Environment.isExternalStorageRemovable(),通过此方法我们可以知道手机上的存储卡是手机自带的还是外边可插拔的SD卡,当然此种情况是指只有一个卡的情况。 但是现在国内的大多数手机都支持双存储卡: 1、即手机内置的有2G、4G或8G的内部存储卡,默认安装的应用与数据都会到这个卡中,用户不买可插拔的SD卡,也可使用。 2、手机的存储空间毕竟有限,所以手机也支持外置的SD卡,或者叫TF卡、扩展卡等。 那么这时候问题就来了,在程序中我们如何可以判断哪个路径对应的是内置存储卡,哪个对应的是外置存储卡。有人说用Environment.getExternalStorageDirectory()方法得到不就是SD卡吗,这种方法明显不适用的,尤其在4.0以后。 恰恰相反,使用上面的方法得到的大多数是手机内部对应的SD卡(/mnt/sdcard 4.1系统以下,4.1直接变为/storage/sdcard0), 下面我总结了一些较常见的外部SD卡的路径: /mnt/sdcard2 /mnt/sdcard-ext /mnt/ext_sdcard /mnt/sdcard/SD_CARD /mnt/sdcard/extra_sd /mnt/extrasd_bind /mnt/sdcard

android 手机获取外置SD卡路径

谁说我不能喝 提交于 2019-12-05 17:48:59
一部分手机将eMMC存储挂载到 /mnt/external_sd 、/mnt/sdcard2 等节点,而将外置的SD卡挂载到 Environment.getExternalStorageDirectory()这个结点。 此时,调用Environment.getExternalStorageDirectory(),则返回外置的SD的路径。 而另一部分手机直接将eMMC存储挂载在Environment.getExternalStorageDirectory()这个节点,而将真正的外置SD卡挂载到/mnt/external_sd、/mnt/sdcard2 等节点。 此时,调用Environment.getExternalStorageDirectory(),则返回内置的SD的路径。 至此就能解释为都是无外置SD卡的情况下,有的手机调用 打印 Environment.getExternalStorageState(),却返回 ” removed “,在其他手机就有可能返回:“ mounted ” 原因已经知道了,可是如何在无外置SD卡的时候,获取到这个内置eMMC存储的具体路径呢? 既然使用 Environment.getExternalStorageDirectory() 获取到的是外置SD卡路径,但是我又没有插入SD卡,这个时候我想使用内置的eMMC存储来存储一些程序中用到的数据

Android6.0如何判断有无外置SD卡(TF卡),并读写

房东的猫 提交于 2019-12-05 17:41:34
  安卓6.0已经发布一段时间了,不过安卓6.0的新特性仍在发掘中。现在,又有一个有趣的新特性被发现了——安卓6.0可以把microSD卡也就是TF卡,作为设备的内置存储使用。这个新特性之所以被发现得晚,大概是由于能够率先升级安卓6.0的Nexus设备不支持TF卡扩展吧。 在之前,安卓系统虽然可以支持TF卡扩展,但TF卡扩展的容量只能当成外置存储。虽然用户可以把照片、音乐等内容放进去,但App不能安装到其中。在安卓6.0中,当首次插入TF卡的时候,系统会询问会将TF卡作为外置还是内置储存。如果选择作为内置存储,系统则会对TF卡格式化并加密——注意,这会丢失数据!然后,TF卡的容量就和设备的内置存储融合了。   一般来说,设备的内置存储速度会比TF卡快上不少,稳定性也更高,因此如果不是容量特别紧张,并不建议把TF当成内置储存植入。同时,市面上支持TF卡扩展的安卓设备也越来越少,安卓6.0的这个新特性也许会遭到冷遇。 Android手机上的外置SD卡,起初的时候,即在Android出世的前几年,那时手机的存储是十分有限的,不像现在到处可见16G、32G和64G的存储,因而那时候的手机有的厂商允许插入外置的SD卡,此时这张卡仍处于手机的扩展部分。后来,随着手机的发展以及存储能力的增加,这张外置SD卡,逐渐成为了手机的一部分,不再允许可插拔了,当然现在依然有的手机允许对存储进行拓展

解决将zip文件不慎写入sd(tf)卡中

╄→尐↘猪︶ㄣ 提交于 2019-12-04 14:27:19
之前折腾树莓派时,不小心用Win32DiskImager把zip文件当作img写入tf卡中,之后便出现许多问题,电脑无法识别tf卡,找不到盘符,寻找许多格式化工具,恢复工具均失败,之后无意间接触到diskpart这个分区工具,便试了一下,结果竟然成功恢复了. 参考博客 按照他的步骤走到第七步格式化时,报错没有选择盘符,之后尝试寻找答案,没有找到,不够这个是否已经能够读取盘符了,于是利用sdformat工具直接将其格式化,再重新插拔,便恢复了. sd格式化工具 猜测是写入时,把tf卡分成了几个分区 来源: https://www.cnblogs.com/just-save/p/11870181.html