Android Studio JNI/NDK 编程(二) Windows 下环境搭建 demo 开发
环境
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中添加(注意是添加原来的不变)
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 下载:
http://download.csdn.net/detail/q610098308/9509832
Android Studio JNI/NDK 编程(二) Windows 下环境搭建 demo 开发的更多相关文章
- Android Studio JNI/NDK 编程简介(一)
首先说一下概念及相关的东西: JNI : JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++).从Java1.1开始 ...
- Egret入门(二)--windows下环境搭建
准备材料 安装Node.js TypeScript编辑器 HTTP服务器(可选) Chorme(可选) Egret 安装Node.js 打开www.nodejs.org 下载安装(全部next,全默认 ...
- Windows下快速搭建安卓开发环境android-studio
Windows下快速搭建安卓开发环境android-studio 发布时间:2018-01-18 来源:网络 上传者:用户 关键字: 安卓 搭建 Android Windows 快速 环境 Studi ...
- Redis的简单介绍及在Windows下环境搭建
简单介绍 1,Redis是什么 最直接的还是看官方的定义吧. Redis is an open source (BSD licensed), in-memory data structure stor ...
- Android Studio增加NDK代码编译支持--Mac环境
Android的APP开发基本都是使用Java或者跨平台框架进行开发的,对于很多APP来说已经足够了,但是,对于提供功能给外部使用或者性能要求很高的需求下,如图像处理等,可能会需要C/C++库的支持, ...
- windows下eclipse搭建android_ndk开发环境
安装cygwin: 由于NDK编译代码时必须要用到make和gcc,所以你必须先搭建一个linux环境, cygwin是一个在windows平台上运行的unix模拟环境,它对于学习unix/linux ...
- 数据科学家Docker历险记(1):windows下环境搭建
原文:http://www.xueqing.tv/cms/article/247 Docker是最近炒得很火热的一门技术,在网上可以找到关于它的介绍文章,比如<Docker到底是什么?为什么它这 ...
- redis cluster以及master-slave在windows下环境搭建
一.redis cluster环境搭建: 1.了解Redis Cluster原理: 详细了解可参考:http://doc.redisfans.com/topic/cluster-tutorial.ht ...
- Android jni/ndk编程二:jni数据类型转换(primitive,String,array)
一.数据类型映射概述 从我们开始jni编程起,就不可能避开函数的参数与返回值的问题.java语言的数据类型和c/c++有很多不同的地方,所以我们必须考虑当在java层调用c/c++函数时,怎么正确的把 ...
随机推荐
- fifo write
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/types. ...
- 关于relative和absolute的总结
对于定位这个性质我原理上来说自己是明白的,但是在实践的过程中,总会出现各种稀奇古怪的情况,加relative或是absolute就可以解决,但是遇到这些情况总是不明白为什么!!!难道是脑容量太小的原因 ...
- 【Avalon】factory
(function(global, factory) { if (typeof module === "object" && typeof module.expor ...
- Zookeeper源码编译为Eclipse工程(转)
原文地址:http://blog.csdn.net/jiyiqinlovexx/article/details/41179293 为了深入学习ZooKeeper源码,首先就想到将其导入到Eclispe ...
- 看啦这么就别人的博客 我也来写一篇! Object转换其他类型
package com.sinitek.framework.util; import java.math.BigDecimal;import java.sql.Timestamp;import jav ...
- Jena语义Web开发101
2015/05/28更新 代码在 https://github.com/zhoujiagen/semanticWebTutorialUsingJena 前言 该手册参考和扩展“Hebeler J, F ...
- div弹出层的效果带关闭按钮
下面我做的这个是个进度条的弹出层 <style type="text/css"> #tuxiang { width: 57px; } /*div弹出框的css*/ .t ...
- 使用response实现文件的下载
package cn.itcast.request; import java.io.FileInputStream;import java.io.IOException;import java.io. ...
- poj 3463 最短路与次短路的方案数求解
Sightseeing Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 8968 Accepted: 3139 Descr ...
- CSS超出部分显示省略号…代码
让DIV,LI等元素超出部分文字用省略号…显示. 示例: 兼容IE/Firefox/Chrome 代码: display:block;white-space:nowrap; overflow:hidd ...