Android读书笔记
Android读书笔记
不近视的猫
微信公众号:Android猫记
展开
-
Android App的构建与运行
App的正常构建运行流程 Instant Run方式原创 2021-03-14 11:36:54 · 89 阅读 · 0 评论 -
性能优化与内存优化
性能优化 主要以这四个方向进行优化: 稳定 流畅 耗损 apk 瘦身 稳定 避免内存溢出 异常捕获反馈机制 流畅 异步执行 减少内存抖动 耗损 减少没必要的网络访问或合并相关网络请求 加载合适尺寸的图片而非原图 apk瘦身 删除没必要的资源文件或依赖包 使用 webp 替换 png、jpg等,或对于图片进行适当压缩 开启混淆 使用 svga、lottie 代替 gif 或帧动画 插件化 内存优化 主要以这五个方向进行优化: 内存泄漏 图片分辨率 图片压缩 缓存池 内存抖动 内存泄漏原创 2021-03-12 16:58:34 · 436 阅读 · 0 评论 -
GC运作原理
GC 分两块功能: 内存划分和分配 垃圾回收 而垃圾回收目前有两种比较常用的算法: 引用计数算法 根搜索算法 以上两种算法只能进行标记哪些能回收,哪些不能回收,而具体回收还使用了其它算法: 标记-清除算法 复制算法 标记-压缩算法 分代算法 ...原创 2021-03-12 16:12:09 · 118 阅读 · 0 评论 -
Java对象在虚拟机中的生命周期
Java对象在虚拟机中的生命周期 创建阶段 应用 不可见 不可达 收集 终结 对象空间重新分配 顺带提一个问题:当一个对象不可达的时候,一定能回收吗? 答案是否定的。当对象被 GC 回收前,会调用对象的 finalize() 方法,只有用户没有重写该方法,或者没有在该方法中进行强引用对象的连接,该对象才会被回收,假如用户重写该方法,并且进行强引用对象的连接,则该对象则不会被回收。 ...原创 2021-03-11 17:42:58 · 72 阅读 · 0 评论 -
对象的创建流程
对象的创建流程 判断对象对应类是否已经加载、链接、初始化 为对象分配内存 处理并发安全性问题 初始化分配的内存空间 设置对象的对象头 执行 init 方法进行初始化原创 2021-03-11 14:42:50 · 55 阅读 · 0 评论 -
类的生命周期
原创 2021-03-11 14:38:57 · 58 阅读 · 0 评论 -
Java文件编译运行流程
当前主要流行的 JVM 有: HotspotVm J9VM ZingVM Java 文件的编译运行流程简化版: class 文件的运行流程:原创 2021-03-11 14:36:35 · 88 阅读 · 0 评论 -
Activity栈原型
ActivityStack ------------------------------------------ | TaskRecord | | --------------------- | | | ActivityRecord | | | --------------------- | | | Activi...原创 2021-03-10 23:15:17 · 269 阅读 · 0 评论 -
Context创建流程
Context 的主要继承类有 Activity 和 Application。 Activity中Context的创建 ApplicationThread 通过变量名为 H 的Handler 发送 Message 到 MessageQueue 中 ActivityThread 的 Looper 轮询 MessageQueue,取得 Message 创建 Activity 创建 ContextThemeWrapper 创建 ContextWrapper Application中Context的创建 Ap原创 2021-03-10 23:03:41 · 117 阅读 · 0 评论 -
从点击电源键到Activity展示给用户的流程
点击电源键 启动 BootLoader 启动 Linux 系统 调用 init 进行初始化 启动 Zygote 进程 进行一系列的 Service 初始化,其中包含 SystemService SystemService启动 AMS(ActivityManagerService) AMS 启动 Launcher Launcher 从 PMS(PackageManagerService) 中读取 App 列表的数据,将 App 图标以及名字显示桌面上 用户点击应用图标 Launcher 调用 Activit.原创 2021-03-10 22:43:31 · 136 阅读 · 4 评论