Android 单编 framework 相关产物输出介绍
背景
如果想要快速调试 frameworks/base/services/core 目录下的文件类,能如何单编替换系统文件实现?比如NetdEventListenerService?
frameworks/base/services/core/java/com/android/server/connectivity/NetdEventListenerService.java
首先说以上结论,不能“单独”编译为可直接安装的apk/jar,但可以只编译(包含上述类的)这一部分!
- 不能直接只编译单个 Java 源文件,必须在它所属的模块编译(Android build system的规则)。
- 编译出来并不是单独的
NetdEventListenerService.class
,还是属于整个services.core.jar
,最终汇入framework.jar
或者services.jar
等。 - 如果只想修改并测试这个类的行为,改完代码,
mm
或make framework
后重新刷机/替换 framework jar,再重启 SystemServer 即可。
具体位置
NetdEventListenerService.java
属于 frameworks/base/services/core
目录,最终会被编译进 services.core
组件,
而这个组件最后会打包进 framework.jar
里。
详细流程:
- 该类属于 SystemServer进程的一部分。