- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅谈基于Android平台的串口通信实现的论文.doc
浅谈基于Android平台的串口通信实现的论文
摘要:串口在数据通信中应用广泛,但android sdk指定使用java作为第三方应用开发语言,这给c语言实现串口应用带来了困难。虽然google android已经发布了ndk(native development kit,原生态开发包),支持开发者用c/c++语言开发android程序,但目前官方提供的技术指导比较简略。通过开发一个android下串口通信应用实例,详细介绍了android ndk的开发流程,帮助开发人员快速的完成平台搭建。
关键词:android;ndk;jni;sdk;串口
android是google推出的基于linux的开源手机操作系统,是一个专门针对移动设备设计的软件平台,包括操作系统、中间件和一些关键应用。它的软件架构包含四个层次,从高到低分别为应用层、应用框架层、系统运行层和linux内核层,如图1所示。每一个android应用程序都在它自己的进程中运行,都拥有一个独立的dalvik虚拟机实例。android发布初期,google就表示其虚拟机dalvik支持jni编程方式,也就是第三方应用完全可以使用jni调用自己的c动态库,但google官方并没有明确表示支持开发者使用这种方法。终于在2009年6月,google android发布了ndk,它支持开发者使用c/c++语言开发android程序。作为android sdk的一个附加组件提供,开发者必须先安装android sdk方可使用ndk。ndk的目的是为了增加代码的重用性及加快程序的运行速度,这有利于开发者从其他系统上移植软件到android平台。.cOm
1 android ndk简介
在android上应用程序的开发大部分基于java语言来实现。要使用c或是c++的程序或库,就需要使用ndk来实现。ndk是native development kit的简称。它是一个工具集,集成了android的交叉编译环境,并提供了一套比较方便的makefile,可以帮助开发者快速开发c或是c++的动态库,并自动的将so动态库和java程序打包成apk,在android上运行。有两个理由使用ndk:一是合理的重用现有的代码;二是在程序中某些关键的部分提高执行效率。
android ndk目前作为android sdk的一个附加组件提供,开发者须先安装android sdk方可使用ndk。在d的shell环境界面,可以使用大部分linux软件和功能。使用它我们可以方便的在ac os x(intel)、linux32/64(x86),下载后解压即可使用。文中使用ake1.10、binutils、gcc-core、gcc4-core、gdb、pcre、pcre-devel、gnu ae/usrname)的.bash_profile文件,在文件尾部加入如下代码,
ndk=/cygdrive/d/android/android-ndk-r5
export ndk
然后重新启动cygp;iscopy);
logd(opening serial port %s, path_utf);
fd = open(path_utf, o_rdios cfg;
cfmakerap;cfg);
cfsetispeed(cfg, speed);
cfsetospeed(cfg, speed);
}
在文件中,函数名这样定义:
jobject jnicall java_android_serialport_serialport_open,这个是jni的标准,定义需要按照如下格式:java_packagename_classname_methodname
接着创建文件jni/android.mk.这个文件是我们本地c代码的makefile。文件内容
local_path := $(call my-dir)
include $(clear_vars)
local_module:= serial_port
local_src_files := serialport.c
local_ldlibs:= -llog
include $(build_shared_library)
local_path:=$(callmy-dir)这句用来指定编译的路径通过调用宏my-dir获取到当前工作的路径。
include$(clear_vars) clear_vars这个变量是编译系统提供的用来指明一个gnu makefile文件添加这句主要的目的是清理所有的local_xxx,比如local_module、local_src_files等。在
您可能关注的文档
- 浅谈城市排水体制的选择及管理的论文.doc
- 浅谈城市排水工程施工的论文.doc
- 浅谈城市智能交通管理系统及其经济效益探究的论文.doc
- 浅谈城市水土保持生态环境的建设的论文.doc
- 浅谈城市水资源可持续发展与利用探讨的论文.doc
- 浅谈城市污水处理中污泥处理的可持续性分析的论文.doc
- 浅谈城市污水处理及环境保护问题的论文.doc
- 浅谈城市污水管网的建设和管理的论文.doc
- 浅谈城市滨水景观的生态规划.doc
- 浅谈城市环境问题及对策研究的论文.doc
- 浅谈基于AT89S51单片机的信号发生器设计的论文.doc
- 浅谈基于NOAA数据的北亚冻土变化研究的论文.doc
- 浅谈基于RFID系统的超高频室内传播模型研究的论文.doc
- 浅谈基于“双闭环”控制的教学组织管理的论文.doc
- 浅谈基于产业化的社会体育指导员队伍建设思考的论文.doc
- 浅谈基于任务驱动的 教学媒体理论与实践 实验教学研究的论文.doc
- 浅谈基于动阀套位移反馈的电液比例方向节流阀动态设计与仿真的论文.doc
- 浅谈基于发展目标的高校教师教学工作综合评价探讨的论文.doc
- 浅谈基于可持续发展型电力企业职工培训模式创新研究的论文.doc
- 浅谈基于国际化目标的日本文化课内容研究的论文.doc
最近下载
- 第1课 家居清洁与整理技巧 课件 2023—2024学年苏教版初中劳动技术八年级下册.pptx VIP
- 黑龙江哈尔滨师范大学附属中学2024-2025学年高一上学期期末考试政治试题 含解析.docx VIP
- T_WSJD 18.14—2021_工作场所空气中化学因素测定煤焦油沥青挥发物、焦炉逸散物中苯溶物的称重法.pdf VIP
- 人教版七年级上册英语字帖.pdf VIP
- 湘2017J907 居住建筑节能65%围护结构构造图集.pdf
- 交通局交通安全培训.pptx VIP
- 西南财经大学答辩通用PPT模板.pptx VIP
- 2025年最新人教版八年级(初二)数学上册教学计划及进度表(新课标,新教材).docx
- 《近代文学》教学大纲.pdf VIP
- 2024美妆行业数字化转型白皮书.pdf VIP
文档评论(0)