程序人生
文章平均质量分 93
塞尔维亚大叔
毕业于上海复旦大学,专注技术多年,产品控、代码控,拥有丰富的项目经验,参与主持研发了多个成功上线的大型互联网项目。
展开
-
默认状态下,ViewGroup为什么不走onDraw()?
一、起因 遇到这个问题是在一次自定义ViewGroup中重写了onDraw()方法,并且在onDraw中绘制了画面,但是运行过后,画面没有效果。随后自己写了一个简单的Demo,打出日志看了一下绘制流程,如下: 从上面的图片可以清楚的发现在绘制时,只是走了onMeasure,onLayout和dispatchDraw,onDraw方法却没有调用。 随后借鉴了网上的说法,在自定义ViewGroup的xml中设置了一个背景颜色,并运行打印log 这个时候就可以看见在dispatchDraw之前调用了onDra原创 2021-09-09 15:15:27 · 328 阅读 · 3 评论 -
Android 仿微信聊天炸“si”效果!!诶,就是玩!
Long Long Ago,微信8.0更新了一个“炸屎”的新功能,还蛮有新意。 这两天和朋友聊天触发了这个功能,当时心想,诶!这文章素材不就来了吗?!趁着周末时间,赶紧来实现一下。 我们先来看看整体实现的效果: 本篇文章无技术含量,纯属娱乐,纯属娱乐 思路 经过不断试验,反复查看了微信炸????的效果,基本上可以将其拆解成几个小部分。 选择炸弹表情,发送后炸弹会以抛物线的形式向对方发送,同时????会进行翻转; 在????碰到????表情的时候,出现爆炸动画; 在动画爆炸的同时,出现大概原创 2021-09-08 20:16:38 · 450 阅读 · 2 评论 -
Jetpack的MVVM实现 - ViewModel的使用及源码分析
概述 这篇我们继续讲 Jetpack,具体讲实现 MVVM架构的 ViewModel。这次的例子会将 ViewModel和 LiveData结合使用,然后分析一下 ViewModel的源码。LiveData将留到下篇文章分析。 上一篇文章MVP基础架构搭建 的例子里,用了MVP的架构实现了网络加载的流程。这次我们要把上次 MVP架构升级为 这次的MVVM,将上次例子的 Presenter模块和 Model模块去掉,只保留网络加载引擎。然后结合 ViewModel和 LiveData来实现 MVVM。 1、.原创 2021-09-03 16:30:32 · 255 阅读 · 2 评论 -
「性能优化系列」APP内存优化理论与实践
当一个应用同时运行越来越多的任务以及复杂的业务,Android系统的内存管理机制已经无法满足内存的释放与回收,为了应用的稳定性与性能,去控制内存的创建和回收就成为了一个重要的命题。 本篇文章主要涉及内容如下: 对象的创建与回收; 分配内存的方式,对象在JVM中的生命周期; 判断对象是否需要被回收,垃圾回收算法; 内存抖动、内存泄漏的监控; Bitmap的大小、重复监控方案; 设备分级方案。 一、对象的创建和回收 1.1、对象的创建 在java中对象的创建基本上就是一个new,但new的背后在内存中做了些原创 2021-09-02 21:17:04 · 688 阅读 · 4 评论 -
【Android食用指南-01】Android虚拟机&类加载机制
前言 在上一篇文章中【JVM入门食用指南-03】JVM垃圾回收器以及性能调优[1],对垃圾回收器以及JVM性能调优进行了叙述,并对JVM中CMS垃圾回收器进行了重点阐述。通过之前在JVM中的铺垫,本文我们回到Android中,本文我们主要对Android虚拟机和类加载机制进行叙述,加深对 Android 的理解。 即将学会 ART 和 Dalvik Android 类加载流程 热修复实现原理 ART 与 Dalvik JVM 与 DVM JVM 是我们的 Java 虚拟机,而我们的Andro.原创 2021-08-31 21:07:24 · 888 阅读 · 3 评论