![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android系统分析
文章平均质量分 94
Calvin880828
关注Android最新技术,开发Android相关的技术
展开
-
深入解析Android AIDL:实现跨进程通信的利器
AIDL支持多种数据类型,包括基本数据类型、自定义数据类型和其他AIDL接口类型。在AIDL中,自定义数据类型需要使用parcelable关键字进行声明。原创 2024-02-18 15:40:46 · 1371 阅读 · 0 评论 -
探究Android DreamService的梦幻世界
在Android开发中,DreamService是一种特殊类型的服务,它可以用于创建梦幻世界的屏保应用。梦幻世界是一种用户界面显示模式,当设备进入空闲状态时,系统会自动启动DreamService并显示相应的屏保内容。DreamService不仅可以展示各种动画效果和图像,还可以响应用户的交互操作。原创 2023-12-27 16:22:42 · 1542 阅读 · 0 评论 -
Wi-Fi直连分享:Android设备间的高速连接
随着无线局域网(Wi-Fi)的普及和发展,使用Wi-Fi直连技术(P2P)在没有中间接入点的情况下实现设备间直接互联成为可能。通过Wi-Fi直连,具备相应硬件的Android 4.0及更高版本设备可以实现高速连接通信,比传统蓝牙连接具有更远的传输距离。这项技术对于多人游戏、照片共享等需要设备间数据共享的应用非常有用。Wi-Fi直连的核心API是WifiP2pManager类。原创 2023-09-26 17:20:58 · 1331 阅读 · 0 评论 -
Android编译优化之混淆配置
即在编译阶段将在语法层面一些底层字节码不支持的特性转换为基础的字节码结构,(比如 List 上的泛型脱糖后在字节码层面实际为 Object);Android 工具链对 Java8 语法特性脱糖的过程可谓丰富多彩,当然他们的最终目的是一致的:使新的语法可以在所有的设备上运行。原创 2023-05-10 16:24:22 · 2991 阅读 · 0 评论 -
Android代码模拟触摸、点击及滑动等事件
一、应用中模拟物理和屏幕点击事件例如,模拟对某个view的点击事件private void simulateClick(View view, float x, float y) { long downTime = SystemClock.uptimeMillis(); final MotionEvent downEvent = MotionEvent.obtain(downTime, downTime,MotionEvent.ACTION_DOWN, x, y, 0); d转载 2020-11-26 16:56:02 · 7692 阅读 · 0 评论 -
Android来电时停止音乐播放的流程分析
1. 场景分析(1) 电话接入时共可分为两个场景: 1).电话于响铃模式时在电话接入的时候会先行停止音乐播放,然后播放电话铃音接着显示来电界面等待用户的接入操作; 2).电话为无声模式及用户没有设置响铃的模式,当用户在来电界面实施接听操作的时候系统会停止音乐播放进而进入通话界面;(2) 电话挂断的时候恢复音乐的播放:当电话断接后系统底层会向上层发送消息,上层接到消息后会对连接做一些后续操作,其中包括恢复原界面、恢复原播放的音乐等。2. 流程分析1.电话于响铃模式下...转载 2020-11-25 12:05:37 · 3286 阅读 · 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 · 4446 阅读 · 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 · 1450 阅读 · 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 · 1143 阅读 · 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 · 2189 阅读 · 0 评论 -
Android系统共享内存
1.共享内存简介共享内存是进程间通讯的一种方式,通过映射一块公共内存到各自的进程空间来达到共享内存的目的。通常进程内存空间是4G,这个大小是由内存指针长度决定的,如果指针长度32位,那么地址最大编号为0xffffffff, 为4G。上面的内存实际指的是进程的虚拟地址空间,还需要经过内存映射才能访问到真实的物理内存,这些工作对用户是透明的,不需要用户关心,操作系统都已经帮我们做好了。通常虚拟内存地址和物理内存地址,但是存在一种对应关系。比如,进程操作的0x12345561这块内存地址,经过OS映射之后原创 2020-11-18 10:42:58 · 3111 阅读 · 0 评论 -
Android音频框架相关概念理解
1. 音频驱动设备底层相关背景知识,主要是pcm设备和mix设备:其中pcm设备是音频数据的采集/输出设备,mix设备是音频通道,音量增益控制相关的设备,所有的音频相关的逻辑最终都是在和这两个设备打交道。因此从系统设计角度来说,不可能让每个应用都自己去操作这些音频设备。自然地,Android框架层会去承担这个管理者的角色,然后每个应用都去和框架打交道即可。另一方面,应用开发者并不需要理解这些底层设备,那么Android就抽象了一些更容易懂的概念,比如有了stream, strategy等。下文主要是讲原创 2020-11-16 18:13:21 · 668 阅读 · 0 评论 -
了解Android中的状态机
广义地说, 任何一个程序都是一个状态机, 因为它总是要记住一些状态, 然后根据输入进行输出。 狭义上说,状态机不是指随随便便的一个程序, 而是指某一类程序,也就是状态机编程程序。1.状态模式(State Pattern)1.1 定义定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。1.2 适应场景1.一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为。原创 2020-11-16 17:35:36 · 2015 阅读 · 0 评论 -
Android源码解析
参考链接:https://blog.csdn.net/wdaming1986/article/category/916670原创 2018-05-19 22:32:31 · 117 阅读 · 0 评论 -
Android Camera2架构及原理分析
请点击转载地址 前面几篇主要分析的是android Camera API1.0的架构以及初始化流程,而google在android5.0(Lollipop)开始对Camera的架构进行了调整,为了适应HAL3,新添加实现了CameraDeviceClient,而Camera API1.0已经被deprecated(即可能...转载 2018-05-25 17:16:25 · 7636 阅读 · 1 评论 -
孤儿进程组导致系统重启
问题背景腾讯天天系列游戏 天天爱消除, 天天酷跑,天天连萌,天天飞车,天天炫斗, 天天逆战……如何复现 玩着玩着游戏,可能低概率的出现游戏 ANR, JE, NE 等情况 接着出现android 上层重启(出现开机动画,然后恢复到keyguard)分析机器重启的原因 zygote 接收到SIG 1(SIGHUP) , 从而zygote 退出,android 上层重启。 ...原创 2018-05-24 10:49:36 · 620 阅读 · 0 评论 -
Android Service dump使用
dumpsys是Android用来查看后台Service状态的工具,在我们分析调试问题时,非常好用,避免每次修改都要加log然后编译。可以借助这个命令列出当前有哪些service可以进行dump分析# dumpsys | grep "DUMP OF SERVICE"DUMP OF SERVICE SurfaceFlinger:DUMP OF SERVICE accessibility:D...原创 2018-11-12 09:54:47 · 6527 阅读 · 0 评论 -
ServiceManager简单分析
文章目录1.作用2.启动3. 注册服务4.检索服务5. 访问服务1.作用ServiceManager是BinderIPC机制的组成部分注册服务检索服务Binder IPC机制定义了四种角色: Service,Client,ServiceManager以及Binder驱动。这四个角色的关系和互联网类似:Service相当于服务器,Client相当于客户端,ServiceManager相...原创 2018-11-12 11:29:30 · 3659 阅读 · 1 评论 -
Android.mk中APT使用
Android.mk中APT使用1. 注解工具2. Android.mk APT支持2.1 Android.mk配置2.2 Android build系统patch3. 编译生成源码1. 注解工具注解工具是java代码生成及对象注入的强大工具。注解包括源码可见、字节码可见及运行时可见。目前比较流行的APT技术,也即时编译成字节码时可见。下面以Dagger2及ButterKnife两款注解工具讲...原创 2019-04-24 09:35:44 · 1068 阅读 · 1 评论 -
Android动画播放流程分析
1. 简介Android系统启动过程中个,最多有三个开机画面。第一个开机画面是在内核启动过程中出现的一个静态画面(默认不显示),第二个是在init启动过程中出现的一个静态画面(我们平常所说的logo),第三个开机画面是在系统服务启动过程中出现的,为动态画面。第一个和第二个开机画面图片位置:mediatek/custom/common/uboot/logo/wvga_a56_doov_cta。...原创 2019-06-06 16:09:13 · 491 阅读 · 0 评论 -
Android消息处理机制
android的消息处理机制(图+源码分析)——Looper,Handler,Message 参考链接: http://www.cnblogs.com/codingmyworld/archive/2011/09/14/2174255.html原创 2018-05-19 22:31:14 · 135 阅读 · 0 评论