收藏 分享(赏)

Android底层开发文档.doc

上传人:scg750829 文档编号:6211871 上传时间:2019-04-02 格式:DOC 页数:6 大小:27.50KB
下载 相关 举报
Android底层开发文档.doc_第1页
第1页 / 共6页
Android底层开发文档.doc_第2页
第2页 / 共6页
Android底层开发文档.doc_第3页
第3页 / 共6页
Android底层开发文档.doc_第4页
第4页 / 共6页
Android底层开发文档.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、汕头大学-黄珠唐 3.1 Android 平台的优越性 Android 是一个非常优秀的操作系统,这已经得到很多厂家和工程实践的验证。但笔者认为,其最大的意义在于这个开源的操作系统给我们带来学习的机会, 因为一直以来,我国的 IT 技术和欧美相比有一定的差距,借着这个机会,我们可以学习目前最新的软件开发技术和框架设计,迎头赶上并弥补先天不足。 虽然 Android 内核基于 LINUX,但是 ANDROID 和 LINUX 有很大区别, Android 的主线内核做了相应优化,主要体现在下面几个方面: Alarm Ashmem Binder Power Management Low Memo

2、ry Killer Kernel Debugger Logger 其中最主要的部分是 Binder,这是不同于 LINUX 的进程间通信(IPC)的部分, Binder 主要是通过用驱动程序来推进进程间通信,以及通过共享内存来提高性能。 基于 Linux 的 android 操作系统有以下几个方面的优势 Great memory and process management 优越的内存和进程管理功能 Permissions-based security model 基于权限的安全模式 Proven driver model 被认可的驱动程序模式 Support for shared libra

3、ries 支持共享库 It is already open source! 代码开源 3.2 H.264 硬件编解码的性能指标 H.264 编解码标准是由 ITU-T 和 ISO/IEC 的联合视频组(JVT)开发的最新的数字视频编码标准,它是 DPCM 和变换编码的混合编码模式,主要特点在于统一的 VLC 符号编码、高精度、 、多模式的位移估计,基于 44 块的整数变换、分层的编码语法等。这些措施使得 H.264 算法具有很高的编码效率,在相同的重建图像背质量下,能够比 H.263 节约 50%左右的码率。H.264 的码流结构非常适合 于网络,增强了纠错恢复能力,可以很好的适应基于 IP

4、和无线网络的视频数据传输。 这里我们采用 s3c6410 集成的标准 H.264 硬件编解码,性能可以达到全双工 30fps640x480 同时编解码和半双工 30fps720x480 或 25fps720x576 编解码。 3.3 UDP 与 TCP 比较 UDP 协议,即用户数据报协议。UDP 提供不可靠的非连接型传输层服务,它允许在源和目的地站点之间传送数据,而不必在传送数据之前建立对话。此外, 该协议还不使用 TCP 使用的 CRC 校验。当使用 UDP 时,传输层功能全都发回,而开销却比较低。它主要用于那些不要求 TCP 协议的非连接型的应用程序。 采用 UDP 的主要优点是传输数据

5、量比较大,在网络环境比较好时,适合音频、视频数据的传输,本系统在基于有线 Internet 视频传输时,采用的就是 UDP 的方式,效果很好。但是在基于 3G 无线网络传输数据时,由于 UDP 面向无连接和无 CRC 校验的特性,这种数据传输方式就出现了掉包很严重的问题,图像出现严重模糊。为了解决这个问题,我们在 3G 无线网络中采用了基于 TCP 的视频传输实现,很好的解决了在无线网络中数据掉包严重的问题。也许读者会问,使用 TCP 传输视频数据,速度跟得上吗?答案是肯定的,因为基于 H.264 的数据压缩率比较高,采用 TCP 不会影响传输速度,实际上经过测试,也达到了很好的效果。 TCP

6、 协议,既传输控制协议。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 http:/ te/en_US/-/USD/VerifyItem-Start/jdk-1_5_0_18-linux-i586

8、-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_HOME=/opt/jdk.1.5.0_18 expor

9、t PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$ CLASSPATH 安装 repo #curl http:/android.git.kernel.org/repo /root/bin/repo # chmod a+x /root/bin/repo 初始化 repo #repo init -u git:/android.git.kernel.org/platform/manifest.git 不出意外的话,完成后应该显示“repo initialized i

10、n /mydroid“. 最后输入“repo sync“开始下载源代码. 现在同步到的主线源代码为 android2.1(Eclair),现在到的源码有 2G 左右,如要编译,则需留下 6G 的空间。编译完整个代码目录如下: 图 4.6 编译后的 android 源码目录 主要源代码目录介绍: Makefile (全局的 Makefile) bionic (Bionic 含义为仿生,这里面是一些基础的库的源代码) bootable (引导加载器) build (build 目录中的内容不是目标所用的代码,而是编译和 配置所需要的脚本和工具) dalvik (JAVA 虚拟机) developm

11、ent (程序开发所需要的模板和工具) external (目标机器使用的一些库) frameworks (应用程序的框架层) hardware (与硬件相关的库) packages (Android 的各种应用程序) prebuilt (Android 在各种平台下编译的预置脚本) recovery (与目标的恢复功能相关) system (Android 的底层的一些库) out (编译完成后产生的目录,也就是我们移植文件系统需要的目录) 我们提取文件系统主要是在/out/target/product/generic 目录下,移植成功后, 烧写至开发板,运行如下图所示: 图 4.7 Android 界面 (待续)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 网络科技 > 开发文档

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报