Android studio下使用 NDK 之 Hello world
来源:互联网 发布:手机延时软件 编辑:程序博客网 时间:2024/05/23 21:40
最后结果
目的:
1.学会如何使用Android studio创建一个native project
2.学会如何在Android studio下使用Java调用本地语言(C/C++)
1、首先创建一个普通的Project
一值next,直到最后
直接运行,是最开始的HelloWorld
打开设置->Build,Execution,Deploym->Gradle
选择”Use Default Gradle wrapper (recommended)
选择 “工具” > “Android” > “SDK Manager”
点击上面的SDK Tools
选择NDK,下载并安装
2.修改Gradle
首先,需要进入目录Gradle Scripts->build.gradle(Project)把
classpath 'com.android.tools.build:gradle:2.2.3'
改成
classpath 'com.android.tools.build:gradle-experimental:0.7.2'
现在还不能同步gradle,还需要进入gradle-wrapper.properties
因为experimental:0.7.2对应的是gradle-2.10-all.zip,所以要把
distributionUrl=https://services.gradle.org/distributions/gradle-2.14.1-all.zip
改成
distributionUrl=https://services.gradle.org/distributions/gradle-2.10-all.zip
接着打开build.gradle(app)
填加一个model,把
android { compileSdkVersion 25 buildToolsVersion "25.0.2" defaultConfig { applicationId "com.example.root.helloworldjni" minSdkVersion 15 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }}
改成
model{ android { compileSdkVersion 25 buildToolsVersion "25.0.2" defaultConfig { applicationId "com.example.root.helloworldjni" minSdkVersion.apiLevel 15 targetSdkVersion.apiLevel 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles.add(file('proguard-android.txt')) } } }}
其他不变
注意: 1.添加了model的一个嵌套
2.minSdkVersion 15
、targetSdkVersion 25
改成minSdkVersion.apiLevel 15
、targetSdkVersion.apiLevel 25
3.proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
改成 proguardFiles.add(file('proguard-android.txt'))
最后记得把
apply plugin: 'com.android.application'
改为
apply plugin: 'com.android.model.application'
然后点击同步gradle,就会同步成功了
3.开始写代码
打开”文件” > “Project Structure” > “SDK Location”, “Android NDK Location”
设置NDK路径
打开”Gradle Scripts” > “build.gradle (Module:app)”, 填加ndk的moduleName在”model” 块中, 放在”buildTypes” 后面
buildTypes {...}// New codendk { moduleName "hello-android-jni"}
然后在MainActivity中添加代码,把库加载进来,如下:
static{ System.loadLibrary("hello-android-jni"); } ......public native String getMsgFromJNI();
然后点击同步gradle,并且点击重新build一下
这时候,会发现
public native String getMsgFromJNI();
会报错
这时候,点击左边红色的灯
会生成一个cpp目录下的c文件
把代码修改为
#include <jni.h>JNIEXPORT jstring JNICALLJava_com_example_root_helloworldjni_MainActivity_getMsgFromJNI(JNIEnv *env, jobject instance) { return (*env)->NewStringUTF(env, "Hello World Form JNI!");}
然后在修改MainActiviyt 的 onCreate中的代码
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView mTextView = (TextView) findViewById(R.id.show_jni_txv); mTextView.setText(getMsgFromJNI()); }
最后运行成功,如下
- Android studio下使用 NDK 之 Hello world
- Android Studio上进行NDK编程之Hello world
- Android Studio上进行NDK编程之Hello world
- Android Studio 使用ndk开发一个 hello world
- android ndk之hello world
- android NDK 之Hello world
- Android-NDK-之Hello-World
- Android NDK开发之Hello world篇
- android ndk hello,world!
- android ndk Hello World
- Android studio配置ndk和输出hello world
- android studio 2.2 ndk jni 开发 调试 hello world
- Android Studio + NDK 之 Hello Word
- NDK编程之Hello world
- android NDK 开发 Hello World
- Android NDK Socket Hello World
- Android NDK开发“Hello World NDK”
- Android NDK开发“Hello World NDK”
- Android热修复技术初览
- eclipse下配置tomcat
- POJ 1847 火车变轨道 (简单最短路)
- 算法第五周解题报告
- TensorFlow使用的一个小案例
- Android studio下使用 NDK 之 Hello world
- 利用Python的paramiko+scpclient实现高效和ssh服务器交互
- L1-5. A除以B
- Spring中的bean,factoryBean,beanFactory
- Problem E Red Rover kmp
- 一道据说是Google的面试题:25匹马的角逐
- 项目部署到网站-前篇
- Neutron总结-openvswitch+vlan网络
- ./configure,make,make install的作用