android内存优化面试题,非常适合收藏的Android进阶重难点笔记

前言

今天来跟大家分享TIM最强保活思路的几种实现方法。这篇文章我将通过ioctl跟binder驱动交互,实现以最快的方式唤醒新的保活服务,最大程度防止保活失败。同时,我也将跟您分享,我是怎么做到在不甚了解binder的情况下,快速实现ioctl binder这种高级操作。

声明:现在这个保活方式在MIUI等定制Android系统中已经不能保活,大部分时候只能活在模拟器中了。但对与我们的轻量定制的Android系统,一些系统级应用的保活,这个方案还是有用的。

随着Android阵营的各大手机厂商对于续航的高度重视,两三年前的手机发布会更是把反保活作为一个系统的卖点,不断提出了各种反保活的方案,导致现在想实现应用保活简直难于上青天,甚至都需要一个团队来专门研究这个事情。连微信这种超级APP,也要拜倒在反保活的石榴裙下,允许后台启动太费电,不允许后台启动就收不到消息。。Android发现了一个保活野路子就堵一条,然而很多场景是有保活的强需求的,有木有考虑过我们开发者的感受,自己人何必为难自己人。

我觉得这是一个Android设计的不合理的地方,路子可以堵,但还是有必要留一个统一的保活接口的。这个接口由Google实现也好,厂商来实现也好,总好过现在很笨拙的系统自启动管理或者是JobScheduler。我觉得本质上来说,让应用开发者想尽各种办法去做保活,这个事情是没有意义的,保活的路子被封了,但保活还是需要做,保活的成本也提高了,简直浪费生命。Android的锅。(仅代表个人观点)

珍藏版(1)——高级 UI 晋升

第一节、触摸事件分发机制

  1. 前言
  2. 简介
  3. 被分发的对象
  4. 分发事件的组件
  5. 分发的核心方法
  6. 事件分发过程
  7. 总结

第二节、View 渲染机制
1、为什么是 16ms
2、为什么 16ms 没完成绘制就会卡顿
3、渲染原理
4、过度绘制(overdraw)*检测.
5、Overdraw 的处理方案
6、减少不必要的层次:巧用 Hierarchy Viewer

第三节、常用 View
1、RecycleView
2、CardView 使用
3、ViewPager
4、WebView

第四节、布局 ViewGroup
1、UI 的描述
2、用户界面布局
3、 在 Android 中提供了几个常用 View 布局
4、 几个重要的布局

第五节、自定义 View 实战
1、Canvas
2、 Paint
3、引入资源.
4、使用

珍藏版(2)——Android 组件内核

第一节、Activity 调用栈
1、起源
2、Activity形态
3、生命周期
4、Activity启动和销毁过程
5、Activity的重新创建过程
6、Android任务栈简介
第二节、Fragment管理与内核

  • 1、Fragment事务管理源码分析
    1.1概述
    1.2分析入口
    1.3代码分析
  • 2、Fragment转场动画
    2.1标准转场动画:
    2.2自定义转场动画
    2.3 android.app.Fragment
  • 3、 Fragment嵌套Fragment要用getChildFragmentManager
    第三节、Service内核原理
  • 一 startService与bindService的区别
    1、生命周期上的区别
    2、调用者如何获取绑定后的Service的方法
    3、既使用startService又使用bindService的情况
    4、本地服务与远程服务
    5、代码实例
    6、在AndroidManifest.xml里Service元素常见选项
  • 二 多线程IntentService的工作原理 & 源码分析
    2.1.1流程示意图
    2.1.2 特别注意
    2.2. 源码分析
    2.3. 源码总结
    三、前台服务与通知
    3.1 什么是前台服务
    3.2 通知
    第四节、内核之组件间通信方案
    一、Activity与Fragment之间的通信交互
    二、Service和Activity的相互通信
    三、 Intent传递数据大小限制
    第五节、组件间通信方案
    一、ViewModel 与 View 的通信
    二、EventBus源码分析

珍藏版(3)——大型项目必备IPC

第一节、Binder 机制原理
摘要
引言
1.面向对象的 Binder IPC
2.Binder 模型
3.Binder 协议

第二节、其他 IPC 方式

  • IPC 的 6 种方式
    1.Bundle
    2.使用文件共享
    3.Messenger
    4.AIDL
    5.ContentProvider
    6.Socket

珍藏版(4)——数据持久化

第一节、Android文件系统

1.前言
2.内部存储
3 外部存储
4 获取权限
5 详解Android权限机制
6 可用性检查
7 公共文件(共享文件)
8 私有文件
9 缓存文件

第二节、轻量级Kv持久化
1、SharedPreferences详解与原理分析
2、微信MMKV源码分析

第三节、嵌入式数据库 SQLite
1、功能
2、内部结构
3、数据类型

珍藏版(5)——Framework 内核解析

第一节、XMS 内核管理

  • 一、AMS 家族
    1、AMS启动流程
    2、Lifecycle
    3.ActivityStackSupervisor#startSpecificActivityLoc
    4.ActivityStackSupervisor#getProcessRecordLocked()
    5.Instrumentation#execStartActivity()
    6.ActivityManagerNative#onTransact()
    7.ActivityManagerService#startActivity()
    二、WMS
  • 1.WMS概述
    窗口管理
    窗口动画
    输入系统的中转站
    Surface管理
  • 2.WMS的诞生
    三、PackageMS启动
  1. PackageMS相关框架类
    2.PackageMS启动过程

第二节、Handler消息机制
Handler概述
1、Handler最常规的使用方式:
2、两个子线程之间通信
3 Handler补充

第三节、布局加载与资源系统
1、LayoutManager
2、Resources 和 AssetManager

最后

自我介绍一下,小编13年北京科技大学毕业,曾经在字节跳动待过,也去过vivo、小米等大厂,18年进入华为一直到现在。

小编这些年深知大多数初中级Android工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助

因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担,能在岗位上再创辉煌,步步高升!!。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门

如果你觉得这些内容对你有所帮助,需要这份学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门**

如果你觉得这些内容对你有所帮助,需要这份学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 14
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值