




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课课 程程 设设 计计 报报 告告 课程设计名称 嵌入式系统综合课程设计嵌入式系统综合课程设计 课程设计题目 基于基于 Android 手机的手电筒程序手机的手电筒程序 的实现的实现 院 系 计算机学院 专 业 班 级 学 号 姓 名 指导教师 完成日期 目目 录录 第第 1 章章 系统分析系统分析 1 1 1 需求分析 1 1 2 硬件分析 1 1 2 1 实验环境 2 1 2 2 相关硬件简介 2 1 3 软件分析 2 1 3 1 嵌入式操作系统简介 3 1 3 2 开发技术简介 4 第第 2 章章 系统设计系统设计 5 2 1 操作系统移植 5 2 2 系统模块设计 5 2 3 关键流程 6 2 3 1 系统主流程图 6 2 3 2 开灯流程图 7 2 3 3 屏幕背光流程图 8 2 3 4 SOS 流程图 9 第第 3 章章 系统调试及运行系统调试及运行 10 3 1 调试分析 10 3 2 结果分析 11 参考文献参考文献 13 附附 录录 14 第 1 章 系统分析 1 1 需求分析需求分析 在现代社会中 手机的功能越来越丰富 给生活带来了极大的趣味性和便捷 性 手电筒是生活中最普通的生活必需品 它在我们身处黑暗时给予我们光亮 传统的手电筒体积较大 需要电池 不方便携带 手机与手电筒的结合恰恰可以 解决传统手机带来的不便 同时还可以节约资源 保护环境 既可以让用户及时 获得手电筒带来的益处 也可以让生活更加便捷 高效 1 2 硬件分析硬件分析 Android 是一个以 Linux 为基础的半开源操作系统 主要用于移动设备 由 Google 和开放手持设备联盟开发与领导 Android 的 HAL 硬件抽像层 是能以封闭源码形式提供硬件驱动模块 HAL 的目的是为了把 Android framework 与 Linux kernel 隔开 让 Android 不 至过度依赖 Linux kernel 以达成 kernel independent 的概念 也让 Android framework 的开发能在不考量驱动程序实现的前提下进行发展 HAL stub 是一种 代理人 proxy 的概念 stub 是以 so 档的形式存在 Stub 向 HAL 提供 操 作函数 operations 并由 Android runtime 向 HAL 取得 stub 的 operations 再 callback 这些操作函数 HAL 里包含了许多的 stub 代理人 Runtime 只 要说明 类型 即 module ID 就可以取得操作函数 Android 本身是一个权限分立的操作系统 在这类操作系统中 每个应用都 以唯一的一个系统识别身份运行 Linux 用户 ID 与群组 ID 系统的各部分也分 别使用各自独立的识别方式 Linux 就是这样将应用与应用 应用与系统隔离开 在 Android 开发中 我们就是通过 ID 来调用或更改组件的 Android 平台提供给第三方开发者一个十分宽泛 自由的环境 不会受到各 种条条框框的阻扰 在本次课程设计中用到的是 Android4 4 2 型号为 SM N9002 的三星手机 1 2 1 实验环境实验环境 1 JDK Java Development Kit JDK 是 Java 语言的软件开发工具包 主要用于移动设备 嵌入式设备上 的 java 应用程序 2 Eclipse Eclipse 是一个开放源代码的 基于 Java 的可扩展开发平台 就其本身 而言 它只是一个框架和一组服务 用于通过插件组件构建开发环境 幸运 的是 Eclipse 附带了一个标准的插件集 包括 Java 开发工具 Java Development Kit JDK 3 SDK software development kit SDK 是软件开发工具包 被软件开发工程师用于为特定的软件包 软件 框架 硬件平台 操作系统等建立应用软件的开发工具的集合 4 ADT Abstract Data Type 抽象数据类型 ADT 是一个实现包括储存数据元素的存储结构以及实 现基本操作的算法 其中包括数据对象 数据关系和基本操作 1 2 2 相关硬件简介相关硬件简介 在安卓手机上绝大多数的处理器都是 ARM 处理器 ARM 处理器的三大特点 是 耗电少功能强 16 位 32 位双指令集和合作伙伴众多 其具体体现是 1 体积小 低功耗 低成本 高性能 2 支持 Thumb 16 位 ARM 32 位 双指令集 能很好的兼容 8 位 16 位 器件 3 大量使用寄存器 指令执行速度更快 4 大多数数据操作都在寄存器中完成 5 寻址方式灵活简单 执行效率高 6 指令长度固定 1 3 软件分析软件分析 本次课程设计用到的软件是 Eclipse 此软件是一个开放源代码的软件开发项 目 专注于为高度集成的工具开发提供一个全功能的 具有商业品质的工业平台 它主要由 Eclipse 项目 Eclipse 工具项目和 Eclipse 技术项目三个项目组成 具体 包括四个部分组成 Eclipse Platform JDT CDT 和 PDE JDT 支持 Java 开发 CDT 支持 C 开发 PDE 用来支持插件开发 Eclipse Platform 则是一个开放的可 扩展 IDE 提供了一个通用的开发平台 它提供建造块和构造并运行集成软件开 发工具的基础 Eclipse Platform 允许工具建造者独立开发与他人工具无缝集成的 工具从而无须分辨一个工具功能在哪里结束 而另一个工具功能在哪里开始 1 3 1 嵌入式操作系统简介嵌入式操作系统简介 从嵌入式系统的应用来分类 可以分为面向低端设备的嵌入式操作系统和面 向高端设备的嵌入式操作系统 低端 微波炉 洗衣机 冰箱 高端 信息化 家电 掌上电脑 机顶盒 路由器 嵌入式操作系统 Embedded Operation System EOS 是一种用途广泛的系 统软件 过去它主要应用于工业控制和国防系统领域 EOS 负责嵌入系统的全部 软 硬件资源的分配 任务调度 控制 协调并发活动 它必须体现其所在系统 的特征 能够通过装卸某些模块来达到系统所要求的功能 EOS 从单一的弱功能 向高专业化的强功能方向发展 嵌入式操作系统在系统实时高效性 硬件的相关 依赖性 软件固化以及应用的专用性等方面具有较为突出的特点 EOS 是相对于 一般操作系统而言的 它除具有了一般操作系统最基本的功能 还有以下功能 如任务调度 同步机制 中断处理 文件处理等 嵌入式操作系统特点 1 良好的移植性 开放性 可伸缩性的体系结构 提供各种设备驱动接口 EOS 实时性一般较强 可用于各种设备控制当中 操作方便 简单 提供友好的 图形 GUI 图形界面 追求易学易用 提供强大的网络功能 支持 TCP IP 等协 议 提供 TCP UDP IP PPP 协议支持及统一的 MAC 访问层接口 为各种移动计 算设备预留接口 2 强稳定性 弱交互性 嵌入式系统一旦开始运行就不需要用户过多的干 预 这就要负责系统管理的 EOS 具有较强的稳定性 嵌入式操作系统的用户接口 一般不提供操作命令 它通过系统调用命令向用户程序提供服务 3 固化代码 在嵌入系统中 嵌入式操作系统和应用软件被固化在嵌入式 系统计算机的 ROM 中 辅助存储器在嵌入式系统中很少使用 因此 嵌入式操 作系统的文件管理功能应该能够很容易地拆卸 而用各种内存文件系统 1 3 2 开发技术简介开发技术简介 Android 以 Java 为编程语言 使接口到功能 都有层出不穷的变化 其中 Activity 等同于 J2ME 的 MIDlet 一个 Activity 类负责创建视窗 一个活动中的 Activity 就是在 foreground 模式 背景运行的程序叫做 Service 两者之间通过由 ServiceConnection 和 AIDL 连结 达到程序同时运行的效果 如果运行中的 Activity 全部画面被其他 Activity 取代时 该 Activity 便被停止 甚至被系统清 除 View 等同于 J2ME 的 Displayable 程序人员可以通过 View 类与 XML layout 档将 UI 放置在视窗上 Android 4 4 2 的版本可以利用 View 打造出所谓 的 Widgets 其实 Widget 只是 View 的一种 所以可以使用 xml 来设计 layout HTC 的 Android Hero 手机即含有大量的 widget 至于 ViewGroup 是各种 layout 的基础抽象类 ViewGroup 之内还可以有 ViewGroup View 的构造函数不 需要再 Activity 中调用 但是 Displayable 的是必须的 在 Activity 中 要通过 findViewById 来从 XML 中取得 View Android 的 View 类的显示很大程度上是 从 XML 中读取的 View 与事件息息相关 两者之间通过 Listener 结合在一起 每一个 View 都可以注册一个 event listener 例如 当 View 要处理用户触碰的事 件时 就要向 Android 框架注册 View OnClickListener Android 应用开发基础 Android 开发平台 Eclipse ADT 开发环境 AVD 及 传感模拟器调试 Android 核心组件 Android 常用组件 Android 高级组件 文 件及网络访问 SQLite 数据库编程 后台服务编程 Android 高级应用开发 音频 视频 摄像头 互联网应用 GPS 和位置服务 Google Map 2D 3D 绘制 传感器开发 游戏开发 电话及 SMS 服务 网络 Bluetooth Wi Fi 等 Android 系统级开发 移植 驱动 NDK C 方向 第 2 章 系统设计 2 1 操作系统移植操作系统移植 嵌入式操作系统与通用操作系统的最显著的区别之一就是它的可移植性 一 款嵌入式操作系统通常可以运行在不同体系结构的处理器和开发板上 为了使嵌 入式操作系统可以在某款具体的目标设备上运行 嵌入式操作系统的编写者须把 一部分与具体硬件设备相关的代码作为抽象的接口保留出来 让提供硬件的 OEM 厂商来完成 这样才可以保证整个操作系统的可移植性 这些代码通常是 板级支持包 Board Support Package BSP 的一部分 在此次课程设计中是将在 Eclipse 中编写好的程序移植到了安卓 Android4 4 2 手机上 安卓手机的处理器是 ARM 2 2 系统模块设计系统模块设计 设计分为三个模块 开灯模块 屏幕背光模块和 SOS 模块 系统模块设计图 如图 2 1 所示 进入App Button1Button2Button3 开 灯 模 块 屏 幕 背 光 模 块 SOS 模 块 图图 2 1 系统模块图系统模块图 手电筒模块是调用手机相机的闪光灯 通过它的长亮和关闭来实现手电筒的 亮灭 屏幕背光模块是调用屏幕亮度的函数 通过改变它的参数值将屏幕亮度调到 最亮或调到最暗 SOS 模块是通过重复对 background 赋颜色的十六进制码 来实现屏幕的一直 红白闪烁 2 3 关键流程关键流程 2 3 1 系统主流程图系统主流程图 进入主界面后 有三个功能可以选择 开灯 调节屏幕背光到最亮和打开 SOS 系统主流程图如图 2 2 所示 开 始 是否进入开灯模块 是否进入屏幕背光模块 是否进入SOS模块 进入闪光灯模块 进入屏幕背光模块 进入屏幕SOS模块 结束 是 是 是 否 否 否 图图 2 2 系统主流程图系统主流程图 2 3 2 开灯流程图开灯流程图 进入 APP 后 系统监听 开灯 按钮 当按钮被按下 进入开灯模块 通过 手机相机闪光灯的长亮 关闭 实现手电筒的开启 关闭 开灯流程图如图 2 3 所示 进入开灯模块 判断isopen是否为 true 调用相机camera open 调用闪光灯camera startPreviwe 设置isopent false 关闭闪光灯camera stopPreview 关闭相机camera open 设置isopent true 否 是 监听 开灯 按钮 设置isopent true 进入APP主界面 是否按钮按下 是 否 图图 2 3 开灯流程图开灯流程图 2 3 3 屏幕背光流程图屏幕背光流程图 进入 APP 后 系统监听 屏幕背光 按钮 当按钮被按下 进入银幕背光模 块 通过调用调节屏幕亮度的函数 将其参数值改为 1 参数值从 0 到 1 的变 化 代表了屏幕的由暗到亮的过程 屏幕背光流程图如图 2 4 所示 进入开灯模块 判断isopen是否为 true 调用相机camera open 调用闪光灯camera startPreviwe 设置isopen false 关闭闪光灯camera stopPreview 关闭相机camera open 设置isopen true 否 是 监听 开灯 按钮 设置isopen true 进入APP主界面 是否按钮按下 是 否 图图 2 4 屏幕背光流程图屏幕背光流程图 2 3 4 SOS 流程图流程图 进入 APP 后 系统监听 SOS 按钮 当按钮被按下 进入 SOS 模块 调 用定时器内的函数 run 更改背景颜色实现屏幕的红白闪烁 当按钮再次被按下 时 即退出 SOS 模块 SOS 流程图如图 2 5 所示 进入SOS模块 判断isopent1是否为true 调用Timer 设置 为200毫秒的定时 调用run 关闭Timer Timer 内的run isopent1 true 退出SOS模块 否 是 监听 SOS 按钮 设置isopent1 true m sos flag true 进入APP主界面 是否按钮按下 是 否 设置背景为红色 m sos flag false 经过200毫秒 设置背景为白色 m sos flag true 经过200毫秒 否 是 判断m sos flag是否为true 否 图图 2 5 SOS 流程图流程图 第 3 章 系统调试及运行 3 1 调试分析调试分析 1 在调试开灯模块时 一点击开灯按钮 APP 就自动退出 解决方法 是在 AndroidManifest xml 文件中申明对手机相机和闪光灯的调用 写下以下两句话 2 在调试屏幕背光模块时 屏幕背光亮度亮度达不到最亮 解决方法 是在 MainActivity 中的屏幕亮度函数调用中加入以下三句话 wl screenBrightness 的值从 0 到 1 代表了由暗到亮 WindowManager LayoutParams wl getWindow getAttributes wl screenBrightness 1 getWindow setAttributes wl 3 在调试 SOS 模块时 在启动 SOS 按钮后 会直接退出 APP 解决方法 当点击 SOS 按钮后有超过 5s 的延迟 我们的界面将处于一直假 死状态 系统将处于异常 自动退出 因此在 SOS 模块中加入 Handler 函数 Handler 函数是在用户界面开发时 控制主用户界面程序的界面变化 它的作用 是与其它线程协同工作 接收其他线程的消息并通过接收到的消息更新主用户界 面线程的内容 用户界面的更新只能在本线程中完成 其他线程无法直接对主线 程进行操作 在主线程中绑定 Handler 并在事件触发上面创建新的线程用于完 成某些耗时的操作 当子线程中的工作完成之后 会对 Handler 发送一个完成的 信号 而 Handler 接收到信号后 就进行主 UI 界面的更新操作 4 在调试 SOS 模块时 在准备退出 SOS 点击 SOS 按钮后 系统会时而会在红 色背景时停止 时而在白色背景时停止 解决方法 在判断第二次按下 SOS 按钮中 设置背景颜色为白色 3 2 结果分析结果分析 1 软件主界面如图 3 1 所示 图图 3 1 软件主界面图软件主界面图 2 屏幕背光界面如图 3 2 所示 图图 3 2 屏幕背光屏幕背光 3 SOS 红色界面如图 3 3 所示 图图 3 3 SOS 红色界面红色界面 4 开灯界面如图 3 4 所示 图图 3 4 开灯界面开灯界面 参考文献 1 高凯等编著 Android 程序设计基础教程 M 北京 国防工业出版社 2015 2 韩超 Android 系统原理及开发要点详解 M 北京 电子工业出版社 2010 3 李鲁群等编著 Android 应用程序设计 M 北京 清华大学出版社 2015 4 陈璟 陈平华 李文亮 Android 内核分析 J 广东工业大学计算机学院实践 与经验 2009 112 115 5 王翠萍编著 Android 经典项目开发实战 M 北京 清华大学出版社 2015 6 吴亚峰等编著 Android 应用案例开发大全 M 北京 人民邮电出版社 2015 7 李鲁群等编著 Android 应用程序设计 M 北京 清华大学出版社 2015 8 邓文渊等 Android 开发基础教程 M 北京 人民邮电出版社 2014 9 郭志安 Android 应用开发详解 M 北京 电子工业出版社 2010 10 杨丰盛 Android 应用开发揭秘 M 北京 科学出版社 2010 11 SatyaKomatineni DaveMaclean Pro Android 4 M USA Apress 2012 附 录 MainActivity java package com example import java util Timer import java util TimerTask import android app Activity import android content res Resources import android graphics drawable Drawable import android hardware Camera import android hardware Camera Parameters import android os Bundle import android os Handler import android os Message import android util Log import android view Menu import android view MenuItem import android view View import android view View OnClickListener import android view WindowManager import android widget Button public class MainActivity extends Activity Timer timer private Button loginButton private Button loginButton1 private Button loginButton2 private boolean isopent false private boolean isopen false private Camera camera Handler handler null private boolean isopent1 false private boolean m sos flag false Override protected void onCreate Bundle savedInstanceState super onCreate savedInstanceState setContentView R layout activity main loginButton Button findViewById R id button1 loginButton1 Button findViewById R id button2 loginButton2 Button findViewById R id button3 lp screenBrightness 0 1f loginButton setOnClickListener new OnClickListener Override public void onClick View v TODO Auto generated method stub if isopent camera Camera open Parameters params camera getParameters params setFlashMode Parameters FLASH MODE TORCH camera setParameters params camera startPreview 开始亮灯 isopent true else camera stopPreview 关掉亮灯 camera release 关掉照相机 isopent false 开灯的监听 loginButton1 setOnClickListener new OnClickListener Override public void onClick View v TODO Auto generated method stub if isopen WindowManager LayoutParams wl getWindow getAttributes wl screenBrightness 1 getWindow setAttributes wl isopen true else WindowManager LayoutParams wl getWindow getAttributes wl screenBrightness 3 4 getWindow setAttributes wl isopen false 屏幕背光的监听 loginButton2 setOnClickListener new OnClickListener Override public void onClick View v TODO Auto generated method stub if isopent1 timer new Timer timer schedule new TimerTask Override public void run if m sos flag Message message new Message message what 1 handler sendMessage message m sos flag false isopent1 true else Message message new Message message what 0 handler sendMessage message m sos flag true isopent1 true isopent1 true 50 200 else Message message new Message message what 3 handler sendMessage message SOS handler new Handler Override public void handleMessage Message msg TODO Auto generated method stub switch msg what case 1 Resources res getResources Drawable drawable res getDrawable R drawable bkcolor MainActivity this fin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全出行课件小班
- 公民对行政行为的法律救济试题及答案
- 护理工作的基本原则与试题及答案
- 探索执业护士考试的试题及答案
- 团队合作护理试题及答案技巧
- 自考行政管理专科项目管理内容及试题及答案
- 2025年自考行政管理快速复习试题及答案
- 球体体积公式推导课件
- 妇科专家知识讲座课件
- 好课件的安全性
- 2025-2030中国船舶行业发展分析及发展前景与投资研究报告
- 耐药菌耐药性监测策略-全面剖析
- 北京市通州区2025年初中学业水平模拟考试(一模)英语试卷(含答案)
- 手术中大出血抢救流程
- 2025重庆武工工业技术研究院有限公司招聘15人笔试参考题库附带答案详解
- 输液导管相关静脉血栓形成中国专家共识 课件
- 光伏电站面试题库及答案
- 2024年泉州实验中学初一新生入学考试数学试卷
- 车间技能矩阵管理制度
- 陶艺店管理制度
- 2025-2030中国储能电站行业市场深度分析及前景趋势与投资研究报告
评论
0/150
提交评论