![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android源码剖析
文章平均质量分 94
Calvin880828
关注Android最新技术,开发Android相关的技术
展开
-
Android网络代理原理及实现
Android网络代理原理及实现原创 2023-05-05 10:13:28 · 3788 阅读 · 0 评论 -
Android来电时停止音乐播放的流程分析
1. 场景分析(1) 电话接入时共可分为两个场景: 1).电话于响铃模式时在电话接入的时候会先行停止音乐播放,然后播放电话铃音接着显示来电界面等待用户的接入操作; 2).电话为无声模式及用户没有设置响铃的模式,当用户在来电界面实施接听操作的时候系统会停止音乐播放进而进入通话界面;(2) 电话挂断的时候恢复音乐的播放:当电话断接后系统底层会向上层发送消息,上层接到消息后会对连接做一些后续操作,其中包括恢复原界面、恢复原播放的音乐等。2. 流程分析1.电话于响铃模式下...转载 2020-11-25 12:05:37 · 3350 阅读 · 3 评论 -
Android Audio System深入探究之Audio HAL(基于Android9)
Audio Hal1. 重要接口文件分析2 HAL初始化3 openOutput流程分析3.1 Hal层设备创建3.2 AudioHwDevice分析3.3 openOutputStream分析4 Audio Hal实现分析4.1 hal层Hidl接口相关定义4.2 RK 平台 audio hal实现4.3 AudioHardware相关类关系图1. 重要接口文件分析Hal层分析主要涉及的接口文件DeviceHalInterface.hAudioHwDevice.h其中DeviceHalInt原创 2020-11-23 20:33:05 · 4674 阅读 · 2 评论 -
Android Audio System深入探究之AudioFlinger(基于Android9)
AudioFlinger初始化分析1. AudioFlinger初始化2. AF中的createTrack3. AF中的openOutput1. AudioFlinger初始化基于安全加强的考虑, 自Android6.0后,Audio模块便从 mediaserver进程中分离开,作为独立的进程运行,是为audioserver进程。那么audioserver入口在哪呢?通过源码文件查找,我们找到了其模块位置frameworks/av/media/audioserver看下有那些文件组成, 使用tre原创 2020-11-20 14:49:25 · 1478 阅读 · 0 评论 -
Android Audio System深入探究之AudioPolicyService(基于Android9)
1. AudioPolicyService初始化AudioPolicyService 简称APS同AudioFlinger诞生一样,APS也从audioserver启动。同样作为一个Binder服务,初始化后及被加入SM(ServiceManager)中。[–>main_audioserver.cpp]int main(int argc __unused, char **argv){...... sp<IServiceManager> sm = defaultServiceM原创 2020-11-20 14:41:11 · 1161 阅读 · 0 评论 -
Android Audio System深入探究之AudioTrack(基于Android9)
文章目录1. 音频系统概述2. 放音流程分析2.1 getMinBufferSize2.2 AudioTrack2.3 AudioTrack (Native空间) set分析2.3.1 Cblk 在AF端初始化2.3.2 IAudioTrack和AT、AF的关系2.3.3 共享内存与cblk2.4 play和write分析2.5 obtainBuffer 和releaseBuffer2.6 delete AudioTrack2.7 stop分析AudioTrack流程总结基于Android 91. 音原创 2020-11-18 18:32:41 · 2266 阅读 · 0 评论 -
Android图形框架理解
1. Android图像框架简介Android framework 有一系列与硬件抽象实现和图形驱动相关的2d和3d渲染api,所以重要的是如何对这些运行在更高层次的api有一个良好的理解。应用开发者有两种通用的方式可以绘制物体到屏幕,分别是canvas和opengl。android.graphics.Canvas是一组被开发都广泛应用的2d图形api。在Android中,所有在android.view.Views和客户自定义android.view.Views上的绘制操作都是由Canvas完成的。原创 2020-11-12 14:43:52 · 1202 阅读 · 0 评论 -
Android包管理机制深入分析
Android包管理机制转载 2020-10-28 17:09:40 · 149 阅读 · 0 评论 -
Android数字签名机制和应用场景
目录1 数字签名介绍1.1 背景1.2 机制1.3 使用1.3.1 ssh-keygen1.3.2 keytool2 Android使用数字签名的场景2.1 未签名的APK VS 签名后的APK2.2 应用层面:Android对APK的签名要求2.2.1 Android拒绝安装没有签名的APK2.2.2 Android不校验证书的合法性2.2.3 当签名不匹配时,APK升级会失败2.3 系统层面:Android基于数字签名的一些机制2.3.1 四种不同转载 2020-10-28 16:40:45 · 1989 阅读 · 1 评论 -
Android Context的设计思想及源码分析
做了好些年Android,终于可以聊一聊既熟悉又陌生的Context了,每个刚入门的Android开发人员都会接触到它;然而要读懂Context的设计哲学,却又要经过好多轮的认知升级。很多时候,大家是感知不到Context的存在的,笔者最开始“被迫”使用Context,是在自定义控件的时候,布局中有一个按钮,点击一次就发送一次广播,其代码片段如下所示:public class CustomLayout extends LinearLayout implements View.OnClickListen转载 2020-10-28 15:52:10 · 292 阅读 · 0 评论 -
Android NDK开发
文章目录1. 简介2.开发工具3. 什么是JNI4. 为什么使用JNI5. 怎样用JNI6. 实际开发知识点6.1 C代码中Log使用6.2 JNI中各参数含义6.3 Java、 C语言数据类型对应关系6.4 调试方法7. Android.mk语法分析7.1 语法分析7.2 Android.mk扩展7.2.1 自定义变量7.2.2 GNU Make系统变量7.2.3 模块描述变量1. 简介N...原创 2019-06-08 16:23:02 · 562 阅读 · 1 评论 -
详细剖析IntentService的运作机理
详细剖析IntentService的运作机理1. 摘要2. 概述3. 先简单说说IntentService的运作3.1 onCreate()中启动一个消息泵线程3.2 onStartCommand()利用ServiceHandler向消息泵打入特殊消息3.3 实现你的onHandleIntent()函数4. 再深挖一下有了以上这些基础知识,现在我们要再深挖一下了。4.1 s...转载 2018-04-09 14:06:02 · 755 阅读 · 0 评论