《Android源码设计模式》--享元模式
2023-09-14 08:59:10 时间
No1:
享元模式是对象池的一种实现。享元模式用来尽可能减少内存使用量,它适合用于可能存在大量重复对象的场景,来缓存可共享的对象,达到对象共享、避免创建过多对象的效果,这样一来就可以提升性能、避免内存移除等。
No2:
UI不能够在子线程中更新。因为并不是UI不可以在子线程更新,而是UI不可以在不是它的创建线程里进行更新。
No3:
(1)首先构造Java层的Looper对象,Looper对象又会在构造函数中创建Java层的MessageQueue对象
(2)Java层的MessageQueue的构造函数中调用nativeInit函数初始化Native层的NativeMessageQueue,NativeMessageQueue的构造函数又会创建Native层的Looper,并且通过管道和epoll建立一套消息机制
(3)Native层构建完毕,将NativeMessageQueue对象转换为一个整型存储到Java层的MessageQueue的mPtr中
(4)启动Java层的消息循环,不断地读取、处理消息
这个初始化过程都是在ActivityThread的main函数中完成的,因此,main函数运行之后,UI线程消息循环就启动了,消息循环不断地从消息队列中读取、处理消息,使得系统运转起来
No4:
消息的处理分为Native层和Java层,两个层次都有自己的消息机制,Native层基于管道和epoll,而Java层则是一个普通的链表。
相关文章
- android自定义View处理padding和wrap_content和自定义属性
- 策略模式及Android源码中的应用
- mac 电脑android环境变量设置,mac上Android环境变量配置[通俗易懂]
- android activity singletask,Android Activity启动模式之singleTask实例详解
- android vlc 中文字幕,解决Android版vlc中文乱码问题
- android toast显示时间,Android Toast自定义显示时间「建议收藏」
- ubuntu android studio_android自启动
- android应用程序_chrome Android
- android进程间通信的方式_Android进程注入
- 软件测试|一键搞定centos7的docker+selenium+appium+jenkins+android_app源码打包成apk的环境搭建
- 【Android 系统开发】Android JNI 之 JNIEnv 解析
- 【Android 内存优化】Android 原生 API 图片压缩原理 ( 图片质量压缩方法 | 查找 Java 源码中的 native 方法对应的 C++ 源码 )
- 【Android 电量优化】JobScheduler 相关源码分析 ( ConnectivityController 底层源码分析 | 构造函数 | 追踪任务更新 | 注册接收者监听连接变化 )
- 【Android 异步操作】Handler 机制 ( Handler 常用用法 | HandlerThread 简介 | HandlerThread 源码注释分析 )
- 【CMake】CMake 引入 ( Android Studio 创建 Native C++ 工程 | C/C++ 源码编译过程 | Makefile 工具 | CMake 引入 )
- 【错误记录】Flutter / Android 报错 ( AAPT: error: attribute android:requestLegacyExternalStorage not found )
- 【Android 热修复】热修复原理 ( 类加载分析 | 分析 PathClassLoader 源码 | 分析 BaseDexClassLoader 源码 | 分析 PathDexList 源码 )
- 【Android 组件化】使用 ARoute 实现组件化 ( ARoute 初始化 及 界面跳转 源码分析 )
- 【Binder 机制】分析 Android 内核源码中的 Binder 驱动源码 binder.c ( googlesource 中的 Android 内核源码 | 内核源码下载 )
- 【Android 插件化】VirtualApp 源码分析 ( 启动应用源码分析 | HomePresenterImpl 启动应用方法 | VirtualCore 启动插件应用最终方法 )
- 【Android 逆向】ART 脱壳 ( InMemoryDexClassLoader 脱壳 | DexFile 构造函数及相关调用函数 | Android 源码中查找 native 函数 )
- 【Android Gradle 插件】Gradle 扩展属性 ④ ( 扩展属性访问方式 | 直接访问扩展属性 | 通过 ext 对象访问 | 在 gradle.properties 中定义扩展属性 )
- 【Android Gradle 插件】热修复实现 ① ( Android 热修复系统组成 | 热修复工作流程 | 热修复使用到的技术 | 热修复框架选择注意事项 )
- Android开发中遇到的问题(三)——eclipse创建android项目无法正常预览布局文件详解手机开发
- Android Auto亮相:全语音控制
- Android源码学习之工厂方法模式应用及优势介绍
- android的消息处理机制(图文+源码分析)—Looper/Handler/Message
- android之Spinner下拉菜单实现级联
- 基于Android设计模式之--SDK源码之策略模式的详解
- Android开发笔记之:Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)