首页 > 移动平台 > 详细

Android Studio JNI/NDK 编程(二) Windows 下环境搭建 demo 开发

时间:2016-12-29 07:06:56      阅读:262      评论:0      收藏:0      [点我收藏+]

注意:此文是我博客看到的,地址http://blog.csdn.net/q610098308/article/details/51313341

后面我加入了我的实践时应注意的地方,欢迎一起学习!    为蓝色部分:

环境

windows 8  (注:其实 Linux 开发可能更方便)

Android Studio 2.1;

 

一 . 下载 安装android-ndk开发包

     地址:链接:http://pan.baidu.com/s/1c1GSiy8 密码:h7gr;

     下载完成后最好解决到一个根目录,中间不要有空格,中文;

 

二.

1、新建项目MyJNIDemo,选择空Activity就可以;

2. 新建 com.jcdh.jcli.MyJNI 类

 

public class MyJNI {
    static {
        System.loadLibrary("hello_jni");
    }

    public native String getDataFromJni();
}

 

3、工程app New->Folder->JNI Folder;

技术分享

4. MainActivity 实现:

 

public class MainActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TextView show = (TextView)findViewById(R.id.show);
         MyJNI myJni = new MyJNI();
         show.setText(myJni.getDataFromJni());

 }}

 

5.Gradle scripts gradle ->build-gradle 在defaultConfig中添加(注意是添加,原来的不变)   注意:是project 下的 内层的build.gradle 中

defaultConfig {
 
    ndk {
  moduleName "hello_jni"
    }
    sourceSets.main {
     jni.srcDirs = []
     jniLibs.srcDir "src/main/libs"
          }
  

 Gradle scripts gradle.properties 增加          注意:gradle.properties里面 ,添加如下:

android.useDeprecatedNdk=true

 

6. 点击File->Setting->Tools->External Tools 点击“+”,添加如下以下三项(非必须,也可以用命令行实现)         注意:两个$中间的内容是 点击 Insert macro... 找到的,后面是手写的

(1)javah

技术分享

(2) ndk-build                 注意: Working directory中  和图上保持一样

技术分享

(3)ndk-build-clean           注意:program:也是你的NDK的路径

技术分享

 

7.jni 文件夹上右键  NDK->Java.h,可以看到控制台编译 ,有了菜单以后都会比较方便

同时jni文件夹下生成了文件 com_jcdh_jcli_myndk_MyJNIDemo.h

 

技术分享

 

注意:第7步我的是 右击我们创建的MyJNI这个类,——External  Tools——javah  就会生成  .h文件,如图

 

技术分享

 

 

 

8.jni目录下新建hello_jni.cpp文件            注意:复制如下代码,但前面不能有空格

 

 

#include "com_jcdh_jcli_myjnidemo_MainActivity.h"
JNIEXPORT jstring JNICALL Java_com_jcdh_jcli_myjnidemo_MainActivity_getDataFromJni
        (JNIEnv * env, jobject obj)
{
    return env->NewStringUTF("hello world!");
}

 注意:

1:  #include "com_jcdh_jcli_myjnidemo_MainActivity.h"中,是自己刚生成的 .h的名字

2:JNIEXPORT jstring JNICALL Java_com_jcdh_jcli_myjnidemo_MainActivity_getDataFromJni  是我们生成的 .h文件中的,去 .h文件中复制

3:return env->NewStringUTF("hello world!"); 中的   hello world 就是我们今天要显示的内容,我们在改 hello world 的内容后,

需要我们把 生成的 libs 和obj 和 .h删除掉,然后点击 MyJNI右击 重新生成 .h  , 如第7步

 

9.jni目录下分别新建Android.mk与Application.mk 

Android.mk  中


LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := hello_jni
LOCAL_SRC_FILES := hello_jni.cpp
include $(BUILD_SHARED_LIBRARY)

 

Application.mk  中


APP_MODULES := hello_jni
APP_ABI := all

 

注意:以上不能有空格

 

10. 右键jni文件夹,ndk->ndk-build,编译

 成功后,运行即可在手机上输出 hello world!

 

注意:我的是  jni——>External  Tools——>ndkBuild

技术分享

 

 

然后运行Demo ,就会显示  hello world!

 

DEMO 下载:

http://download.csdn.net/detail/q610098308/9509832

 

Android Studio JNI/NDK 编程(二) Windows 下环境搭建 demo 开发

原文:http://www.cnblogs.com/changyiqiang/p/6230760.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!