• 售前

  • 售后

热门帖子
入门百科

疯狂Android讲义(一)——第一部分

[复制链接]
马小心小a 显示全部楼层 发表于 2022-1-12 19:21:27 |阅读模式 打印 上一主题 下一主题
.
备注:下方的*代表这章的重要性。
一、本章内容:

1.Android的发展与简介

        Android并不是Google创造的,而是Android公司创造的,该公司的创始人是Andy Rubin。该公司后来被Google收购,而Andy Rubin也成为了Google公司的Android产品负责人。
        Google于2007年11月5日发布了Android 1.0手机操作系统,但是并没有得到广泛的市场支持
        2009年5月.Gooole发布了Android 1.5 ,该版本的 Android提供了一个非常“豪华”的用户界面,而且提供了蓝牙连接支持这个版本的Android吸引了大量开发者的目光。接下来,Android的版本更新得较快,前最新的 Android版本是9.0,这也是本书所介绍的 Android版本。
        Android系统广泛应用于TV、手机、手表,以及各种可穿戴的设备。Android 9.0已经专门提供了TV、Wear等系统镜像
   什么是系统镜像?
          系统镜像是驱动器的精确副本。 默认情况下,系统镜像包含系统运行所需的驱动器。它还包含系统和系统设置、程序及文件。 
          镜像文件是无法直接使用的需要利用一些虚拟光驱工具进行解压后才能使用。虚拟光驱的原理跟物理光驱一样。
 
       如果硬盘或计算机无法工作,则可以使用系统映像来还原计算机的内容。 从系统映像还原计算机时,将进行完整还原;不能选择个别项进行还原,当前的所有程序、系统设置和文件都将被系统映像中的相应内容替换。

       所谓镜像文件其实和ZIP压缩包类似,它将特定的一系列文件按照一定的格式制作成单一的文件,以方便用户下载和使用,例如一个测试的操作系统、游戏等。
 
       它最重要的特点是可以被特定的软件识别并可直接刻录到光盘上。其实通常意义上的镜像文件可以再扩展一下,在镜像文件中可以包含更多的信息。比如说系统文件、引导文件、分区表信息等,这样镜像文件就可以包含一个分区甚至是一块硬盘的所有信息。
  2.Android 9.x平台架构及特性(**)

        Android系统的底层建立在Linux系统之上,该平台由操作系统、中间件、用户界面和应用软件4层组成。它采用一种被称为软件叠层(Software Stack)的方式构建。这种软件叠层结构使得层与层之间相互分离,明确各层的分工。这种分工保证了层与层之间的低耦合,当下层的层内或层下发生改变时,上层应用程序无需任何改变

        如图所示:Android系统主要由6个部分组成,接下来进行详解。
  2.1 系统 App 层

        Android提供了一系列核心App(应用程序),包括电话拨号应用、电子邮件客户端、日历、相机、联系人等。这些应用程序通常都是用Java编写的。
        普通开发者开发各种App都在这一层。本书也是基于此讲解的。
  2.2 Java API 框架层

        开发Android App就是面向Java API框架层进行开发。Android系统上的每个App都是平等的都可以调用Android提供的Java  API框架。Java  API框架提供了大量的API供开发者使用。
        Java  API框架除了可以作为App开发的基础之外,也是软件复用的重要手段,任何一个应用程序都可以发布他的功能模块——只要发布时遵守了API框架的规范,其他App就都可以调用这个功能的模块。
  2.3 原生 C/C++ 库  

        Android包含一套被不同组件所使用的C/C++库的集合。下面简单的列出一些原生C/C++库:
   

  • WebKit:一个全新的Web浏览器引擎,也为WebView提供支持,WebView完全可以嵌入开发者的自己的程序当中。
  • OpenMAX(开放媒体加速层):其目的在于使用统一的接口,加速处理大量多媒体资料,其中最上层为OpenMAX AL(App Layer),该层代表App和多媒体中间层的标准接口,使得App在多媒体接口上具有良好的可移植性。
  • Libc(系统C库):一个从BSD系统派生的标准C系统库,并且专门为嵌入式Linux设备调整过。
  • Media Framework(媒体框架):基于PacketVideo的OpenCORE,这套媒体库支持播放和录制许多流行的音频和视频格式,以及查看静态图片。主要包括MPEG4、H.264、MP3、AAC、JPG、PNG等多媒体格式。
  • SGL:底层的2D图片引擎
  • OpenGL ES :基于OpenGL ES API实现3D系统这套3D库既可以使用硬件3D加速(如果系统支持的话),也可以使用高度优化的软件3D加速。
  • SQLite:功能强大的轻量级关系数据库。
  2.4 Android 运行时

        Android运行时由两个部分组成:Android核心库ART。其中核心库提供了Java语言核心库所使用的的绝大部分功能而ART则负责运行Android应用程序
   背景:
  早期Android运行时由Dalvik虚拟机和Android核心库集组成,但是Dalvik虚拟机采用了一种被称为JIT(Just-In-Time)的解释器进行动态编译且执行,因此导致Android App运行时比较。从Android 5.0开始,Android运行时改为使用ARTART在用户安装App时进行预编译(Ahead-Of-Time,AOT),将原本在程序运行时的编译动作提前到了App安装时,这样使得程序在运行的时候可以减小动态编译的开销,从而提高的Android App的运行效率。
  相对的,ART需要在App安装时进行AOT处理,因此ART需要占用更多的存储空间应用安装和启动时间会延长不少。此外,ART还支持ARM、x86和MIPS架构,并且能完全兼容64位系统。
          Android 6.0的重要更新是运行时权限,使得App能在安装之后动态地请求获取相关权限;Android 7.0的重要更新是多窗口模式。
  2.5 硬件抽象层(HAL)

        硬件抽象层主要提供了对Linux内核驱动的封装,这种分装可以向上提供驱动音频、蓝牙、摄像头、传感器等设备的编程接口,向下则可隐藏底层的实现细节。
        简单的来说,Android系统把对硬件的支持分为了两层:内核驱动层和硬件抽象层。其中底层的内核驱动层处于Linux 内核中内核驱动层只提供简单的硬件访问逻辑,这部分代码是完全开源的;硬件抽象层则负责参数和访问流程控制,这层的封装代码并不开源他只是向上提供统一的编程接口,而具体的实现往往属于各厂家。
  2.6 Linux 内核

        Android系统是基于Linux的(所以说Android本质上是一个Linux系统)。Linux 内核提供了安全性、内存管理、进程管理、网络协议和驱动模型等核心系统服务。除此之外,Linux内核也是系统硬件和软件叠层之间的抽象层


来源:https://blog.caogenba.net/indeedes/article/details/122401049
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作