当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 讲师博文 > Android系统开发中Android.mk的多种写法

Android系统开发中Android.mk的多种写法 时间:2018-09-27      来源:未知

Android.mk在android的系统开发中毫无疑问是很重要的,它的作用比较强大,可以将c/c++代码编译成可执行程序,动态库,静态库,当然也可以将Java代码编译成二进制代码,jar包,apk等等,一下就列举几个例子来说明是如何使用的:

1,编写方法: 抄模板,个人不建议默写,android源码中的模板遍地都是,所以不用担心不会写

2,Android.mk的写法实际是基于Makefile的,所以基本的规则还是不能有悖于Makfile,Makefile的一个规则是:

目标 :依赖

编译规则 #注意规则前面有一个tab

3,简单的模板:hardware/ril/rild/Android.mk

#获取Androd.mk所在路径

LOCAL_PATH:= $(call my-dir)

#清空以LOCAL_xxx的变量, 除了LOCAL_PATH

include $(CLEAR_VARS)

#指定源文件

LOCAL_SRC_FILES:= \

rild.c

#指定目标文件

LOCAL_MODULE:= rild

#编译规则

include $(BUILD_EXECUTABLE)

-------------------------------------------------------------------

c/c++代码编译成elf可执行程序:

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_SRC_FILES:= \

hello.c

# optional表示在任何模式下都会编译

LOCAL_MODULE_TAGS := optional

LOCAL_MODULE:= hello_elf

include $(BUILD_EXECUTABLE)

-----------------------------------------------------------------

编译成动态库

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES:= myled_jni.cpp

LOCAL_SHARED_LIBRARIES := \

libutils

LOCAL_MODULE:=libled_jni

include $(BUILD_SHARED_LIBRARY)

-----------------------------------------------------------------------------------------------------------------------------------

预编译: 表示拷贝

prebuilt/android-arm/gdbserver$ vim Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_SRC_FILES := ADV7123.pdf

LOCAL_MODULE := ADV7123.pdf

#指定目标文件安装路径

LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)

LOCAL_MODULE_CLASS := ETC

LOCAL_MODULE_TAGS := optional

#预编译方式

include $(BUILD_PREBUILT)

上一篇:js中this的指向

下一篇:Linux字符设备驱动模型之框架解说

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部