现在的位置: 首页 > 综合 > 正文

1.6模拟器上SD card的支持

2013年10月29日 ⁄ 综合 ⁄ 共 1602字 ⁄ 字号 评论关闭

官方下载的SDK的模拟器是支持sd card的,但是自己下载donut之后编译,把生成的三个镜像替代掉,重启模拟器,居然无法加载模拟器,分析原因,就是模拟器根本就没有加载。这里我们来分析一下,Android是怎样加载模拟器的。

 

8月21日

android cupcake donut SDCard mountd vold problem

Android

cupcake

donut
分支仿真器启动后一般都会有
SD
Card Read-Only

问题。这个问题并不是说
SDCard
属性为只读。这种情况实际上是
SDCard
根本就没有加载成功。在
cupcake
前的
1.0
版本中采用
mount.conf

SDcard
进行
mount

cupcake
之后就用
vold.conf
替代了
mountd.conf

方法1:使用vold.conf

~/android/build/core/main.mk
文件中加入如下一段话

################################################################################
# Install a vold.conf file is one's not already being installed.
ifeq (,$(filter %:system/etc/vold.conf, $(PRODUCT_COPY_FILES)))
PRODUCT_COPY_FILES += /
      
development/data/etc/vold.conf:system/etc/vold.conf
ifeq ($(filter eng tests,$(TARGET_BUILD_VARIANT)),)
    $(warning implicitly installing vold.conf)
endif
endif
##################################################################################
然后重新
make
make sdk



方法2:使用mountd.conf
编译mountd,并在文件系统中启动这一服务。(cupcake donut 分支下载时在system/core中并没有mountd目录而在源码树中有,这种情况需自行手动下载

   修改 system/core/mountd/Android.mk文件,开放最后一行

    # disabled - we are using vold now instead
    # include $(BUILD_EXECUTABLE)
    为:

    # disabled - we are using vold now instead
    include $(BUILD_EXECUTABLE)

然后 make mountd

    增加 安装mountd.conf 文件

      修改 system/core/rootdir/init.rc文件

   释放下两行:

     service mountd /system/bin/mountd
          socket mountd stream 0660 root mount

    修改  system/core/rootdir/Android.mk 文件, 增加 etc/mountd.conf /,如下:

    copy_from := /
       etc/dbus.conf /
       etc/init.goldfish.sh /
       etc/mountd.conf /
       etc/hosts



转载请注明此出处!!







最后拷贝文件到sdcard中如下:
adb push D:/a.mp3 /sdcard
以上的请注意使用"/sdcard",此为sdcard文件夹根目录。
此外执行以上命令,还看不到文件,还需要在模拟器中的Dev tools里面scan一下媒体文件。如果是mp3文件,可以在music程序中的歌曲中查看到。

抱歉!评论已关闭.