android的Android.mk,Application.mk以及build.gradle的编写
16lz
2021-01-23
1.Android.mk
LOCAL_PATH := $(call my-dir)#链接动态so库时,需要预编译才可以链接include $(CLEAR_VARS)LOCAL_MODULE := PicDetectLOCAL_SRC_FILES := prebuilt/libPicDetect.soLOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/prebuiltinclude $(PREBUILT_SHARED_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE := picdetect-jniLOCAL_SRC_FILES := org_hik_PicDetect.cppLOCAL_SHARED_LIBRARIES := libPicDetectLOCAL_LDLIBS := -lc -lm -lstdc++ -llogLOCAL_CPP_FEATURES += exceptions #NDK 编译器的 C++ 异常控制特性支持默认是关闭的,添加该行命令,便可以打开异常控制特性include $(BUILD_SHARED_LIBRARY)
2.Application.mk
APP_OPTIM := releaseAPP_PLATFORM := android-9APP_STL := c++_staticAPP_CPPFLAGS += -fexceptions -std=c++11 -frtti#APP_GNUSTL_FORCE_CPP_FEATURES := exceptions rtti
3.build.gradle
apply plugin: 'com.android.application'//生成apk//apply plugin: 'com.android.library'//生成so和jar包,不生apkandroid { compileSdkVersion 25 buildToolsVersion '26.0.2' defaultConfig { applicationId "org.hik.picture" //生成apk时要指定应用id minSdkVersion 21 targetSdkVersion 23 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" ndk{ moduleName "picdetect-jni" //lib的名称,对应LOCAL_MODULE ldLibs "log", "z", "m" //链接时使用到的库,对应LOCAL_LDLIBS *注意ldLibs "log"一行,由于在test.c中#include "android/log.h",所以必须把log.h包含进来。 abiFilters "x86_64"//"x86_64"//"arm64-v8a"//"x86"//指定某种架构的CPU的so文件//"arm64-v8a","armeabi-v7a", //cFlags 编译gcc的flag,对应LOCAL_CFLAGS }// externalNativeBuild {// cmake {// abiFilters 'arm64-v8a'//,'arm64-v8a'// //abiFilters 'arm64-v8a'// cppFlags "-frtti -fexceptions"// }// } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } sourceSets.main{ jni.srcDirs = []//disable automatic ndk-build call 屏蔽gradle自动生成Android.mk jniLibs.srcDirs = ['libs']//这个脚本的意思是把app下的libs文件夹,当成原本/src/main下的jniLibs文件夹,这样就可以加载so库了。 } externalNativeBuild{ ndkBuild{ path "src/main/jni/Android.mk" } }// externalNativeBuild {// cmake {// path 'CMakeLists.txt'// }// }}dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:25.2.0'}
更多相关文章
- Android Studio 打不开layout 文件夹下的xml
- android 创建文件夹和文件
- Android开发常用工具查询网站链接
- Android Market 链接的生成与分享
- android 5.0新特性学习--Drawable Tinting(为图片资源着色)
- Android 链接 java 服务无法打开链接的问题
- android(drawable文件夹)图片适配
- android 学习文章收藏(链接)
- Android 5.0 6.0 7.0 8.0 9.0新特性总结