Android Framwork
Android Framwork
碧云天丶
这个作者很懒,什么都没留下…
展开
-
Android DataBinding 简单封装
以下代码来源JDataBinding作者微信公众号:ByteCodeActivity里封装DataBindingprotected inline fun <reified T : ViewDataBinding> binding( @LayoutRes resId: Int): Lazy<T> = lazy { DataBindingUtil.setContentView<T>(this, resId) }使用private val mB.原创 2020-11-19 16:56:07 · 903 阅读 · 0 评论 -
Android Measure探索
MeasureSpec介绍将SpecMode与SpecSize打包得到int值,MeasureSpec也提供了解包方法来分别获取SpecMode与SpecSize.SpecSize:视图大小值SpecMode: 测量模式EXACTLY:确定的,父视图希望子视图大小应该是MeasureSpec中SpecSize值.AT_MOST:最多,子视图大小最多是MeasureSpec中Spe...原创 2020-04-23 15:27:11 · 233 阅读 · 0 评论 -
Android SystemServer进程启动以及其他服务的启动
《Android 系统源代码情景分析》SystemServer是什么?SS是一个进程,主要用于创建系统服务,像AMS WMS PMS都是由运行在SS进程中的线程操纵.源码分析ZygoteInit.mian()Zygote进程启动时会辗转调到ZygoteInit.main(),最后会调用startSystemServer(),开启SS进程.// ZygoteInit...原创 2020-04-20 17:42:01 · 556 阅读 · 0 评论 -
Android 如何理解BpBinder,BnBinder等概念
《Android系统源代码情景分析》了解BnBinder,BpBinder等概念有助于理解Binder通信机制总结概念作用Binder代理对象类型为BpBinder,在用户空间创建,且执行在Client进程中.会被Client进程中的其他对象引用,另外会引用Binder驱动程序中的Binder引用对象.Binder引用对象类型为binder_ref,在Bin...原创 2020-04-20 15:06:29 · 5249 阅读 · 1 评论 -
Android 探索消息处理机制
《Android系统源代码情景分析》 博客Android系统主要通过MessageQueue,Looper,Handler三个类来实现Android应用程序的消息处理机制.MessageQueue:用来描述消息队列Looper:用来创建消息队列以及进入消息循环Handler类用来发送消息和处理消息概述Android 应用程序的消息处理机制不仅可以在Java中用,也可以在C++...原创 2020-04-19 15:10:50 · 181 阅读 · 0 评论 -
Android 中Zygote创建APP进程
《Android 系统源代码情景分析》,博客AOSP Version:2.3每当AMS需要创建新的APP进程来启动Activity这些组件时,它会调用ActivityManagerService.中的startProcessLocked()向Zygote发送一个创建APP进程的请求.public final class ActivityManagerService extends A...原创 2020-04-16 17:14:51 · 598 阅读 · 0 评论 -
Android Zygote进程启动及工作简介
Linux内核启动电源按下,当CPU最后完成复位后,CPU执行第一条指令,从一个固定地址中执行引导程序(BootLoader).BootLoader作用是装在内核程序进行初始化并运行.内核完成设置,启动init进程.init进程主要工作初始化和启动属性服务启动Zygote进程挂载一些系统文件init进程的启动内核启动init进程会首先寻找init.rc,然后启动init...原创 2020-04-15 18:28:11 · 324 阅读 · 0 评论 -
Android 探索Dialog创建时token报错
参考书籍:<Android 内核剖析>创建Dialog时不能用Application的Context,为什么呢?基于AOSP Version:2.3分析先看下Dialog创建到显示整体流程// Dialog.javapublic class Dialog implements DialogInterface, Window.Callback, KeyEvent.C...原创 2020-04-10 18:10:52 · 445 阅读 · 0 评论 -
Android事件分发机制
伪代码下面的伪代码已经将View事件分发机制诠释的淋漓尽致了.参考链接// Activity中该方法的核心部分伪代码public boolean dispatchTouchEvent(MotionEvent ev) { if (child.dispatchTouchEvent(ev)) { //如果子View消费了该事件,则返回TRUE,让调用者知道该事件已被消费 ...原创 2019-10-08 01:33:28 · 136 阅读 · 0 评论 -
Android AutoCompleteTextView 源码解析
在研究邮箱后缀自动补齐的时候,好奇那几个方法的调用逻辑,就研究了源码是怎么调用的.内容输入当用户在 AutoCompleteTextView控件中输入内容时候,会触发自身的afterTextChanged()public void afterTextChanged(Editable s) { ... //关注该方法 refreshAutoCompleteRes...原创 2020-03-07 22:10:09 · 436 阅读 · 0 评论 -
Android 本地广播 LocalBroadcastManager源码解析
参考资料:<Android组件化架构>介绍发送本地广播只会在自己APP里传播其他APP发送的广播无法接收到比全局广播效率高使用本地广播只能动态注册,无法像全局广播那样可以注册到manifest文件中, 它不允许接授从外部发来的广播.获取单例实体LocalBroadcastManager l bm = LocalBroadcastManager.geti...原创 2020-04-06 14:58:22 · 230 阅读 · 0 评论 -
Android 中追踪Token
参考:<Android 内核剖析>最近看WMS, 很多地方都会出现Token的身影, 因为AMS中也有Token, 想试着总结下.Activity中mToken由来//第一 Activity.java//第始于在Activity中调用startActivity()public void startActivity(Intent intent) { startAct...原创 2020-04-07 14:43:40 · 421 阅读 · 0 评论 -
Android 创建应用类窗口
参考书籍: <Android 内核剖析>每个应用窗口都对应一个Activity对象,创建应用类窗口首先需要创建一个Activity对象.// ActivityThread.javapublic final class ActivityThread { //创建Activity对象 private final Activity performLaunchAc...原创 2020-04-07 21:45:25 · 269 阅读 · 0 评论 -
Android 探索Activity中mDecor变量何时赋值
参考书籍:<Android 系统源代码情景分析 第3版>看书时,好些书都会提到Activity中的makeVisible(),这个方法会用到mDecor变量,但是很少有说这个变量何时赋值的.AMS发出启动Activity// ActivityStack.javapublic class ActivityStack { final boolean realSta...原创 2020-04-08 17:16:43 · 608 阅读 · 5 评论