如何设置数据分区大于200 MB的Android虚拟设备?

时间:2015-06-13 15:09:15

标签: android emulation qemu

无论我做什么,我都无法正确设置/数据分区大于200 MB的虚拟Android设备。设置或扩展/ data分区的正确/确定方法是什么?

我假设其中一个工具中存在某个错误,所以基本上我正在寻找一种解决方法。

使用AVD工具创建新的AVD似乎没有使用在“内部存储空间”中输入的值进行正确设置。字段虽然是'disk.dataPartition.size'参数确实得到了适当的值:

$ grep "size" *.ini
config.ini:disk.dataPartition.size=1024M
config.ini:sdcard.size=512M
hardware-qemu.ini:disk.cachePartition.size = 66m
hardware-qemu.ini:disk.systemPartition.size = 550m
hardware-qemu.ini:disk.dataPartition.size = 1g

只列出文件......

$ ls -alsh
total 979M
   0 drwxr-xr-x 12 user staff  408 jui 13 11:35 .
   0 drwxr-xr-x  7 user staff  238 jui 13 11:38 ..
 66M -rw-------  1 user staff  66M jui 13 11:38 cache.img
4,0K -rw-r--r--  1 user staff  668 jui 13 11:34 config.ini
4,0K -rw-r--r--  1 user staff 1,8K jui 13 11:35 hardware-qemu.ini
512M -rw-r--r--  1 user staff 512M jui 13 11:38 sdcard.img
200M -rw-------  1 user staff 200M jui 13 11:38 userdata-qemu.img
200M -rw-r--r--  1 user staff 200M jui 13 11:34 userdata.img

然后在推出虚拟设备时,无磁盘说它只有200MB:

$ adb shell df
Filesystem               Size     Used     Free   Blksize
/dev                   373.7M   128.0K   373.6M   4096
/sys/fs/cgroup         373.7M    12.0K   373.7M   4096
/mnt/asec              373.7M     0.0K   373.7M   4096
/mnt/obb               373.7M     0.0K   373.7M   4096
/system                541.9M   260.8M   281.1M   4096
/data                  197.0M    31.3M   165.7M   4096
/cache                  65.0M     4.1M    60.9M   4096
/mnt/media_rw/sdcard   510.0M    22.0K   510.0M   2048
/storage/sdcard        510.0M    22.0K   510.0M   2048

然后,如果我尝试在这个问题中提出的建议: Android 4.4 Virtual Device Internal Storage Will Not Resize

然后卷以最后的方式安装为只读,这意味着它几乎没用:

$ adb install someApp.apk
pkg: /data/local/tmp/someApp.apk
Failure [INSTALL_FAILED_INSUFFICIENT_STORAGE]
rm failed for /data/local/tmp/someApp.apk, Read-only file system

并且在启动时也可见......

$ adb shell dmesg
...
<2>EXT4-fs error (device mtdblock1): ext4_mb_generate_buddy:741: group 2, 32366 clusters in bitmap, 32370 in gd
<3>Aborting journal on device mtdblock1-8.
<2>EXT4-fs (mtdblock1): Remounting filesystem read-only
<2>EXT4-fs error (device mtdblock1) in ext4_reserve_inode_write:4356: Journal has aborted
<2>EXT4-fs error (device mtdblock1) in ext4_evict_inode:171: Journal has aborted
<4>QEMU Pipe Device:rw, wait_event error
...

我的设置:

  • OSX 10.10.3
  • Android SDK(最新截至2015年6月13日)
  • Android SDK工具24.3.2

2 个答案:

答案 0 :(得分:1)

在Android设备管理器中重置设备后,我通过GUI将DataPartition设置为2GB。重新启动设备,但dataPartition仍为200mb。 (在hardware-qemu.ini中可见)。

我注意到设备管理器在config.ini中写了一行

  

disk.dataPartition.size = 2 GB

所以我发现对我有用的是:

  1. 恢复出厂设置
  2. 手动编辑config.ini以使其不读取2000m(而不是2 G),我认为在我的情况下,GUI配置正在为dataPartition大小写入无效值。

      

    disk.dataPartition.size = 2000m

  3. 重启设备

答案 1 :(得分:0)

修改config.ini中的disk.dataPartition.size参数后,擦除Android虚拟设备管理器中avd的数据

enter image description here

在上面的步骤之后启动模拟器将创建大小在config.ini中的数据分区。