Android系统的问题分析笔记(4) - Android设备硬件基础

news2024/11/24 15:47:33

问题

典型的Android手机/平板硬件架构是怎么样的?

1 典型Android手机/平板硬件架构图

在这里插入图片描述

2 基带处理器 (Baseband Processor)

  市场上大多数的手机采用了相互独立的处理单元来分别处理用户界面软件和射频功能。即:应用处理器 (Application Processor,AP) 和基带处理器 (Baseband Processor,BP)
  为什么需要两个独立的处理器而不是由一个来完成?这个原因包括法律和技术两个方面:

  1. 法律要求软件定义无线电 (SDR)设备必须被美国通信委员会(FCC)认证,而这个认证有一个要求就是控制无线信号的软件不可以受到未经授权的更改。基本上,它的意思是终端用户在任何情况下都不允许修改无线调制方式和工作频率。
  2. 无线功能的很多操作有很强的实时性限制,因此控制无线信号的软件跟用户界面操作系统跑在同一个 CPU上就不是一个很好的选择。可以在AP 休眠的同时保持 BP 继续运行。

  因为Android 的 RIL跟其依赖的硬件是紧耦合的关系。简单地说,BP与AP交互的方式主要是基于串口的AT指令集。架构图中可以看到,BP 有它自己的 Flash 和 RAM,这就保证了运行在 BP 上的认证软件与AP上的软件相互隔离。运行在 BP上的实时操作系统 (RTOS)只关注无线协议处理(例如运行 GSM 协议栈)。同样需要知道的是,SIM 卡和 RF 收发器是接到 BP上的。射频收发器处理与铁塔之间的实际射频发送和接收工作,而SIM卡用于蜂窝网络运营商识别手机用户身份。

3 核心器件

  虽然我们讨论的很多器件很可能存在,也很有可能不在你的嵌入式系统中,但是有一些器件基本上一定会在Android 系统设备上(当然也可能有些特殊场合会被裁剪掉)。

  • RAM
  • 存储
  • 电源管理IC
  • 硬件编解码器
  • 触摸屏
  • LED
  • WiFI
  • Bluetooth
  • 扬声器
  • 话筒
  • 摄像头
  • 震动器
  • GPS
  • 各类传感器(加速度、方向、陀螺仪、温度、气压、接近传感器…)
  • USB接口

  大多数传统的嵌入式系统都包含 Flash,不管是 NOR 还是 NAND,以及基于其之上的 Flash 文件系统,用于管理芯片资源并且实现各种功能。然而目前的主流趋势是改为采用嵌人式多媒体卡(embedded MultiMediaCard,eMMC)。
  而且,系统中的存储设备很可能不止有一个。实际上,Android 系统会区分“内部”(internal)存储和“外部” (external)存储。内部存储一般就是指板上的eMMC,而外部存储则是手机或者平板上用于可插拔的 SD卡。内部存储中包含了 Android 系统本身用于引导,以及基本的文件系统操作。而外部存储则主要用于存储图片以及其他多媒体内容。
  在电池供电的设备上有电源管理芯片 (PMIC,PowerManagement IC)。PMIC 的作用是管理电池的各个方面,包括稳压和充电。PMIC通常连接到电池上,为板子提供 DC 电源。PMIC 与 SoC 一般通过 SPI、12C 或者 GPIO 连接。当电压过低或者接上充电器时,PMIC 会产生相应的中断。
  直接与用于交互的:LED、触摸屏。直接与现实世界交互的:摄像头、各类传感器。连接性器件:USB、WIFI、Bluetooth、GPS、NFC等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/530299.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5年积淀,Mapmost打造连接无限的数字孪生平台

数字孪生是充分利用物理模型、传感器更新、运行历史等数据,集成多学科、多物理量、多尺度、多概率的仿真过程,在虚拟空间中完成映射,从而反映相对应的实体装备的全生命周期过程。在“数字中国”、“实景中国”战略指导下,数字孪生…

【Redis】IO多路复用机制

IO多路复用的概念 IO多路复用其实一听感觉很高大上,但是如果细细的拆分以下, IO:网络IO,操作系统层面指数据在内核态和用户态之间的读写操作。 多路:多个客户端连接(连接就是套接字描述符,即Socket) 复用&…

什么是零知识证明?

零知识证明(Zero Knowledge Proof,以下简称ZKP)是一种加密学中的重要技术,它可以让一个人向另一个人证明某个事情是真的,而不需要透露这个事情的具体内容,即不需要泄露任何信息。ZKP 技术可以在不牺牲隐私的…

难见的oracle 9i恢复---2023年----惜分飞

时过境迁,以前恢复大量oracle 8/9版本的库,现在一套oracle 9i的库都比较稀奇了.今天恢复客户一套9.2.0.6的aix环境rac库,通过分析确认主要问题: 1. 重建控制文件,resetlogs库遗漏数据文件 2. 数据库启动主要报错ORA-600 2663和ORA-600 kclchkblk_4 Tue Nov 8 09:…

Python dshelper:动动鼠标,搞定数据探索!

本次分享一个Python数据探索小工具dshelper,适合快速查看数据基本特征、数据可视化等使用场景。 无需代码,自动完成数据集描述统计; 无需代码,界面点鼠标绘制多种统计图: 支持命令行、jupyter notebook、docker三种…

RK3588平台开发系列讲解(进程篇)Linux 进程的数据结构

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、Linux 进程的数据结构二、创建 task_struct 结构三、Linux 进程地址空间四、Linux 进程文件表沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 本篇将介绍 Linux 如何表示进程。 一、Linux 进程的数据结构…

Java测试:OJ练习(字符串合并后返回按照先后顺序排列的不重复新字符串、合并数组并按升序排列、Arrays 类中的sort方法)

1、给定一个长度为n的字符 串,字符串中只包含大小写字母。 请你返回该字符串拥有那些字符。 并将它们按照出现的先后!顺序拼接成一个新的字符串。 这是我最开始写的,代码有点问题: public String setString(String str) {char[]…

文本三剑客之——Awk

Awk Awk简介Awk语法格式Awk常见内置变量Awk实例演示按行输出文本BEGIN模式和END模式按字段输出文本通过管道,双引号调用shell命令date 的用法getline的用法awk数组 Awk简介 Awk是一个功能强大的编辑工具,用于在Linux/UNIX 下对文本和数据进行处理。数据…

代码随想录算法训练营第六天|242.有效的字母异位词 、349. 两个数组的交集 、202. 快乐数、1. 两数之和

哈希表的表示方式:数组、set、map 数组:范围可控的情况下,可以用数组 set:哈希值较大的情况下,或数值分布很分散的情况 map:key 和 value对应的情况下 能用数组尽量用数组,因为数组会比较快&…

Netty内存管理

关键概念 PoolArena——内存管理的统筹者 PoolArena是内存管理的统筹者。它内部有一个PoolChunkList组成的链表 PoolChunkList——对PoolChunk的管理 PoolChunkList内部有一个PoolChunk组成的链表。通常一个PoolChunkList中的所有PoolChunk使用率(已分配内存/ChunkSize)都在…

机器学习算法分类

机器学习常用算法的分类: 根据数据集组成不同,可以把机器学习算法分为: 监督学习无监督学习半监督学习强化学习 1、监督学习 - 定义: - 输入数据是由输入特征值和目标值所组成 - 函数的输出可以是一个连续的值(称为回…

【文本三剑客】AWK

AWK 一、AWK的工作原理1.1命令格式1.2awk常见的内建变量 二、awk实验2.1按行输入文本2.2按字段输出文本2.3通过管道符、双引号调用shell命令 一、AWK的工作原理 逐行读取文本,默认以空格或tab键为分隔符进行分隔,将分隔所得的各个字段保存到内建变量中&…

银行数字化转型导师坚鹏:银行数字化转型面临的5大机遇与4大挑战

在机遇方面,主要面临以下5大机遇: 国家战略及政策机遇:乡村振兴战略、制造强国战略、绿色金融战略等战略的落实将会给银行数字化转型带来新的业务机遇,《中国银保监会关于推动银行业和保险业高质量发展的指导意见》、《关于银行业…

第五章 面向对象-4abstract抽象

1.4 abstract class抽象类 声明抽象类&#xff0c;使用关键字abstract //内部匿名类 Db db new Db(){ };3.了解抽象类 抽象方法 AbstractClassMain.java /** Copyright (c) 2017, 2023, zxy.cn All rights reserved.**/ package cn.practice2;/*** <p>Description:&…

Chatgpt中文版无需代理,ChatGPT镜像

Chatgpt中文版无需代理 网站ChatGPT中文版 ChatGPT中文版是一个基于人工智能技术的聊天机器人&#xff0c;它可以模拟人类的自然语言交互&#xff0c;回答用户的各种问题和提供各种服务。它的核心技术是GPT&#xff08;Generative Pre-trained Transformer&#xff09;模型&am…

基础:Android相关基础知识

目录 1.Android 四大组件 2.Activity生命周期 3.Service的生命周期 4.Service的启动方式 5.Activity的启动模式 6.广播的分类 7.ANR是什么&#xff0c;怎么避免&#xff1f; 8.Handler消息处理机制 9.事件分发机制 10.View绘制流程 11.Binder机制 12.进程间通信 1…

2023最新一键开通主机免费源码

更新了ui 自助开通主机&#xff0c;自己修改服务器 不带接口&#xff0c;不带接口&#xff0c;不带接口 打开api.php文件&#xff0c;把8.8.8.8改服务器ip&#xff0c;123456改成你的密钥 前往我的技术博客查看更多https://202271.xyz/?zhuji 蓝奏云链接 https://wwp.lanz…

如何在Linux中显示网络连接、路由表、接口统计等信息?Netstat了解一下!

Netstat 是一个用于显示网络连接、路由表、接口统计等信息的命令行工具。它在 Linux 和其他类 Unix 系统中都有提供&#xff0c;可以帮助我们分析和诊断网络问题。本文将介绍 Netstat 命令的基本用法和常见选项。 Netstat 命令的语法 Netstat 命令的基本语法如下&#xff1a; …

rtl仿真器-ghdl安装和测试

安装 sudo add-apt-repository ppa:pgavin/ghdl sudo apt-get update sudo apt-get install ghdl gtkwave仿真 rtl add.v library ieee; use ieee.std_logic_1164.all; entity ADD is port (A,B:in bit; SUM,CARRY:out bit); end entity ADD; architecture behave of ADD i…