Android.mk文件学习,将工程编译到系统中(实践篇)

前言

千呼万唤使出来,答应的事儿一定做到;之前在一篇文章中说到自己会出一篇比较详细介绍Android.mk文件的文章,一言既出,必须得出!本文主要是介绍一些比较常用的mk文件里面的标签使用,同时也给出一些使用实例供大家做模板参考使用,话不多说,上小菜儿!

正文

本文是基于本人测试使用的一个demo来说明android.mk文件属性,我觉得用实例说话会让人更加理解其含义,所以自己写了一个比较全的工程来自写android.mk文件,先把使用的工程demo文件目录列一下吧:
工程目录1
工程目录2
这个demo覆盖了Android工程里面比较常用的,包括jar包/lib库/jni/aidl,先上我自己写好跑过的Android.mk文件:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
#编译源文件 声明需要编译的文件类型
LOCAL_SRC_FILES := $(call all-subdir-java-files)
#另外注意,这条语句必须加入到最后面出现LOCAL_SRC_FILES位置后面,否则会无效。
LOCAL_SRC_FILES += src/com/topwise/cloudpos/aidl/AidlDeviceService.aidl \
                   src/com/topwise/cloudpos/aidl/emv/AidlCheckCardListener.aidl \
                   src/com/topwise/cloudpos/aidl/emv/AidlPboc.aidl \
                   src/com/topwise/cloudpos/aidl/emv/AidlPbocStartListener.aidl
#编译的标签 默认为optional
LOCAL_MODULE_TAGS := optional
#签署当前应用的证书名称
LOCAL_CERTIFICATE := platform
#编译生成的apk名称
LOCAL_PACKAGE_NAME := TOPUSDKServiceMk
#指定是否启用混淆 
#如果要开混淆 需要同LOCAL_PROGUARD_FLAG_FILES这个属性一起用
LOCAL_PROGUARD_ENABLED := disabled
#编译的静态库
LOCAL_STATIC_JAVA_LIBRARIES := libbcprov_jdk libcore libsc_light_jdk15on
LOCAL_STATIC_JAVA_LIBRARIES += android-support-v4 \
                               android-support-v7-appcompat
#依赖的so文件若在lib下没有,则找makefile文件编译 load库的时候去掉lib
LOCAL_REQUIRED_MODULES := libposdevice libemvtopwise

#编译apk结尾
include $(BUILD_PACKAGE)

####预编译模块 --start--
include $(CLEAR_VARS)   
#预编译导入的静态库(jar包)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES :=libbcprov_jdk:libs/bcprov-jdk16-145.jar \
                                       libcore:libs/core_3.3.0.jar \
                                       libsc_light_jdk15on:libs/sc-light-jdk15on-1.47.0.2.jar
#libemv_jni:libs/armeabi/libemvtopwise.so 预编译成libemv_jni.so
#libs/armeabi/libzbar.so 预编译成libzbar.so
LOCAL_PREBUILT_LIBS := libs
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值