Android 嵌入式开发心得体会

2024-05-21

Android 嵌入式开发心得体会(精选6篇)

篇1:Android 嵌入式开发心得体会

Android开发NDK C++开发注意事项

相信Android开发者都喜欢用C++编写一些高效的应用,有关Android NDK的C++开发相关知识Android123总结如下:

1.从Android NDK r5开始支持了STL Port,在这个版本开始就可以使用部分STL库的功能了,比如说vector、string摆脱c下面容易出现的数组未初始化、越界,增强应用的健壮性。

2.很多网友包含了include 这样头,但仍然无法编译,这里你首先要检查当前文件是否为.cpp后缀,同时为了使用标准库必须加入 APP_STL := stlport_static 在Application.mk文件中。相关对应还有

system 使用默认最小的C++运行库,这样生成的应用体积小,内存占用小,但部分功能将无法支持

stlport_static 使用STLport作为静态库,这项是Android开发网极力推荐的stlport_shared STLport作为动态库,这个可能产生兼容性和部分低版本的Android固件,目前不推荐使用。

gnustl_static 使用 GNU libstdc++ 作为静态库

默认情况下STLPORT是不支持C++异常处理和RTTI,所以不要出现-fexceptions或-frtti,如果真的需要可以使用gnustl_static来支持标准C++的特性,但生成的文件体积会偏大,运行效率会低一些。

3.支持C++异常处理,在Application.mk中加入 LOCAL_CPPFLAGS +=-fexceptions这句,同理支持RTTI,则加入LOCAL_CPPFLAGS +=-frtti,这里Android123再次提醒大家,第二条说的使用gnustl静态库,而不是stlport

4.强制重新编译 STLPort,在Application.mk中加入 STLPORT_FORCE_REBUILD := true 可以强制重新编译STLPort源码,由于一些原因可能自己需要修改下STLPort库,一般普通的开发者无需使用此项。Android目前最新的NDK版本为r6,相关的学习可以查看NDK中的Samples整体和在PC上开发没有太大的不同。

嵌入式相关资料,欢迎下载!

《嵌入式相关资料》

篇2:Android 嵌入式开发心得体会

很多Android新手对于JNI开发过程中的疑问不是很清楚,根据android123@163.com邮箱中反馈的内容我们整理如下:

1.JNI中,什么情况才处理jstring、jint、jobject这样的类型,其实通过NDK开发Android C++应用,大部分仍然是常规的cpp和h的标准写法,只有需要和Java层通讯的方法才包含了类似JNIEXPORT void JNICALL XXX这样的函数,大多数的逻辑和标准C/C++没有什么区别。

2.我有一个在Windows上开发好的dll能否在Android上使用呢? 这里Android开发网提醒大家,对于dll这样的PE文件只能在Windows平台下使用,而linux上的动态库so文件如果是PC上的也无法通过JNI在Android上调用,由于CPU的指令不同,手机上必须使用ARM交叉编译器生成才可以使用,而PC上的为x86或64位,即使是Hello World这样代码兼容性很强,也必须在NDK中重新编译才能在Android上使用。

3.学习JNI的基础是什么,或者说什么顺序学习? 这点Android123推荐大家先了解Java的类型,和内部编码,然后学习C/C++语言,对于NDK r5开始支持的C++语言,这里Android开发网要和大家说下了,如果需要在JNI中调用Java的类,你可以学习下反射机制,同时C++ STL在NDK r5开始支持,这样开发应用维护起来更方便些。最后看下NDK的Samples下载Android源码Framework层基本上就没有什么大问题了。

4.学习NDK最大的困难是什么? 这里Android123认为,国内网友大多数都在Windows下做开发工作,整个NDK环境需要Cygwin,同时mk这样的makefile编译脚本的手动编写可能不是很友好,这点Android开发网已经准备了一整套的Android开发工具,将在近期公开,帮助大家在PC辅助开发Android应用,同时常见问题提供了相应的链接。

5.在Android JNI用处大吗? 对于大多数开发者来说可能主要用于OpenGL游戏设计上,不过对于纯运算,算法上C语言比Java有着很多天生的优势,这点不容置疑,多一门技术多一个出路嘛,整个Android源代码十分庞大,开源的力量最终还是能打败更封闭的Windows Phone和iOS的。

嵌入式相关资料,欢迎下载!

篇3:Android 嵌入式开发心得体会

互联网巨头Google公司于2007年11月5日推出了全新的嵌入式软件平台——Android, 该平台由操作系统、中间件、用户界面以及应用软件组成, 是一个真正开放的移动应用开发平台。

2007年11月初, Google与其他33家手机厂商、软硬件供应商、手机芯片供应商、移动运营商联合组成了开放手机联盟 (Open Handset Alliance) , 发布了名为Android的手机软件平台, 并宣布该平台完全开放。同时Google希望Android平台成为一套标准化、开放式的移动嵌入式软件平台。

由于Android系统具有开发性、平等性、无界性以及方便性等优点, 所以很快被业界所接受。从2008年初开始, 越来越多的开发人员投身到Android应用的开发当中。

而Android系统的一大亮点之一就是传感器的使用, 利用传感器可以开发出很多新奇有趣的应用程序。例如计步器、水平仪, 甚至在很多游戏中都可以使用传感器来操作游戏。传感器的种类有很多种, 其中包括加速度传感器、姿态传感器、磁场传感器、温度传感器以及光传感器等, 介绍的水平仪应用就是使用姿态传感器的。

2 案例功能

将结合水平仪案例的开发详细介绍如何在Android平台下开发传感器应用, 下面首先对水平仪的功能及界面进行简单的介绍。

2.1 程序界面

程序运行后的效果如图1所示, 用户可以通过调整手机的姿态来控制界面中各个气泡的位置。与真正的水平仪一样, 在使用手机水平仪时, 需要将手机平放到某个平面上才可以。

2.2 软件功能

运行该程序, 当改变手机的姿态时, 界面中的气泡便会根据手机的姿态向高处进行相应的移动。

当手机所处的平面水平时, 各个气泡都应该位于中间的指定区域。

3 开发环境搭建

正式进入代码开发之前, 首先需要对开发环境进行搭建, 其搭建步骤如下所列。

(1) 安装Java开发环境JDK。

(2) 从网上下载Android开发环境SDK的压缩包, 并将其解压到磁盘上的某个位置。

(3) 将SDK解压目录中的tools目录添加到系统的PATH环境变量中。

(4) 下载并安装Eclipse集成开发环境。

(5) 为Eclipse安装Android开发插件ADT, 并在Eclipse的Preferences中配置Android插件的SDK Location。

(6) 在Eclipse的AVD Manager中创建Android虚拟设备 (AVD) , 并启动模拟器。

(7) 下载并安装用来调试Android传感器应用的Sensorsimulator传感器模拟器软件。

(8) 在模拟器中安装Sensorsimulator所对应的apk文件并对其进行调试使Sensorsimulator应用程序能够与Android模拟器进行通信。

4 开发前的准备

前面完成了开发环境的搭建, 但在正式进行代码开发之前, 还需要再做一些开发前的准备工作, 其步骤如下:

(1) 首先启动之前安装好Eclipse。

(2) 然后依次点击File|New|Other|Android|Android Project进入项目的创建界面。

(3) 在项目创建界面中, 输入项目的名称、所使用的目标平台、所在的包名等信息, 如图2所示。

(4) 点击“Finish”完成项目的创建。

(5) 在程序中将会用到的图片资源存放到项目文件夹的res/drawable-mdpi目录下, 如图3所示。

(6) 为应用程序引入调试时使用的Sensorsimulator支持jar包, 该jar包位于Sensorsimulator安装目录中的bin目录下:

5 自定义View的开发

本案例需要自定义一个View来绘制水平仪的用户界面, 首先需要在项目文件夹的src/wyf/ytl目录下创建一个名为MainView的java类, 并使其继承自View类, 其代码框架如下:

上述代码中的init Bitmap以及init Location方法是对界面进行初始化方法, 而on Draw方法会根据需要绘制整个界面。

Main View类构造器中调用了两个单独的方法对整个界面进行了初始化, 这是一种非常好的编程习惯。因为把不同功能的代码各自编写成独立的方法可以使主逻辑清晰, 且各个方法中的代码都不是很长, 会大大提高代码的可读性以及可维护性。

完成了代码框架的开发后就可以对其中各个方法进行开发了, 首先开发的是图片资源的初始化方法, 其代码如下:

上述代码为init Bitmap方法的全部代码, 其作用是对程序中所有的图片资源进行初始化, 在开发该方法之前, 应该确保所有的图片资源已经存放到了指定的目录下。

完成了图片资源初始化方法的开发后, 便可对气泡位置初始化方法init Location进行开发了, 其代码如下:

在该方法中通过相应图片的宽度和高度动态计算气泡的初始坐标, 采用此方法动态计算气泡坐标的好处是当日后更改图片资源后, 不需要重写修改源代码即可正常运行, 大大提高了程序的可维护性。

在完成了各个初始化方法的开发后就可以对绘制方法on Draw进行开发, 该方法主要负责界面的绘制工作, 其代码如下:

在该方法中, 根据相应图片的X、Y坐标将图片绘制到屏幕中, 在图片的绘制过程中, 同样动态根据相应图片的宽和高计算需要绘制到的位置坐标, 以提高程序的可维护性与灵活性。

6 相关XML文件的编写

完成了用于显示水平仪界面的自定义View的Java代码开发之后, 就应该对布局XML资源文件进行编写, 以将之前开发的自定义View添加到用户界面中。打开项目中res/layout目录下的main.xml, 在其中编写如下的xml代码:

编写完布局文件main.xml后, 还需要开发字符串资源文件strings.xml。打开res/values下的strings.xml文件, 编写如下的代码:

在该文件中只是对字符串app_name进行了定义, 在开发Android应用程序时, 将字符串资源统一定义到一个xml文件中是一个很好的编程习惯。

编写完上述的xml资源文件后, 为了调试还需要为此应用程序添加网络权限, 打开项目根目录下的Android Manifest.xml文件, 在“”标签之前加入下列代码:

上述代码的功能为此应用程序添加了访问网络的权限。

7 Activity类的开发

完成了自定义View以及XML文件的开发后, 就可以对用户界面对应的Activity类进行开发, 首先开发该类的代码框架, 其代码如下:

上述代码中除了重写了on Create方法外, 还重写了on Re-sume以及on Pause方法为my Sensor Manager添加或删除监听, 并且定义了传感器监听器类m Sensor Lisener。

在完成了Activity类代码框架的开发后就可以对其中传感器的监听类进行开发, 首先给出监听器类的代码框架:

在传感器监听类中, on Sensor Changed方法用于监听传感器采样值的变化, 例如手机姿态的改变等。上述代码中的isContain方法用于判断界面中间的气泡是否出界, 若出界则返回false。

完成了代码框架的开发后, 便可以对传感器的监听方法on Sensor Changed进行开发了, 其详细代码如下:

在on Sensor Changed方法中首先得到pitch轴以及roll轴的数值, 然后根据该数值的大小调整水泡在屏幕中的位置, 同时需要对水泡的坐标进行判断, 使其保持在自身所在外框的范围内。

此时运行该程序, 并保证测试工具Sensorsimulator与Android模拟器的连通, 便会观察到如图1所示的效果, 通过Sensorsimulator工具模拟手机的姿态的改变, 屏幕中的水泡便随之向高处运动。

8 程序发布

完成了所有代码的开发后, 就可以将应用程序打包发布了。本案例中只需将Eclipse工具自动生成的apk文件拷出即可, 按如下步骤操作。

(1) 进行正式发布之前首先需要将代码中注释为“测试时使用”的两处代码删掉, 并将注释为“真机使用”代码的注释去掉。

(2) 完成代码的修改后重新构建项目。

(3) 打开项目文件夹下的bin目录, 其中名为SPY的apk文件便为本应用程序的安装包。

(4) 将SPY.apk文件拷贝到支持传感器的Android手机中运行即可完成本应用程序的安装。

9 结语

通过开发基于Android平台的传感器应用——水平仪程序, 读者应该对Android程序的开发有了一定的了解, 同时读者也应该了解到在Android平台下使用传感器来丰富自己软件的功能是十分方便的。

篇4:Android 嵌入式开发心得体会

关键词:Android操作系统 教学体系 课程改革

以ARM为核心的Android操作系统涉及计算机、电子及自动控制等诸多专业知识,是现代通信终端的主流操作系统。在电气信息类专业引入和强化Android操作系统相关课程,使学生掌握Android操作系统嵌入式系统的设计方法,是十分必要的。

一、嵌入式Android操作系统课程特点

目前,嵌入式系统教学以ARM为主,而主流的终端操作系统已经由微软的Windows mobile和Linux转移到Android操作系统。其特点主要体现在:

1.综合性强。Android操作系统课程要求有一系列前修课程,包括:数字逻辑、计算机组成原理、计算机系统结构、微型计算机原理、接口技术、单片机、C/Java语言程序设计、操作系统等课程。涉及电子、计算机、自动控制等诸多专业知识,专业性强。嵌入式系统是软件、硬件设计的完美结合,可以有效训练学生的综合能力。

2.实践性强。嵌入式Android操作系统技术基本特征是以实际应用为主,实践环节是嵌入式系统课程的重要组成部分,学生需要通过大量的实验和实践环节,来加深对嵌入式系统理论知识的理解、掌握和运用。学生对嵌入式知识的深入理解和掌握往往是在亲手连接硬件线路、编程、调试等的实际动手实验的过程中逐步完成的。

二、实践教学改革

实践教学在嵌入式Android操作系统课程教学中处于非常重要的地位。本文主要结合我们的教学经验介绍嵌入式系统课程实践教学环节的实施过程。我们采取循序渐进、由浅入深,以应用为主的实践教学环节。具体如下:

1.课内基本实验。课内基本实验是必修实验,它包含三部分内容:验证性实验、设计性实验、综合性实验。验证性实验是以实验箱为主,配合理论课学习,这部分实验采用理论授课与动手实验相结合的方式。自己动手,实际操作,验证课堂上的理论知识,使学生加深对理论知识的掌握和理解,了解嵌入式Android操作系统集成开发环境、调试工具、测试工具的使用方法,了解嵌入式系统开发手段。设计型实验是针对理论课所学知识,设置设计型实验。在验证理论课所学知识的同时,培养学生动手能力和自主设计能力。实验中,给出实验题目,要求在学生掌握嵌入式微处理器架构、嵌入式微处理器指令系统、外围接口等知识的基础上,自主设计实验方案,包括选择硬件接口,编写实验程序,调试运行,使学生具备在嵌入式平台上对于嵌入式微处理器做汇编语言编程、C语言编程及汇编语言和Java语言混合编程、调试及对外围接口编程、运用的能力,掌握基本的嵌入式系统编程能力。综合性实验是在课程设计中进行的,在验证性实验、设计性实验基础上,课程结束时进行课程设计:给出综合性实验题目,要求学生综合整个课程的知识,利用实验台资源,制订出实验方案,通过设计、调试等各环节,独立完成一个较为复杂的综合性实验项目。通过综合性实验,使学生掌握嵌入式系统的开发流程,对嵌入式系统理论有更深入的理解,并初步具备进行具体应用和综合设计的能力。

2.课外开放型实验。课外开放型实验是选修实验。在课内实验基础上,实验室为学生开放,提供课外选修的开放型实验。学生根据老师给定的选题,自由选择感兴趣的题目,自行制订实验方案,设计硬件电路、编程、调试并实现。

3.面向应用的创新型课题。有一定基础和开发能力的学生,通过选拔参与教师的横向项目的开发队伍中。培养学生的科研能力和自主创新能力,使学生有机会参与研究型、应用型课题,从而培养学生的科研能力、创新能力和工程实践能力。下面以基于ARM的嵌入式无线监控系统的设计为例介绍具体的实现过程。

三、案例分析

1.系统设计。开发应用项目的首要工作是根据用户需求,进行系统的总体设计。本设计通过GPRS/GSM网络对现场设备进行远程监控,以实现监控中心对远程设备的状态监测,提供便捷灵活的工作模式。系统采用三星公司的S3C2440嵌入式处理器和Android操作系统。S3C2440使用ARM920T内核,主频是400MHz,除了集成通用的串口控制器、USB控制器、A/D转换器和GPIO等功能之外,还集成了一个摄像头接口(CAMIF),这个接口可用于视频图像采集;集成了液晶显示屏,用于软件交互的软件设计。系统检测外部输入的模拟信号和数字信号,通过GPRS通信单元传送到监控中心,并根据监控中心的指令或预设的指令对输入信号的异常做出反应,通过继电器输出控制声光电等开关或报警。系统在S3C2440处理器的控制下从CCD摄像机采集模拟视频信号,然后经过编码、DMA传输到内存缓冲,接着由软件对内存中的数字视频数据进行压缩和打包,最后通过GPRS通信单元将图像以IP包的方式发送到监控中心的服务器。

2.硬件设计。硬件平台由核心板和底板两部分组成。核心板电路采用S3C2440芯片作为CPU,外部采用两片同为三星公司的K4S561632C-TC75芯片实现64MB的SDRAM和一片K9F1G08实现128MB容量的NAND FLASH,为应用研发提供了足够的空间。

底板电路又分为输入输出单元、视频输入单元、以太网接口、串口扩展单元、LCM显示模块和GPRS模块单元,以及电源单元。

3.软件设计与实现。经过几年的发展,Android操作系统技术和产品日趋成熟,有越来越多的公司了解了Android操作系统的优点而选用Android操作系统作为主要的平台,数字视频监控应用亦不例外。Android操作系统以其独特的特性,在数字影像监控领域已经有了一段时间的应用,其可针对不同硬件设备(PC或单晶片)与数字影像监控应用需求而量身订制,不仅可免去制式系统的复杂性,并可有效减少对硬件资源的需求。Android操作系统具有内核微小、资源丰富、硬件支持广泛等特点,而且它本身开放性的架构与弹性(Scalable)设计,可针对数字影像监控应用量身定做,去除與监控无关的多余功能,因此在本文实现的平台上,使用的操作系统是对Android操作系统进行了定制。系统的应用模块,包括A接口(现场监控单元与被控设备接口)通信协议,B接口(现场监控单元与区域监控中心接口)通信协议,GSM Modem通信协议,视频应用,配置应用,告警应用等应用和内核分开,以便于更好地支持远程升级。现场监控主机与区域监控中心之间的通讯接口为GPRS,在传输协议上有UDP和TCP可供选择。为了现场监控主机与区域监控中心之间的通讯的可靠性,确定选用TCP协议。而为了保证告警事件的及时上报,考虑每个现场监控主机与区域监控中心之间都采用两个独立的TCP链接,一个链接为区域监控中心发送命令及现场监控主机上报告警信息的通道,这个通道的数据量少,以保证传输的实时性,另一个链接为现场监控主机应答区域监控中心命令的通道,包括一般命令应答和大数据传输的应答,数据量比命令通道大,实时性不做特别限制。通过两个TCP链接的组合搭配来实现传输效率和性能的更佳平衡。区域监控中心提供两个不同的TCP服务端口以区分不同的传输通道,缺省状态下,提供10037端口,用于建立命令和告警通道,10038端口,用于建立应答和大数据传输通道。现场监控主机上电后应该自动向区域监控中心请求建立链接,如果发生链路失效的情况,现场监控主机应该以一分钟为间隔周期,自动重新建链。监控主机上电以后,初始化GPRS,建立和监控中心的链接并且向监控中心发送全局标识号,进入监控网络的过程。

4.系统调试。系统实现后在GSM/GPRS网络环境下进行测试,对静态JPEG编码方式的图像进行实时监控,功能基本符合要求。系统可用于交换机房、新建基站、改造的边际网和直放站、部分搬迁未监控基站等进行监控。

本文介绍了嵌入式Android操作系统课程的实践教学具体实施过程。为了突出嵌入式系统课程的特点,同时要密切关注嵌入式Android操作系统技术的发展趋势,不断修改、补充、完善实践教学体系,使培养出来的学生能够适应社会发展的需求。

参考文献:

[1]王向辉,等.Android应用程序开发[M].北京:清华大学出版社,2010.

[2]田泽.嵌入式系统开发与应用实验教程[M].北京:北京航空航天大学出版社,2004.

[3]文志成.GPRS网络技术[M].北京:电子工业出版社,2005.

篇5:嵌入式开发学习心得

嵌入式开发学习心得

就我个人而言,从最开始对嵌入式一窍不通到现在越学越感兴趣,当然相应在嵌入式方面的提高也是很明显的。学习嵌入式越来越成为我学习中的一部分,现在把我的学习过程的心得体会与大家一起分享,希望那些和我一样对嵌入式想学而又迷茫,不知从哪入手的同学朋友有所帮助。基础知识

嵌入式开发很大一部分靠C语言,尤其在底层驱动等用的很多,当然在应用开发还用到诸如C++等其他语言,但我想对于一个初学者有C基础就足够了,等到学到一定程度再去扩展。所以C 基础是学嵌入式的前提。

关于C语言需要知道基本的语法,什么是结构体,什么是共用体,有什么区别,不用强记一些实际中用的很少的东西。C++要知道什么是类,怎么定义,继承,接口,要深刻理解,当然基本语法也是必不可少的。

操作系统原理也需要基本理解和掌握的,我记得我上课的时候不以为然没有认真学习,后来发现很多的东西都是在这个课上讲到的。什么时间片啊,任务调度啊,都是在那里知道的。

Linux基本命令的使用(vi编辑器必须会用,因为在终端修改文件的时候只能用这个),我们现在很多的人都习惯用鼠标了,很少用到命令,我学习嵌入Linux就强迫自己去改掉这个习惯了,Linux用命令操作一是效率高,二是功能非常强大,远非图形界面能比的了的,其实我们用图形界面的操作都要转化为命令传给硬件的。Linux文件系统的管理要清楚,哪个目录存放是什么东西,有什么用,文件权限管理等。单片机知识的学习

我觉得单片机、嵌入式等这一类都有很大的相似性,知识功能不一样,但工作的原理、控制原理都和大的相似。就我个人而言,能比较快的进入嵌入式的学习与提高,很大一部分依赖于对单片机的原理有较深入的学习和理解,单片机比较简单,学习起来相对比较容易,所以我建议想学嵌入式的同学,可以和我一样从单片机入手,那样不仅可以理解这些微处理器、微控制器的操作与控制原理,当然还可以顺便学学汇编语言,这对后面的嵌入式学习都有很大的帮助。

看书不要希望一次就会,一次就明白是什么意思,也不要死记硬背,看不明白也没关系,以后遇到了知道去哪里去找就可以了,以后遇到的多了,也就记住了,遇到的少的,忘记也就忘记了。还有,不要直接阅读Linux内核源代码,看一些自己把头撞破也想不明白的事,一开始很打击我的积极性,要循序渐进,刚开始我就从学习做led开始的,接着学习做个串口,慢慢的就开始学着做硬件编解码了。学习开发板

我在刚开始学习嵌入式时就买了一块学习板,现在的开发板不是很贵,给很我们初学者减轻了经济负担。看再多的视频,看再多的书,也不如自己动手试一下,看着很简单的东西,做起来就可能遇到很多的问题,遇到问题找到原因,解决问题,只有这样才能学到东西,记得我第一次写led的驱动,想自己试一下,网上也有人写过相关的代码,可是自己一试,就出了好多的问题,那个led弄了我一天才把led灯点亮。所以不要眼高手低。不要好高骛远,要脚踏实地

我拿到开发板时,很兴奋也很激动,想法自然也很多,想用开发板实现自己的这个想法,实现那个想法,然后又不知道从何下手,然后就去论坛中发一个贴,“那个什么什么怎么实现啊,哪位大侠能详细说一下啊,跪求!”,然后等着别人去回复。我觉得有想法是好的,我们要实现自己的想法也是有前提的,首先,我们对这部分知识了解吗?如果不了解就去Google一下(最好别用百度,不太好用),了解了一些,也就大概知道要怎么做了。如果再遇到问题,再去发贴问,这样也显得我们有一点点水平啦。比如自己连串口是什么都不太清楚呢,就问串口通信怎么做啊,就是人家把代码给我们,我们也不明白是怎么回事啊。多看代码,多写代码

见多识广,熟能生巧。多看代码,要从代码中读出代码的意思来。自己平时也要多写代码,多练习(这一点我做的不好,写的少)。

个人觉得这是最重要的一种做法。这东西没自己亲手做,程序没亲手写,没有进行调试等,都是很难学到东西,因为很多东西感觉看的都懂,其实真正做起来就什么都不会了。因此买块板来自己做,这样才能真正将所学的应用到实际中去。而且这样做印象才能深刻,死记硬背原理及规则不但不可行还会拖垮你的学习兴趣,自然学不下。

篇6:Android 嵌入式开发心得体会

题 目:嵌入式系统Android

选题性质:□设计报告□其他

院 系 电子系

专 业 物联网

班 级 12021071 学 号 20120027

学生姓名 钱硕

2014年 6月 12

日重庆航天技术职业学院嵌入式系统设计报告书

摘要

随着手机的普及以及手机应用的深入人心,近几年“智能手机”成为了人们关注的话题。在现今这个智能手机系统群雄纷争的时候,2008年Google推出了一款名为Android的开源智能手机操作系统。Android凭借其开放性和良好的人机界面,受到广大手机生产商的重视,随着3G时代的到来,Android有可能会改变现在智能手机市场的格局。Android 是由Linux操作系统、中间件以及核心应用程序组成的专门为移动终端设备开发的层次软件集。在对Android学习中,主要做了以下的研究:首先,Android系统是一个层次的软件集,所以先从层次方面对Android进行系统研究,主要对其运行时环境层以及Android应用框架层的研究;其次,通过对Android平台上应用的开发,更进一步了解Android这个系统,在开发中,尤其注重Android的Intent机制的使用。

关键字:Android; Android 内核层; Android构架;Android应用; Android SDK;Android 开发

I

目录

摘要...............................................................................................................................I 目录..............................................................................................................................II 前言............................................................................................错误!未定义书签。第1章......................................................................................................................1.1 何为嵌入式系统.............................................................................................1.2嵌入式系统的发展............................................................................................1.3嵌入式系统有哪些.........................................................................................第2章

ANDROID系统...............................................................................................2.1来历.................................................................................................................2.2起源.................................................................................................................2.3系统构架.........................................................................................................2.4 应用组件.........................................................................................................个人评价..........................................................................................................................6

II 重庆航天技术职业学院嵌入式系统设计报告书

前 言

毋庸置疑,嵌入式技术是继网络技术之后,又一个新的技术发展方向。嵌入式系统是计算机软件与硬件的完美结合,广泛地应用于手持设备、信息家电、仪器仪表、汽车电子、医疗仪器、工业控制、航天航空等都各个领域,并嵌入在各类设备之中,起着核心作用。

毋庸讳言,嵌入式系统已经无处不在,无疑是当前最有前途、最为热门、最需人才的技术领域。嵌入式人才主要分为两大类:一类是嵌入式硬件工程师,主要从事嵌入式系统硬件研发,包括硬件系统原理图的设计、PCB印刷线路板的设计,开发与硬件相关的底层软件(如BootLoader、嵌入式驱动程序等);另一类是嵌入式软件工程师,主要从事嵌入式操作系统和应用软件的开发,如果对嵌入式硬件原理和接口技术有较好的掌握,也可以从事嵌入式系统底层程序的开发。

第1章

嵌入式系统

1.1 何为嵌入式系统

嵌入式系统(Embedded System),一般指非桌面计算机系统(即非PC、服务器、大中小型机等),有计算机功能且可以“嵌入”到专用设备并发挥专用功能的计算机设备或器材。它是以应用为中心,软硬件可裁减的,适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。简单地说,这种计算机通过和设备的电气连接,并通过在计算机上运行的专用程序对接口进行通讯和控制,使设备成为智能化的设备,比如:基于网络的工业控制器、带彩色显示的智能终端等。

嵌入式系统主要由嵌入式处理器为核心的硬件系统、嵌入式操作系统及应用软件系统等组成,它是可独立工作的“器件”。

1.2 嵌入式系统的发展

嵌入式系统的出现至今己经有30多年的历史了,嵌入式技术也历经了几个发展阶段。进入90年代后,以计算机和软件为核心的数字化技术取得了迅猛发展,不仅广泛渗透到社会经济、军事、交通、通信等相关行业,而且深入到家电、娱乐、艺术、社会文化等各个领域,掀起了一场数字化技术革命。多媒体技术与Internet的应用迅速普及,消费电子、计算机和通信一体化趋势日趋明显,嵌入式技术再度成为一个研究热点。嵌入式技术的发展大致经历了以下四个阶段: 第一阶段是以单芯片为核心的可编程控制器形式的系统具有与监测、伺服、指示设备相配合的功能。这类系统大部分应用于一些专业性强的工业控制系统中,一般没有操作系统的支持,通过汇编语言编程对系统进行直接控制。这一阶段系统的主要特点是:系统结构和功能相对单一,处理效率较低,存储容量较小,几乎没有用户接口。由于这种嵌入式系统使用简单和价格低,以前在国内工业领域应用较为普遍,但是已经远不能适应高效的、需要大容量存储的现代工业控制和新兴信息家电等领域的需求。

第二阶段是以嵌入式微处理器为基础、以简单操作系统为核心的嵌入式系统。主

3重庆航天技术职业学院嵌入式系统设计报告书

供的功能不是太多,为了避免你做了很久之后才发现——原来 NDK 不支持某项功能,大家可以根据自己的需求来选择是否采用 NDK 开发原生程序。2.应用程序框架层

应用程序框架层为开发人员提供了可以完全访问核心应用程序所使用的API框架。该应用 程序的构架设计简化了组件的重用,任何一个应用程序(以及任何其他应用程序)都可以发布自己的功能模块(在遵循框架的安全性限制的前提下)。同样,该应用程序重用机制也使用户可以方便地替换程序组件。下面来看一下该层的每一个模块为我们提供的组件。2.4 应用组件

应用组件Android开发四大组件分别是:活动(Activity): 用于表现功能。服务(Service): 后台运行服务,不提供界面呈现。广播接收器(BroadcastReceiver):用于接收广播。内容提供商(Content Provider): 支持在多个应用中存储和读取数据,相当于数据库。活动Android 中,Activity是所有程序的根本,所有程序的流程都运行在Activity 之中,Activity可以算是开发者遇到的最频繁,也是Android 当中最基本的模块之一。在Android的程序当中,Activity 一般代表手机屏幕的一屏。如果把手机比作一个浏览器,那么Activity就相当于一个网页。在Activity 当中可以添加一些Button、Check box 等控件。可以看到Activity 概念和网页的概念相当类似。一般一个Android 应用是由多个Activity 组成的。这多个Activity 之间 Android的应用(20张)可以进行相互跳转,例如,按下一个Button按钮后,可能会跳转到其他的Activity。和网页跳转稍微有些不一样的是,Activity 之间的跳转有可能返回值,例如,从Activity A 跳转到Activity B,那么当Activity B 运行结束的时候,有可能会给Activity A 一个返回值。这样做在很多时候是相当方便的。

当打开一个新的屏幕时,之前一个屏幕会被置为暂停状态,并且压入历史堆栈中。用户可以通过回退操作返回到以前打开过的屏幕。可以选择性的移除一些没有必要保留的屏幕,Android会把每个应用的开始到当前的每个屏幕保存在堆栈中。

个人评价

在老师的耐心教导下,我经过了一学期的努力,顺利的完成了此门课程。在此期间,我学到了不少的知识,经历了很多,也体会到了很多,虽然结果很重要是并不能因此就忽略了中间的过程,因为这才是解决问题的关键。有人说:“平凡的大学生有着相同的平凡,而不平凡的大学生会有不平凡的辉煌。”

虽然我这个学期不是很积极,但我相信在这个学期会比上个学期更加清楚自己的去向。人们常说,大学的生活是异常轻松和自由的,我也觉得的确是这样。但时间总是宝贵的,我再也不想成为虚度光阴的人,不想自己在老的时候后悔自己这样浪费时间。为了改正我以上不珍惜时间的缺点,我决定给自己制定一些措施,以便更好的督促自己。

上一篇:小学教师暑期培训总结下一篇:假如我能变小学想象作文