修改Android模拟器中System目录的内容(framework.jar)

本文介绍了如何在Android开发过程中,通过复制system.img文件到模拟器镜像路径来修改系统包,并在重启模拟器后验证修改效果的方法。详细步骤包括指定partition-size启动模拟器,确保空间充足进行操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在做Android开发的时候,经常需要修改framework或是系统package里面的东西,如果没有硬件去的话,可以在模拟器上面去验证。

具体方法是,复制你所建立的模拟器版本的system.img到你存放模拟器镜象的路径中,android默认的存放路径是C:\Documents and Settings\(你的登录名)\.android\avd,放到avd/xxx.avd/里面去。一般启动模拟器的时候,会去这个目录找相应的镜像,如果找不到则会加载创建这个模拟器所用到的镜像。这就是我们改了system里面的东西,重启之后就没有的原因。我们放一个system.img进去,改动就会保存到这个文件,下次再启动模拟器的时候,这个改动还在。

然后使用命令启动你所建的模拟器,需要-partition-size指定给模拟器预留的空间,不然remount之后push提示空间不足android2.3是我所建立的模拟器的名称。

emulator -avd android2.3 -partition-size 512


AndroidRuntime: Shutting down VM AndroidRuntime: FATAL EXCEPTION: main AndroidRuntime: Process: com.longcheertel.fasttest, PID: 2435 AndroidRuntime: java.lang.NoSuchMethodError: No static method setRotationLock(Landroid/content/Context;Z)V in class Lcom/android/internal/view/RotationPolicy; or its super classes (declaration of 'com.android.internal.view.RotationPolicy' appears in /system/framework/framework.jar!classes5.dex) AndroidRuntime: at com.longcheertel.fasttest.Acce.onResume(Acce.java:87) AndroidRuntime: at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1733) AndroidRuntime: at android.app.Activity.performResume(Activity.java:9375) AndroidRuntime: at android.app.ActivityThread.performResumeActivity(ActivityThread.java:5755) AndroidRuntime: at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:5801) AndroidRuntime: at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:57) AndroidRuntime: at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:60) AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeLifecycleItem(TransactionExecutor.java:237) AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:110) AndroidRuntime: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:84) AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2921) AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:107) AndroidRuntime: at android.os.Looper.loopOnce(Looper.java:249) AndroidRuntime: at android.os.Looper.loop(Looper.java:337) AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:9544) AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:648) AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1005)
03-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值