在Android上要想开发出高效率的软件,还是须要用到C/C++语言,要想在Java上开发C/C++语言就须要在IDE上安装NDK;在Android的官网上SDK开发环境已经包括了ADT插件。最新的Android开发IDE能够到官网下载:http://developer.android.com/sdk/index.html

因为近期Android官网和google在国内常常进不去,我就把下载的放到网盘,有须要的能够去下载:http://pan.baidu.com/s/1hq3iBGw

准备的文件

在新版本号的ADT上安装NDK环境非常方便。我的ADT版本号是V22.0.5,版本号号在打开ADT载入时会显示出来

在官网上:http://developer.android.com/tools/sdk/ndk/index.html下载最新的NDK。NDK版本号在r7以上之后就集成了Cygwin。不须要单独去安装Cygwin

1、Eclipse配置

SDK配置

NDK配置,路径就是解压出来的NDK根文件夹

下面就来測试下NDK是否已经成功安装

随便新建一个Androidproject,加入Add Native Support

此时新建的project就多了一个jni文件夹

IDE有可能会报一个错误:

[2014-06-23 17:08:36 - Unable to launch cygpath. Is Cygwin on the path?] java.io.IOException: Cannot run program "cygpath": CreateProcess error=2, ϵͳÕҲ»µ½ָ¶

project右键。选择下面选项

环境变量设置NDKROOT,Value就是你解压出来的NDK文件夹

在这里配置的:${NDKROOT}/ndk-build.com就是下面脚本文件

这时再去Cleanproject就不会报错了

下面就来编写JNI的C++文件。可是没有代码提示,是因为没有导入头文件的原因

导入头文件方法,选择“Project Properties”

点击“Add"

此时再按"alt + /"就有代码提示

接下来就是编写代码

在NDKTest.cpp文件

#include <string.h>
#include <jni.h>jstring Java_com_dzt_ndktest_MainActivity_stringJNI(JNIEnv* env,jobject thiz){return env->NewStringUTF("Hello JNI 我的第一个JNI");
}

Android.mk文件是自己主动生成的,能够不用改动

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

Activity类调用代码

package com.dzt.ndktest;import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);TextView tv = (TextView) findViewById(R.id.tv);tv.setText(stringJNI());}public native String stringJNI();static {System.loadLibrary("NDKTest");}
}

build project


成功通过

再执行程序,非常不幸。报错了

假设是c++文件须要加上extern "C",从C语言导出

改动代码例如以下

#include <string.h>
#include <jni.h>extern "C" {
jstring Java_com_dzt_ndktest_MainActivity_stringFromJNI(JNIEnv* env,jobject thiz) {return env->NewStringUTF("Hello JNI");
}
}

成功通过

源码下载:http://download.csdn.net/detail/deng0zhaotai/7540771
很多其它的样例能够到下面文件夹获取,这是NDK自带的样例。

转载于:https://www.cnblogs.com/mqxnongmin/p/10894763.html

Android NDK环境搭建相关推荐

  1. Windows环境下Android NDK环境搭建

    转自:http://blog.csdn.net/pengchua/article/details/7582949 前面介绍Windows下Android 开发环境配置,主要是面向JAVA开发环境,对只 ...

  2. Android NDK 环境搭建

    使用最新ndk,直接抛弃cygwin,曾经做Android的项目要用到NDK就必需要下载NDK,下载安装Cygwin(模拟Linux环境用的),下载CDT(Eclipse C/C++开发插件),还要配 ...

  3. Android NDK开发一 NDK环境搭建及cmake简介

    1 前言 关于NDK的介绍可以查看官方的介绍: https://developer.android.com/ndk/guides/index.html 一句话总结NDK:NDK(Native Deve ...

  4. Windows下Android开发环境搭建和配置

    关于Windows下Android开发环境搭建.配置方面文章,网上一搜一堆,为方便以后参考,权且做个记录,主要关注安装过程中的注意事项.对新手提醒的是,本文介绍SDK开发Android APK环境搭建 ...

  5. 【Android基础笔记01】Android开发环境搭建和HelloWorld

    最近手头项目3.0版本要上线了, 没有那么多工作压力了, 抽空看了看之前在云笔记上做的笔记 都是一些基础知识 给大家分享出来吧 一.什么是Android?[了解 ] Android(中文俗称安卓)是一 ...

  6. Android开发环境搭建及常见问题解决方法

    Android开发环境搭建及常见问题解决方法 参考文章: (1)Android开发环境搭建及常见问题解决方法 (2)https://www.cnblogs.com/rwxwsblog/p/476978 ...

  7. Android开发环境搭建全程演示(jdk+eclip+android sdk)

    Android开发环境搭建全程演示(jdk+eclip+android sdk) http://files.cnblogs.com/Bany/Android%E5%BC%80%E5%8F%91%E7% ...

  8. Android Studio环境搭建

    Android Studio环境搭建 个人博客 欢迎大家多多关注该独立博客. ###[csdn博客](http://blog.csdn.net/peace1213)  一直想把自己的经验分享出来,记得 ...

  9. Android开发环境搭建全程演示(jdk+eclipse+android sdk)

    全程演示android开发环境的搭建过程,无需配置环境变量.所有软件都是写该文章时最新版本 一 相关下载 (1) java JDK下载: 进入该网页: http://java.sun.com/java ...

最新文章

  1. 生成邮件图片签名的链接Gmail、hotmail 等... ...
  2. XPath访问任意深度的XML数据
  3. 配置网络测试环境的批处理
  4. Linux 共享内存详解一
  5. pypi.python.org_在Pypi上发布自己的Python包
  6. Python刷题-2
  7. binlog关闭事务记录_MySQL的CrashSafe和Binlog的关系-爱可生
  8. C++函数内部实现的规则
  9. 网络从业人员职业规划路线图
  10. 单链表的逆置-C++实现(ok)
  11. STM32F4+ESP8266拟辉光钟设计(二)WS2812灯光控制
  12. 2D人体姿态估计 - Stakced Hourglass Network(SHN)个人理解
  13. linux设备的uuid,Linux设备中的UUID
  14. python学习笔记3
  15. 2020双周训练训练日志
  16. 软件测试面试题之自我介绍
  17. 根据value值动态的设置checkbox选中状态
  18. PID的理解与实现(二)
  19. 计算机网络(一):计算机网络概念、功能、组成
  20. JDBC连接Sql_Server_2005

热门文章

  1. WordPress更新时提示无法连接到FTP服务器的解决方案
  2. 重视细节,方能得到认可
  3. sqlserver2000分页存储过程(原创)
  4. 在ASP.NET中为GridView添加删除提示框
  5. Baidu小窥(一)
  6. Python LDA主题模型实战
  7. java 手动线程调度_Java Thread 多线程 操作线程
  8. 【Python-ML】SKlearn库性能指标ROC-AUC
  9. 【正一专栏】齐达内能熬过2018年的春天吗?
  10. 【正一专栏】读《怎样做社会研究》——社会研究的意义