博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android Studio JNI/NDK 编程(二) Windows 下环境搭建 demo 开发
阅读量:5269 次
发布时间:2019-06-14

本文共 1778 字,大约阅读时间需要 5 分钟。

环境

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

Android Studio 2.1;

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

     地址:链接: 密码: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中添加(注意是添加原来的不变)

defaultConfig {

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

 Gradle scripts gradle.properties 增加 

android.useDeprecatedNdk=true

6. 点击File->Setting->Tools->External Tools 点击“+”,添加如下以下三项(非必须,也可以用命令行实现)

(1)javah

(2) ndk-build

(3)ndk-build-clean

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

同时jni文件夹下生成了文件 com_jcdh_jcli_myndk_MyJNIDemo.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!");}

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!

DEMO 下载:

转载于:https://www.cnblogs.com/sharecenter/p/5620982.html

你可能感兴趣的文章
java易错题----静态方法的调用
查看>>
php建立MySQL数据表
查看>>
最简单的线程同步的例子
查看>>
JSP、Servlet乱码终极解决方案
查看>>
旅途上看的电影和观后感
查看>>
qt实现类似QQ伸缩窗口--鼠标事件应用
查看>>
Ztree异步树加载
查看>>
复杂问题的简单抽象:魔兽世界中的兔子们
查看>>
UVA 10529-Dumb Bones(概率dp)
查看>>
关于IE和火狐,谷歌,Safari对Html标签Object和Embed的支持问题
查看>>
MyEclipse DB Browser使用图文全攻略
查看>>
poj3320 Jessica's Reading Problem(尺取思路+STL)
查看>>
A - Vasya and Socks
查看>>
项目管理、设计开发、代码管理、bug管理工具介绍
查看>>
分布式计算开源框架Hadoop介绍
查看>>
安卓平台接口剖析
查看>>
linux文件编码查看与修改
查看>>
[Java] 系统环境变量配置
查看>>
坏的事情不都会带来坏的结果
查看>>
RPC的基础:调研EOS插件http_plugin
查看>>