摘要:
1 环境准备 首先需要准备一台Linux服务器,笔者偏好CentOS,不过Google官方建议是Ubuntu;这里不具体列举需要安装的软件。 2 源码下载 2.1 repo工具 2.2 aosp下载 因为国内被墙的原因,通常会通过国内镜像源的方式来下载(以11.0.0_r40版本为例) 2.2.1 阅读全文
摘要:
1. 介绍 Android中的Statusbar包含导航栏(NavigationBar, 位于左侧、右侧或者底部)和状态栏(StatusBar, 位于顶部, 可下拉)两个部分, 位于SystemUI(frameworks/base/packages/SystemUI)模块 2. 初始化 3. 显示和 阅读全文
摘要:
1. 使用 1.1 音频参数 1.2 使用实例 2. 流程 参考:<AudioTrack的Play流程><AudioTrack学习笔记> 阅读全文
摘要:
开始这篇文章之前,可以先了解<Linux音频编程> 1. 架构 在Android中,Audio整体架构如下 2. Java Audio 在Java层把Audio从功能上分为三类接口 2.1 AudioService AudioService由SystemServer启动,实现了IAudioServi 阅读全文
摘要:
1. 介绍 在Android中定位方式通常有两种,GNSS和网络 GNSS(Global Navigation Satellite System)一般是指全球导航卫星系统,如美国的GPS、俄罗斯的Glonass、欧洲的Galileo、中国的北斗卫星导航系统网络定位是当设备通过基站或WiFi连入网络后 阅读全文
摘要:
1. HAL 1.1 HAL介绍 1.2 分类 Android 8.0以前的HAL可分为传统HAL(Stub HAL)和旧版HAL(Legacy HAL) 1.3 实现 2. HIDL 2.1 介绍 2.2 分类 3. HIDL实现 HIDL实现分为三个部分,HIDL接口、服务端和客户端 2.3.1 阅读全文
摘要:
1. 介绍 Zygote是Android系统创建新进程的核心进程,负责启动Dalvik虚拟机,加载一些必要的系统资源和系统类,启动system_server进程,随后进入等待处理app应用请求 Zygote涉及的主要代码如下 frameworks/base/cmds/app_process/App_main.cpp frameworks/base/core/jni/AndroidRuntime.c... 阅读全文
摘要:
上一篇: <Android binder介绍(上)> 5. Java Binder Android中也实现了Java层的binder接口 主要代码如下 5.1 基础类 5.2 ServiceManager ServiceManager类是servicemanager在Jave层代理, 对应nativ 阅读全文
摘要:
1. 介绍 Binder是Android下基于C/S架构的IPC机制,基于开源OpenBinder 从实现上来说可分为Binder驱动、ServiceManager、Server、Client四个组成部分 2. Binder驱动 Binder驱动代码主要位于drivers/android目录 2.1 阅读全文
摘要:
上一篇: <Android init介绍(上)> 5. AIL 在init启动过程中,系统服务等均是通过解析rc文件来启动,而rc文件则是由Android初始化语言(Android Init Language)的脚本写成 5.1 格式介绍 AIL以Section为区分,由如下import、actio 阅读全文
摘要:
1. 介绍 init进程是Linux系统第一个用户进程,是Android系统应用程序的根进程,即1号进程(PID为1);Android中的init文件位于/init,代码位于system/core/init目录 Linux中第一个进程为init_task,也即0号进程(PID为0),init进程由init_task进程fork而来,在kernel初始化完成后init_task便化身为idle进程 ... 阅读全文
摘要:
1. 介绍 Android网络服务主要包括如下四个部分 2. NetworkManagementService NetworkManagementService是重要的网络服务,通过NativeDaemonConnector类建立和netd的联系,实现对物理接口进行操作;它封装了关于接口、网络、防火 阅读全文
摘要:
1. 介绍 ALSA(即Advanced Linux Sound Architecture), 是目前Linux的主流音频体系结构, 提供了音频和MIDI的支持, 其架构图如下所示 TIP: 笔者的代码分析基于linux 4.14.19 2. 初始化 系统启动中ALSA初始化过程如下 从用户空间打开 阅读全文
摘要:
6. MAC功能描述 6.1 信道访问 802.15.4使用的物理无线电信道的访问机制有下面两种: - 基于竞争的访问机制: 设备使用CSMA-CA退避算法以分布式方式访问信道 - 无竞争的访问机制: PAN协调器通过使用GTS来控制 6.1.1 超帧结构 6.1.1.1 介绍 PAN协调器可以选择使用超帧结构(Superframe Struct)绑定其信道时间超帧以信标帧的传输为界,有活动部... 阅读全文
摘要:
1. 介绍 ZigBee MAC层,即IEEE 802.15.4 MAC层,这里主要介绍了802.15.4-2003版本 MAC层处理所有对物理无线信道的访问控制,并负责下面的任务 2. 服务 MAC层通过MCPS-SAP和MLME-SAP提供SSCS(Service Specific Conver 阅读全文
摘要:
1. 介绍 ZigBee PHY层,即IEEE 802.15.4 PHY层,这里主要介绍了802.15.4-2003版本 PHY主要实现了如下功能 需要注意区分: 收发器(transceiver)、发射器(transmitter)、接收器(receiver) 2. 服务 PHY通过RF固件和硬件为M 阅读全文
摘要:
1. 介绍 ZigBee是一种近距离、低复杂度、低功耗、低速率、低成本的双向无线通讯技术ZigBee建立在IEEE 802.15.4标准(定义了PHY和MAC层)之上,ZigBee联盟对其网络层和应用层进行了标准化 ZigBee协议栈可分为五层 - 物理层(PHY) - 介质访问控制层(MAC) - 网络层(NWK) - 应用程序支持子层(APS) - 应用层(APL) 2. 特点 2.1 速率... 阅读全文
摘要:
1. 无线通信 无线通信主要是利用无线电(Radio)射频(RF)技术的通信方式,无线网络是采用无线通信技术实现的网络无线网络可为两种: 近距离无线网络和远距离无线网络 近距离无线网络主要可分为如下两类:- 无线局域网(WLAN, Wireless Local Area Network)- 无线个域网(WPAN, Wireless Personal Area Network) WPAN是为了在PO... 阅读全文
摘要:
1. 介绍 Yeelight是小米生态链中的WiFi智能灯泡,本文介绍它的接入和控制实现; Yeelight使用的是自定义的私有协议,该协议采用了类似SSDP的发现机制和基于JSON的控制命令 2. 接入 Yeelight并没有配备网关(Hub),为了将其接入到平台中,需要配置所在网络的SSID和密 阅读全文
摘要:
1. 概念 物联网,Internet Of Things(IoT),是互联网的延伸和扩展,是指物品与物品之间信息交换和通信组成的网络智能家居,Home Automation,是通过互联网技术将家中的设备进行互联,提供控制功能;可以说智能家居系统是物联网应用的具体实例 智能家居系统从广泛意义上包括室内 阅读全文