windows7 android studio jni 例程
来源:互联网 发布:怎么可以做淘宝模特 编辑:程序博客网 时间:2024/06/07 02:51
一、下载 ndk
1、ndk 下载地址 http://tools.android-studio.org/
2、根据自己的需要选择版本,我选择了 android-ndk64-r10-windows-x86_64.zip
3、这个软件不需要安装,直接解压就可以使用。我把它解压在E:\Android\ndk下,这个在第二步设置环境变量时用得上。
二、设置环境变量
在例程中需要用到两个命令 javah 和 ndk-build
1、打开电脑的 "高级系统设置"->“高级”->"环境变量"
2、在"系统变量"选项下添加如下变量:
1)、变量名:classpath 变量值: C:\Program Files\Java\jdk1.8.0_65\lib (变量值根据自己的实际安装路径填写)
2)、变量名:JAVA_HOME 变量值: C:\Program Files\Java\jdk1.8.0_65 (变量值根据自己的实际安装路径填写)
3)、变量名:PATH 变量值: C:\Program Files\Java\jdk1.8.0_65\bin;E:\Android\ndk (变量值根据自己的实际安装路径填写)
三、建立实例工程
1、打开Android Studio -> 选择 Start a new Android Studio project -> 随便填写一个工程名字 -> Next -> Next -> 选择 " Empty Activity" -> Next -> Finish
2、打开在res\layout\目录下的activity_main.xml文件,添加一个TextView控件,用来显示JNI 库函数返回的字符串,代码如下:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/textview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="Hello World!" /> </RelativeLayout>
3、打开MainActivit.java,添加 下面的代码,如下:
public class MainActivity extends AppCompatActivity {/* 需要添加的代码 */ static { System.loadLibrary("my_jni"); /*这个JNI 库的名称 */ } public native String jni_demo_api();/*****************************/@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);/* 需要添加的代码 */ TextView mTextView = (TextView) findViewById(R.id.textview); mTextView.setText(jni_demo_api());
/*****************************/ } }
4、在Android Studio软件界面的最底面 有一排 “TODO Android Monitor Terminal Messages”
1)、点击那个 "Terminal"
2)、依次输入下列命令:
(1).cd app\src\main
(2).javah -d jni -classpath E:\Android\sdk\platforms\android-23\android.jar;java\ com.example.felixmo.jnidemo.MainActivity
其中 E:\Android\sdk\platforms\android-23\android.jar这个路径是sdk的路径
"java\" 这个是类的相对路径
"com.example.felixmo.jnidemo.MainActivity" 这个是调用JNI的类名,根据自己实际情况修改
3)、如果都执行成功,会看到app目录下多了一个jni文件夹,里面有一个头文件 com_example_felixmo_jnidemo_MainActivity.h
5、在jni目录下添加一个C文件,代码如下:
#include <string.h> #include <com_example_felixmo_jnidemo_MainActivity.h> JNIEXPORT jstring JNICALL Java_com_example_felixmo_jnidemo_MainActivity_jni_1demo_1api (JNIEnv *env, jobject obj) { return (*env)->NewStringUTF(env, "Hello from JNI !"); }6、拷贝 ndk\samples\hello-jni\jni 下面的 Android.mk 和 Application.mk 到自己工程中的jni目录下1)、修改Android.mk文件,如下:include $(CLEAR_VARS)LOCAL_MODULE := my_jni /*这个名字要与上面 那个 System.loadLibrary("my_jin") 一样*/ LOCAL_SRC_FILES := main.c /*这个名字就是刚才新建的C语言文件名*/include $(BUILD_SHARED_LIBRARY)2)、在Application.mk 添加代码如下 : APP_OPIM := debug7、回到Android Studio开发环境的Terminal界面 输入 命令:ndk-build如果成功会看到有生成很多版本的libmy_jni.so库文件。8、在 Gradle Scripts目录下,打开 local.properties 文件添加 ndk.dir=E\:\\Android\\ndk9、在 Gradle Scripts目录下,打开 gradle.properties 文件添加 android.useDeprecatedNdk=true10、在 Gradle Scripts目录下,打开 build.gradle(Module:app) 文件
添加代码如下 :
defaultConfig { applicationId "com.example.felixmo.jnidemo" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0"/*这个需要自己添加*/ sourceSets.main { jniLibs.srcDir 'src/main/libs' jni.srcDirs = [] //disable automatic ndk-build call }/********************/ }11、重新编译工程,如果没有做错,那么就一定成功。12、点击 "Run" 就可以在手机上看到效果。
- windows7 android studio jni 例程
- Android JNI例程
- Android Studio开发JNI
- Android Studio JNI体验
- android studio JNI编程
- Android Studio JNI开发
- JNI Android Studio 调试
- Android Studio JNI 流程
- Android Studio jni开发
- android studio JNI使用
- Android Studio使用JNI
- android studio使用jni
- Android studio jni
- android studio调用JNI
- Android Studio JNI
- Android Studio Jni
- Android Studio 使用JNI
- Android Studio JNI
- 好的软件架构设计
- jquery的animate设置样式overflow:hidden的解决方法
- Andriod之SHA-256,MD5加密字符串
- C++ 编写一个选课系统
- 应用内文件预览
- windows7 android studio jni 例程
- Linux devfreq
- 跟我一起写 Makefile(七)
- MyBatis学习-SQL语句映射文件(1)resultMap
- Egret)Demo - 自定义事件及自定义事件派发器
- utilities(matlab)—— mat2imgcell
- 天声人語 20160107 北朝鮮が「水爆実験」
- eclipse断点有个斜杠 skip all breakpoints
- Comodo 龙浏览器下载