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

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

ID:9727716

大小:61.00 KB

页数:7页

时间:2018-05-06

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

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

1、浅谈基于Android平台的串口通信实现  摘要:串口在数据通信中利用广泛,但AndroidSDK指定使用Java作为第3方利用开发语言,这给C语言实现串口利用带来了困难。当然GoogleAndroid已经经发布了NDK(NativeDevelopmentKit,原生态开发包),支撑开发者用C/C++语言开发Android程序,但目前官方提供的技术指导比较简略。通过开发1个Android下串口通信利用实例,具体先容了AndroidNDK的开发流程,帮助开发职员快速的完成平台搭建。  关键词:Android;NDK;JNI;SDK;串口  Android是Google推出

2、的基于Linux的开源操纵系统,是1个专门针对于挪动设备设计的软件平台,包孕操纵系统、中间件以及1些关键利用。它的软件架构囊括4个层次,从高到低分别为利用层、利用框架层、系统运行层以及linux内核层,如图一所示。每一1个Android利用程序都在它自己的入程中运行,都具备1个独立的Dalvik虚拟机实例。Android发布初期,Google就表示其虚拟机Dalvik支撑JNI编程方式,也就是第3方利用完整可以使用JNI调用自己的C动态库,但Google官方并无明确表示支撑开发者使用这类法子。终究在二00九年六月,GoogleAndroid发布了NDK,它支撑开发者使用

3、C/C++语言开发Android程序。作为AndroidSDK的1个附加组件提供,开发者必须先安装AndroidSDK方可使用NDK。NDK的目的是为了增添代码的重用性及加快程序的运行速度,这有益于开发者从其他系统上移植软件到Android平台。  一AndroidNDK简介  在Android上利用程序的开发大部门基于Java语言来实现。要使用C或者是C++的程序或者库,就需要使用NDK来实现。NDK是NativeDevelopmentKit的简称。它是1个工具集,集成为了Android的交叉编译环境,并提供了1套比较方便的Makefile,可以帮助开发者快速开发C或

4、者是C++的动态库,并自动的将so动态库以及java程序打包成apk,在Android上运行。有两个理由使用NDK:1是合理的重用现有的代码;2是在程序中某些关键的部门入步履行效率。  AndroidNDK目前作为AndroidSDK的1个附加组件提供,开发者须先安装AndroidSDK方可使用NDK。在e)的.bash_profile文件,在文件尾部加进以下代码,  NDK=/cygdrive/d/android/android-ndk-r五  exportNDK  然后从新启动Cygwin。输进cd$NDK,假设输出上面配置的/cygdrive/e/android-

5、ndk-r五信息,则表明环境变量设置胜利了。接下来便可以够用Cygwin来编译咱们的NDK代码了。  三AndroidNDK开发实例  开发实例是1个Android平台上的收音机程序,该利用通过调用串口API与外围收音机芯片通信,入而节制收音机芯片完成搜台、显示等功能。  AndroidNDK开发1般有下列步骤:  一)JNI接口设计;  二)使用C/C++实现本地法子;  三)天生动态链接库;  四)将动态链接库复制到Java工程,天生.apk文件。  首先,创立1个NDK工程,然后在这个文件夹下树立jni以及src两个目录,jni用来寄存咱们的C文件,src是调用C

6、库的Java接口文件。接着创立jni/SerialPort.c,该文件的主要作用是完成串口的打开以及封锁。JNIEXPORTjobjectJNICALLJava_android_serialport_SerialPort_open(JNIEnv*env,jobjectthiz,jstringpath,jintbaudrate){  ……  /*Openingdevice*/  constchar*path_utf=(*env)-GetStringUTFChars(env,path,iscopy);  LOGD("Openingserialport%s",path_utf

7、);  fd=open(path_utf,O_RDakefile。文件内容  LOCAL_PATH:=$(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$(CLE

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

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

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