安卓八股文3

12.Bitmap

  • Bitmap 内存占用的计算

  • getByteCount() & getAllocationByteCount()的区别

  • Bitmap的压缩方式

  • LruCache & DiskLruCache原理

  • 如何设计一个图片加载库

  • 有一张非常大的图片,如何去加载这张大图片

  • 如果把drawable-xxhdpi下的图片移动到drawable-xhdpi下,图片内存是如何变的。

  • 如果在hdpi、xxhdpi下放置了图片,加载的优先级。如果是400_800,1080_1920,加载的优先级。

13.mvc&mvp&mvvm

  • MVC及其优缺点

  • MVP及其优缺点

  • MVVM及其优缺点

  • MVP如何管理Presenter的生命周期,何时取消网络请求

14.Binder

  • Android中进程和线程的关系,区别

  • 为何需要进行IPC,多进程通信可能会出现什么问题

  • Android中IPC方式有几种、各种方式优缺点

  • 为何新增Binder来作为主要的IPC方式

  • 什么是Binder

  • Binder的原理

  • Binder Driver 如何在内核空间中做到一次拷贝的?

  • 使用Binder进行数据传输的具体过程

  • Binder框架中ServiceManager的作用

  • 什么是AIDL

  • AIDL使用的步骤

  • AIDL支持哪些数据类型

  • AIDL的关键类,方法和工作流程

  • 如何优化多模块都使用AIDL的情况

  • 使用 Binder 传输数据的最大限制是多少,被占满后会导致什么问题

  • Binder 驱动加载过程中有哪些重要的步骤

  • 系统服务与bindService启动的服务的区别

  • Activity的bindService流程

  • 不通过AIDL,手动编码来实现Binder的通信

15.内存泄漏&内存溢出

  • 什么是OOM & 什么是内存泄漏以及原因

  • Thread是如何造成内存泄露的,如何解决?

  • Handler导致的内存泄露的原因以及如何解决

  • 如何加载Bitmap防止内存溢出

  • MVP中如何处理Presenter层以防止内存泄漏的

16.性能优化

  • 内存优化

  • 启动优化

  • 布局加载和绘制优化

  • 卡顿优化

  • 网络优化

17.Window&WindowManager

  • 什么是Window

  • 什么是WindowManager

  • 什么是ViewRootImpl

  • 什么是DecorView

  • Activity,View,Window三者之间的关系

  • DecorView什么时候被WindowManager添加到Window中

18.WMS

  • 什么是WMS

  • WMS是如何管理Window的

  • IWindowSession是什么,WindowSession的创建过程是怎样的

  • WindowToken是什么

  • WindowState是什么

  • Android窗口大概分为几种?分组原理是什么

  • Dialog的Context只能是Activity的Context,不能是Application的Context

  • App应用程序如何与SurfaceFlinger通信的

  • View 的绘制是如何把数据传递给 SurfaceFlinger 的

  • 共享内存的具体实现是什么

  • relayout是如何向SurfaceFlinger申请Surface

  • 什么是Surface

19.AMS

  • ActivityManagerService是什么?什么时候初始化的?有什么作用?

  • ActivityThread是什么?ApplicationThread是什么?他们的区别

  • Instrumentation是什么?和ActivityThread是什么关系?

  • ActivityManagerService和zygote进程通信是如何实现的

  • ActivityRecord、TaskRecord、ActivityStack,ActivityStackSupervisor,ProcessRecord

  • ActivityManager、ActivityManagerService、ActivityManagerNative、ActivityManagerProxy的关系

  • 手写实现简化版AMS

20.系统启动

  • android系统启动流程

  • SystemServer,ServiceManager,SystemServiceManager的关系

  • 孵化应用进程这种事为什么不交给SystemServer来做,而专门设计一个Zygote

  • Zygote的IPC通信机制为什么使用socket而不采用binder

猜你喜欢

转载自blog.csdn.net/slave_of_life/article/details/130754081
今日推荐