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

编程入门 行业动态 更新时间:2024-10-08 05:24:31

Android<a href=https://www.elefans.com/category/jswz/34/1769690.html style=深度探索 卷1 HAL与驱动开发 读书笔记2"/>

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 := engLOCAL_SHARED_LIBRARIES := \
libandroid_runtime \
libcutils \
libhardware \
libhardware_legacy \
libsystem_server \
libutils \
libui \
libsurfaceflinger_client \LOCAL_C_INCLUDES += \
$(JNI_H_INCLUDE) \hardware/leds_halinclude $(BUILD_SHARED_LIBRARY)
5.定义宏的时候尤其是有多行代码时,最好使用do{ } while(0)包裹,避免替换时出错

更多推荐

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

本文发布于:2024-02-13 14:39:52,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1759112.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:深度   读书笔记   Android   HAL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!