| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> 第一章 我们先了解什么是android系统 -> 正文阅读 |
|
[移动开发]第一章 我们先了解什么是android系统 |
????????我们都知道android系统实际内核是一个Linux内核。所以android系统和Linux系统的内核实际上是一样的。只不过在Linux内核的上谷歌为了达到定制功能做了一些裁剪和拓展,比如在里面运行ART Java虚拟机,使系统可以运行Java程序。 ? ? ? ? 看到这里可能有点不好理解,什么是内核?什么又是系统? ????????内核就是硬件调用抽象层,他提供调用硬件的API。包括存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。内核是抽象层,具体实际实现调用硬件的是驱动。 ? ? ? ? 那么什么是系统呢? 借用Window系统的一张图来帮助理解 ? ? ? ? ? 再来一张adnroid系统的图 ?我们再来看一下操作系统的定义:操作系统(operating system,简称OS)是管理计算机硬件与软件资源的计算机程序。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。 ? ? ? ? 就是说虽然内核已经可以实现存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。 ????????但是对于普通用户和开发软件者来说还是太复杂了。所以需要操作系统来封装内核调用和实现用户交互界面。 说完内核与系统,让我们回归到android系统本身。android系统既然是linux内核,那么它与linux系统有什么不一样呢? ????????1.Android除了Linux内核具备的常用核心驱动外,还增加了自己专有的内核驱动程序,如显示驱动、蓝牙驱动、相机驱动、内存卡驱动、Binder IPC驱动等。 ????????2.另外,Android系统为了保护硬件厂商的知识产权,增加了HAL层,可将驱动具体的实现部分抽取发到HAL中去实现,从而规避了硬件驱动开源的风险,所以android的驱动程序是分为两部分,一部分写入内核中,一部分写入HAL层中。 ????????3.而且,Linux与android还有应用层软件的差异 (1)Android应用程序访问Android内核驱动程序的方式: ????????APP—>JNI—>Android内核驱动程序 (JNI可以直接访问内核) ????????APP(C程序)—> Linux内核驱动程序 |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年4日历 | -2025/4/19 10:19:37- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |