Welcome to Sholck’s documentation!

This is a planet for my flowers and dogs

hello-world

心中有天地,不为外物欺

_images/1.jpg

Basic

grocery

Android

android-basic

AndroidAndroid源码目录结构详解

https://blog.csdn.net/ruanniu/article/details/8486183

build-version-message

prebuild:build/core/version_defaults.mk PLATFORM_SDK_VERSION := 27

build: out/target/product/clover/system/build.prop

speaker和受话器receiver的区别:

speaker发出铃声或免提时才工作的,而receiver 在通话时才工作的,speaker的功率是比receiver大。

speaker很多需要加自己的amp,receiver就用片上的就够了。

speaker 通过一定距离被人耳接听, receiver直接被人耳接听。

Android-Audio

audio

声音、音频采样率、采样精度等常识概念

https://blog.csdn.net/xujianqun/article/details/6660858

缩写

常用缩写

AHB: Advanced High Performance Bus 高级高性能总线。

APB: Advanced Peripheral Bus 高级外围总线

SPMI:System Power Management Interface

Mono differential lineout: 单声道 差分接口 输出

compander: (压缩扩展器)信号处理技术通过数据压缩和扩展改善动态范围和信噪比

HD2 canceler blocks: 高清语音消除块 HD2 : Volte 高清语音

SLIM:低功耗芯片间串行媒体总线

NOC: 网状总线拓扑架构

SPDM:连接digital codec 与 analog codec

LPASS:低电源音频子系统。Low Power Audio Subsystem

APSS : Application Subsystem 应用子系统

ACDB: Audio Clibaration Database

RPM: Resource Power Manager 低功耗应用

Modem(MSS_QDSP6) 高通自有指令集处理器。

hexagon:(海克斯康): 数字信号处理器(DSP)。

Hi-Fi : High-Fidelity

PLL: 锁相环 锁相环是一个相位反馈控制系统,在数字锁相环中,由于误差控制信号是离散的数字信号,而不是模拟电压,因而受控的输出电压的改变是离散的而不是连续的;此外,环路组成部件也全用数字电路实现,故而这种锁相环就称之为全数字锁相环(简称DPLL)。数字锁相环的一般由数字鉴相器(DPD, Digital Phase Detector)、数字环路滤波器(DLF,Digital Loop Filter)、数字压控振荡器(DCO,Digital Control Oscillator)三部分组成。

DPLL: 数字锁相环

Upsampling: 采样

HPF: 高通滤波器 高频信号通过,去除低频信号。

Decimator:抽取滤波器

ADC: Analog to Digital Converter 模数转换

DAC: 数模转换

DEC: 译码器

IIR: 数字滤波器

deserialize: 反序列化

compander: 压缩扩展器 是同一传输方向上压缩器和扩展器的总称。压缩扩展器由压缩器和扩展器两部分组成,在载波机中通常应用在杂音电平较高的长距离电话通道上,用来提高通路的杂音防卫度,改善通话质量。

Interpolators: 插入件,内插件

SMD : Shared Memory Driver

SMEM : Shared Memory Manager

SMSM : Shared State Machine

aDSP:

AFE: Audio Front End

ADM: Audio Device Manager

ASM: Audio Stream Manager

VSM: Voice Stream Manager

VPT :环绕声。

audio zoom: 声音聚焦

Fluence Pro: 降噪技术来实现回音消除、降噪控制、主动降噪

TZ(trust zone) 安全问题:分为 HLOS 和QSEE

HLOS: hight level os

QSEE: qualcomm secure execution environment

DoA: Direction of Arrival

VAD: Voice Activity Detection

MFC: Media Format Converter.

concurrent scenario 并发场景

postprocessing: 后处理

preprocessed: 预处理

camcorder: 摄像录像机

surround sound: 立体环绕声

VREF,又称为基准电压,或基准比较电路,或基准参考电压。

BIAS:偏压

MBHC: Multibutton Headset Control

headphones 戴在头上的双耳耳机,只能听,注意要用复数,不带mic

headset 戴在头上的耳麦,能听也能说 ,带mic

resistive: 电阻的

impedance detection :阻抗探测

COPP: Common Post Processing

COPreP: Common Pre Processig

POPP: Post Processing

POPreP: Pre Processing

SmartPa: smart speaker amplifier

buffer delay: 指信号经过缓冲器达到有效的电压输出所需要的时间

MIDI: Musical Instrument Digital Interface 音乐设备数字接口

QRD: Qualcomm Reference Design 高通参考设计

selfie stick: 自拍杆

DL: Down Link 播放path

UL: UP Link mic录音

amp:功率放大

PGA: 可编程增益放大器 (模拟增益 digital AFE 完成) 数字增益 由DSP (digital AFE 完成)

BLS: Balance Series 平衡系列

BPF: band-pass filter 带通滤波模式

EQ: 音效均衡

PMIC(Power Management IC):电源管理集成电路 它可以有PMU、audio codec、RTC、sim卡静电保护等功能。mtk平台的音频解码器是集成在cpu里面的,音频功放集成在pmu里面的(eg:pmic mt6392),所以cpu里面出来的耳机信号或者听筒信号可以直接接到耳机或者听筒上;喇叭信号则要先接到pmu里面放大后才能接到喇叭上!

PGA:Programmable Gain Amplifier

volume 参数设置: digital gain and PGA

数字增益0-255: 由DSP (digital AFE)完成

模拟增益PGA: 由analog AFE 完成

Environment conf

Environment-conf

install adb fastboot

sudo add-apt-repository ppa:phablet-team/tools

sudo apt-get update

sudo apt-get install android-tools-adb

sudo apt-get install android-tools-fastboot

install pip

sudo apt-get install python-pip

升级pip:sudo pip install -U pip

阿里云的 pip 源:http://mirrors.aliyun.com/pypi/simple/

eg.安装sphinx: pip install sphinx -i http://mirrors.aliyun.com/pypi/simple/

配置默认源:

vim ~/.pip/pip.conf

[global]

index-url = http://mirrors.aliyun.com/pypi/simple/

[install]

trusted-host = http://mirrors.aliyun.com

install java gcc g++

sudo add-apt-repository ppa:unbutu-toolchain-r/test

sudo apt-get update

sudo update-alternatives –config java

sudo update-alternatives –config javac

java -version

sudo apt-get install gcc-4.9

sudo apt-get install g++-4.9

sudo apt-get install gcc-4.9-multilib

sudo apt-get install g++-4.9-multilib

sudo apt-get install gcc-4.9-doc

(显示时会出现 连在一起的-会被一个中文的-替代)

sudo update-alternatives –install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20

sudo update-alternatives –install /usr/bin/gcc gcc /usr/bin/g++-4.9 20

sudo update-alternatives –config gcc

sudo update-alternatives –config g++

gcc -v

g++ -v (如果这里出错,请删除之前的本地安装的g++-4.6)

Aarm

Aarm

The script can help us repo Android code and make by lunch method or appointed shell script

https://github.com/xiaer1921/Aarm/

Android-Audio

Android audio驱动知识总结

MIC

这是一些关于mic的知识总结

硬件参数 调整 麦克风MIC灵敏度 原理:https://blog.csdn.net/xujianqun/article/details/6661947

smart-pa

耳机学习

相关链接

https://blog.csdn.net/sinat_34606064/article/details/77932816

耳机分三段耳机和四段耳机,而四段耳机又分为欧标和美标两种。四段耳机被写作headset,而三段耳机写作headphones。因为三段耳机不支持mic。

线序如下:

三段: 线序分别为,L、R、G,没有MIC端,所以三段耳机无法使用mic,只能接受声音,另外,三段耳机L,R线序长度正常,G端比较长。

四段:四段-美标(CTIA)耳机:线序分别为L,R,G,M,第三阶为GND

四段-欧标(OMTP)耳机:线序分别为L,R,M,G,第四段为GND

由于CTIA和OMTP在MIC和GND是相反的,所以会出现有些耳机插入手机上声音很小,按住HOOK将恢复正常,说明耳机和手机不匹配造成。

如想兼容两种不同类型的耳机:

有以下方式可以选择:

  1. 增加硬件兼容支持两种耳机
  2. 使用转接线

耳机类型枚举:

./sound/soc/codecs/wcd-mbhc-v2.h:77:enum wcd_mbhc_plug_type

enum wcd_mbhc_plug_type {
    MBHC_PLUG_TYPE_INVALID = -1, 
    MBHC_PLUG_TYPE_NONE,
    MBHC_PLUG_TYPE_HEADSET,
    MBHC_PLUG_TYPE_HEADPHONE,
    MBHC_PLUG_TYPE_HIGH_HPH, //高阻抗
    MBHC_PLUG_TYPE_GND_MIC_SWAP, //欧美标志位
    MBHC_PLUG_TYPE_ANC_HEADPHONE,//ANC降噪
};

耳机插拔,HOOK键触发,app暂停|播放键触发日志

耳机 日志

耳机连接 日志

耳机拔出 日志

耳机hook按键 日志

app播放|暂停 日志

I2c

I2S

控制流和数据流

Control

data

Indices and tables