chinaunix网友2009-12-28 08:03
分析文件: hardware/libhardware_legacy/gps/Android.mk =============================== # Use hardware GPS implementation if available. # ifneq ($(BOARD_GPS_LIBRARIES),) LOCAL_CFLAGS += -DHAVE_GPS_HARDWARE LOCAL_SHARED_LIBRARIES += $(BOARD_GPS_LIBRARIES) endif # Use emulator GPS implementation if QEMU_HARDWARE is set. # USE_QEMU_GPS_HARDWARE := $(QEMU_HARDWARE) ifeq ($(USE_QEMU_GPS_HARDWARE),true) LOCAL_CFLAGS += -DHAVE_QEMU_GPS_HARDWARE LOCAL_SRC_FILES += gps/gps_qemu.c endif LOCAL_SRC_FILES += gps/gps.cpp =============================== 因为文件 hardware/libhardware_legacy/Android.mk 中有: ifneq ($(TARGET_SIMULATOR),true) LOCAL_CFLAGS += -DQEMU_HARDWARE QEMU_HARDWARE := true endif 当编译的是模拟器版本的时候 QEMU_HARDWARE 为true,所以使用的是模拟的gps调用。 如果编译相关的硬件版本,那么必须给 BOARD_GPS_LIBRARIES 赋值,因为从语句: LOCAL_SHARED_LIBRARIES += $(BOARD_GPS_LIBRARIES) 可以看出,变量 BOARD_GPS_LIBRARIES 指定的应该是一个库的名称,通常为 libgps,也可以自定义 对于变量 BOARD_GPS_LIBRARIES 我们可以在文件: vendor/marvell/littleton/BoardConfig.mk 或者 vendor/htc/dream-open/BoardConfig.mk 里面进行指定。 BOARD_GPS_LIBRARIES := libgps librpc BOARD_GPS_LIBRARIES := libgps 指定变量 BOARD_GPS_LIBRARIES 表明我们依赖的是外部库 libgps.so,所以我们还必须 准备一个libgps.so 库,由它完成实际的gps调用 ======================== libgps.so 是gps接口: ./hardware/libhardware_legacy/include/hardware_legacy/gps.h 的实现,所以根据不同的硬件,libgps.so的实现方式是不一样的,但是接口一致。 关于怎样添加一个 gps 库,可以参考文档: http://www.netmite.com/android/mydroid/cupcake/development/pdk/docs/gps.html
chinaunix网友2009-10-19 17:29
您好 ~~ 看過您的"Location服务分析"一文之後,想請問您一個問題,在"获取gps接口"那邊,如果有硬件的話,要如何讓整個流程是調用 #ifdef HAVE_GPS_HARDWARE sGpsInterface = gps_get_hardware_interface(); #endif if (!sGpsInterface) LOGD("no GPS hardware on this device\n"); } 而不是調用 #ifdef HAVE_QEMU_GPS_HARDWARE if (qemu_check()) { sGpsInterface = gps_get_qemu_interface(); if (sGpsInterface) { LOGD("using QEMU GPS Hardware emulation\n"); return; } } #endif 很抱歉打擾到您了
chinaunix网友2009-09-27 15:15
你好。我深圳的一家猎头公司,这里有一个深圳某公司开发网游职位,如果你本人或者你身边的同好朋友感兴趣可以发邮件或QQ:371805367和我联系xiaobin9024@sina.com 一、linux开发工程师(1人):地点(深圳)薪酬:7K~10K 职责:负责网游游戏服务器开发 1、有Unix/Linux操作系统下的C/C++项目的2年以上开发经验; 2、熟悉网络编程,精通TCP/IP协议及编程,熟悉互联网应用协议; 3、熟悉Linux下的mysql或者至少一种其他关系型数据库的开发; 4、有网络游戏后台开发或者分布式开发经验者优先;