android模拟器中,不能将文件拷贝到的system分区的原因,以及自动化解决方法.docVIP

android模拟器中,不能将文件拷贝到的system分区的原因,以及自动化解决方法.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
android模拟器中,不能将文件拷贝到的system分区的原因,以及自动化解决方法

HYPERLINK /victoryckl/article/details/7413117 android模拟器中,不能将文件拷贝到的/system分区的原因,以及自动化解决方法 某些情况下,要调试的apk需要一些共享库,而这些库要放/system/lib下才能在运行时连接到。 但android模拟器每次启动后,系统分区/system是以只读方式挂载的,不能用向/system分区拷贝文件。 事情到这里,有两种方法解决,一是重新生成system.img文件,将自己的库也打包进去,但重新打包system.img貌似需要linux环境,步骤也不少,而且每次修改共享库后都要重新打包,对于调试应用程序来说,非常不划算。 另一种,方法是将/system分区修改为可以读写的,这个可以在adb shell中通过下面的命令实现: #mount -o remount ?/dev/block/mtdblock0 /system?回车 命令中/dev/block/mtdblock0表示/system分区实际设备,可通过mount 回车查看。 即使把/system分区修改为可读写的,也不能向里面拷贝文件,拷贝时会报错: failed to copy xxx to /system/xxx: Out of memory 这是因为eclipse启动模拟器时,系统分区的内容实际上是分配一块与system.img等大小的内存空间,来作为系统分区的,所以会出现内存不足的提示。这个可以用df命令查看: /dev: 63304K total, 0K used, 63304K available (block size 4096) /mnt/asec: 63304K total, 0K used, 63304K available (block size 4096) /system: 77568K total, 77568K used,0K available(block size 4096) /data: 65536K total, 26152K used, 39384K available (block size 4096) /cache: 65536K total, 1156K used, 64380K available (block size 4096) /mnt/sdcard: 64504K total, 1K used, 64502K available (block size 512) /mnt/secure/asec: 64504K total, 1K used, 64502K available (block size 512) 关于/system分区内存不足也有两种解决方法,一是增大/system占用的内存,可以通过命令行启动模拟器,设置内存大小: emulator -avd [YOUR_AVD_NAME] -partition-size 512 这里设置内存大小为512MB,启动后,remount /system分区为读写状态,就可以拷贝文件到/system分区了,如果要添加到/system分区的文件较大,可以采用这种方式,启动模拟器。 另一种方法是,删除/system分区中一些不用的文件,腾出空间,就可以向里面拷贝文件了,需要拷贝的东西较小时,可以用这种方法。 但由于上面的修改都只是在内存中,不会写到system.img中,每次重启模拟器后,这些改动都不会存在了。又需要重新修改一次,每次修改都奔波于cmd端和adb shell端,操作也不少,容易漏掉步骤。用批处理可以实现自动化处理,解决这个问题。 关于批处理一些问题可以参考《 HYPERLINK /victoryckl/article/details/7408771 在android运行脚本的注意事项》 HYPERLINK /victoryckl/article/details/7408771 /victoryckl/article/details/7408771 这里给出这些操作的批处理:push.bat adb shell?mount adb shell?mount -o remount /dev/block/mtdblock0 /system adb shell /system/bin/rm /system/app/Email.* adb shell /system/bin/rm /system/app/Mms.* adb shell /system/bin/rm /system/app/Phone.* adb shell /system/bin/rm /system/app/Browser.* adb shell /system/bin/df adb push libx

文档评论(0)

cj80011 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档