Android开发简述

        智能手机是一种比传统手机运算能力更强、功能更丰富的手机,它主要使用的操作系统有Symbian、Windows Phone、Android、IOS和BlackBerry。目前,市面上最流行的两种手机操作系统即ios和android。ios非苹果莫属,其余手机品牌一般会在android的基础上做一定的修改,推出自己的专属系统,例如小米的MIUI,华为的EMUI等。博主便是一只基于Android操作系统,开发手机相关硬件驱动的攻城狮。

        对于很多人来说,看到手机,一般想到的就是外观是否好看,运行是否流畅,拍照效果如何,性价比高不高等等,一些比较直观的感受。从另一个角度来看,手机则是一个精密设计的硬件结构,搭载了与之相匹配的软件系统,在上电之后,可以实现多样化交互式的操作。

        刚刚我们提到,Android手机都是基于Android操作系统而开发的,这个Android系统便是由谷歌Google公司和开放手机联盟领导开发的。Android是一种基于Linux的自由及开放源码的操作系统,其架构如下图所示。(图片来自网络)

Android_system_architecture

        Android总共包括5大部分,从上到下分别是:

        Applications:应用层。应用层是android系统的最顶层,包含了各种各样的应用程序,直接与用户进行交互。这些应用程序都是由Java语言开发的,并且具有很强的可移植性。Android系统本身会提供一些核心的应用程序,如主屏幕(Home)、联系人(Contact)、电话(Phone)等等。同时,Android系统开源的特性吸引了大量开发人员调用应用层框架的API来开发自己的应用软件。丰富的应用产品使得Android系统越来越受欢迎。

        Framework:框架层。在这一层,android系统为应用程序的开发提供了各种功能强大的APIs,使得开发者即使不具备特别高深的专业知识,也可以在短时间内开发出强大的Android应用程序。这一层实际上是一个应许程序的框架。

        AndroidRuntime:运行时库。android的运行环境主要指的是Dalvik虚拟机技术。它可以支持已转换为.dex(即Dalvik Executable)格式的Java应用程序的运行,.dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。Dalvik 经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik应用作为一个独立的Linux进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭,与此同时,该特性也一直被用户指责为拖慢Android系统运行速度不如IOS的根源。

        Libraries:库。android系统会通过一些C/C++库来支持我们使用的各种组件,如系统C库、媒体库、3D库等。

        LinuxKernel:内核层。这一层就是Android底层驱动工作者最了解的一层了。其实说非常了解也很怕会打脸,因为linux内核博大精深,linux设备驱动只是其中的一部分,主要用于封装硬件实现的细节,向上层提供统一的接口。linux内核为设备驱动工作者提供了标准的接口。虽然无需精通linux内核的各个部分,但作为一名优秀的驱动攻城狮,还是要详细的了解所驱动设备的工作原理以及各功能接口在linux内核中的具体实现流程。

        一般在公司,针对每一层的开发都有相应的工程人员,大家相互合作,最终实现一款产品的开发。后续将介绍更多关于Linux驱动开发相关的内容。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值