




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、汕头大学-黄珠唐 tigertang2 3.1 Android 平台的优越性 Android 是一个非常优秀的操作系统,这已经得到很多厂家和工程实践的验证。但笔者认为,其最大的意义在于这个开源的操作系统给我们带来学习的机会, 因为一直以来,我国的IT 技术和欧美相比有一定的差距,借着这个机会,我们可以学习目前最新的软件开发技术和框架设计,迎头赶上并弥补先天不足。 虽然Android内核基于LINUX,但是ANDROID和LINUX有很大区别, Android 的主线内核做了相应优化,主要体现在下面几个方面: · Alarm · Ashmem · Binder
2、183; Power Management · Low Memory Killer · Kernel Debugger · Logger 其中最主要的部分是Binder,这是不同于LINUX的进程间通信(IPC)的部分, Binder主要是通过用驱动程序来推进进程间通信,以及通过共享内存来提高性能。 基于Linux的android操作系统有以下几个方面的优势 · Great memory and process management 优越的内存和进程管理功能 · Permissions-based security model 基于权限的安全模
3、式 · Proven driver model 被认可的驱动程序模式 · Support for shared libraries 支持共享库 · It is already open source! 代码开源 3.2 H.264 硬件编解码的性能指标 H.264 编解码标准是由ITU-T 和ISO/IEC 的联合视频组(JVT)开发的最新的数字视频编码标准,它是DPCM 和变换编码的混合编码模式,主要特点在于统一的VLC 符号编码、高精度、多模式的位移估计,基于4×4 块的整数变换、分层的编码语法等。这些措施使得H.264 算法具有很高的编码效率,在相
4、同的重建图像背质量下,能够比H.263 节约50%左右的码率。H.264 的码流结构非常适合 于网络,增强了纠错恢复能力,可以很好的适应基于IP 和无线网络的视频数据传输。 这里我们采用s3c6410 集成的标准H.264 硬件编解码,性能可以达到全双工30fps640x480 同时编解码和半双工30fps720x480 或25fps720x576 编解码。 3.3 UDP 与TCP 比较 UDP协议,即用户数据报协议。UDP 提供不可靠的非连接型传输层服务,它允许在源和目的地站点之间传送数据,而不必在传送数据之前建立对话。此外, 该协议还不使用TCP 使用的CRC校验。当使用UDP 时,传输
5、层功能全都发回,而开销却比较低。它主要用于那些不要求TCP 协议的非连接型的应用程序。 采用UDP的主要优点是传输数据量比较大,在网络环境比较好时,适合音频、视频数据的传输,本系统在基于有线Internet视频传输时,采用的就是UDP的方式,效果很好。但是在基于3G无线网络传输数据时,由于UDP面向无连接和无CRC 校验的特性,这种数据传输方式就出现了掉包很严重的问题,图像出现严重模糊。为了解决这个问题,我们在3G无线网络中采用了基于TCP的视频传输实现,很好的解决了在无线网络中数据掉包严重的问题。也许读者会问,使用TCP传输视频数据,速度跟得上吗?答案是肯定的,因为基于H.264的数据压缩率
6、比较高,采用TCP不会影响传输速度,实际上经过测试,也达到了很好的效果。 TCP协议,既传输控制协议。TCP提供可靠的面向连接的数据传输协议, 是重要的传输层协议,它和UDP 不同,传输层软件TCP 的目的是允许数据同网络上的另外站点进行可靠的交换。它能提供端口编号的译码,以识别主机的应用程序, 而且完成数据的可靠传输。下图为TCP的头信息: 图3.1 TCP 的头信息 Linux 上TCP 和UDP 是使用套接字Socket 实现的,建立套接字之后UDP 直接使用sendto()、recvfrom()传输数据。而TCP 实现则在服务器端需要建立监听, 通过客户端请求,三次握手协议实现可靠的面
7、向连接的数据传输。详细实现请看软件设计部分和源代码。 4.3 Android 的移植 本系统移植了原生android1.6(Donut),并对其进行较大程度的开发。在写本文档时,我们已经将其升级至最新版本Android2.1(Eclair). 下面简要介绍其移植过程, 编译平台Fedora 9 Fedora 9 已经包含了编译android 时所需的大部分开发包, 我们还需要安装git 和gperf. #yum install git-core #yum install gperf 从sun 网站下载JDK5 te/en_US/-/USD/VerifyItem-Start/jdk-1_5_0_
8、18-linux-i586-rpm.bin?Bundl edLineItemUUID=4BNIBe.pz5IAAAEgE1cWA.Mn&OrderID=SiZIBe.pmRMAAAEgAVcWA .Mn&ProductID=yylIBe.nA_AAAAEfOBlzHdQ4&FileName=/jdk-1_5_0_18-linux-i 586-rpm.bin 修改权限 #chmod 755 jdk-1_5_0_18-linux-i586-rpm.bin 安装 #./jdk-1_5_0_18-linux-i586-rpm.bin 设置环境变量 export JAVA_HOM
9、E=/opt/jdk.1.5.0_18 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$ CLASSPATH 安装repo #curl /repo > /root/bin/repo # chmod a+x /root/bin/repo 初始化repo #repo init -u git://platform/manifest.git 不出意外的
10、话,完成后应该显示"repo initialized in /mydroid". 最后输入"repo sync"开始下载源代码. 现在同步到的主线源代码为android2.1(Eclair),现在到的源码有2G 左右,如要编译,则需留下6G 的空间。编译完整个代码目录如下: 图4.6 编译后的android 源码目录 主要源代码目录介绍: Makefile (全局的Makefile) bionic (Bionic 含义为仿生,这里面是一些基础的库的源代码) bootable (引导加载器) build (build 目录中的内容不是目标所用的代码,而是编译和 配置所需要的脚本和工具) dalvik (JAVA 虚拟机) development (程序开发所需要的模板和工具) external (目标机器使用的一些库) frameworks (应用程序的框架层) hardware (与硬件相关的库) packages (Android 的各种应用程序) prebuilt (Android 在各种平台下编译的预置脚本) re
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 承德市中医院心力衰竭的社区早期识别与稳定期管理考核
- 延边州中医院超声诊断医师职业发展考核
- 赤峰市人民医院儿科急救设备使用考核
- 阳泉市人民医院机械清创技术考核
- 阳泉市人民医院血栓抽吸技术考核
- 邯郸市人民医院老年肺部感染诊治特点考核
- 朔州市中医院美容手术应急预案考核
- 2025第三人民医院胆肠吻合术技术专项考核
- 运城市中医院困难血管置管技术考核
- 白城市中医院脑动静脉畸形切除术技能考核
- 《计算机应用基础》课件第1章
- 无人机操作资格考试全套题库
- 2025新员工三级安全教育考试试题与答案
- 新能源汽车驾驶技术
- 土地调查评估服务方案(3篇)
- 从《德意志意识形态》剖析市民社会理论的构建与演进
- 重大危险源试题及答案
- 企业员工常见突发疾病急救措施培训
- 癫痫病人的护理个案
- DGTJ08-66-2016 花坛花境技术规程
- 矿区生物多样性评估-洞察及研究
评论
0/150
提交评论