1 / 29
文档名称:

AndroidJNI开发入门与提高.doc

格式:doc   大小:148KB   页数:29页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

AndroidJNI开发入门与提高.doc

上传人:顾生等等 2018/5/2 文件大小:148 KB

下载得到文件列表

AndroidJNI开发入门与提高.doc

文档介绍

文档介绍:Android JNI开发入门之一
2010十二月07
作者:
Simon_fu
目录: Android, Java, ...
评论: 1 条评论
JNI在Android系统中有着广泛的应用。Android系统底层都是C/C++实现的,上层提供的API都是Java的,Java通过JNI调用底层的实现。比如:Android API多媒体接口MediaPlayer类,其实底层通过JNI调用libmedia库。由于JNI的存在可以让我们重用很多已经存在C/C++的库,省去了重复开发的麻烦,并且可以利用很多开源的库(Android库中就有很多开源库,比如libjpeg,libpng等等),并且让我们开发的程序更有效率(C/C++代码发挥硬件最佳性能)。如果你对标准JNI不熟悉的话,可以先参考我的博文《Linux下JNI实现》,文中介绍了怎样用标准JNI在Linux系统中实现一个Helloworld程序,可以让你对JNI有一个初步的认识。本文简单介绍一下怎样在Android下面怎样用JNI开发程序,并开发一个经典Helloworld应用程序。
交叉编译环境
首先是要搭建交叉编译环境,因为Java层的应用程序是和硬件无关的,JDK编译即可;但是Native C/C++代码是和硬件相关的,必须要用交叉编译器编译成特定硬件可执行代码。请根据你的硬件平台搭建你的交叉编译环境,我的MIPS平台,当然选择的是MIPS的交叉编译器,如果你是Arm的请配置自己的交叉编译器。
我们首先编译一个Native C的helloworld程序,一个学习怎样在Android中增加一个程序,另外也可以验证我们的交叉编译环境是否正确,可以参考《Android编译环境(1) –编译Native C的helloworld模块》。如果这个步没有问题说明你的交叉编译环境是没有问题的,可以继续往下面进行。
Java编写的Android应用程序
我们首先用java编写helloworld应用程序(APK),这个代码很简单创建一个HelloWorld activity。代码如下:
.simon;
import ;
import ;
import ;
public class HelloWorld extends Activity {
private static final String TAG = "HelloWorld";
static {
("helloworld");
}
private native String printJNI();
/** Called when the activity is first created. */
***@Override
public void onCreate(Bundle savedInstanceState) {
(savedInstanceState);
setContentView();
(TAG, "Activity call JNI: " + printJNI());
}
}
这个HelloWorld Activity非常简单,只是调用JNI接口printJNI()打印一些信息到Android logger上面。我们需要关注一下的是printJNI()的声明,有一个native的关键字,说明他是一个用native代码实现的函数,需要用JNI调用Native代码。另外注意static代码段,这段代码意思是当类HelloWorld第一次被加载的时候,(请注意这里写的是库名称,在Linux中共享库名为xxx共享库,。,而是helloworld。如果写错误了将会加载库失败,将会收到异常)。
C语言实现helloworld共享库
接下来我们需要来完成Native 代码部分了,这里需要强调一下,Android JNI实现中为C/C++提供了两套不同的API,调用的时候需要注意,否则非常有可能你会受到一些libc库的崩溃信息,没准儿会把你整
“崩溃”,呵呵!下面先实现Native C来实现helloworld库。
如果你对Java标准JNI熟悉的话,肯定知道javah工具,可以根据java源程序,生成Native代码的头文件(可以参考我的博文《Linux下JNI实现》)。如果你是在Eclipse

最近更新

教科版带电粒子在磁场或电场中的运动 15页

小学生形近字辨析题集 51页

二零二四年高端半挂车租赁与维护管理协议 15页

二零二四版bot平台建设与运营融资合同范本 14页

二零二四版PVC地胶材料定制生产与施工管理合同.. 14页

二零二四版不锈钢设备租赁与维护服务合同 15页

二零二四版仓储物流中心入驻场协议书下载 14页

二零二四版企业财务数据安全与隐私保护服务合.. 15页

二零二四版保温材料批发及零售代理合同精选-@.. 13页

二零二四版冰箱产品研发与创新合作合同 16页

二零二四版办公室装修及室内软装搭配服务合同.. 14页

二零二四版厨师长任用与团队建设合作合同 15页

二零二四版园林景观草皮种植合作合同 17页

二零二四版城市综合体安保人员派遣协议 15页

二零二四版安全生产事故赔偿与处理协议 15页

二零二四版教育培训场地租赁合同范本 11页

二零二四版新材料采购代理服务条款范本 17页

外研版初中英语句子翻译复习(外研版)初三上册.. 29页

二零二四版海洋油气开发包船运输与作业合同参.. 16页

二零二四版特长生培养班学员辅导协议样本 17页

二零二四版生态环保型厂房出租居间中介协议 14页

二零二四版百货商场导购员劳动合同书 13页

二零二四版绿色办公用品耗材定制生产合同 14页

二零二四版航空货运代理服务及仓储合同 16页

二零二四版车辆无偿租赁与配件供应合同 15页

二零二四版食品生产设备采购合同范本指南 17页

二零二四版高新技术企业项目派遣合作协议 14页

二零二四版高铁用高强度玻璃供货与质量保证合.. 16页

代理借款合同2025年通用 13页

借款委托保证合同2025年通用 13页