aosp12/13/14模拟器如何进行单模块更新-安卓Framework开发实战小技巧

背景:

在学习framework开发入门时候,大部分人都跟着马哥使用aosp自带的模拟器进行开发,当时我们一般有一点代码修改都是直接make,即make整个系统镜像,然后再进行emulator运行模拟器来验证效果。这种方式说是对于性能好的机器来说其实没啥影响,因为aosp编译耗时一般都是在第一次编译时候,后期修改热编译都是一般修改差量部分,所以大部分时间也都在1-2分钟既可以完成系统整编。

但是也有的公共模块,可能自己公共模块修改了会影响其他模块也要进行编译,因为其他模块可能对他有依赖, 这个情况编译可能最长会到达20分钟。
基于以上的问题,很多同学提出是否可以让模拟器和手机一样进行单模块编译,编译了单模块再进行单模块push,验证。这种方式在手机上其实是非常非常常见的方案,因为手机整编一次非常耗时间,不到迫不得已一般都是进行单模块编译,因为framework开发的大部分同学都是只进行framework.jar和services.jar等模块修改。

进行探索实战:

那么上面基于上面单模块编译然后push要求,我们在模拟器上进行一个尝试。
1、直接emulator然后进行

emulator

adb root

adb remount

adb push out/target/product/emulator_x86_64/system/framework/services.jar /system/framework/services.jar
在这里插入图片描述
上图可以发现报错了

adb: error: failed to copy 'out/target/product/emulator_x86_64/system/framework/services.jar' to '/system/framework/services.jar': remote couldn't create file: Read-only file system

大概意思说属于read-only的file system

是否有其他解决方法呢?
使用emulator -help命令看到线索
在这里插入图片描述
有一个-writable-system可以让system等image变成可写
尝试一下:

emulator -writable-system

adb root
在这里插入图片描述让我们重启一次
emulator -writable-system
在这里插入图片描述
重启后就remount就成功了

push 修改验证:

修改wms代码

在这里插入图片描述
进行编译push验证
在这里插入图片描述
注意push目标目录要正确,而且要kill相关进程进行验证,这样就不需要再来重启模拟器了
验证效果:
在这里插入图片描述

一切完美生效,这样可以一些时间,比整编相比还是有很大优势。

总结

1、单模块编译更新,需要我们对自己模块修改后编译生成对应的so,apk,jar很熟悉,这样我们才可以考虑单模块编译push,如果不清楚的话请大家还是整编最为保险,以防出现不生效啥的情况

2、每次启动模拟器要带上emulator -writable-system,而且第一次adb remount要进行重启生效

更多framework详细代码和资料参考如下链接

hal+perfetto+surfaceflinger
https://mp.weixin.qq.com/s/LbVLnu1udqExHVKxd74ILg
在这里插入图片描述

其他课程七件套专题:在这里插入图片描述
点击这里
https://mp.weixin.qq.com/s/Qv8zjgQ0CkalKmvi8tMGaw

视频试看:
https://www.bilibili.com/video/BV1wc41117L4/

更多framework假威风耗:androidframework007

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千里马学框架

帮助你了,就请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值