1.6模拟器上SD card的支持

官方下载的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程序中的歌曲中查看到。

你可能感兴趣的:(android,Stream,socket,filter,Build,include)