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

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

 

 

传苹果下一代Mac OS中将整合Siri及地图服务 TripAdvisor:使用AWS比服务器托管成本节省50% [MDCC精华]亚马逊AWS布道师Kingsley Wood:灵活IT架构之道 亚马逊诉讼彰显谷歌在公有云领域威慑力十足 AWS全球创业大赛 奖金100000美元 YY:破冰而出,成功上市 Xtreme Labs工程师:Android开发常陷入的五大深坑 Elon Musk:没了乔布斯的苹果干不过谷歌 旁门左道:第一次开发移动游戏就赚到28623美元 移动周报:小聪明赚大钱 游戏SEO如何耍鸡贼? 创翼全国 六城联动——2012移动互联网应用创新大赛开放日 全国六城联动沙龙 爱丽丝+福尔摩斯 Game Insight解谜游戏玩出新花样 Windows Phone 8 SDK大升级:部分功能兼容WP7 信息大图《愤怒的小鸟》发家史 Intel预测:10年之后你的手机是48核的 消息推送惹怒用户:应用开发者请别太过分 创新工场:我们如何孵化未来? iOS越狱比例下降:国内移动开发环境怎么了? 响应式图像技术与资源分享 看Twitter如何应对大选:少些Ruby 多些Java 软件开发中常见的十大系统瓶颈 [CTO俱乐部87期]三人行架构分享:开源是背后的支柱 推荐5款超实用的.NET性能分析工具 OpenStack基金会主席Alan Clark访华 欢迎提问 程序员的十大烦恼 兼顾性能和兼容体验:HTML5时代的浏览器全面测试 Lisp的本质 Amazon工作环境恶劣员工高流失率 为何却依然能持续成功和创新? 对几个软件开发传统观点的质疑和反驳 [实战分析] 编写高效的JavaScript程序 Twitter的系统编程 D3D的简单问题 如何控制LineTo划线的颜色和宽度? 高分求《面向对象分析与设计》杨正甫编这本书下载地址。。。 学习DELPHI用铁道出版的乔林《参透Delphi/Kylix》 如何? 请问是否有比较简便的方法可以知道,程序中哪些变量定义完后根本不用? 按钮提交并链接不同页面的问题。 简单的问题 请教VC++高手:在MFC中,如何把剪贴板中的位图按原比例打印出来? 分不够再加! 怎么样在vb中读取bmp的位图信息,将图中所有黑颜色的象素 谁在20分钟内答出以下问题能拿高薪 如何修改注册表的键的默认键值? WINXP开始运行宽带播号程序缓慢,什么原因? newwish2 给我一个例子,邮箱:make_a_wish@163.com!!!着急呢!! evc4.0中文显示的问题! struts--html:select 为何出不来? 讨论:关于WinXP下开发的COM+的分发问题!! 菜鸟的小问题!! 一个关于东芝笔记本的故障 请问JBuilder错误提示:cannot access directory javax\mail at line 7, column 1 CSDN的速度越来越慢了,来这里的高人也越来越少了! 有没有DOS很熟的仁兄?纯DOS下和WIN NT4.0联网 小小问题!!! 困扰我多时了。。。 sybase 在程序中连接的问题。急,我咨询Sybas公司也不行。 按钮茶馆开张啦,有闲的进来聊天吧~ 小問題 PhoebusApollo(sunny) 你说要开贴,又没分,我有,给你100分,进来领吧!呵呵,不用谢!:) 关于DBGridEh排序的问题,急急急!!! ora-12224错误,tns no listener错误 !在线等待 ,急~! 求助jb9的破解 报表问题,急呀,救命呀~~~55555~~~~ 500分求解决一个问题 在线等待 解决立即给分 2003下为什么我的声卡不能用? 在程式AAA.PRG中如何修改表的字段的類型,比如字段C類型改為N類型??很急!!! 为什么有时候成员函数或变量显示不出来 救命!我在程序中使用webbrowse控件………… 在线等待。 也许是一个很简单的问题! 连接mysql出错 寻关于工控的中英文对照资料 想在暑假打工(计算机方面的)需要什么条件啊? 关于SQL SERVER的疑难问题!来者有分!(在线等待!分数不够可以再加) MTS与线程——高分相赠!!!! 来看看啊,告诉我再哪里下就给分啊~~ 大对象问题,所有书都是这么说的,可是都作不成功? 如何指定tquery中的某一行? 如何通过API发送翻页按键给控件? 在jbuilder 中 不能通过 创建Ejb Tester对EntityBean进行测试吗?SessionBean都可以的 如何在ie中点右键获得这个ie窗口的window Text以及其主框架的URL。 关于Kdevelop开发 大家讨论一下项目负责人到底该赚多少钱(年薪)? ★★★★★如何在文件下载完毕后自动关闭浏览器??★★★★★ #### 关于CWebBrowser控件 #### 已知函数f(x)=sinx+cosx.求f(π/12)的值 王码五笔86版怎么造词我一直用86版五笔,像万能呀,极点呀也用过,但不顺手,像四码词86版自动上屏,但其他的还得按空格,但我不会用它造词,有点不方便, 消除业障是什么意思 已知函数f(x)=(cosx+sinx)(cosx-sinx)(1)求函数f(x)的最小正周期(2)若0 近在咫尺中咫的意思 第4和的7题怎么写啊! 顷字左边的这部分王码五笔怎么打,86的 及字怎么打啊,我用的是王码五笔啊 7年级上册数学195页第2题和196页第4和11题的答案 横眉冷对千夫指下一句 已知直线l过点(1,2)且与两坐标轴正半轴分别交于A,B两点求三角形AOB最小时直线l的方程.(O为原点) 什么是业障? 已知函数f(x)=(cosx)^2-(sinx)^2则f(2005π/12)=?如题答案是二分之根三,但是为什么? 语音四要素对于现代汉语普通话语音的重要意义 第二题,第四题,第七题, 日珥是怎样形成的太阳上的日珥 “嗯”这字王码86五笔怎么打出来??! 材料科学基础四要素包括材料的化学成分、组织结构、( )和材料性能.A、合成与加工 B、材料的制备 C、显微缺陷 D、材料失效到底是A还是B呢?一直很让人犹豫. 如何保持清晰的思路? “横眉冷对千夫指”后半句快 语音四要素在汉语中有什么作用 如何在英语阅读的时候保持清晰的思路 近在咫尺是什么意思快点 新东方万泉河校区 的201教室是多少人上课的教室啊?是教室能装多少人就有多少人上课么?这个教师能装多少人啊? 为什么到了凌晨我的思路会很清晰? 近在咫尺什么意思? 在∠AOB内过O点引出30条射线,这样能组成个角. 汉译英 1.这是字母L.2.我在武汉二中广雅中学七年级1班.3.我最喜欢的学科是数学和英语. 含有两级的数怎样写?先写( 什么 )级,再写( 什么 )级;哪个数位上一个含有两级的数怎样写?先写( 什么 )级,再写( 什么 )级;哪个数位上一个单位也没有,就在那个数位上写( 什么 ). 已知钝角∠AOB,点D在射线OB上...50悬赏伺候已知钝角∠AOB,点D在射线OB上.(1)画直线DE丄OB.(2)画直线DF丄OA垂足为F.要图, 如何保持每天头脑灵活,思路清晰 求函数的单调减少区间 (只要结果就行了)求函数Y=X^3 - 3X^2 - 9X -6的单调减少区间 羽毛球比赛三局两胜15分制一场多长时间,21分呢? 解析几何关于面积最值问题在平面直角坐标系xOy中,过定点C(o,p)作直线与抛物线x^2=2py(p>0)相交于A,B两点,若点N是点C关于坐标原点O的对称点,求三角形ANB面积的最小值. 如果一个角的邻补角等于这个角的3倍,求这个角急急急,能有过程吗? 如何对现代散文进行解读与散文教学中存在的问题 原点算不算函数图像与坐标轴的公共点(1小时内)函数Y=2X方-6X与X轴和Y轴的公共点的坐标,算出来有坐标是原点,那要不要算在与x、y轴的公共点里啊? 浩翔怎么解释这是个空压机产品的名字,请问下取这个名字怎么解释好些呢标志设计中要解释浩翔这个名字的含义 如何进行科学有效的教学评价 “风高秋月白”的下句是什么?对对子 近在尺的咫的意思 拔河比赛有五个参赛队采用三局两胜要怎么分 风高秋月白 请问:“咫尺”中的“咫”是什么意思? 已知三角形AOB和三角形COD都是等腰直角三角形,AO=BO,CO=DO,三角形AOB可绕着O顺时针旋转.(1)如图1,当点A,O,D在同一直线上时 请指出下列关系:①AB与CD:___;②AC与BD:___.(2)若△AOB旋转到图2 ,图3位置时, 风高秋月白 译文,快 "尺咫"是什么意思 发个链接 学对对联;1风高秋月白,---------2过天星似箭,---------3;春联两幅-------------------------------- “近在咫尺”咫什么意思? 赢政的父亲是?拜托各位大神 比亿大的数是什么? 第七题,角3角4那个! 赢政是什么人 个签:曾经近在咫尺的未来已天涯. 一个大于0度小于180度的角的补角有无数个?对还是错 四条射线最多能画几个钝角?最好把图画出来 近在咫尺的咫的意思有没有现代意思 把3KG水加到盐水中,得到浓度为10%的盐水,再把1KG盐加到所得到的盐水中,这时盐水的浓度为20%.原来盐水的浓度为多少?和说明 第4和7题 天文学家发现酷似太阳系行星系美政府高官因奥巴马医改核心举措漏洞频国有银行副处长杀妻判死刑 被曝与多名村主任骗千万拆迁款获刑14年 称不了中国疾控中心专家:H7N9禽流感疫情纽约油价29日下跌美政府高官因奥巴马医改核心举措漏洞频中储粮:转基因油未污染国储库 国储菜美政府高官因奥巴马医改核心举措漏洞频英国将发行伊斯兰债券 吸引中东投资者孟加拉国大罢工第三天造成至少4人死亡美政府高官因奥巴马医改核心举措漏洞频中方支持安理会继续改进工作方法杨洁篪会见伊朗伊斯兰议会议长拉里贾尼伦敦股市股指29日上涨欧洲强风暴抵达俄罗斯西北地区环保税引发民众暴力抗争 法国政府宣布农业主产区生产积极性不高 农业干部“黎巴嫩拒绝叙利亚化学武器进入其领土伦敦股市《金融时报》100种股票平均王正伟访问巴基斯坦着力于时代与创新网络主播,虚拟世界里的寻梦者“城中村”准新郎为生二胎悔婚?广州萝岗辅警擒获1800余嫌犯被盗钻石项链价值28940000元“耻辱日”,英超前三皆出局“双枪侠”黑道杀手陈福祥落网不欺于心中山高速两车相撞致一人死亡武汉发生砍人事件造成1死7伤国足之憾,恒大圆水边木子美 续与友人书国足之憾,恒大圆喻恩泰被妻子称赞:“我妈也变成他的粉积蓄与绽放区聘的编制争取到了下一篇日本人质视频涉嫌后期拼接大屠杀与联合国外展方案主管:审视历史文学馆:对文学核心进行多重引爆皇马在C罗染红后赢球
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘