网站首页 > 技术文章 正文
Android.mk 脚本 可以编译可执行程序,动态库,静态库以及Apk
最基础的Android.mk
//配置环境变量
LOCAL_PATH := $(call my-dir) build/core/definitions.mk
//清除变量
include $(CLEAR_VARS) build/core/config.mk
//生成目标文件
LOCAL_MODULE := test
//目标文件
LOCAL_SRC_FILES := test.c \
test1.c
//生成格式
include $(BUILD_EXECUTABLE)
//如果想编译生成在当前目录下
LOCAL_MODULE_PATH := $(LOCAL_PATH)/bin
如果想编译多个c文件,需要用到 \ 连接符,看test1.c ,还有一种比较简单的方式就是使用系统函数
//这是加载目录下的所有c文件
LOCAL_C_ALL_FILES := $(call call-files-under)
LOCAL_SRC_FILES := $LOCAL_C_ALL_FILES
如果想编译动态库,可以修改最后一句
include $(BUILD_SHARED_LIBRARY)
如果想修改为静态库
include $(BUILD_STATIC_LIBRARY)
引入系统的库
LOCAL_SHARED_LIBRARIES := liblog
引入第三方库
LOCAL_LDFLAGS := -L/路径 -l 名称
例如
LOCAL_LDFLAGS := -L./lib/ -ltest
引入静态库
LOCAL_LDFLAGS := $(LOCAL_PATH)/lib/xxx.a
引入第三方Jar
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += MyLib:libs/xxx.jar
LOCAL_STATIC_JAVA_LIBRARIES := LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES
引入第三方头文件
LOCAL_C_INCLUDES := 路径
如何编译生成Apk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(call-subdir-java-files)
lOCAL_PACKAGE_NAME := XXX.apk
include $(BUILD_PACKAGE)
如何编译生成Jar
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(call-subdir-java-files)
lOCAL_MODULE := xx.jar
include $(BUILD_STATIC_JAVA_LIBRARY) 静态
include $(BUILD_JAVA_LIBRARY) 共享
Jar分类
静态Jar:使用.class文件打包而成的JAR,可以随意在虚拟机运行
动态Jar:在静态Jar的基础上使用.dex打包而成的jar
如果Apk想引入静态Jar,需要:
LOCAL_STATIC_JAVA_LIBRARIES := static-library
如果Apk想引入动态Jar,需要:
LOCAL_JAVA_LIBRARIES := share-library
预编译Jar
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_CLASS := JAVA_LIBRARIES
LOCAL_MODULE := XX
LOCAL_SRC_FILES :=XX
include $(BUILD_JAVA_PREBUILT)
LOCAL_MODULE_CLASS 代表预编译的格式:
- JAVA_LIBRARIES:dex归档文件
- APPS:Apk文件
- SHARED_LIBRARIES:动态库文件
- EXECUTABLES:二进制文件
- ETC:其他格式
有兴趣的可以加群:417046685
猜你喜欢
- 2024-10-27 NDK开发——FFmpeg视频解码 ffmpeg ndk
- 2024-10-27 Camera基本代码架构 camera calibrator
- 2024-10-27 android 功耗分析方法和优化(1) 功耗app
- 2024-10-27 Cocos Creator v2.3.2 发布了!全新 Launcher 效率飞起!
- 2024-10-27 如何androd动态注册编写计算器 淘宝动态评分计算器在线
- 2024-10-27 高通平台OV8856 Camera的bring up总结
- 2024-10-27 高通平台移植GC2145 Camera驱动 高通驱动安装
- 2024-10-27 《坎公骑冠剑》光炮Android Mk.99技能与背景故事
- 2024-10-27 ubuntu移植libwebp到Android平台 ubuntu移植到arm
- 2024-10-27 步步为营,十分钟学会 Native JNI(附带彩蛋)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)