android_framework
TaylorPotter
stay simple,stay positive
展开
-
Android Camera简单整理(一)-Camera Android架构(基于Q)
一.Android Camera架构简述先盗用谷歌的一张图,该图表示的即是Camera Hal之上的App层,framework层组件结构原创 2020-04-12 19:39:23 · 17854 阅读 · 10 评论 -
[Android][MediaRecorder] Android MediaRecorder框架简洁梳理
(Base on Android Q)主要是为了梳理MediaRecorder模块代码,熟悉流程本文的简化图由draw.io绘制,详细时序图由plantUml绘制绘制原材料在百度云盘中 链接: https://pan.baidu.com/s/1IJ7Qo2Jl3o6GthPtAiD95Q 提取码: qu4w,可以自行down下来修改添加一.MediaRecorder整体架构主要简单梳理...原创 2020-03-15 16:15:22 · 6172 阅读 · 5 评论 -
[Android Fk] PowerManagerService简单整理 Based on Android O
主要内容:1.PowerManagerService的架构2.Wakelock的知识3.电源管理相关的知识4.相关debug5. 具体场景释疑1. PowerManagerService的架构1.1 PowerManagerService家族整体架构1.2 PowerManagerService的binder架构1.3 PowerManagerService开机初始化1....原创 2018-11-07 15:33:52 · 1213 阅读 · 1 评论 -
Android的log使用技巧(Java层,Native层)
Android的log使用技巧android Log.isLoggableDebugUtils.javapackage com.XXX.XXX;import android.content.Context;import android.util.Log;import android.widget.Toast;public class DebugUtils {原创 2018-12-16 20:31:48 · 1222 阅读 · 0 评论 -
简单梳理Android BufferQueue原理(基于P)
一. BufferQueue概述BufferQueue可以理解为一个生产者-消费者”模型,对GraphicBuffer管理的一种机制。需注意的是,可以将BufferQueue当作是一个算法结构,并不是只有Surfaceflinger会使用到,其他进程只要有GraphicBuffer的消费地方都会使用到。二. BufferQueue结构一般是在消费者进程调用BufferQueue的crea...原创 2018-12-16 22:29:56 · 2384 阅读 · 0 评论 -
简单梳理Android Surface原理(基于O)
一. Surface概述二.BufferQueue概述三.Activity界面显示过程四.相机概述五.重要的surface相关类原创 2018-12-23 17:10:28 · 1812 阅读 · 2 评论 -
[Android Fk] Android input事件的传递及分发简单梳理(基于P)
#Android-Fk:Android input事件产生及分发(一)一. InputManagerService概述二. Input事件的传递三. 总结原创 2019-01-04 21:17:00 · 549 阅读 · 0 评论 -
[Android稳定性] Android OOM问题分析方法
OOM Hprof Catch一. am dumpheap方法Java进程需要抓取hprof文件的时候可以使用如下命令抓取:adb shell am dumheap [pid] savePath1.1 看下流程:1.Am.java接收到相应的指令后进行分发,会执行相应的方法 runDumpHeap ,然后通过相应的aidl把任务传递到AMS:frameworks/base/serv...原创 2019-02-19 20:03:23 · 3466 阅读 · 0 评论 -
[Android Fk] Activity启动简单梳理(基于P)
简单用图表示下Activity的启动过程详细的代码就不贴了,几个比较好的博客都介绍的很详细,这里做一个简洁的归纳整理,便于日后回顾。一. 点击桌面图标启动Activity流程1.1 简化流程1.2 详细过程二. context startActivity流程1.1 简化过程三. am start Activity流程1.1 简化过程1.2 详细过程...原创 2019-03-09 21:56:07 · 538 阅读 · 0 评论 -
Android Fk: Activty管理之token总结 基于Android 9.0
Android Fk: Activty管理之token总结本文的plantuml 源码及draw.io原图在如下链接中,可自行下载修改一.概述Token创建:第一次启动指定Activity时,AMS会去创建ActivityRecord记录该Activity信息,ActivityRecord构造函数里创建一个Token类型对象保存在ActivityRecord.appToken中;传递至...原创 2019-03-20 00:05:59 · 771 阅读 · 0 评论 -
Android Fk: JobService的使用解析
某个时间点或者满足某个特定的条件时去执行某个任务时可以使用JobService来实现,一从API19起,使用AlarmManager,setRepeating定时请求并不能保证时效的准确,在5.0以后,Google推出了一个JobService,用来执行一些并非即时执行的后台进程。一、使用方法:1.新建自己的JobServicepublic class DemoJobSer...原创 2019-03-11 22:50:15 · 1357 阅读 · 0 评论 -
[Android Fk] AMS对Activity管理的简单梳理(基于P)
学习博客:ActivityRecord、TaskRecord、ActivityStack以及Activity启动模式详解:https://www.jianshu.com/p/94816e52cd77一.主要结构:AMS初始化构造函数时会创建一个ActivityStackSupervisor对象。一个ActivityRecord对应一个Activity,保存了一个Activity的所有信...原创 2019-03-12 21:06:31 · 958 阅读 · 0 评论 -
Android[art]-Android dex,odex,oat,vdex,art文件结构学习总结
参考学习博客:Android Dex文件格式(一):https://blog.csdn.net/p312011150/article/details/80501690dex文件解析(第三篇) :https://blog.csdn.net/tabactivity/article/details/78950379Android安全–Dex文件格式详解:https://www.cnblogs.co...原创 2019-05-05 21:10:20 · 8268 阅读 · 0 评论 -
[总结][进程] Proc & Thread status in Linux & Jvm
Linux 进程线程及 Jvm进程线程状态对比一.进程的基本状态:三种基本状态:进程基本状态说明就绪(Ready)状态当进程已分配到除CPU以外的所有必要资源后,只要在获得CPU,便可立即执行,进程这时的状态就称为就绪状态。在一个系统中处于就绪状态的进程可能有多个,通常将他们排成一个队列,称为就绪队列。执行状态进程已获得CPU,其程序正在执行。在单处理机系统中,...原创 2019-05-20 21:58:03 · 583 阅读 · 0 评论 -
[Android稳定性] Android Fd Leak问题分析方法
Android-Fk[Stability]: Fdleak问题分析原创 2018-11-06 20:48:03 · 4251 阅读 · 0 评论 -
[Android稳定性] Android System Watchdog原理简单梳理(基于O)
Android Fk:[Stability] Android Watchdog原理简析原创 2018-08-07 12:08:26 · 542 阅读 · 0 评论 -
[Android稳定性] Android App ANR原理简单梳理(基于O)
一.ANR的种类1.1 ANR定义Application Not Responding:即应用无响应 如果应用程序主线程在超时时间内对输入事件没有处理完毕,或者对特定操作没有执行完毕,就会出现ANR (主线程在特定的时间内没有做完特定的事情)1.2.ANR类型1) KeyDispatchTimeout :主要类型按键或触摸事件,input事件在5S内没有处理完...原创 2018-08-05 21:32:02 · 880 阅读 · 1 评论 -
Android-Framework:Binder(3)-Binder Driver
Android-Framework:Binder(3)-Binder Driver binder驱动是binder机制的核心,binder驱动是运行在内核空间的,当client需要跨进程和server端通信时需要通过binder驱动去在内核空间对和server端空间共同映射的物理空间进行操作,进而实现跨进程功能,这也是binder机制设计的巧妙之处。本文基于Android7.1.1源码进行学习理解。原创 2017-05-29 16:03:12 · 842 阅读 · 0 评论 -
Android Framework: Binder(1)-Android IPC
Android Framework: Binder(1)-Android IPC两个进程之间交换数据的过程称为IPC(Interprocess communication)跨进程通信。 一种是应用自身需要采用多进程实现,由于某些特许原因应用的某些模块需要运行在独立进程中,如守护进程; 另一种是当前应用需要获取其他应用的数据,由于是两个应用,通信时必须采用跨进程的方式。一、linux与Androi原创 2017-05-07 14:03:55 · 1069 阅读 · 0 评论 -
Android Framework:Binder(2)-Service Manager
Android Framework:Binder(2)-Service Manager本文主要讲述binder机制中重要的管理员角色ServiceManager学习理解(本文源码参考Android N 7.1.1 )一、binder机制的主要框架 由上图看出,ServiceManager是Service的管理员,作用十分重要: 1.对于Service来说,系统所有的服务都需要向ServiceM原创 2017-05-11 23:54:19 · 1086 阅读 · 0 评论 -
Android Framework:Binder(4)-Native Service的注册
Android Framework:Binder(4)-Native Service的注册一、Native Service注册的概述 Android中很多Service是Native Service,本篇我们挑选Native service中的cameraserver的启动注册来学习Native Service注册涉及的Binder机制。 Native Service在启动后需要通过Binder原创 2017-06-09 15:58:44 · 1729 阅读 · 1 评论 -
Android Framework:Binder(5)-Native Service的跨进程调用
Android Framework:Binder(5)-Native Service的跨进程调用一、Native Service调用概述 在上一篇Native service的注册就已经可以看到Client端请求Server端的过程,Native Service是Client端,ServiceManager是Server端。 本篇从Native Service调用的角度来学习Client端是原创 2017-06-28 22:13:51 · 1699 阅读 · 1 评论 -
Android Framework:Binder(6)-Java层Service的注册及跨进程调用
Android Framework:Binder(6)-Java层Service的注册及跨进程调用一java层binder是对native层binder真正实现的一个封装,最终还是通过JNI层调用到C/C++代码的实现。 本文我们从PackageManagerService的初始化注册及跨进程调用PKMS服务两个过程详细分析java binder机制的原理及细节。原创 2017-07-06 09:10:52 · 2418 阅读 · 0 评论 -
protected-broadcast 规范使用系统应用组件自定义广播
保护广播一、android:sharedUserId=”android.uid.system”系统中所有使用android.uid.system作为共享UID的APK,都会首先在manifest节点中增加 android:sharedUserId=”android.uid.system”,然后在Android.mk中增加 LOCAL_CERTIFICATE := platform.如Setting原创 2017-04-16 11:04:37 · 23533 阅读 · 0 评论 -
Android Fk:PKMS(1)-PackageManagerService的Binder架构及初始化
Android Fk:PKMS(1)-PackageManagerService的Binder架构及初始化一、PKMS的概述及其Binder架构1. PKMS的基本功能: PackageManagerService是Android的核心服务,负责系统中的Package的管理,应用的安装,卸载,信息查询等。 手机平台的Android代码PKMS为了优化或者新功能更改了很多,本文主要基于Andr原创 2017-07-24 13:31:17 · 3170 阅读 · 1 评论 -
Android Fk-PKMS(2) PackageManagerService之应用的安装与卸载
Android Fk-PKMS(2) PackageManagerService之应用的安装与卸载一、Apk安装的具体过程本文通过基于Android 7.1.1源码分析总结PKMS的安装卸载过程,android应用安装流程已经有很多大神分析过,而且写的相当详细精致,关于应用安装的详细流程可以看这篇博客,[Android7.0 PackageManagerService (3) APK安装](http://blo原创 2017-08-01 11:30:53 · 2699 阅读 · 1 评论 -
Android Fk: PKMS(3)之installd及LocalSocket实现Java层与Native层通信
Android Fk: PKMS(3)之installd及LocalSocket实现Java层与Native层通信一、installd的概述 从上一篇介绍应用安装与卸载的学习文档中知道PKMS在实现部分包管理功能时需要借助installd去完成,本文简述installd的使用过程,并模仿installd写了一个demo实现了java层与native层通过localsocket方式通信。原创 2017-08-09 18:02:14 · 2092 阅读 · 0 评论 -
[sp] Android 8.0 Fk: App process 启动过程
[sp] Android 8.0 Fk: App process 启动过程废话不说上图:原创 2018-01-11 19:12:53 · 598 阅读 · 0 评论 -
[Android稳定性] Android App FC弹窗原理简单梳理(基于O)
Android Fk:[Stability] 应用FC弹窗流程一.概述在Android手机里,用户可见的应用crash有两种情况: 1. 出错后弹出出错提示框 2. 应用直接闪退二.应用FC退出流程应用进程FC异常分为Java异常FC,Native异常FC2.1 Java FC Crash弹窗流程 这里注意到调用AMS方法时是同步binder call...原创 2018-02-10 21:56:42 · 972 阅读 · 0 评论 -
[Android Fk] Android Doze 简单梳理 Based on Android N
Android Fk:[Doze] Android Doze (base on N)一、概述Base on Android N 当系统灭屏并长时间处于静止状态时,系统会进入Doze状态,此时 (1)限制网络访问 (2)限制wakelock(cpu锁)申请 (3)通过alarm manger设置的alarm 被推迟,除非设置了允许在idle状态也能工作的flag (4)wifi s...原创 2018-03-16 10:53:04 · 672 阅读 · 0 评论 -
Android组件Handler Looper Message理解
Android组件_Handler Looper Message理解,Handler机制概述Handler机制是Android中一种消息处理机制。 本文主要对Handler机制的使用,原理分析,重点注意等方面介绍自己对Handler机制的理解。原创 2017-04-23 16:03:17 · 815 阅读 · 0 评论