Android系统架构、开发环境搭建及启动流程分析_第1页
Android系统架构、开发环境搭建及启动流程分析_第2页
Android系统架构、开发环境搭建及启动流程分析_第3页
Android系统架构、开发环境搭建及启动流程分析_第4页
Android系统架构、开发环境搭建及启动流程分析_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 Android系统结构及平台搭建Android系统结构Android开发环境搭建Android启动流程分析Android系统结构Android系统结构 基于Linux的自由及开源的操作系统。Android操作系统最初由Andy Rubin开发。 2008年10月 第一部Android智能手机发布。 2011年第1季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2012年11月,Android占据全球智能手机操作系统市场76%的份额,中国市场占有率为90%。 2013年09月24日谷歌开发的操作系统Android迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台

2、。 目前最流行的智能手机开发平台,现已普及到平板电脑、游戏机、数码相机、OTT机顶盒、智能电视等各终端产品。Android系统结构一个好的开发平台一定有一个成熟、稳定的系统架构来支撑Android平台系统结构从上到下分为四层:p应用层p框架层p系统运行库pLinux内核层Android系统结构应用层pAndroid不仅仅是操作系统,也包含了许多应用程序,如SMS短信客户端程序、电话拨号程序、图片浏览器、Web浏览器等。p用Java语言编写,基于框架层API实现。p可被开发人员开发的其他应用程序替换。Android系统结构框架层p 可重用的软件组件,简化应用程序的开发,向应用提供API。p Ac

3、tivity Manager(活动管理器)管理各个应用程序生命周期以及通常的导航回退功能p Window Manager(窗口管理器)管理所有的窗口程序p Content Provider(内容提供器)使得不同应用程序之间存取或者分享数据 p View System(视图系统)构建应用程序的基本组件 p Notification Manager(通告管理器) 使应用程序可以在状态栏中显示自定义的提示信息p Package Manager(包管理器) Android系统内的程序管理p Resource Manager(资源管理器)提供应用程序使用的各种非代码资源,如本地化字符串、图片、布局文件、

4、颜色文件等Android系统结构系统运行库层p 系统库:连接框架层与Linux内核层的重要纽带,框架层的支撑 Surface Manager:负责管理显示与存取操间互动,负责2D与3D绘图 Media Framework:多媒体库,支持常用的音频、视频格式录制和回放 SQLite: 小型的关系型数据库引擎 OpenGL|ES:根据OpenGL ES 1.0API标准实现的3D绘图函数库 WebKit:网页浏览器的软件引擎 SSL:在Andorid上通信过程中实现握手 Libc:从BSD继承的标准C系统库,为基于embedded linux的设备定制p 核心库:提供了Java语言API中的大多数

5、功能,同时也包含了Android的一些核心API,如android.os、android.media等等。p Dalvik虚拟机:一种基于寄存器的Java虚拟机,而不是传统的基于栈的虚拟机。每个Android程序都有一个Dalivik虚拟机的实例,并在该实例中执行。Dalvik虚拟机进行了内存资源使用的优化,执行.dex文件Android系统结构Linux内核层pAndroid是基于Linux2.6内核,其核心系统服务如安全性、内存管理、进程管理、网路协议以及驱动模型都依赖于Linux内核。p除Linux标准驱动外,需要一些专有驱动,如Binder、Log、Ashmem等Android系统版本

6、发布日期发布日期版本号版本号代号代号重大变化重大变化2008.92008.91.12009.42009.41.5Cupcake 纸杯蛋糕屏幕虚拟键盘2009.92009.91.6Donut 甜甜圈2009.102009.102.0/.1Eclair 松饼动态桌面、HTML52010.52010.52.2/2.2.1Froyo 冻酸奶3G网络、Flash支持2010.122010.122.3/2.4Gingerbread 姜饼NFC2011.22011.23.0/3.1/3.2Honeycomb 蜂巢针 对 平 板 进 行 优 化 ,Fragment2011.102011.104.0Ice Cr

7、eam Sandwich冰激凌三明治全新UI2012.62012.64.1Jelly Bean果冻豆2012.102012.104.2Jelly Bean 果冻豆支持Miracast无线显示共享功能待定待定4.4Kit Kat 奇巧巧克力Android系统优势完全开放的系统,吸引越来越多的厂家和消费者,将催生众多硬件支持和程序选择无缝结合Google应用,如Google地图、邮件、搜索等互联网的重要服务。开源软件系统,功能强大,支持众多软件,如Webkit浏览器、播放器、FLASH等。高效的JAVA虚拟机Dalvik,支持JAVA,速度快。Android系统劣势 版本更新快,如何保持前后兼容

8、完全开发的系统,如何保持不同厂家之间兼容Android系统开发涉及三个层次: Android系统移植开发系统移植开发 芯片厂家会提供基于其样板的SDK,拿到其样板及SDK后,需要针对我司的具体硬件及产品业务做如下工作:fastboot移植(DDR参数/启动流程)、Recovery、设备驱动、工厂菜单、媒体播放、音视频兼容性等 Android子系统开发子系统开发 涉及到系统各个层次:封装硬件抽象层、增加C/C+本地业务库、定义Java层所需要的类、将本地业务库的功能接口封装成JNI、结合Java类和JNI、提供应用程序调用的Java框架类等 Android应用程序开发应用程序开发 根据具体产品的

9、业务需求定制开发特定apk eclipse环境搭建、系统调试(Logcat、DDMS等)Android目录结构Android开发环境搭建Android应用开发环境搭建Android系统开发环境搭建Android应用开发环境搭建Android应用开发环境搭建Android系统开发环境搭建Android系统开发环境搭建 Android系统开发环境要求: 操作系统:Ubuntu(版本号=10.04) 硬盘空间:10GB JDK 版本:1.6(根据android版本而定) Python 版本:2.42.7 Android系统开发环境搭建 安装依赖包: 64位机器: $ sudo apt-get ins

10、tall git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev libgl1-mesa-dev g+-multilib mingw32 tofrodos 32位机器: $ sudo apt-get install git-core gnupg flex bison gperf build-essential zip cur

11、l zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev libx11-dev libgl1-mesa-dev tofrodos Android系统开发环境搭建安装JDK: 步骤 1 更新安装包 $ sudo apt-get update 步骤 2 安装 jdk 1.6 $ sudo apt-get install sun-java6-jdk 用户按提示操作即可。 步骤 3 检查安装结果 确认JDK 版本号正确 $ java -version java version 1.6.0_26 Java(TM) SE Runtime Enviro

12、nment (build 1.6.0_26-b03) Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode) Android系统开发环境搭建 安装python: python工具的安装: $ sudo apt-get install python Android系统开发环境搭建 安装交叉编译工具链(hisilicon) 当第一次拿到海思开发包,或遇到发布包中交叉编译工具链的版本更新时,需重新安装编译工具链 交叉编译工具链:arm-hisiv200-linux 在交叉工具链安装包目录下执行命令:./cross.install

13、Android系统开发环境搭建 编译源码(hisilicon) 解压海思提供的开发包 进入解压后的目录,设置编译环境 /home/work/ics $ source build/envsetup.sh /home/work/ics $ lunch full_godbox-eng 编译环境只需设置一次即可进行多次编译。但切换 shell 环境,则需要重新设置。 编译 /home/work/ics $ ./mk-all.sh 4(并发线程数,(并发线程数,根据服务器性能自行调整)根据服务器性能自行调整)Android系统开发环境搭建 编译后在out目录下会生成二进制文件: outtargetpro

14、ductgodbox: userdata.ics.yaffs2_xkyb system.ics.yaffs2_xkyb recovery.img kernel x 表示NAND FLASH的页大小page size (bytes为单位) y 表示ECC 校验位数 目前板子配置是2k1bAndroid系统开发环境搭建 -烧写Flash 将bootablebootloaderfastboot3.0fastboot_burn目录拷贝出来,里面包含烧录工具FastBoot3.1.8.exe 准备好tftp升级工具,并将编译源码中生成的文件拷贝到tftp升级工具所指向的目录下 准备板子及串口线,准备进行

15、烧录Android系统开发环境搭建 -烧写u-bootAndroid系统开发环境搭建 -烧写kernel及system等 使用李铁柱发布的tftp工具,将kernel及system、userdata、recovery等按照划分的各个分区的Flash地址进行烧录。 参考分区如下:Android系统开发环境搭建 -配置bootargs进入u-boot,在串口下输入如下命令:set bootcmd nand read 82000000 2e00000 a00000; bootm 0 x82000000set appargs mem=764M vmalloc=600M console=ttyAMA0,

16、115200 mtddev=blackbox androidboot.console=ttyAMA0 mtdparts=hinand:1024K(fastboot),512K(bootargs),512K(envback),512K(cfg),512K(cfgback),3840K(recovery),128K(deviceinfo),128K(baseparam),4M(logo),4M(fastplay),30M(cache),1M(misc),10M(kernel),180M(system),128M(userdata),10M(commondata),1M(blackbox),136M

17、(sdcard)set recoverybootargs mem=808M console=ttyAMA0,115200 mtdparts=hinand:1024K(fastboot),512K(bootargs),512K(envback),512K(cfg),512K(cfgback),3840K(recovery),128K(deviceinfo),128K(baseparam),4M(logo),4M(fastplay),30M(cache),1M(misc),10M(kernel),180M(system),128M(userdata),10M(commondata),1M(blac

18、kbox),136M(sdcard)save烧录成功,重启机顶盒即可启动Android开发环境搭建 至此,Android开发环境搭建成功。 参考文档:Android系统启动流程分析Android启动流程分析Android启动流程Android从Linux系统启动有4个步骤; Init进程启动 Native服务启动 System Server服务启动 Launcher启动Android启动流程 第一步:第一步:initial进程进程(system/core/init) Init进程,它是一个由内核启动的用户级进程。内核启动后,启动一个用户级程序init的方式,完成引导进程。init始终是第一个进程. Init进程起来后根据init.rc和init.xxx.rc脚本文件建立了几个基本的服务: servicemanamger zygote 。Android启动流程 第二步第二步 Zygote Servicemanager和zygote进程奠定了Android的基础。Zygote起来后会建立起真正的Android运行空间。 Zygote就建立后,利用Socket通讯,接收ActivityManangerService的请求,Fork应用程序。Andr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论