欢迎来到天天文库
浏览记录
ID:15074837
大小:33.50 KB
页数:5页
时间:2018-08-01
《浅谈基于Android平台的串口通信实现.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、浅谈基于Android平台的串口通信实现 摘要:串口在数据通信中应用广泛,但AndroidSDK指定使用Java作为第三方应用开发语言,这给C语言实现串口应用带来了困难。虽然GoogleAndroid已经发布了NDK(NativeDevelopmentKit,原生态开发包),支持开发者用C/C++语言开发Android程序,但目前官方提供的技术指导比较简略。通过开发一个Android下串口通信应用实例,详细介绍了AndroidNDK的开发流程,帮助开发人员快速的完成平台搭建。 关键词:Android;N
2、DK;JNI;SDK;串口 Android是Google推出的基于Linux的开源手机操作系统,是一个专门针对移动设备设计的软件平台,包括操作系统、中间件和一些关键应用。它的软件架构包含四个层次,从高到低分别为应用层、应用框架层、系统运行层和linux内核层,如图1所示。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Android发布初期,Google就表示其虚拟机Dalvik支持JNI编程方式,也就是第三方应用完全可以使用JNI调用自己的C动态库,但Goog
3、le官方并没有明确表示支持开发者使用这种方法。终于在2009年6月,GoogleAndroid发布了NDK,它支持开发者使用C/C++语言开发Android程序。作为AndroidSDK的一个附加组件提供,开发者必须先安装AndroidSDK方可使用NDK。NDK的目的是为了增加代码的重用性及加快程序的运行速度,这有利于开发者从其他系统上移植软件到Android平台。 1AndroidNDK简介 在Android上应用程序的开发大部分基于Java语言来实现。要使用C或是C++的程序或库,就需要使用NDK
4、来实现。NDK是NativeDevelopmentKit的简称。它是一个工具集,集成了Android的交叉编译环境,并提供了一套比较方便的Makefile,可以帮助开发者快速开发C或是C++的动态库,并自动的将so动态库和java程序打包成apk,在Android上运行。有两个理由使用NDK:一是合理的重用现有的代码;二是在程序中某些关键的部分提高执行效率。 AndroidNDK目前作为AndroidSDK的一个附加组件提供,开发者须先安装AndroidSDK方可使用NDK。在Windows平台下进行ND
5、K开发通常会采用Cygwin。Cygwin是一套可以运行在Windows平台上的UNIX/Linux模拟器。运行Cygwin后会出现一个类似WindowsCMD的Shell环境界面,可以使用大部分Linux软件和功能。使用它我们可以方便的在Windows平台编译出Linux平台的库文件或应用程序。 2安装和配置NDK开发环境 2.1安装NDK 首先要完整安装SDK,尽量升级至最新版本,文中使用2.1版本的SDK。然后下载NDK,官网有三个版本分别是Windows、MacOSX(intel)、Linux
6、32/64(x86),下载后解压即可使用。文中使用Windows版本的NDK,版本为android-ndk-r5。将它解压到某个目录下,文中我们将NDK安装到D:“android“android-ndk-r5目录中。 2.2安装Cygwin5 首先去Cygwin官网下载网络安装程序,下载下来以后点击直接运行。安装过程中最关键的是选择需要安装的包,为支持AndroidNDK的开发,选择Default安装后再安装以下模块autoconf2.1、automake1.10、binutils、gcc-core、g
7、cc4-core、gdb、pcre、pcre-devel、GNUawk。 下面开始将AndroidNDK配置到Cygwin中。运行Cygwin,修改Cygwin目录下(/home/usrname)的.bash_profile文件,在文件尾部加入如下代码, NDK=/cygdrive/d/android/android-ndk-r5 exportNDK 然后重新启动Cygwin。输入cd$NDK,如果输出上面配置的/cygdrive/e/android-ndk-r5信息,则表明环境变量设置成功了。接下
8、来就可以用Cygwin来编译我们的NDK代码了。 3AndroidNDK开发实例 开发实例是一个Android平台上的收音机程序,该应用通过调用串口API与外围收音机芯片通信,进而控制收音机芯片完成搜台、显示等功能。 AndroidNDK开发一般有以下步骤: 1)JNI接口设计; 2)使用C/C++实现本地方法; 3)生成动态链接库; 4)将动态链接库复制到Java工程,生成.apk文件。 首先,
此文档下载收益归作者所有