Android深度探索 卷1 HAL与驱动开发 读书笔记2

1.在Android.mk中指定路径的头文件,不在当前目录的话已经是系统文件,需要使用尖括号。

2.JNI函数名称有一定规则,但是可以使用RegisterNatives自定义JNI方法。

3.想要利用源码编译hal层的代码,需要把文件夹放在alps/hardware目录下,并且编写Android.mk文件:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_PRELINK_MODULE := false
LOCAL_MODULE_RELATIVE_PATH := $(TARGET_OUT_SHERED_LIBRARIES)/hw
LOCAL_SHARED_LIBRARIES := liblog
LOCAL_SRC_FILES := leds_hal.c
LOCAL_MODULE := led_hal.defaule
LOCAL_MODULE_TAGS := eng
include $(BUILD_SHARED_LIBRARY)
然后在这个文件夹中使用mm命令,可以看到最终生成的文件会存放在out。。。system/lib/hw/目录下

4.想要利用源码编译service层的代码,需要把文件夹放在alps/framework/base/services目录下,并且编写Android.mk文件:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_PRELINK_MODULE := false
LOCAL_MODULE_RELATIVE_PATH := $(TARGET_OUT_SHERED_LIBRARIES)/hw
LOCAL_SRC_FILES := LedHalService.cpp
LOCAL_MODULE := led_hal_jni
LOCAL_MODULE_TAGS := eng

LOCAL_SHARED_LIBRARIES := \
libandroid_runtime \
libcutils \
libhardware \
libhardware_legacy \
libsystem_server \
libutils \
libui \
libsurfaceflinger_client \

LOCAL_C_INCLUDES += \
$(JNI_H_INCLUDE) \
        hardware/leds_hal


include $(BUILD_SHARED_LIBRARY)
5.定义宏的时候尤其是有多行代码时,最好使用do{ } while(0)包裹,避免替换时出错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值