美文网首页Android技术知识
Android 都 13了,你的Framework储备还停留在8

Android 都 13了,你的Framework储备还停留在8

作者: 搬砖小老弟 | 来源:发表于2022-05-10 20:22 被阅读0次

    从做Android的第一天起,你一定听过无数次关于Framework的讨论,也曾在这个版块被面试官吊锤N次。掉帧监控,函数插桩,慢函数检测,ANR 监控,启动监控,都需要对 Framework 有比较深入的了解,才能知道怎么去监控,利用什么机制监控,函数插桩插到哪里,反射调用该反射哪个类哪个方法哪个属性……

    Framework 作为 Android 框架层,为众多App提供了N多的API来调用,但很多机制都是Framework包装好直接给 App 来用的,不知道这些机制原理,就无从下手在这基础上进行优化。

    如果你了解 Android App 的启动机制,做启动优化一定会会更得心应手:定制什么样的 StartingWindow;什么时候可以拿到图片的宽高;DelayLoad 怎么做才会更合适;Service 什么时候启动可以不影响启动速度;Activity onResume 回调的时候真的可见了么?ContentProvider 会不会影响启动速度?为什么会影响?

    再比如我们经常说的 Handler,MessageQueue,Looper。看源码你就可以更好的理解那些概念:Thread 和 Handler 的关系;为什么不能在子线程更新 UI?idleHandler什么时候运行?主线程为什么循环却不会卡死?ContentProvider、Broadcast、Service 是怎么利用 Message 监控 ANR 的?

    再比如说 Android 的进程管理机制。AMS 把 Android 进程按照一定的规则,设置不同的优先级,在内存比较低的时候,高优先级的 App 比低优先级的 App 更不容易被系统干掉!那么 AMS 是按照什么规则来设置优先级的呢?了解这些规则是不是可以提高 App 的存活率呢?这都是可以通过熟读 AMS 代码知道的。

    Android 的卡顿掉帧问题,很多文章都说卡顿是由于主线程耗时造成的,这其实只是一部分,其他的比如 RenderThread 耗时也会导致卡顿、Binder 通信耗时也会导致卡顿,60 fps 下没问题的 app 90fps或者 120fps 下也可能会卡顿,有时候低内存下你主线程读个文件可能都会导致卡顿。真正明白了卡顿的原理,再面对卡顿问题也不会再手足无措。

    这里给大家推荐一套学习路线,并附有相关《Android 底层原理核心知识点笔记》,相信可以给大家提供一些帮助,有需要的朋友们也可以领取一下随时查漏补缺。,有需要的朋友们可以 点击这里直接获取!下载下来随时查漏补缺。

    Handler机制实现原理部分

    一、Handler机制之Thread
    1.线程概念
    2.Android线程的实现
    3.线程的阻塞
    4.关于线程上下文切换
    5.关于线程的安全问题
    6.守护线程
    7.线程的内存

    二、Handler机制之ThreadLocal

    1. Java中的ThreadLocal
    2. Android中的ThreadLocal
    3. Android 面试中的关于ThreadLocal的问题

    三、Handler机制之SystemClock类

    四、Handler机制之Looper与Handler简介

    五、Handler机制之Message简介与消息对象对象池

    1.Message和MessageQueue类注释
    2.获取Message成员变量解析
    3.获取Message对象
    4.Message的消息对象池和无参的obtain()方法
    5.obtain()有参函数解析
    6.Message的 浅拷贝

    六、Handler机制之Me****ssageQueue简介

    七、Handler机制之消息发送

    八、Handler机制之消息的取出与消息的其他操作

    有需要具体笔记文档的朋友,可以 点击这里直接获取!

    Android Binder机制原理部分

    一、Android跨进程通信IPC之Linux基础

    二、Android跨进程通信IPC之Bionic

    三、Android跨进程通信IPC之关于"JNI"的那些事

    四、Android跨进程通信IPC之AndroidIPC基础

    五、Android跨进程通信IPC之Binder的三大接口

    六、Android跨进程通信IPC之Binder框架

    七、Android跨进程通信IPC之Binder相关结构体简介

    八、Android跨进程通信IPC之Binder驱动

    如果需要这份《Android Framework知识点汇总》,有需要具体笔记文档的朋友,可以 点击这里直接获取!

    《Android 底层原理知识点汇总》完整目录

    相关文章

      网友评论

        本文标题:Android 都 13了,你的Framework储备还停留在8

        本文链接:https://www.haomeiwen.com/subject/lffrurtx.html