android图文介绍NDK安装及简单jni demon的实现

1.背景

android NDK可以用来编译android的native方法,也可以将c和c++的代码编译成.so文件,让android程序运行。

2.NDK安装(linux环境)

(1)下载对应的ndk版本,在shell里输入如下命令

gedit ~/.bashrc

(2)打开bash文件,添加下载的ndk路径

NDKROOT=/home/CORPUSERS/28852262/android-ndk-r9c
export PATH=$NDKROOT:$PATH

(3)输入如下命令,然后重启shell

source /etc/profile

(4)在shell中输入ndk-build,出现如下状态说明安装成功

3.jni第一个demon helloworld

(1)编写hello-jni.c文件。

#include <string.h>
#include <jni.h>  

/* This is a trivial JNI example where we use a native method
 * to return a new VM String. See the corresponding Java source
 * file located at:
 *
 *   apps/samples/hello-jni/project/src/com/example/hellojni/HelloJni.java
 */
jstring
Java_com_example_hellojni_HelloJni_aa( JNIEnv* env,
                                                  jobject thiz )
{
#if defined(__arm__)
  #if defined(__ARM_ARCH_7A__)
    #if defined(__ARM_NEON__)
      #define ABI "armeabi-v7a/NEON"
    #else
      #define ABI "armeabi-v7a"
    #endif
  #else
   #define ABI "armeabi"
  #endif
#elif defined(__i386__)
   #define ABI "x86"
#elif defined(__mips__)
   #define ABI "mips"
#else
   #define ABI "unknown"
#endif  

    return (*env)->NewStringUTF(env, "Hello from JNI !  Compiled with ABI " ABI ".");
}

这个c文件实现输出一个string型函数,注意这里

Java_com_example_hellojni_HelloJni_aa

我们创建android应用的时候包和函数命名要和这个对应,否则汇报错:native method is not found。如下图

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/OS/extra/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android
, mips
, 文件
, so jni
, native
, android ndk
, ndk
, jni
, jni error
, jni封装
, android studio jni
, armeabi
, 输入
, define
defined
ndk jni、android jni ndk、jni和ndk的区别、ndk和jni、eclipse ndk 编译jni,以便于您获取更多的相关知识。

时间: 2024-11-03 21:02:13

android图文介绍NDK安装及简单jni demon的实现的相关文章

Android Studio(一):介绍、安装、配置

Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Android Studio编码 Android Studio(四):Android Studio集成Genymotion Android Studio(五):修改Android Studio项目包名 Android Studio(六):Android Studio添加注释模板 Android Studio

android开发实践之ndk编译命令简单示例

前言 Android提供了NDK工具,用来编译native代码(c/c++),该工具配置好了相关的交叉编译环境和工具链,只需要你简单地编写几个.mk文件即可将你的c/c++代码编译为Android的java工程/Android手机可以识别.加载和运行的库或者应用程序. 默认情况下,使用NDK编译c/c++代码,需要将该代码放置到任一个Android应用工程的jni目录下,然后编写相应的Android.mk文件,并执行ndk-build命令完成编译.其实你也是可以在任意目录下去编译native代码

联想硬盘保护系统EDU7.7安装方法图文介绍

硬盘保护EDU 7.7安装方法及注意事项   [EDU7.7特点介绍]   一.EDU7.7操作系统支持说明   1.EDU7.7是联想专门为Windows 8 64位用户专门定制的一款集网络同传.硬盘保护功能的教育运用,只适用于Win8 64位系统,不支持其他任何版本操作系统:   2.EDU 7.7 只能在UEFI模式下工作,所以安装EDU7.7后,不能安装Win8 32位.Win7.XP等操作系统:   3.EDU7.7只能在GPT分区下工作,不支持Win8 32位.Win7.XP.DOS

Android中的NDK编程学习

Android应用程序访问android的根文件系统中的文件时,由于应用程序的权 限限制,无法访问这些文件,怎么办? 这时就要用到NDK编程了,既用 C/C++代码实现访问系统文件,并将其生成本地库,供android中的java代码调用 ,这样就可以在java代码中通过调用C/C++编写的库的接口来实现对系统文件的 访问. 为何要用到NDK? 概括来说主要分为以下几种情况: 1. 代码的保护,由于apk的java层代码很容易被反编译,而C/C++库反汇 难度较大. 2. 在NDK中调用第三方C/

Android高级篇-NDK(Native Development Kit)之坏境搭建【二】

本篇主讲在Windows下进行环境搭建 需要如下组件:       Java JDK       Apache ANT 构建系统       Android SDK       Cygwin       Android NDK       Eclipse IDE 后面会依次介绍组件安装方法. Java JDK组件安装: 这个不多说,会开发的这都必须要会,这里给出地址,大家自行下载安装即可,这个不会大家可以自行百度or Google,挺简单的. 地址:http://www.oracle.com/t

sdk-问一个Android开发的环境安装问题!求解!

问题描述 问一个Android开发的环境安装问题!求解! 我安装Android SDK点击SDK Manager.exe之后这个界面不是有很多的包可以安装吗?怎么我的这个就是这么点希望大神帮我下! 解决方案 参考下这个, http://jingyan.baidu.com/article/b0b63dbfd0948c4a483070ea.html 因为现在国内连不上google了... 解决方案二: 参考下这个, http://jingyan.baidu.com/article/b0b63dbfd

Tokyo Tyrant(TTServer)系列-介绍和安装

Tokyo Cabinet 是Mikio Hirabayashi(平林幹雄)のページ 开发的 一款DBM数据库(注:大名鼎鼎的DBM数据库qdbm就是他开发的),该数据库读写非 常快.insert:0.4sec/1000000 recordes(2500000qps),写入100万数据只需要 0.4秒.search:0.33sec/1000000 recordes (3000000 qps),读取100万数据只需 要0.33秒.下图为各种key-value数据库读写数据的性能测试,可以看出Tok

VMware下Linux的安装及简单设置

当你听别人说起Linux.FreeBSD甚至OS2等等新奇的操作系统时,是不是也想尝试看看?但是当听到需要重新切割硬盘,原有数据还有可能丢失时,是否又有些犹豫?当初我也是在Linux的门外彷徨很久,直到我找到了VMware.因为它既保证了Linux能正确安装且正常运行,又不破坏原来的操作系统,为我们除去了费心研究如何把硬盘分区分得合理和高效的苦恼.下面,我给大家介绍一下怎样用这款软件来安装Linux. 一.VMware的安装及配置 简单地说,VMware就是一款虚拟机软件,它可以在你现有的操作系

PS中四种描边方式图文介绍

  这篇教程是图文介绍PS中四种描边方式,教程比较简单,希望对大家有所帮助! 教程结束,以上就是PS中四种描边方式图文介绍,希望对大家有所帮助! 分类: PS入门教程