Android 的 gps module 是 gps.default.so 在system/lib/hw/ 目录上, 一般提供gps功能的手机应该实现这个module和真实gps硬件交互
Qemu中gps就是要构造一个gps.default.so, 但这个so并不和真的硬件打交道,只是个模拟接口,其代码在sdk/emulator/gps/gps_qemu.c中
Qemu 容器外部实现了一个gps设备,但这个设备和 Android 交互只能通过管道,所以gps_qemu.c的功能就是同管道打交道,并提供Android需要的gps functions, 如下:
static const GpsInterface qemuGpsInterface = {
sizeof(GpsInterface),
qemu_gps_init,
qemu_gps_start,
qemu_gps_stop,
qemu_gps_cleanup,
qemu_gps_inject_time,
qemu_gps_inject_location,
qemu_gps_delete_aiding_data,
qemu

Android系统的GPS功能通常由system/lib/hw/gps.default.so实现,而在QEMU环境中,这个模块被模拟为gps_qemu.c。QEMU外部创建了一个GPS设备,通过管道与Android系统通信。QEMU GPS接口定义在gps_qemu.c中,负责处理管道交互并提供Android所需的GPS功能。GPS模块规定必须在其回调中创建线程(gps_state_thread),该线程会在Java虚拟机上运行,用于回调Java层的函数。
最低0.47元/天 解锁文章
413

被折叠的 条评论
为什么被折叠?



