好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

2022年Android程序设计体系(教学课件).ppt

62页
  • 卖家[上传人]:l****l
  • 文档编号:304918545
  • 上传时间:2022-06-06
  • 文档格式:PPT
  • 文档大小:1.80MB
  • / 62 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • Android体系结构和根本组件体系结构和根本组件嵌入式系统开发与设计嵌入式系统开发与设计Android体系结构体系结构Android系统架构3Android分层结构pAndroid系统使用了软件栈Software Stack来构建Android分层结构p从上到下依次为p应用程序层p应用程序框架层p核心类库pLinux内核4应用程序层pAndroid应用程序层集成了核心应用程序,包括uemail客户端uSMS短消息程序uGoogle日历uGoogle地图u浏览器u联系人管理程序u上述程序在Android系统发布时作为核心程序打包发布pAndroid应用程序由Java语言编写5应用程序框架层p该层为开发者提供API框架p提供了用来创立Android程序的类p简化Android组件的重用方式p通过该层的软件标准,可以进行功能的扩展p可以在规定的平安限制之下进行程序之间的共享6应用程序框架层(2)p核心的应用程序效劳p活动管理器Activity Manager管理应用程序生命周期及Activity栈p视图Views用来创立程序的用户界面,包括列表、网格、文本框等p通知管理器Notification Manager 用来在状态栏显示应用程序给用户的通知p内容管理器Content Providers使得应用程序之间可以进行数据共享p资源管理器Resource Manager提供对字符串和图像等非代码资源的访问7核心类库pAndroid包含了C/C+库p被Android系统中不同的组件所使用p通过应用程序框架为开发者提供效劳8库Librariesp库Librariesp系统C库p继承自BSD的标准C系统函数库p为基于Linux的嵌入式系统进行了定制和优化9库Libraries(2)p媒体库u基于Packet Video OpenCore,第三方库u支持多种常用音视频编解码pMpeg4,H.264,MP3等u支持静态图像文件pJPG,PNG等pSurface Manageru管理显示子系统u为多个应用程序提供2D和3D图层无缝融合pLibWebCoreuWeb浏览器引擎u用来支持Android浏览器和可嵌入的Web视图10库Libraries(3)pSGLp2D图形引擎的核心库pSQLitep轻量级关系数据库引擎p所有程序可用pFreeTypep用来支持位图和矢量字体渲染pSSLp用来支持平安套接字层SSL加密协议的平安Internet通信p3D LibrariespOpenGL的嵌入式版本OpenGL ESp可使用硬件3D加速或者软件3D加速11运行时Run-timepAndroid Run-Time包括两个局部p核心库pDalvik虚拟机p核心库p提供JAVA 编程语言核心库的大多数功能pDalvik虚拟机pGoogle为Android设计的Java虚拟机12运行时Run-time(2)pDalvik虚拟机pAndroid程序运行于Dalvik虚拟机之上p设计与Java虚拟机不同pDalvik虚拟机运行的是Dex专有文件格式,JVM运行Java字节码pDalvik是基于存放器进行设计,JVM是基于栈pAndroid程序与虚拟机的关系p每个Android程序都有自己的进程,拥有一个独立的Dalvik虚拟机实例pDalvik虚拟机被设计成为一个设备,可以高效的同时运行多个虚拟系统pAndroid程序通过编译后还需要通过dx工具转换为.dex文件pDalvik虚拟机执行.dex文件13运行时Run-time(3)pDalvik虚拟机的特征p专有文件格式.dexp通过dex将应用中所定义的许多类生成的class文件整合到一个文件中,减少了冗余信息,文件大小和I/O操作数量,提高类的查找速度p增加对新操作码的支持p文件结构简洁,使用等长指令,执行效率高p扩大了只读结构大小,利于程序间数据共享p针对.dex的优化p针对小内存进行了优化p基于存放器p提高了代码执行效率,代价是在硬件和通用性上的降低p应用/进程/虚拟机的对应p实现进程之间的隔离,保护程序平安pDalvik虚拟机依赖操作系统底层p线程调度和管理,内存分配和管理,互斥等14Linux内核pAndroid的操作系统核心pAndroid 4.0之前的Linux内核是基于Linux 2.6pAndroid 4.0、4.1和4.2是基于Linux 3.0p但不是完全的Linux,不包含全部的Linuxp系统初始化和编程接口和标准的Linux 系统是有所不同的pAndroid的操作系统核心效劳p可以看做是硬件层和系统软件上层的抽象层p平安性,内存管理,进程管理, 网络协议栈,电源管理和驱动15Linux内核(2)p显示驱动Display Driverp基于Linux的帧缓冲Frame Buffer驱动p照相机驱动Camera Driverp基于Linux的Video for Linux驱动p蓝牙驱动Bluetooth Driverp基于蓝牙IEEE 802.15.1标准的无线传输技术pFlash存储驱动Flash Memory Driverp基于MTD的Flash驱动程序pBinder IPC驱动pAndroid的特殊驱动程序,具有单独的设备节点,提供进程间通信的功能16Linux内核(3)pUSB驱动USB Driverp为移动智能终端的USB接口提供驱动p键盘驱动KeyBoard Driverp作为输入设备的键盘驱动pWiFi驱动p基于IEEE 802.11标准的驱动程序p音频驱动Audio Driverp基于ALSAAdvanced Linux Sound Architecture的高级Linux声音体系驱动pPower Management电源管理p电池电量等17Android进程与线程进程与线程进程和线程p进程p具有独立功能的程序在操作系统中的运行活动p资源分配和调度的独立单位p线程p进程中的独立实体pCPU进行调度的根本单位p不拥有系统资源,拥有运行使用资源p进程与线程的映射p一对一p一对多p多对多19Android进程pAndroid的根底操作系统p在Android的操作系统层是Linuxp使用Linux进程pAndroid进程p系统会为Andorid程序分配Linux用户IDp每个进程会有相应的权限,实现进程之间的平安p用户进程的创立p如应用程序组件是第一次启动且无其他组件运行,Android系统为应用程序创立单线程的Linux进程p默认同一应用程序的所有组件运行在同一个进程和线程里p称为main主线程p如进程已存在,那么组件运行在已有进程或线程中;或者创立额外的线程中;或者指定组件运行在其他进程中20Android进程(2)pAndroid进程的控制p在manifest文件中来设置组件所在的进程p组件可以运行在自己所在程序的进程中或者与某些组件共享进程p进程的终止p当内存缺乏或活动进程需要内存时,Android系统会根据内存使用情况终止其他进程p被终止进程会在需要时重新启动21Android进程(3)pAndroid进程的生命周期pAndroid系统尽可能维持进程在内存中的存在p移动智能终端的内存受限,在必要时系统会终止旧进程来提供内存空间p根据进程的重要性来选择哪些进程会被先终止p重要性小的先被终止pAndroid进程的重要性等级划分p前台进程p可见进程p效劳进程p后台进程p空进程22Android进程(4)p前台进程u正在执行的程序的进程,包括u进程的一个activity正在与用户交互u进程拥有一个绑定在正在与用户交互的activity上的serviceu进程拥有一个前台运行的Serviceu进程拥有一个正在执行生命周期中onCreate(), onStart()或onDestory()方法的Serviceu进程拥有一个正在执行onReceive()方法的BroadcastReceiverp前台进程通常不多u当内存太小以至于不能容纳所有的可能前台进程时,一些前台进程就会被终止23Android进程(5)p可见进程p不拥有运行于前台的组件,包括p拥有不在前台但可见的activityp前台activity启动对话框时p效劳进程p进程拥有绑定到可见activity的Servicep进程运行了被startService()启动的Servicep后台进程p进程拥有不可见的activityp空进程p进程,不拥有任何active的组件24Android进程(6)pAndroid根据进程中当前active组件的重要性,来安排其进程级别p例如,如果一个进程拥有一个service和一个可见的activity,进程会被定为可见进程,而不是效劳进程。

      p被其它进程所依赖的进程,其级别可能会被提高p拥有service的进程比拥有后台activity的进程级别高p当一个activity启动一个需长时间执行的操作时,启动Service比创立一个线程效率高p使用service能保证操作至少有“service进程的优先级25Android进程(7)p进程间通讯p使用远程过程调用remote procedure call,RPC提供的进程间通信IPC机制p被activity或其他应用程序组件调用的方法将在其他进程中被远程执行,而所有的结果将被返回给调用者p要求把方法调用及其数据分解到操作系统可以理解的程度,并将其从本地的进程和地址空间传输至远程的进程和地址空间,然后在远程进程中重新组装并执行这个调用执行后的返回值将被反向传输回来pAndroid提供了执行IPC事务所需的全部代码p需要关注定义和实现RPC编程接口上即可26Android线程pAndroid UI线程p应用程序启动时,系统为之创立“main主线程,有时也称为UI线程p负责将事件分发给相应用户界面的widgetp负责应用程序与Android UI组件包之间的交互p不是每个组件的实例都拥有单独的线程pUI线程中实例化同一个进程中的所有组件pUI线程分发对每个组件的系统调用p对系统回调进行响应的方法总是运行在UI线程pAndroid UI线程的要点p不要让UI线程做每一件事情pUI线程的阻塞超过一定时间大约5s,会引起ANR“应用程序没有响应对话框p单线程模式下不要阻塞UI线程,也不要在UI线程之外访问UI组件包27Android线程(2)p工作线程p为保证程序的响应能力,创立单独的线程来完成耗时的操作p注意:工作线程不能访问UI组件包p否那么可能导致不明确、不可预见的后果,并且难以跟踪p需确保工作线程完成工作,UI线程进行UI操作p通过使用不同的方法可以到达p代码复杂程度增加了p为确保代码不会变的特别复杂并且难以维护,对于复杂操作可以采用异步任务来完成p异步任务p允许以异步方式来操作用户界面p异步任务首先阻塞工作线程,然后在UI线程中进行结果的显示p不需要人工干预28Android SDKAndroid SDKpAndroid SDK提供开发Android应用程序所使用的开发组件pWindows/Linux/Mac平台上均有对应SDKp包含了Android平台上的工具集p以Java语言为根底pAndroid SDK提供的主要功能p访问摄像头和GPS等硬件p自带的Google地图和LBS效劳p后台效劳pSQLite数据库p数据共享和应用程序通信p图形支持p优化的内存和进程管理p30pAndroid SDK所支持的操作系统:uWindows XP (32-bit) or Vista (32- or 64-bit)uMac OS X 10.4.8 or later (x86 only)uLinux31Android SDK目录p在安装Android SDK的android-sdk-windows目录中32Android SDK目录(2)padd-onsu保存附加库u例如Google MapspDocsuAndroid SDK API参考文档u可以对API进行查阅pExtrasu扩展插件u提供向下兼容的功能33Android SDK目录(3)p。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.