Android
Android View 事件分发
事件传入 事件是从 Activity 通过一层层传递至 View 中
事件分发概念
主要是由 3 个方法来完成
分发重点方法 功能 返回意义调度触摸事件:布尔值 由上层 View 被触发,传递至目标 View 返回结果会由 、子…
AudioRecord
初始化 Copy
public AudioRecord(int audioSource, int sampleRateInHz, int channelConfig, int audioFormat,int bufferSizeInBytes)
关于采样率,除了 44100Hz…
Android 源码编译
使用 apt 安裝以下工具 先使用 apt 安装以下工具 Copy
sudo apt upgrade
sudo apt update
sudo apt install -y \
vim \
git-core \
gnupg \…
WMS
WMS 全名是 WindowManagerService,它是客户端 APP 的管理者,处于 SystemServe r 进程,WMS 主要负责管理几件事情 窗口管理
负责 Window 添加、更新、删除,核心管理成员有 DisplayContent、WindowToken、Wi…
PackageManagerServervice
PackageManagerServervice 通过 SystemServer 进程启动,该服务会 扫描系统中特定的目录,寻找里面的 APK 格式文件,并对这些文件进行解析(得到 AppInfo 相关讯息),最后完成安装。 PKMS 会在安装应用的过程中解析 APK 中的 An…
AMS
AMS 通过 SystemServiceManager 来启动 Copy
public final class SystemServer implements Dumpable {
public static void main(String…
Init进程
启动概述 Android 的第一个启动进程,init 的 PID 为 1,这个进程会解析 init.rc 来建构出系统的初始运作型态,其他的系统才会相继启动
启动电源&系统启动
当电源启动后,会从预定的地方(PC 读取 ROM),开始加载程序(BootLoader)到 RAM 中…
APK 瘦身
APK 结构 在讨论如何减小应用的大小之前,了解应用 APK 的结构会很有帮助。APK 文件由 Zip 压缩文件(其中包含构成应用的所有文件)组成。这些文件包括 Java 类文件、资源文件和包含已编译资源的文件。
APK 包含以下目录:
META-INF/:包含 CERT.SF…
AOSP调试指南
编译 Android 使用 envsetup.sh 脚本初始化环境:source build/envsetup.sh 或者. build/envsetup.sh
如需查看可用命令的完整列表,请运行以下命令:hmm
Framework 调试
top
VIRT:这个内存使用就是…
MediaCodec
架构 MediaCodec 的 Decoder 现在有两种方式,分别为 OMX 和 Codec2,Android 目前全面在替换 OMX。
OMX
开放多媒体加速层(Open Media Acceleration,缩写为 OpenMAX). 一个免费的跨平台抽象软件层…
App 体积优化
使用 Android App Bundle 上传应用 要在发布到 Google Play 时立即缩减应用大小,最简单的方法就是将应用发布为 Android APP Bundle,这是一种全新的上传格式,其中包含应用的所有经过编译的代码和资源,但 APK 生成及签名则延后到…
混淆
官网 原理
Java 是一种跨平台的、解释型语言,Java 源代码编译成中间” 字节码” 存储于 class 文件中。由于跨平台的需要,Java 字节码中包括了很多源代码信息,如变量名、方法名,并且通过这些名称来访问变量和方法,这些符号带有许多语义信息,很容易被反编译成…
Android 音频系统
App 音频应用软件
Framework
MediaPlayer 和 MediaRecorder,以及 AudioTrack、AudioRecorder、AudioMannager、AudioService 以及 AudioSystem。
Libraries
fram…