说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Android NDK之JNI使用例子

HTML文档下载 WORD文档下载 PDF文档下载
目前Android NDK只能编译出动态库.so文件,并不是能生成.apk文件,这里我们简单介绍下NDK中的Hello JNI列子。

 

作者:Android开发网
  目前Android NDK只能编译出动态库.so文件,并不是能生成.apk文件,这里我们简单介绍下NDK中的Hello JNI列子。整个例子分Java和Native C两个部分。首先是我们常用的Java端调用部分。

 

作者:Android开发网

 

  目前Android NDK只能编译出动态库.so文件,并不是能生成.apk文件,这里我们简单介绍下NDK中的Hello JNI列子。整个例子分Java和Native C两个部分。首先是我们常用的Java端调用部分。

package com.example.hellojni;import android.app.Activity;import android.widget.TextView;import android.os.Bundle;public class HelloJni extends Activity{    @Override    public void onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);        TextView  tv = new TextView(this);        tv.setText( stringFromJNI() ); //如果调用失败将会抛出 java.lang.UnsatisfiedLinkError异常        setContentView(tv);    } //注意下面的native关键字    public native String  stringFromJNI();     public native String  unimplementedStringFromJNI();     static {        System.loadLibrary("hello-jni"); //载入hello-jni库    }  }
需要注意的是这里必须设置SDK版本为1.5或以上版本即在androidmanifest.xml文件中指明<uses-sdk android:minSdkVersion="3" /> 这里我们看到JNI调用无需特殊的权限。
 而在Native C/C++中我们可以直接使用C++库,不过这里包含了jni这个头文件。
#include <string.h>#include <jni.h>
其中下面的返回类型jstring是VM String,在jni.h头文件中有定义
jstring Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env, jobject thiz ){    return (*env)->NewStringUTF(env, "Hello from JNI, Android123 Test!");}
其实很好理解的,仅仅是换个了别名而以,定义如下
typedef uint8_t         jboolean;       /* unsigned 8 bits */typedef int8_t          jbyte;          /* signed 8 bits */typedef uint16_t        jchar;          /* unsigned 16 bits */typedef int16_t         jshort;         /* signed 16 bits */typedef int32_t         jint;           /* signed 32 bits */typedef int64_t         jlong;          /* signed 64 bits */typedef float           jfloat;         /* 32-bit IEEE 754 */typedef double          jdouble;        /* 64-bit IEEE 754 */#elsetypedef unsigned char   jboolean;       /* unsigned 8 bits */typedef signed char     jbyte;          /* signed 8 bits */typedef unsigned short  jchar;          /* unsigned 16 bits */typedef short           jshort;         /* signed 16 bits */typedef int             jint;           /* signed 32 bits */typedef long long       jlong;          /* signed 64 bits */typedef float           jfloat;         /* 32-bit IEEE 754 */typedef double          jdouble;        /* 64-bit IEEE 754 */#endiftypedef jint            jsize;
还有一些调用平时注意的声明
#define JNI_FALSE   0#define JNI_TRUE    1#define JNI_VERSION_1_1 0x00010001#define JNI_VERSION_1_2 0x00010002#define JNI_VERSION_1_4 0x00010004#define JNI_VERSION_1_6 0x00010006#define JNI_OK          (0)         /* no error */#define JNI_ERR         (-1)        /* generic error */#define JNI_EDETACHED   (-2)        /* thread detached from the VM */#define JNI_EVERSION    (-3)        /* JNI version error */#define JNI_COMMIT      1           /* copy content, do not free buffer */#define JNI_ABORT       2           /* free buffer w/o copying back */#define JNIIMPORT#define JNIEXPORT#define JNICALL

 

 

VB如何创建数据绑定控件。 VB如何解决VB中的Grid控件的打印问题 VB如何强制文件对话框再次读取正确的磁盘? VB如何取得RichTextBox控件中光标所在行的值? VB如何设定 MsgBox 在若干时间之后若无回应則自动关闭? VB如何使用VB控件Commom Dialog VB如何用VB6写COM组件(二) VB如何用VB6写COM组件(一) VB如何在VB中使用Delphi的控件 VB如何在运行时动态增加控件 显示和隐藏鼠标-VB资料 VB用ActiveX Control Pad VB用API函数改进ListView 控件的显示效果 用VB6.0中文版进行DHTML程序开发 用VB编写标准CGI程序 用VB编写留言板 用VB播放FLASH动画 用VB开发进程管理软件 VB用WinSock设计Chat程序 运用MSChart,生成统计图形-VB资料 向文本框等等控件的系统右键菜单里追加自己定义的菜单-VB资料 在VB中用定时控件实现长定时操作 在Visual Basic中,在GotFocus事件中快速选定文本 在程序中注册和注销 OCX 控件 -VB资料 在运行时维护DBGRID的栏位宽度-VB资料 VB怎样使用VB开发基于Sybase的C/S软件 VB怎样在运行时动态生成多个相同的控件 直接编辑VB中网格控制项的两种方法 自制控件方面的有关知识-VB资料 Unicode vs Ansi -VB资料 VB 中调用 Word 拼写检查 《Delphi淡手辑略 之 数据库篇》:数据安全删除(函数) 请教! 我用setfocus使一个控件聚焦,但我想隐藏光标,不想让它在界面上闪动,怎么办? 用delphi 编防火墙 有谁知道ramdrive.sys在dos下的详细用法,敬请赐教,倍感感激!! 关于Delphi线程构造函数: 简单问题 ADSL代理上网部分站点上不去解决一例. 消息中间件的功能?各位铜人帮忙! 如何改变对话框和窗体的背景色呢? 《Delphi淡手辑略 之 数据库篇》:打印DBGrid中的所有数据(过程) 有关Delphi指针的问题,请高手帮忙!!!!!!! 还是weblogic问题 麻烦帮我检查一下代码,实在想不通 请问大家我新买一台品牌机,再使用时经常死机是怎么回事? 哪里有介绍Active Directory 的中文资料? 怎样在ListView组件的详细显示模式下,让屏幕自动随输出数据滚屏和聚焦在输出的数据上面。 实现接口时出错,分数大大的有 《Delphi淡手辑略 之 数据库篇》:数据集解构成树(过程) 100分求教!!!文章“如何快速自动生成并定制报表”的问题!!! 一个农民上网的代价! 怎样将分割视图在一开始显示的时候就是确定的? Win2000server如何设置成路由器? 存储过程和函数得问题 转帖]!现在各大城市求爱对话写真 如何把XML+XSL的输出结果显示到一个指定的HTML元素里? 有些API中的参数开头是lpsz ,lpsa ....请问什么意思?相关的也说说好吗?谢谢 为何长语句分不了行 我用vs.net正式版开发的留言簿提供全部源码下载 公车上的性骚扰 请问哪里有比较好的关于 OpenGL 的网站或者是论坛啊?小弟的毕业设计课题是关于这个的!(NULL) 一个高难度的问题,特急! 在linux下有没有类似windows当中的dos95.BAT的文件 为什么在程序运行SQL中的存储过程,会出现未能找到存储过程...,可是我在SQL中有这个存储过程阿! 不晓得《资本论》的英文名字叫什么,特地来请教大家 一个高难度的问题,特急! 一个高难度的问题,特急! llpei 谢谢你。请进来领分。 这是VS.NET的BUG吗?不是该怎么解决? Slice(FSortArray^, FSize)解释解释“^”和“Slice()” 笑话:面条族大战完整篇(共42篇) 一个高难度的问题,特急! 关于日期问题请教 急急急急...!在线等待!救命呀!!!!解决问题送200分!!! 紧急求援:需要Fastreport 2.45的fr_class.pas文件,谁有? 这样的数组声明错在哪? 我和大家有个约会 怎样根据计算字段(FieldType=ftCalculated)对数据集排序? 不好意思:想请教“京津塘”到底是什么意思?? 天哪 !!! PB 调用存储过程的问题又来了 。 救命帖!!!!!!!! 请问在delphi中怎么取得一个指针指向内容的值! 我该用用iis+asp还是apache+php呢? 元素表中 钙以后的原子怎么形成稳定结构. 《中国古代寓言故事》中一篇很重要的寓言 脊髓,大脑皮层,与神经中枢的关系是什么 在元素周期表中,什么元素的原子得电子能力最强?什么元素的原子失电子能力最强? 我对数学方面比较有兴趣,数学成绩在班上也不差,理科年级第18,可就是物理怎么也学不好,一点兴趣也没有,只能勉强及格,老是给总成绩拖后腿,特别苦恼.虽然不喜欢,但还是坚持好好听课,好好 写出表示含有八个质子,十个中子的原子的化学符号: 伟大抗震救灾精神的内涵是什么? 《中国古代寓言故事》有哪些?请写出15个成语~ 写出表示含有8个质子,10个中子的原子的化学符号 弘扬民族精神有什么伟大意义? 高中选理科后,如果只是物理和化学很好,但数学不好,会有什么后果? 分子、原子的直径是…… 这个故事的原文是什么,故事大概是这样的: 元素A原子每层上有2个电子元素B原子最外层比次外层多3个电子,它们形成的化合物的摩尔质量为( ) 为什么分子的直径等于原子的直径 索桥的故事里,什么东西比“故事更美、更好”?用原文回答. A元素的原子最外层电子数是a,次外层电子数是b,B元素的原子M层电子数是(a-b)L层电子数是(a+b),则a=?,b=? 铁原子氧分子哪个直径大 大脑皮层是 a.神经系统集中的地方 b.神经元细胞体集中的地方 c.神经集中的地方 d.神经纤维集中的地方 质量为2kg的物体由静止开始自由下落,在前2s内重力的平均功率为-------w;第2s末重力的瞬时功率为-------w 急 单原子分子的直径或尺度大小约是 神经元细胞体 神经细胞 神经 神经纤维 区别 关系 一个质量为2kg的物体由静止开始下落,则2s末重力的瞬时功率是多少?我要计算过程, 质子数为13和外有十个电子的微粒的符号和结构示意图是 神经纤维在神经元内,神经由很多神经细胞构成,这句话对吗?神经纤维 神经元 神经细胞 三者有什么联系? 辛亥革命精神是什么 读《北京的春节》一文,1.想一想,按照老规矩,北京人是怎么过春节的?给你印象最深的是什么?(简要回答)2.课文哪些部分详写,哪些略写?这样写有什么好处?)那你写出来啊!你不写完整我怎 物理,数学,化学,生物哪一门考研相对容易 结合辛亥革命的历史意义谈谈你对辛亥革命精神的认识和感受 谁知道《马说》原文额,译文也行 关于化学原子结构表 核电荷数,核外电子数,核电荷数的图~ 今年是辛亥革命100周年,与辛亥革命相关的知识有哪些? 马说翻译及原文 数学这门学科,我从小就学的不好,也就是...数学这门学科,我从小就学的不好,也就是数学的不好,使我的成绩一落千丈,我也试着从基础抓起,但也有较难的一面真是神秘莫测,怎样学好数学, 辛亥革命有什么重要意义?对大学生有什么借鉴作用? 符号函数可积分吗?有原函数吗? 刺激大脑皮层有什么作用?具体说应该是刺激大脑皮层中央前回底部有什么做用? 分子不同是由于构成分子的原子______或______不同 什么语言程序能解决符号函数积分的问题例如:求 y=a*x^2/(1+x^6-a*x^5+x^4+3*a*x^3+x^2) 的积分 第27题,小表分别是氢,氧,氯原子 造句这三个词 是积分符号,提示用有理函数和无理函数的积分做)1.S x^3/(x+3)dx2.S (3x-1)/(x^2+2x+5)3.S dx/1+(x+1)^(1/3) 中国古代寓言故事全部! 由不同原子构成的分子称为什么? 写出与Na+具有相同质子数和相同电子书的微粒符号2种 我数学成绩很好 可是语文和外语和物理和化学和生物成绩却不好但我是个理科生 该怎么办呢 构成分子的原子可以是同种原子,如————分子,也可以是由不同种原子,如————分子 matlab 求解积分函数∫(0,1)e²x dx求解函数 的数值积分和符号积分并比较结果求解积分函数∫(0,1)e²x dx求解函数 的数值积分和符号积分并比较 我要30篇中国古代寓言故事谢谢你们了,米有时间啦!要熟悉的,最好是成语,回答不太好+5,一般+10,很好+20,我要熟悉的成语! 1.辛亥革命时期,武汉发生的重大历史事件是?革命2.写出南京发生的历史事件(2个):还有农民推车给解放军运粮食是三大战役中哪个战役时候的场景? 和Na+具有相同质子数和电子数的微粒符号要2个 我是一名高三理科生 该如何提高 辛亥革命有哪些历史事件 携写出与Na离子(+1价电荷)具有相同质子数和相同电子数的微粒符号2种! 《中国古代寓言故事》有哪些寓言? 辛亥革命是什么历史事件?暑假作业有一个作文,"纪念辛亥革命100周年"谁能说一下辛亥革命是什么,具体发生在哪一年的什么时候. 马说原文及翻译 我今年高一英语和化学很差可以说不懂 请问我该学习文科还是理科希望一些明白人给些参考 辛亥革命的历史或故事尽量简洁一点! 脊髓的灰质是脊髓的神经中枢,那白质算什么?就是说神经中枢损坏了也不关白质的事吗?因为 脊髓白质 与 后根 连接,后根传感觉. 脊髓灰质 与 前跟 连接 ,前根 传 运动 的,所以神经中枢损坏还
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘