浅谈基于android平台的串口通信实现的论文

浅谈基于android平台的串口通信实现的论文

ID:10329494

大小:57.50 KB

页数:4页

时间:2018-07-06

浅谈基于android平台的串口通信实现的论文_第1页
浅谈基于android平台的串口通信实现的论文_第2页
浅谈基于android平台的串口通信实现的论文_第3页
浅谈基于android平台的串口通信实现的论文_第4页
资源描述:

《浅谈基于android平台的串口通信实现的论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、浅谈基于Android平台的串口通信实现的论文  摘要:串口在数据通信中应用广泛,但androidsdk指定使用java作为第三方应用开发语言,这给c语言实现串口应用带来了困难。虽然googleandroid已经发布了ndk(nativedevelopmentkit,原生态开发包),支持开发者用c/c++语言开发android程序,但目前官方提供的技术指导比较简略。通过开发一个android下串口通信应用实例,详细介绍了androidndk的开发流程,帮助开发人员快速的完成平台搭建。  关键词:android;ndk;jni;s

2、dk;串口  android是google推出的基于linux的开源手机操作系统,是一个专门针对移动设备设计的软件平台,包括操作系统、中间件和一些关键应用。它的软件架构包含四个层次,从高到低分别为应用层、应用框架层、系统运行层和linux内核层,如图1所示。每一个android应用程序都在它自己的进程中运行,都拥有一个独立的dalvik虚拟机实例。android发布初期,google就表示其虚拟机dalvik支持jni编程方式,也就是第三方应用完全可以使用jni调用自己的c动态库,但google官方并没有明确表示支持开发者使用这

3、种方法。终于在2009年6月,googleandroid发布了ndk,它支持开发者使用c/c++语言开发android程序。作为androidsdk的一个附加组件提供,开发者必须先安装androidsdk方可使用ndk。ndk的目的是为了增加代码的重用性及加快程序的运行速度,这有利于开发者从其他系统上移植软件到android平台。.cOm  1androidndk简介  在android上应用程序的开发大部分基于java语言来实现。要使用c或是c++的程序或库,就需要使用ndk来实现。ndk是nativedevelopmentk

4、it的简称。它是一个工具集,集成了android的交叉编译环境,并提供了一套比较方便的makefile,可以帮助开发者快速开发c或是c++的动态库,并自动的将so动态库和java程序打包成apk,在android上运行。有两个理由使用ndk:一是合理的重用现有的代码;二是在程序中某些关键的部分提高执行效率。  androidndk目前作为androidsdk的一个附加组件提供,开发者须先安装androidsdk方可使用ndk。在d的shell环境界面,可以使用大部分linux软件和功能。使用它我们可以方便的在acosx(inte

5、l)、linux32/64(x86),下载后解压即可使用。文中使用ake1.10、binutils、gcc-core、gcc4-core、gdb、pcre、pcre-devel、gnuae/usrname)的.bash_profile文件,在文件尾部加入如下代码,  ndk=/cygdrive/d/android/android-ndk-r5  exportndk  然后重新启动cygp;iscopy);  logd("openingserialport%s",path_utf);  fd=open(path_utf,o_rdi

6、oscfg;  cfmakerap;cfg);  cfsetispeed(cfg,speed);  cfsetospeed(cfg,speed);  }  在文件中,函数名这样定义:  jobjectjnicalljava_android_serialport_serialport_open,这个是jni的标准,定义需要按照如下格式:java_packagename_classname_methodname  接着创建文件jni/android.mk.这个文件是我们本地c代码的makefile。文件内容  local_path:

7、=$(callmy-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这个变量是编译系统提供的用来指明一个gnumakefil

8、e文件添加这句主要的目的是清理所有的local_xxx,比如local_module、local_src_files等。在每个新模块的开始处需要添加这句。  local_module:=serial_port这句定义了模块名称,将来编译的库或者可执行程序就以此命

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。