1.6模拟器上SD card的支持

来源:互联网 发布:微信运动 数据来源 编辑:程序博客网 时间:2024/05/29 08:50

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

 

8月21日

android cupcake donut SDCard mountd vold problem

Android cupcakedonut 分支仿真器启动后一般都会有 SDCard Read-Only问题。这个问题并不是说SDCard属性为只读。这种情况实际上是SDCard根本就没有加载成功。在cupcake前的1.0版本中采用mount.confSDcard进行mountcupcake之后就用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程序中的歌曲中查看到。
原创粉丝点击