一、准备一个apk包,以及一个Android.mk文件 其中Android.mk的内容如下:LOCAL_CERTIFICATE指签名方式,如果是platform,代表签名成系...
一、准备一个apk包,以及一个Android.mk文件 其中Android.mk的内容如下:LOCAL_CERTIFICATE指签名方式,如果是platform,代表签名成系...
一、Ubuntu 系统安装 1. 系统下载 当前最新的系统版本[https://cn.ubuntu.com/download/desktop] 历史版本下载[https://...
一、回顾 在分析touch事件分发源码前,我们先来了解Window.Callback, PhoneWindow, DecorView, ViewRootImpl 这几个类的数...
一、常量值: 二、构造方法: 三、hash 如何才是一个好的hash函数?1、计算出来的哈希值足够散列,能够有效减少哈希碰撞;2、能够快速计算得出,因为HashMap每次调用...
一、Dialog 构造方法 标注1️⃣:从SystemService里面拿到WindowManager,实则是WindowManagerImpl;标注2️⃣:初始PhoneW...
Toast调用例子 调用步骤 一、Toast中makeText()方法 标注1️⃣: Toast 构造方法有一个Looper参数,传到TN类处理标注2️⃣: 把当前的布局mN...
前言 继前篇文章 Activity启动流程[//www.greatytc.com/p/c2144e21deca]咱继续来分析ViewRootImpl前篇文章讲到:h...
1.公平锁 / 非公平锁1、公平锁:多个线程按照申请锁的顺序去获得锁,线程会直接进入队列去排队,永远都是队列的第一位才能得到锁。优点:所有的线程都能得到资源,不会饿死在队列中...
简述 Activity 启动分为两种:1、Activity中通过startActivity()方法启动一个Activity2、从桌面通过点击应用图标启动一个App然后显示Ac...
在分析Activity启动源码的时候发现,在ActivityTaskManager类中启动Binder时用到了Singleton单例抽象类 Singleton单例抽象类
前言 从 Android 2.3 开始,Google 把 Handler 的阻塞/唤醒方案从 Object#wait() / notify(),改成了用 Linux epol...
开机启动步骤 Android 系统启动流程第一、启动电源第二、引导程序:Bootloader第三、Linux 内核启动第四、init 进程第五、Zygote 进程的创建第六、...
仓库:生产者和消费者共用同一个存储空间,生产者往存储空间中放数据,消费者从存储空间中取数据。 生产者:存储空间满时,生产者线程挂起,当空间不满时「消费者拿走了数据」唤醒生产者...