小编给大家分享一下安卓studio3.6中JNI教程之helloworld的思路分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
jdk环境变量配置:
路径中增加下面2个路径,也就是Android工作室的路径,Android有自带的jdk。
E: \ Android \ Android studio \ jre \ bin E: \ Android \ Android Studio \ bin
新建工程:
一定要选择<强>本机c++ 强>类型,最后要选<强> c++ 11 >强支持。
SDK设置:
文件→设置
文件→项目结构
首先确定工程的目录结构,然后尝试运行一下工程,使用模拟器,确保工程没问题,
在<代码> MainActivity> 代码的同级目录,新建一个你好。java,然后做一个简单的实现,
package com.example.myapplication; , public class  hello { ,public native  int 添加(int 我,int j); }
使用android工作室自带的终端进入该你好。java所在目录,执行,
javac你好。java
引用>终端下回到app/src/主要所在目录,执行,
javah - d jni类路径。/java com.example.myapplication.hello
引用>此时,会在主要目录下面生成一个和cpp java同级的目录jni。
在该目录结构里面新建hello.cpp。
将<代码> com_example_myapplication_hello.h> 代码中的内容复制进你好。cpp中,并且进行方法的实现,
# include & lt; jni.h>/*,Header for  class com_example_myapplication_hello */, # ifndef _Included_com_example_myapplication_hello # define _Included_com_example_myapplication_hello # ifdef __cplusplus extern “C", { # endif/* ,*类:com_example_myapplication_hello *大敌;方法:添加 ,*签名:我,(II) ,*/, # include “com_example_myapplication_hello.h" , JNIEXPORT jint  JNICALL Java_com_example_myapplication_hello_add ,(JNIEnv *, jobject,, jint 我,jint j) {return i + j;} , # ifdef __cplusplus } # endif # endif将<代码> com_example_myapplication_hello.h, hello.cpp 代码>这连个文件复制到cpp所在的目录,
然后修改CMakeLists。txt,增加,
add_library(#大敌;Sets 从而name of 从而图书馆。 ,你好 , ,# Sets 从而library as a shared 图书馆。 ,共享 , ,# Provides a  relative path 用your source 文件(s)。 之前,hello.cpp ) >修改target_link_libraries如下,
target_link_libraries(#大敌;Specifies 从而target 图书馆。 native-lib才能 ,你好 #,才能Links 从而target library 用,log 图书馆 #,才能included 从而NDK拷贝。 $ {log-lib},才能)修改喂。java的调用方式,
package com.example.myapplication; , public class  hello { , ,static { ,System.loadLibrary (“hello"); ,} ,public native  int 添加(int 我,int j); }修改<代码> MainActivity。java代码>中的onCreate函数,
protected void onCreate (Bundle savedInstanceState), { ,super.onCreate (savedInstanceState); ,setContentView (R.layout.activity_main); , ,//Example of  a call 用a native 方法 ,TextView tv =, findViewById (R.id.sample_text); ,//tv.setText (stringFromJNI ()); ,tv.setText (“hello  9 + 10=,,, +, new 阀门hello () (9, 10)); 以前,}>然后,<代码> 代码>重建项目,没有错误后,然后<代码>运行应用程序>
Android studio3.6中JNI教程之helloworld的思路分析