logo资料库

基于android电子词典.pdf

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
第 31 卷增刊 2 2011 年 12 月 计算机应用 Journal of Computer Applications Vol. 31 Suppl. 2 Dec. 2011 文章编号: 1001 - 9081 ( ) 2011 S2 - 0228 - 05 基于 Android 平台电子词典的设计与实现 黄艺锋,闫 巧 ( 深圳大学 计算机与软件学院,广东 深圳 ) 518000 ( yifeng_07@ qq. com; yanq@ szu. edu. cn) 摘 要: 研究了在 Android 开发平台下电子词典软件的设计与实现过程,该系统是使用 Android 软件开发工具包 和 Eclipse 集成开发环境进行开发的,实现了英语单词的翻译、学习、复习、测验、生词本、导入删除词库、背诵常用句子 等功能,内置了相应的词库句库,也允许用户导入需要的词库进行学习。在词汇存储及检索方面,系统利用了 Android 集成的小型嵌入式数据库 SQLite 的开发接口。应用程序是基于 Java 语言开发完成的,并且已经在设备模拟器上测 试通过。 关键词: Android 平台; 电子词典; 智能手机; 应用程序 中图分类号: TP311. 5; TP316. 5 文献标志码: A Design and implementation of electronic dictionary based on Android platform ( College of Computer Science and Software,Shenzhen University,Shenzhen Guangdong 518000,China) HUANG Yi-feng,YAN Qiao Abstract: This paper discussed the design and implementation process of electronic dictionary software on Android development platform. This application, using Android SDK and the Eclipse IDE to develop, is available in English translation, learning, reviewing, testing, attention book, import or delete dictionary, reciting English sentence and other functions. The software has built-in dictionaries, also allows users to import the necessary dictionary to learn. The system uses Android integrated development interface of SQLite to store and retrieve vocabulary. The applications are developed based on Java language, and worked as expected on the emulator. Key words: Android platform; electronic dictionary; smart phone; application 0 引言 年 11 月, 2007 用 、 Google 推出了一种由操作系统 中间件 、 户友 好 界 面 和 应 用 软 件 组 成 的 智能 手 机 平 台 自推出以来就受到了业界的广泛关注,且 Android 续着 就意味着全世界的程序开发人员都可以通过 台开发出丰富多彩的 应用商城 Android。 延 的开放精神,开放了源代码供开发者下载使用,这 开放平 ],手机 应用程序 上的应用程序数量已经突破了 Android 数据显示[ Android Android Linux 。 1 ———Andriod Market 万 20 。 本文描述了在 和 Android Android 上进行电子词典的设计与开发, 平台推出的 内置的小型嵌入式 开发接口,在模拟器上仿真实现了英文单词的 使用 数据库 翻译 1 Android 系统架构和开发平台的搭建 词库导入等功能 、 生词本 、 学习 、 复习 、 测试 、 Android SQLite SDK 。 Android 用程序框架 系统架构包含了五个部分,分别是应用程序 开发库 内核[ 、 运行时环境以及 、Android Linux 应 、 ] 2 。 平台内包含了一些关键应用程序,如短信收发程序 Android 网页浏览器等; 、 应用程序开发是基于框架和组件的, 本身已在框架中提供了许多组件供应用程序使用,开 Android 发者也可开发新的组件并放入应用框架中,供自己和其他应 Android 用程序使用; 库,提供了 机; Java Linux 从 Android Android 开发库和运行时环境包含了一组核心 虚拟 语言核心库内的大部分功能和 Dalvik 内核层则用来提供系统的底层服务 。 的系统架构来看, 浏览器 和其他平台相比,有 虚拟机 提供的模块接口,开 、Dalvik Android WebKit Android 着自身的一些特点,如集成了 等模块 发出具有特色的应用程序 开发者可以充分利用 。 。 的应用开发通常要用到 提供的 。 。 Android Developer Tools Android 中的工具集 Google 资源管理器 、 它包括编译器 加上 SDK 器,并使用 开发环境 搭建 载 安装完成即可,无需配置环境变量; 再解压 需安装,解压后,直接打开就可运行; 解压 也无需安装,解压后供 Android 调试器和模拟 、 插件作为集成 Eclipse 所以,搭建好开发环境是进行系统开发的前提 。 开发环境过程如下: 首先,准备好安装文件,下 , Java JDK , 无 Eclipse ,这个 安装 Java JDK 、Eclipse 、Android SDK。 其次,先安装 接着,要为 AndroidSDK Android Eclipse 使用 Eclipse ADT 插件,打开 ,点击 SoftWare Add 条款即可在线安装 Eclipse Eclipse ,在菜单栏上选择 。 help - > Install New 按钮,输入站点名,进入下一步,同意安装 ,点击菜单 的 有了基本的系统支 最后,配置 Android SDK Android SDK 选择刚才 ,点击 ADT。 Android 应用程序了 。 window - > preferences 这样,开发环境就配置完成 解压目录 持和开发工具,就可以在此基础上开发 Browse 。 。 收稿日期: 2011 - 06 - 08; 修回日期: 2011 - 09 - 16。 作者简介: 黄艺锋( ) ,男,广东茂名人,主要研究方向: 软件工程 1988 - 基金项目: 深圳大学应用技术开发资助项目( ) 201135 。 操作系统; 闫巧( 、 1972 - ) ,女,广西资源人,教授,博士, 会员, CCF 主要研究方向: 网络技术和网络安全 。
增刊 2 黄艺锋等: 基于 Android 平台电子词典的设计与实现 922 2 系统总体架构 根据用户的需求的和软件的特点,本系统的功能划分如 所示 。 图 1 图 1 电子词典功能划分 本系统的开发使用了 嵌入式的 级的 、 运行时集成了 用 数据库 SQLite 由于 SQLite SQLite 关系型数据库,它支持 、 ,所以每个 。 JDBC SQL SQLite Android Android 语言, 数据库, 是一个轻量 在 应用程序都可以使 会消耗太多的系统资源,所以 因 此, 数据库,通过使 。 来使用 对于 手 机 这 种 内 存 受 限 设 备 来 说 并 不 合 适 提供了一些新的 API SQLite 便可实现数据库操作 。 API JDBC Android 用这些 和 了 SQL 改 、 SqlHelper DataAccess SQLiteDatabase SqlHelper 询记 录 openOrCreateDatabase SqlHelper 库进行操作时都要调用 创建数据库,获得一个 例的一些方法,我们就可执行 删 本系统要经常进行数据库操作,所以根据开发需求编写 两个类进行专门的数据库操作 。 类是对数据库进行基本操作的类,因为每次对数据 方法打开或者 的实例,然后通过该实 语句,对数据库进行增 、 查询等操作,操作结束后还需要关闭数据库,所以编写 、 当程序要创建表,删除表,查 删 除 记 录 时,直 接 调 用 类是针对数据表 查询词库 、 添加单词到 、 , Cursors 是一个简单的指针,它能从查询结果的一个元组跳到 Cursors 下一个元组,并可返回它定位位置的元组数据; 更新操作用到 类 似,负 责 存 方法,将列名和对应的列值放置其 SqlHelper 的结构和具体的功能要求而编写的,包括导入词库 名 生词本等各种操作 类来封装整个过程 插 入 记 录 类中对应的方法即可 查询句子 、 执行查询操作时会返回一个 查询词库中的单词 、 更新学习进度 、 ContentValues 更 新 记 录 。DataAccess Hashtable 与 、 。 、 。 、 put 机制, ContentValues 储一些键值对,通过 中,便可用它实现数据表的更新 3 系统的具体实现 3. 1 翻译模块的实现 3. 1. 1 检查网络状态 。 [ 4 android. net. ConnectivityManager 本模块在执行翻译操作时默认使用在线翻译功能 ,这就 需要有网络连接,因此要知道当前用户的网络连接状态,从而 决定是执行在线翻译还是离线翻译 所以在执行翻译操作之 前,程序会使用 ]类来检查网 络连接 3. 1. 2 Android 权限设置 系统是运行在 内核上的,有自己的一套严 由于本模块要用到网络连接和获取网 格的安全及权限机制 络 状 态,这 都 需 要 具 有 相 应 的 权 限,所 以 必 须 在 Android Linux 。 。 。 URL 词组 换[ ] 6 。 [ 5 AndroidMainifest. xml 行,且程序不会报错,只能通过捕获异常来发现这一问题 体的声明如下: ]中声明所需的权限,否则无法正常运 具 。 < uses - permission android: name = "android. permission. INTERNET" / > 允许应用程序打开网络套接字 ( sockets) . < uses - permission android: name = "android. permission. ACCESS_ NETWORK_STATE" > < / uses - permission > 允许应用程序访问 获取 网络信息 ( ) 3. 1. 3 在线翻译 在线翻译是本模块的核心部分 成此项操作 处理流程如下[ ] 7 。 。 . 。 程序编写了四个类来完 根据用户 输 入 的 词 返 回 相应 的 DictConnection 首先,创建一个 类的对象,此类的作用是 因 为 要 获 得 相 应 的 地址 。 后面加上要查询的词或 http 如 果 是 查 询 汉 字,则 必 须 先 对 汉 字 进 行编 码 的 转 文档就需要它在网络中的位置,也就是一个 为 / / dict. cn / ws. php URL。 URL q = XML ? : URLProcesser 。 然后, 文档的内容并保存在 接着,创建一个 文档 进 一 步 转 为 XML XMLParser Document 类中的方法以上一步得到的 文档的输入源( XML XMLParser 来获得指向 后 会 用 类 会 根 据 得 到 去 网 络 上 读 取 URL 对象中以让后续的类处理 String 。 类对象,此类的作用是把 XML 对 象,流 程 如 下: 先 是 调 用 对象作为参数, ) 获得输入源 String InputSource 。 ( ) DocumentBuilderFactory. . 类的 获 取 此 类 的 实 例 之 后,就 可 以 从 各 种 输入 源 解 析 ( ) 方法来获取一个 DocumentBuilder newDocumentBuilder 实例 newInstance XML 。 ,得到一个 最后,就是对 内容 软件是使用 用 上 一 步 得 到 的 。 Document 了 Document BaseParser 。 对象的处理,提取出需要的文本 主要操作是先 类进行处理的 。 对 象 调 用 方 法 document ( ) 取得根元素 getDocumentElement 用方法 所 有 名 字 为 的 root. getElementsByTagName Node name 再调用方法 ,最后就可使用方法 NodeList. item ,然后 root ( String name ,它 们 会 保 存 在 ( int index root Document. 就可通过调 ) 来获得下属 中, ) 取得相应位置 ( ) 来得到标签 NodeList Node. getNodeValue Node. getNodeName ( ) 取得该标签中的文本内容 。 NodeList 的 Node 名,使用 3. 1. 4 离线翻译 当无网络连接时,程序就会执行离线翻译 离线翻译先 实例,然后调用该实 方法来查询数据表,判断是否存在该单词,如存在 SQLiteDatabas 。 query 会打开数据库,获得一个 例的 就返回该单词在数据库中的中文解释 3. 2 学习模块的实现 3. 2. 1 Tab 界面 选择学习单元界面使用的是 。 全部课程的内容 、 界面的不同的标签页里分别显示学习中的课程 程 编写标签页,首先需要做的是使用 ( ) 方法获取 对象,接着向 本模块通过继承 TabActivtiy TabActivity 里的 。 Tab 界面,这样可以在同一 未学习的课 、 的方法来 getTabHsot 即调用 TabHost 添加 则是通过 tabs。 TabHost ( ) 方法 tabHost. addTab newTabSpec 进行设置 法, ( 图标) ; setIndicator ( String tag TabSpec 。TabSpec TabHost. ) 来创建的实例,实例化后可对其属性 主要包含了 方 指定的是标签页的 setContent ( 显示的名字) 和 setIndicator 和 。TabSpec icon setContent 是指定的是 tab label 的展示内容 。
032 计算机应用 2011 年 3. 2. 2 ListView 组件 上一步设置好了标签页,现在就要往标签页添加显示内 每个标签页里,程序是通过 的组件来显示单元 。 容 供用户选择的 。 列表的显示需要三个元素: ListView 一是 ListVeiw 用来展示列表的 ListView 作用是把数据映射到 三是数据,具体地为被映射的字符串 程序中列表的 的 适 配 器 类 型 有 View 为一个进行页面布局的 View。 上,是数据和 图片或者基本组件 、 文件 ListView 二是适配器,它的 的桥梁 。 本 。 列表 和 扩展性最好,有 里边的每一项进行个 ,布 ,一个 XML 。 ImageView ArrayAdapter、 SimpleAdapter 三种,其中 SimpleCursorAdapter 很多的用户可定制性,可以对 性化的布局,在这里用到了两个 局比较复杂,所以在此使用了 3. 2. 3 学习单词界面 SimpleAdapter ListView TextView SimpleAdapter。 当选定某一单元后,就会启动学习单词界面 建时会先取得学习主界面通过 获知 要 学 习 哪 个 单 元 Bundle 然 后 就 可 通 过 。 。 该界面创 对象传来的数据,从而 类 的 DataAccess 方法取出学习单元信息,恢复学习进度, QueryList 方法返回该单元的所有单词 按钮的单击事件来显示单词 存学习进度,这是通过覆盖 的 现 的,在 该 方 法 中 检 测 返 回 键 ( Activity 。 。 QueryWord 这样就可监听上一个和下一个 另外,本界面需要在退出时保 ( ) 方法来实 keyCode = = KeyEvent. ) 是否被按下,如果是就弹出对话框询问用 KEYCODE_BACK 户是否保存学习进度,保存则更新数据库,不保存,则直接退 显示句子功能则是调用翻译模块所提供的方法,进行网 出 络例句的显示,这需要网络连接 。 onKeyDown 。 3. 2. 4 Android TextToSpeech 。 Android 实现的 语言合成( Text-To-Speech 本 软 件 的 单 词 发 音 是 使 用 系 统 提 供 的 ) 能将所 , TextToSpeech TTS 指定的文本转成不同语言音频输出,可以方便地嵌入到游戏 或者 应 用 程 序 中,增 强 用 户 体 验 得 实 现 ( ) 的作用是通知系统当前 接着就是创建 ( ) 方法的 已经加载完成,并处于可用状态 ( ) 方法朗读单词 的实例,并调用 OnInitListener OnInitListener TTS Engine 要 使 用 接口, TTS 。 。 speak 。speak 参 数 有 两 个: 一 个 是 TextToSpeech. QUEUE _ ,它会中断当前实例正在运行的任务而立即执行新任 ,它会把发音任务添 TextToSpeech. QUEUE_ADD TTS queueMode FLUSH 务; 另一个是 加到当前任务列队之后 3. 2. 5 自动朗读功能 。 ] 8 。 。 。 run Thread 。 类的 方法来创建的[ 在学习模块和生词本模块都有自动朗读功能 本程序编 写了一个单独的类来完成此功能 在此类中通过创建和启动 一个新的线程来实现,因为在线程中能让用户控制自动朗读 创建新执行线程有两种方法,本程序是通过 的暂停和继续 在线程中主要完成 重写 两项工作: 一是检查标记值( 用户通过点击暂停 返回 继续 、 、 、 结束按钮来改变标记值的) 以控制线程的暂停 继续或者停 、 止,程序通过调用 notifyAll ( ) 的调用 ( ) 方法来唤醒线程继续执行 一定得放在同步方法或同步块中,这是因为 和 不 是属于线程类,而是每一个对象都具有的方法,而且,这两个 方法都和对象锁有关,所以需要用 进行同步,具 体操作是在使用关键字 ( ) synchronized ( ) ; 二是显示读到的单词 wait 这就需要不断地更新 ( ) 方法来实现线程的暂停,用 修饰的方法里调用 synchronized / notifyAll notify wait wait wait 而 ( ) 。 / notifyAll 。 UI ,但是自动朗读功能是在子线程中实现的,该线程不是 。 Handler android. os. Handler 实例并实现 实例就会绑定在主线程中,然后 对象到主线程 的 发消息,分发 的更新,最后在消息处理里实现 Message 本程序使用了 UI 界面 Handler UI 线程,不能更新 类解决此问题,先在主线程中创建一个 消息处理函数,这样 在子线程中向 中,通知主线程进行 更新 3. 3 复习模块的实现 3. 3. 1 选择复习单元 handler 。 UI UI 。 Tab ListView ArrayList < String > 复习模块的选择复习单元的界面上同样使用了 界面 组件来实现复习单元的显示,实现方式和学习模 和 块一样,在此不再阐述 选择复习单元的程序代码具体的编 写思路为: 第一步,查询数据库找出应该复习的单元放在数据 类型为 PLAN 而得 表中该单元所在记录的 第二步,监听用户点击列表项的事件,分情 知是否需要复习 况处理,在需要复习单元的标签页里点击,则从 中根据 点击的位置找出用户选择复习的单元; 在全部单元的标签页 里点击,则直接根据点击的位置确定用户选择复习的单元 。 第三步,把用户选择的复习单元数通过 传递给新的 中,这可通过判断 字段是否为 SHOULDREVIEW review review 的 。 1 Bundle ,创建复习单词的界面 。 Activity 3. 3. 2 复习安排 。 在选择复习单元界面有复习安排的标签页,该标签页显 每次用户启动本程序时,都会执行一 示每天要复习的单元 次更新复习安排的函数,在该函数中会计算今天的时间与上 一次复习时间之差,如是第一次复习,则计算与学习完毕的时 当差值大于或等于规定的复习间隔时,则会记录到 间之差 。 数据库中 在复习安排的标签页上,会显示每天所应该复习的内容 。 具体做法是找出应该复习的单元列表,再依据已复习的次数, 把今天的日期加上相应的天数,就可得到该单元下一次应复 习的日期 。 。 10 用户可在 程 序 的 主 界 面 的 菜 单 项 中 打 开 复 习 提 醒 功 设置复习提醒时间,如果到了复习提醒时间且今天有 ] 、 该功能的实现 能[ 复习任务,则程序会在状态栏显示提醒信息 主要涉及到如下三个方面的问题 。 。 ) 要保存用户设置的时间和是否打开提醒功能,因为该 数据信息量少,所以程序把该信息存储在 中 类,它可以 用 键 值 对 的 方 式 把 简 单 数 据 类 型 ( 。SharedPreferences Android 是 SharedPreferences 平台上一个轻量级的存储 boolean、int、 。 和 ) 存储在应用程序的私有目录下 float、long String ) 在规定的时间提醒 定时器) 定时将一个 ( Intent ) 来接收 BroadcastReceiver Intent ) 在状态栏显示提醒信息 程序是使用 ( 全局 。 广播出去,并编写一个广播接收者 AlarmManager ,发送提醒信息 。 。Android API ,只要将 为了管理提示 添加 Notification NotificationManager ,即可将信息显示在状态栏中 。 信息,定义了一个 到 NotificationManager 3. 3. 3 复习单词界面 复习单词界面用了 [ 9 Spinner ]组件来让用户选择复习模 对象,并将可选内容 ArrayAdapter 时,先创建 连接起来,再将 Spinner 式,使用 与 中,就可将数据装载到 长度为 ArrayAdapter 的 3 String ArrayAdapter Spinner 组件中,这里的数据就是一个 []数组,内容就为可选择的三种复习模式: Spinner 绑定到 1 2 3
黄艺锋等: 基于 Android 平台电子词典的设计与实现 132 表中 来实现的, 。 ListView 处理相关的操作 、 ListActivity ( 列表视图) 界面 显示生词本 组件就可通 可以使用,分别 。 ListView Adapter Activity attention ListActivity 类,默认绑定了一个 学习单词界面 生词本的单词保存在数据库的 的形式显示,这是通过继承 继承了 组件,并提供一些与列表视图 时,先是查询数据库读出显示内容,然后 过 是 在学习模块 于只需显示一个字符串,所以使用 的作用就是显示内容与 来构建显示界面,有三种 复习模块 、 SimpleAdapter ArrayAdapter Adapeter , , ArrayAdapter 3. 5. 2 生词本提供的操作 CursorAdapter。SimpleAdapter 测试模块都已经使用过了,在这里由 、 就足够了 ArrayAdapter 。 ListView 之间的桥梁 。 onListItemClick 通过覆盖方法 ( ) 来响应列表项被点击的 事件,当点击列表项时,会弹出操作对话框,可对生词进行朗 的功能进行发音; 读 TTS 编辑操作可修改生词本中 的 词 汇 ,使 用 类 中 的 表; 删除操作会把生词从 删除三项操作 、 ( ) 方法更新 朗读是调用 DataAccess 编辑 、 。 UpdateAttention attention 增刊 2 词 义 回 想 单 词 回 想 、 单 词 拼 写 并 且 注 册 监听 器 ( ) ,用户就可 ,实现方法 、 onItemSelected OnItemSelectedListener 点击下拉列表的选项自由地切换复习模式 3. 4 测试模块的实现 3. 4. 1 选择测试单元 。 本界面和选择学习单元 选择复习单元不同之处在于没 、 ,这样能 。 。 。 的 的 List Tab 覆盖 Activity onListItemClick ListActivity 对象并借助 界面,所以本界面选择直接继承 用到 方便地构建列表界面,只需准备一个 Adapter 方法可以响应 就可以构造出一个列表 选择事件,利用第三个参数可以得到点击的位置 该界面同 样要把用户选择了哪个测试单元的数据传递给进行选择题测 ,在这里,由于只涉及两个界面间的传值并且只 试的 有一个数据需要传递,程序使用了 方法进行 传值,使用 由于在界面 切换的过程中经常要进行数据的传递,常用的传值方法有 的传值,两者的区别是当在多 比较方便,因 Intent. getStringExtra 方法取出数据 Intent 个界面间传值间并且要传递多个数据时, 为只需往 3. 4. 2 实现选择题测试 里添加一次数据就可为多个界面取用 方法与 putExtra putExtra Bundle Bundle Bundle Intent allList Math. random * allList. size 中,再查询该词典中所有的单词,放在 本模块实现的难点是如何出题,程序随机从词库中挑选 三个单词的意思加上正确的意思再随机放到四个选项中而实 具 体 为: 先 是 查 询 到 测 试 单 元 的单 词 放 到 现出题 功 能 接 testList 着,用代码( ( ) ) 产生四个小 于词典单词数的随机数,这四个随机数要互不相同,如发现相 同就会再次产生,这四个随机数就是将要挑选出来的单词意 中的位置,如果当前测试单词在列表中的位 思在列表 置不在这四个随机数中,就随机地用它替换掉任一随机数,并 记录正确答案的位置 中取出在 position。 最 后,就 可 使 用 监 听 器 以上 四 个 位 置 的 词 义 并 显 示 来 监 听 用 户 选 择 了 哪 ,并计 比较就可得知正确与否,正确则得分加 再次,就是从 allList allList 中 ( ) ) ( int 。 。 。 。 下一题则按同样的方法产生四个选项 1 。 position RadioGroup. OnCheckedChangeListener 项,与 算出目前的正确率 3. 5 生词本模块的实现 3. 5. 1 生词的显示 。 生词本里显示用户添加到生词本中的单词,在翻译界面 复习单词界面都设置了添加到生词本的按钮 、 。 生词本以列表 、 数 据 库 的 表 中 删 除,调 用 了 类 的 生词本的菜单中有添加新单词,自动 DeleteFromAttention 朗读两个菜单项,添加新单词是调用了编辑单词的模块,往 attention ( ) DataAccess 。 attention 表里插入新的记录 。 4 仿真结果和性能测试 4. 1 仿真结果 Eclipse IDE 开发环境下,使用 在 了基于 测试了各项功能,均能输出预期的结果 语言,设计和实现 平台的电子词典的应用程序,并在模拟器上 采用的测试平台是 Android Java 。 Android 2. 0 , API Level 为 6。 2 图 所示为程序在模拟器上运行时的主界面,上方为切 所 自动朗读等各项 、 所示为测试功能模块,程序自动出题进行测试并计 所示为生词本功 除上述 换词库的下拉列表,下方为进入各个功能模块的按钮; 图 示为学习功能模块,可进行发音 操作; 图 算正确率,用户需选出正确的单词意思; 图 能模块,记录着用户在学习 这些界面外,还有导入界面 复习过程中添加的生词 、 翻译单词界面等 、 显示例句 、 。 。 3 4 5 图 2 主界面面 图 3 学习单词界面 图 4 测试单词界 图 5 生词本界面 4. 2 性能测试 开发完成后,为测试系统的整体性能和运行效率,使用了 所示是系统的整 测试软件对系统进行了性能的测试 体测试图,该图包含了所有的类,通过观察可以发现大部分类 的复杂度都符合要求,整体性能较好 5 结语 如图 。 。 6 究了 Android 手机应用程序开发是一项复杂的工程 的系统架构,并在 Android 语言,设计和开发了基于 Eclipse IDE 本文研 开发环境下,使用 平台的电子词典,验证 开发者提供一 Java Android 了该平台良好的实用性,也为广大的 个参考 Android 。 。
232 计算机应用 2011 年 参考文献: http: / / download. oracle. com / javase /1. 5. 0 / docs / api / java / net / [1] AndroLib Distribution of Apps and Games in Android Market[EB / OL]. URLEncoder. html. 图 6 总体性能测试图 [2011 - 05 - 18]. http: / / cn. androlib. com / appstatsdownloads. aspx. 杨丰盛 叶达峰 应用开发揭秘 编程技术与实例 机械工业出版社 人民邮电出版社 北京 : . Android ,2010. [M]. [M]. 北京 : . Eclipse ,2006. [4] Google. Android SDK Documentation [EB / OL]. [2011 - 05 - 18]. http: / / code. Google. com / android / documentation. html. 余志龙 北京 , 人民邮电出版社 . Android SDK 郑名杰 陈昱勋 等 , , 开发范例大全 : ,2010. [2] [3] [5] [7] QUIN L, BURMAN L, WHITE C. XML 从入门到精通 宋 [M]. 浩 , 肖伟 , 周生炳 译 . , 北京 : 电子工业出版社 [8] ECKEl B. Java 编程思想 [M]. 陈昊鹏 译 . , 社 ,2007. ,2002. 北京 : 机械工业出版 [M]. [9] DIMARZIO J F. Android: a programmer's guide[M]. New York: McGraw-Hill,2008. [6] URLEncoder ( Java 2 Platform SE 5. 0) [EB / OL]. [2011 - 05 - 18] [10] MURPHY M L. Beginning Android 2[M]. New York: Apress,2010. ( 上接第 227 页) 得到的基于北东地坐标系的导航电子地图和基于大地坐标系 的导航电子地图分别如图 和图 所示 6 7 。 图 6 基于北东地坐标系的导航电子地图 。 UAV UAV Matlab 混合编程技术实现 鉴于 分析和图 形 处 理 功 能 上 的 优 势,提 出 采 用 基 于 和 地面控制站的飞行数据分析 VC + + 不同飞行任务对导航电子地图的不同需求, 功能 提出在同一地面控制站中实现两种坐标系下的导航电子地 图,供用户自由选择 飞行实验中的应 用,验证了该地面控制站具有实时性强 稳定性好 人机界面 、 、 友好 系统对地面控制站的 需求,加快了 参考文献: 姚光强 计算机工程 可扩展能力强等优点,满足 、 系统的研发进度 通过在某型号 混合编程 技术的 陈立平 Matlab UAV UAV UAV 基于 COM [J]. [1] 。 。 与 C# ; . , 2008,34( 14) : 87 - 89. [2] Office of the Secretary of Defense, USA. Unmanned aircraft systems roadmap, 2005-2030 [R / OL]. 2005 [2011 - 01 - 12 ]. http: / / [3] [4] [5] [6] [7] [8] 图 7 基于大地坐标系的导航电子地图 4 结语 根据 UAV 系统对地面控制站的要求以及 在数据 Matlab 旋翼微小型无人机地面站系统的设计 , 2010,36( 23) : 243 - 245. 混合编程技术研究 , , 李怀兵 [J]. 薄云飞 丑武胜 . 计算机工程 www. uavm. com / images / Weatherington. pdf. 冯震 , 与实现 郭虹 计算机工程 李津生 武汉 章国林 , 武汉大学出版社 , 2002,28( 9) ,269 - 271. , 2006: 183 - 191. 陈俊勇 刘经南 . VC + + Matlab 林东 与 等 , , , . : 小型无人机路径规划算法与地面控制站软件的开发 现代大地测量理论与技术 [J]. [M]. 北 北 . 杭州 屈芍琳 : 浙江大学 , 2011. 用 阳琳赟 , 清华大学出版社 , . , 2003. 冶金工业出版社 ,2009. [D]. 齐锐 京 尹旭日 京 : : MapX 开发地理信息系统 [M]. 张武军 , . Visual C + + 环境下 MapX 的开发技术 [M].
分享到:
收藏