Ubuntu + Android Studio NDK环境的搭建
来源:互联网 发布:网络直播跟风现象 编辑:程序博客网 时间:2024/04/28 19:29
简单介绍下Android NDK环境的搭建,最好已经配置了科学上网,这样使用Android Studio的自动更新比较方便。
配置NDK
使用Android Studio下载NDK,也可以使用的SDK Manager 进行下载,并配置环境变量
检测环境变量
ndk-which gcc
配置成功时
配置Gradle
gradle插件不支持NDK(当然用它也可以进行NDK开发,就是非常不方便),我们需要使用gradle-experimental插件。gradle-experimental插件使用的时候与gradle插件稍微有点区别。
Project Gradle 配置如下
改变Gradle版本
dependencies { classpath 'com.android.tools.build:gradle-experimental:0.7.0' }
Module Gradle 配置
完整配置
apply plugin: 'com.android.model.application'model { android { compileSdkVersion = 23 buildToolsVersion = "23.0.2" defaultConfig { applicationId "com.example.yangtianrui.ndktest" minSdkVersion.apiLevel 15 targetSdkVersion.apiLevel 23 versionCode 4 versionName "1.0.1" } } android.ndk { moduleName "yangtr" ldLibs.addAll(['log']) cppFlags.add("-std=c++11") cppFlags.add("-fexceptions") platformVersion 15 stl 'gnustl_shared' } android.buildTypes { release { minifyEnabled = false proguardFiles.add(file("proguard-rules.txt")) } }}dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:23.1.1'}
注意
首先在apply的时候我们引入的插件名称由’com.android.application’变成了’com.android.model.application’。
其次,在原来android的外层加入了一个model层次。
再次,原来在android的里面的块,除了defaultConfig外,全部移除android块放入model块中与android并列,并且前面的名字加上android.。
然后,compileSdkVersion 23与 buildToolsVersion “23.0.2”改成 compileSdkVersion = 23和buildToolsVersion = “23.0.2”,中间加上了=。
其次,添加上android.ndk块,块中的moduleName表示C/C++代码打包成so文件的名字。
再次,android.buildTypes块中的proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’改成proguardFiles.add(file(“proguard-rules.txt”))。
最后,注意dependencies块依然在最外层,它不在model块中。
Java 调用
public class MainActivity extends AppCompatActivity { private TextView mTvText; static { System.loadLibrary("yangtr"); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTvText = (TextView) findViewById(R.id.id_tv_text); mTvText.setText(getString()); } // 此处为JNI 的方法 // 使用Alt + Enter自动创建JNI文件 public native String getString();}
C 文件的创建
使用这个插件后,C文件都是自动生成的
#include <jni.h>JNIEXPORT jstring JNICALLJava_com_example_yangtianrui_ndktest_MainActivity_getString(JNIEnv *env, jobject instance) { return (*env)->NewStringUTF(env, "hello JNI");}
执行效果
参照SegmentFault整理
https://segmentfault.com/a/1190000005152343
- Ubuntu + Android Studio NDK环境的搭建
- Android Studio的NDK开发环境搭建
- Android Studio 的NDK开发环境搭建
- android NDK——搭建Android Studio的NDK环境
- android NDK——搭建Android Studio的NDK环境
- android NDK——搭建Android Studio的NDK环境
- android NDK——搭建Android Studio的NDK环境
- Ubuntu下的android NDK 环境搭建
- ubuntu下Android studio NDK 真机环境搭建
- Android Studio NDK环境搭建
- Android studio ndk 环境搭建
- Android Studio Ndk环境搭建
- android studio ndk 环境搭建
- android studio NDk环境搭建
- Android Studio NDK环境搭建
- ubuntu搭建Android NDK环境与Android Studio简单使用NDK
- android之android studio的NDK环境搭建
- Ubuntu下NDK编译环境搭建及在Android Studio中集成NDK
- assert()函数用法总结
- ionic入门教程第十九课-ionic路由详解(state、route、resolve)
- 迭代器模式(Iterator)
- hibernate映射组件属性
- delphi 快捷键
- Ubuntu + Android Studio NDK环境的搭建
- 【English】In June ,Meet My 365
- 使用WebService获取天气信息接口信息
- ios自定义拍照界面
- android导航页(欢迎页实现十分简单)
- Android中的数据存储(一)----- 文件存储
- nodejs 模块与es6模块
- 将多个txt文档转换成对应的xml文档
- unable to start the daemon process (安卓项目不能运行报错)