您好,游客 登录 注册 站内搜索
背景颜色:
阅读论文

基于Android平台的串口通信实现

来源:  作者: [字体: ]
  摘要:串口在数据通信中应用广泛,但Android SDK指定使用Java作为第三方应用开发语言,这给C语言实现串口应用带来了困难。虽然Google Android已经发布了NDK(Native Development Kit,原生态开发包),支持开发者用C/C++语言开发Android程序,但目前官方提供的技术指导比较简略。通过开发一个Android下串口通信应用实例,详细介绍了Android NDK的开发流程,帮助开发人员快速的完成平台搭建。
  关键词:Android;NDK;JNI;SDK;串口
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)13-2983-03
  Serial Communication Based Android Platform
  JIN Zhi-yi, ZHANG Ji
  (Vehicle College, Tongji University, Shanghai 201804, China)
  Abstract: Serial communication is widely used in data communication, but the Android SDK uses the Java language as a designated third-party application development, which makes it difficult to achieve serial applications with C language. Although Google Android has released NDK (Native Development Kit)which supports the developer to develop Android program with C/C++ language,but the official technical guidance has been relatively brief. Through the development of serial communication under an Android platform as an application example, article gives a thoroughly description of the Android NDK development process that can help developers quickly build platforms.
  Key words: Android; NDK; JNI; SDK; serial
  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平台。
  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。在Windows平台下进行NDK开发通常会采用Cygwin。Cygwin是一套可以运行在Windows平台上的UNIX/Linux模拟器。运行Cygwin后会出现一个类似Windows CMD的Shell环境界面,可以使用大部分Linux软件和功能。使用它我们可以方便的在Windows平台编译出Linux平台的库文件或应用程序。
  2 安装和配置NDK开发环境
  2.1 安装NDK
  首先要完整安装SDK,尽量升级至最新版本,文中使用2.1版本的SDK。然后下载NDK,官网有三个版本分别是Windows、Mac OS X(intel)、Linux32/64(x86),下载后解压即可使用。文中使用Windows版本的NDK,版本为android-ndk-r5。将它解压到某个目录下,文中我们将NDK安装到D:\android\android-ndk-r5目录中。
  2.2 安装Cygwin
  首先去Cygwin官网下载网络安装程序,下载下来以后点击直接运行。安装过程中最关键的是选择需要安装的包,为支持Android NDK的开发,选择Default安装后再安装以下模块autoconf2.1、automake1.10、binutils、gcc-core、gcc4-core、gdb、pcre、pcre-devel、GNU awk。
  下面开始将Android NDK配置到Cygwin中。运行Cygwin,修改Cygwin目录下(/home/usrname)的.bash_profile文件,在文件尾部加入如下代码,
  NDK=/cygdrive/d/android/android-ndk-r5
  export NDK
  然后重新启动Cygwin。输入cd $NDK,如果输出上面配置的/cygdrive/e/android-ndk-r5信息,则表明环境变量设置成功了。接下来就可以用 Cygwin 来编译我们的NDK代码了。
  3Android NDK开发实例
  开发实例是一个Android平台上的收音机程序,该应用通过调用串口API与外围收音机芯片通信,进而控制收音机芯片完成搜台、显示等功能。
  Android NDK开发一般有以下步骤:
  1) JNI接口设计;
  2) 使用C/C++实现本地方法;
  3) 生成动态链接库;
  4) 将动态链接库复制到Java工程,生成.apk文件。
  首先,创建一个NDK工程,然后在这个文件夹下建立jni和src两个目录,jni用来存放我们的C文件,src是调用C库的Java接口文件。接着创建jni/SerialPort.c,该文件的主要作用是完成串口的打开和关闭。关键代码如下:
欢迎浏览更多论文联盟首页工学论文通信学(工程)论文文章
收藏 & 分享 推荐 打印 | 录入:

相关文章      
本文评论   查看全部评论 (0)
表情: 评论表情符号选择 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
内容分类导航