本帖最后由 zhq56030207 于 2011-03-10 11:39:03 编辑

解决方案 »

  1.   

    这个MAKEFILE本身就是把相应目录下的OGG声音文件COPY到system目录下的功能,这样用户可以DIY刷机了
    你可以放到其它目录的 SD卡或者相应的res下面。然后mediaplayer设置路径找到就可以了,不一定OGG文件,MP3也行的framework/base/media/JAVA/ANDROID/MEDIA等
      

  2.   

    生成固件的时候,拷贝过去,然后烧录进去即可。不是的话,先把你的手机文件系统改成可读写的,有root权限的话,在adb shell中remount一下(具体对应的是哪个块设备每家应该不一样,没有统一命令,要自己去看下系统)做完后,拷贝ogg文件到/system/media/audio下对应的文件夹下,重启即可。
      

  3.   

    额~~~~老大 ~~~我的意思是在开发的过程中~~~~~~而不是在烧成img之后。。
      

  4.   

    那就看这个:
    http://topic.csdn.net/u/20110308/10/2faeb73e-2665-4618-8b72-8057992e9809.html开发当然是替换localpath目录下的,那是源,其他的都是从这里拷贝出去的
      

  5.   

    http://www.oschina.net/code/explore/android-2.2-froyo/android/media/MediaPlayer.java
    MediaPlayer.java在线源码。只是你看不了外网。路径:android-2.2-froyo/android/media/MediaPlayer.java
      

  6.   


    可是我还是不明白:把local_path里面的声音的拷贝过程是在哪里实现的呢?运用的是那一段程序呢?另外如果我要替换原来的声音的话 是在local_path下替换声音呢 还是跑到system/media/audio下替换呢?很迷茫,求解~~~
      

  7.   

    因为系统build下的一系列脚本,会看你这个PRODUCT_COPY_FILES 当分析完整个目录后,PRODUCT_COPY_FILES 下的所有要拷贝的文件和要拷贝文件的目的地址都有了,这样makefile就会一个一个去拷贝了。你敲make 或mm,编译脚本就会做这些事。熟悉linux的人,应该对这个不难理解啊?呵呵,看来你不熟悉makefile啊拷贝的代码就在 /build/core/makefile的第12行到23行# -----------------------------------------------------------------
    # Define rules to copy PRODUCT_COPY_FILES defined by the product.
    # PRODUCT_COPY_FILES contains words like <source file>:<dest file>.
    # <dest file> is relative to $(PRODUCT_OUT), so it should look like,
    # e.g., "system/etc/file.xml".
    $(foreach cf,$(PRODUCT_COPY_FILES), \
      $(eval _src := $(call word-colon,1,$(cf))) \
      $(eval _dest := $(call \
              append-path,$(PRODUCT_OUT),$(call word-colon,2,$(cf)))) \
      $(eval $(call copy-one-file,$(_src),$(_dest))) \
      $(eval ALL_DEFAULT_INSTALLED_MODULES += $(_dest)) \
     )
    意思就是:将PRODUCT_COPY_FILES中对应的每一项,从源(src)拷贝到(dst),调用的是makefile中的过程(函数)copy-one-file来每次拷贝一个文件。
    这样看,你网system/media/audio里拷贝有啥用? 拷贝过去后,还会被makefile给用原始文件给覆盖回来。因此你只能修改$(local_path)下的文件。