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

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

 

 

Gmail新设计影响邮件营销 Fcaebook间接获利 百度高德小米网易杭研讲师登场 SDCC 2013第二批议题发布(图) [开源推荐]JS-Git:一款纯JavaScript实现的Git项目 良心企业Lavabit、Slient Mail相继关闭,美国云安全已死? 一周观察:LXC真的是PaaS的未来吗? [企业开源系列]Google背后的开源力量 合作: “云”潮中淘金的金钥匙 Windows 8.1尚未发布 Build 9471版遭泄露网爆高清大图 Imangi创始人:我眼中的App Store 职业设计生涯:打造世界上最小巧最强大手电 【SDCC 2013】Coding For Fun活动火热招募中! YARN之上的大数据框架REEF:微软出品,是否值得期待? 创建大数据公司之前你需知晓5件事 前途渺茫,考虑出售的黑莓还能找到买家吗? 帮助开发者轻松管理项目的8款在线工具 现代Web应用开发者必备的六大技能 JavaScript异步编程好助手:Promise模式 功能解析:Red语言推出0.3.3新版本 可穿戴?可吞咽!UI和UX的悄然转变 华为刘成:讲述开发者联盟的故事 出尔反尔,Amazon咬文嚼字玩转私有云 创业公司SOASTA:曾帮助伦敦奥运会官网进行云负载测试 金山云进一步聚焦云存储 Facebook公布用户数据:美国移动用户占比78% Zynga开源服务器监控工具zPerfmon 上海海事大学王洁:打造物流教学科研应用云平台生态系统 15个步骤创立技术公司,并收获千万用户(二) HTML5发展慢热 开发者热情不减 NimbleBit孪生兄弟创始人:最后悔没有专注和扩大品牌 将对Windows形成挑战:谷歌在Chrome OS中默认支持Office 微软的企业社交大动作:Yammer发布移动SDK 如何在Jboss3中建立一个守护线程?? MyICQ真的能免费吗?大家一起来交流交流. 一个小问题 关于DATAWINDOW的问题,在线等待 COBOL语言主要干什么用?它有什么特殊功能,什么公司或个人开发的?现在它还有市场吗? 非高手就不要进来了!很难的。 域登陆的问题 请教高手指导WINDOWS消息的问题!!!!! 互联网在线支付平台可行性讨论, 谁安装过Ehlib 2.4a?为什么我会出现File not found: 'DBSumLst.dcu'??? B/S结构的ERP系统是使用J2EE和.NET的架构哪个比较好? 我是初学者,请教一个简单的问题,关于jbuilder7和tomcat的 急救 关于b/s下 文档删除的问题 请热心的朋友一定看——帮忙 本人一定感谢大家——加分 实际编程中碰到的问题,高手赐教 关于树的问题!急 C++菜鸟有分!!! 无线问题 如何管理软件系列版本 快要疯掉了!服务器端与客户端的文件传送问题,请高手千万援助! 山东的朋友能否将较好的公司和较差的公司曝光一下!!!! 有哪位高高手知道ldap数据库怎么进行迁移呀? 互联网在线支付平台可行性 关于Form的问题??? 简单数字段问题 不能用redhat7.3自带的输入法,中文名字显示为问号。怎么解决 请问怎样把整型转换成字符串型? 谁在BCB下用过研华的PCL-812采集卡? 8数码和8皇后的算法,大家指点我一下看看,up有分,分可以加 数据库连接讨论!各位在连的时候用的是ADO,还是RDS? 有关上网设主机的问题(双网卡)(在线等) directx8中哪只函数支持播放内存中的声音文件 万分紧急!!!!!!先谢过! 那里又"绝世宝贝"下载? 哪位大哥帮翻译一句话!非常感谢!!!!!!!!!! 请问一个问题:用acdsee如何把点阵图转化成矢量图? cdonts在客户端发送附件,为什么失败? 第一行,第一列错误是什么回事阿? 怎样计算php里的时间差,mysql的时间差? 关于控制台程序 BYTE型怎么 输出到文件(急) 广州IT俱乐部活动讨论 OleContainer1对象如何使打开的文件嵌在OLE里面,而不是在外部打开DOC文档. 寻兼职程序员,开发一个的屏幕取词工具软件 那里有interdev下载?在线等 小弟初学vb.net,现有一题急需帮忙. oracle9客户端连接oracle816:tns 出错: 写文件换行,再按行读出 ASP开发工具的讨论!大家都用什么开发工具!DreamWeaverMX有没人用啊?看起来功能挺强的! 哪位大哥用过toplink连接oracle数据库的,请进 如何获得给定的文件的路径,比如文件"a.txt"发路径? (((SOS)))在WebForm中怎么样用程序隐藏dataGrid由属性生成器生成的按钮列(删除。。。) 如何计算LED光源的隧道灯的功率因数? 法治问题是不是一个政治问题? 若导体两端电压为6v,通过导体电流为1.2A,若导体两端的电压变为12V,则导体的电阻为多少? LED球泡灯功率因数低照明解决 青岛哪个厂家的防锈剂好用? 测铁原矿品位应取多少原矿 LED灯具怎么计算功率因数 红血细胞没有细胞核,而寿命也较其他具备细胞核的细胞短,试加以解释. 科学到底有没有极限?从宏观上科学研究到了大爆炸理论.说世界是由一个点爆炸而来的,在这个点上没有时间没有空间.没有时间也就是没有以前.从微观角度上,人们很早就研究到了原子结构,并 荧光粉的价格 血球计数仪的使用寿命是多久 李约瑟在《中国科学技术史》中说 中国的科技发展到宋朝已呈巅峰状态,再许多方面实际上已经超过了18实际的英国或欧洲的水平.说明宋朝“已呈巅峰状态”的科技得以产生的社会条件我是 请问这是什么原因造成钢化玻璃破裂,是外力还是自爆 从血细胞形态分析与人体衰老看神源口服液的关系如何从血细胞形态分析与人体衰老看神源口服液 近年来,科学研究人员通过大量计算机显微血相检测发现:人体的血细胞形态呈现出千姿 我国科学技术的巅峰是在宋朝吗? 什么是钢化玻璃自爆?谁能给说说这种现象产生的原因和情境,以及表现是什么样子的.我头回听说玻璃自爆,很好奇. 迈瑞动物血球分析仪2800型寿命几年? 电路如题图2-21所示,U_s=30V,I_s=1A.试用节点电压法求各节点电压及各电源发出的功率. 明朝地图求明朝前期详细国家地图,要精确道中小城市,最好是1500年左右.要有华北地区和福建的部分较有名声的中小城市即可,希望各省分界线再明显一些 1mol硫酸在水溶液中电离出的离子数是多少? 电路分析基础题.试用节点分析法求电压u 电压源的电流是多少,为什么会这样? 1mol硫酸在水溶液中电离出的离子数怎么算 如图所示的电路中,U=12V,滑动变阻器AB的总电阻为42Ω,现要使标着“6V,1.8W”的灯泡L正常发光,那么Ap间的电阻应为多少?此时滑动变阻器上消耗的功率多大? 各种常见灯具,家用电器功率因数白炙灯泡、电子节能灯、冰箱、电视、电磁炉等的功率因数 硫酸溶液?它在水中电离了,还怎么保持硫酸的化学性质啊[电离分子都没了啊} 一个电阻器电阻为20Ω,通过他的电流是2A,则电阻的电功率是多少瓦?当它两端的电压为12v时,它的实际电功率又是多少瓦? 文明礼仪安全 廉洁教育知识竞赛题目征集啊? 走一步再走一步对人物刻写采用了()()()()描写方法 走一步再走一步的读书笔记怎么写~ 几个安全知识竞赛的问题 食品生产环节的监管由______负责A.工商行政部门 B.质量监督部门 C.卫生行政部门 D.农业行政部门 ()触电后的生理险象是_______.A.痉挛 B.昏迷 C.心室颤动 D.呼吸 走一步再走一步语段运用哪些人物描写方法 用节点法求电路中电流i 关于安全教育的问题三月是安全教育月写一篇作文让我看一下该怎么写或是告诉我要注意什么写哪方面 电磁转矩与转子磁场的关系 知道原矿量及其品位如何计算金属量? 把铁粉和硫粉以适当的质量比均匀混合,堆放在石棉网上,然后用烧红的玻璃棒的一端接触混合物.这时部分混合物迅速变成红热状态,玻璃棒拿开后,反应继续剧烈进行,直至全部混合物呈红热 请问这个稳压可调电路的输入电压是任意的吗? 养花 老舍中的两个第1个指什么? 血液、血浆、血细胞三者概念关系是? 低碳世博有关知识 硫酸氢钠与氯化钡的反应方程? 宋朝的商业革命具体表现是是交子的出现还是城镇的兴起? 世博会用了哪些低碳设施是问卷性的,我有急用, 氯化钡与亚硫酸氢钠反应吗?若反应,化学方程式是什么 为什么说宋朝是我国古代科技发展的一个高峰时期 世博会低碳场馆有哪些?要尽可能多,并要附20字左右说明 硫酸氢钠和氯化钡的反应帮我写方程式! 宋朝商业革命美国史学家斯塔弗里阿诺指出“...宋朝值得注意的是,发生了一场名副其实的商业革命”,以下属于“商业革命”的是( )A出现独立经营的商人B流通领域出现纸币C大量的商业市 有一电阻线,若两端家6V电压时,电阻线中的电流为0.5A,则该电阻线的电阻为___Ω,若它两端改加12V的电压时,则通过电阻线的电流为___A,电阻线的电阻为___Ω;若在电阻线两端不加电压时,则通过电阻 硫酸氢钠与氯化钡反应的方程式 求明朝演变地图 宋朝发生商业革命美国史学家斯塔弗里阿诺指出“...宋朝值得注意的是,发生了一场名副其实的商业革命”,以下与这场“商业革命”无关的事( )A城市的坊市界限被打破B纸币交子的出现C海 12V电压6W的灯,电阻是多少?假如将这个灯放在6V的电路中,通过灯丝的实际电流是多少A? 谁有明朝的地图, 如何运用法治思维和法治方式 一导体两端的电压为6V,通过它的电流为0.6A.当它两端的电压力为12V时.它的电阻为多少,电流是多少? BB霜是不是含有荧光粉成分? 对建设法治政府理解错误的是A.建设法治政府,是落实依法治国方略,推进社会主义民主与法制建设的重要内容B.建设法治政府,必须全面推进依法行政C.建设法治政府,就是要提高政府管理人民群 已知 原矿品位 精矿品位 尾矿品位 求精矿产率(公式)
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘