240 发简信
IP属地:湖北
  • Retrofit源码解析

    FAQ 问:Retrofit流程? 答:(1)Retrofit.Builder填充初始化参数--->(2) builder.build() 创建callbackExecuto...

  • AMS相关知识

    1、问:简述AMS的作用,它是什么时候初始化的? 答:AMS 主要负责四大组价的启动、切换、调度以及应用进程的管理和调度等工作;是在SystemServer进程创建开启时,就...

  • 120
    APP启动流程

    一、APP启动流程 涉及到四个进程的通信,分别是launcher进程、AMS所在的SystemServer进程、Zygote进程、用户app进程 概览步骤: 1、launch...

  • JVM类加载过程

    1、类在什么时候被加载,初始化 触发类加载的条件: JVM没有规定类加载的时机,但是却严格规定了五种情况下必须对类进行初始化,初始化在类加载之后,所以也可以作为类加载时机 (...

  • 120
    Android 系统启动流程

    一、Android 系统启动流程 (1)启动电源以及系统启动 电源按下时引导芯片代码从预定义的地方(固化在ROM)开始执行,加载引导程序到BootLoader到RAM中,然后...

  • FragmentTransation四个commit的区别

    fragmentManager 进行事务提交时,transaction有四种commit方法可供调用,分别是:commit() 、 commitAllowingStateL...

  • HashMap底层为什么是2倍扩容?

    HashMap底层为什么是2倍扩容? 第一是因为哈希函数的问题 通过除留余数法方式获取桶号,因为Hash表的大小始终为2的n次幂,因此可以将取模转为位运算操作,提高效率,容量...

  • HashMap扩容因子为什么是0.75?

    通常,加载因子需要在时间和空间成本上寻求一种折衷。加载因子过高,例如为1,虽然减少了空间开销,提高了空间利用率,但同时也增加了查询时间成本;加载因子过低,例如0.5,虽然可以...

  • Android 与H5交互的线程切换问题

    在我们的应用中,少不了一些H5页面,相应的就会有很多与原生的交互,今天遇到一个坑,就是在我的桥接类中JSInterface的方法中,我偶然发现,含有@JavascriptIn...

  • leakCanary内存泄漏原理解析

    leakCanary是用来检测内存泄漏的重要工具,下面是它的主要原理: 弱引用:当垃圾回收时,无论内存是否充足,都会将弱引用包装的对象回收。 当jvm进行垃圾回收时,无论内存...

  • 项目中的优化点

    (1)当存储键值对的键为int类型,并且数据量不大(千级以内)的情况下,使用是SparseArray来代替HashMap,存取效率更高。 (2)Handler的优化: 非静态...

  • Glide图片缓存策略

    Glide四级缓存: 先找内存,再找文件 1)活动缓存(活动资源):ActiveResource,里边使用一个弱引用weakHashMap来保存正在使用的图片,当我们加载图片...

  • ListView与RecyclerView

    ListView与RecyclerView的区别: ListView使用两级缓存:1、mActiveViews用于屏幕内itemView的快速重用。2、mScrapViews...

  • App启动流程

    从Linux内核系统到init进程的分裂,以及后面会启动一个叫Zygote的进程开始,而Zygote会分裂出系统的核心服务进程SystemServer,也就是SystemSe...

  • Fragment生命周期

    Fragment的生命周期函数流程如下: onAttach()---->onCreate---->onCreateView----->onActivityCreated---...

  • Android 动画

    Android 动画类型主要分为三种:帧动画、补间动画、属性动画 帧动画:原理是多张图片在一段时间的不断替换,给人一种视觉上的动画效果。 补间动画(Animation):给人...