在Android studio IDE中采用自己编写的Android.mk
来源:互联网 发布:淘宝没发票可以投诉吗 编辑:程序博客网 时间:2024/05/16 12:09
在app/src/main/ 新建jni文件夹
/app/src/main/jni
在里面创建一个.cc文件,编写Android.mk Application.mk
本人的实例如下:
Android.mk
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := HellJniLOCAL_SRC_FILES := HelloJni.cppinclude $(BUILD_SHARED_LIBRARY)
Application.mk
APP_STL := gnustl_staticAPP_ABI := armeabi armeabi-v7a
接下来是build.gradle 这个文件是在工程的顶层目录下的,与settings.gradle 文件在同一个目录下
我这边的修改如下:
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle-experimental:0.7.0-rc1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files }}上面标记红色 地方是我修改的地方,
之后到app目录下,修改此目录下的build.gradle
具体如下:
import org.apache.tools.ant.taskdefs.condition.Osapply plugin: 'com.android.model.application'model { android { compileSdkVersion = 23 buildToolsVersion = "23.0.2" defaultConfig { applicationId "com.example.administrator.myjni" minSdkVersion.apiLevel = 15 targetSdkVersion.apiLevel = 23 versionCode = 1 versionName = "1.0" ndk{ moduleName = 'HelloJni' } } // ndk{ // moduleName = "HelloJni" // stl = 'gnustl_static' // cppFlags.addAll(['-std=c++11']) // ldLibs.addAll(['android', 'log']) // abiFilters.addAll(['armeabi', 'armeabi-v7a']) // } sources{ main{ jni{ source{ srcDirs = [] } } jniLibs{ source{ srcDir 'src/main/libs' } } } } task ndkBuild(type: Exec) { if (Os.isFamily(Os.FAMILY_WINDOWS)) { commandLine 'E:\\Android_SDKS\\ndk-bundle\\ndk-build.cmd', '-C', file('src/main').absolutePath } else{ commandLine 'ndk-build', '-C', file('src/main').absolutePath } } tasks.withType(JavaCompile){ compileTask -> compileTask.dependsOn ndkBuild } buildTypes { release { minifyEnabled false proguardFiles.add(file('proguard-android.txt')) } } }}dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.3.0'}标记为蓝色的部分,是需要同时设置的标记为紫黑色的部分,是需要特别注意的,否则会出现错误: " A problem occurred starting process 'command 'ndk-build.cmd'' "
紫黑色部分标记的是本人的ndk包安装的地方
标记为紫红色的部分是Android studio按照动态生成的Android.mk文件进行编译的方式
以上就是自己写的一个简单的jni 测试,采用自己写的Android.mk
当然采用自己的写的Android.mk 有优点,特别是已经有Android.mk的工程,直接导入进来就好了,但是也有其缺点,如果是一个linux工程文件,只有Makefile文件,这时则需要
自己去编写Android.mk文件,对于Android的编译系统了解不是很深的,估计很难写出来
0 0
- 在Android studio IDE中采用自己编写的Android.mk
- 在源码环境中编译Android studio项目时的mk脚本编写
- android学习总结四:如何编写自己的Android.mk
- 编写 android.mk 中 LOCAL_C_INCLUDES 的技巧
- 编写 android.mk 中 LOCAL_C_INCLUDES 的技巧
- 编写 android.mk 中 LOCAL_C_INCLUDES 的技巧
- Android中各类.mk文件的编写
- 编写 android.mk 中 LOCAL_C_INCLUDES 的技巧
- Android.mk文件的编写
- android mk脚本的编写
- Intellij IDEA & Android Studio IDE自己风格的配置
- 自己编写Android Studio插件
- JNI中编写Android.mk中的LOCAL_SRC_FILES的技巧
- Android Android.mk的编写规范
- android Android.mk的编写 基本知识
- Android.mk 编写
- 关于Android.mk编写
- android.mk编写要点
- 人工智能之人工神经网络
- ubuntu设置vim高亮和缩进
- 第7周 C语言程序设计(新2版) 练习1-19 颠倒字符串中的字符
- Java学习笔记(七)之―认识Java API
- 存储过程详解
- 在Android studio IDE中采用自己编写的Android.mk
- Java基础之static和final的用法
- 教你使用Spy++查看软件的流氓行径(talimama/Dandelion.exe)
- 可修改UID的白卡,请问为什么一般读写器不能修改这种卡的UID,必须要特定的读写器才能修改?
- iOS基础开发-九宫格显示数据页面
- 排序-快速排序(c)
- 【HUSTOJ】1114: 高精度加法之二
- 优化SQL Server数据库的50种方法
- Codeforces Round #352 (Div. 1) B. Robin Hood