感谢认可~
Android FileProvider 踩坑指北前言 从 Android N(7.0) 开始,将严格执行 StrictMode 模式。而从 Android N 开始,将不允许在 App 间,使用 file:// 的方式,传...
感谢认可~
Android FileProvider 踩坑指北前言 从 Android N(7.0) 开始,将严格执行 StrictMode 模式。而从 Android N 开始,将不允许在 App 间,使用 file:// 的方式,传...
通过 dcdg 插件将 dart 代码转成 PlantUML 支持的 .puml 后缀的文件 插件地址:https://pub.dev/packages/dcdg[https...
1 概念抽象原则 1.1 奥卡姆剃刀 在能够解决问题的前提下,概念越少越好 1.2 边界清晰,还原问题 将原问题抽象分解成几个概念之后,概念之间有清晰的边界,互相没有重叠。这...
1. Flutter 三棵树 Flutter 的自渲染离不开 Flutter 三棵树: Widget:描述 UI 渲染的配置信息 Element:存放上下文,持有 Widge...
1 Glide缓存与复用机制简介 1.1 Glide的资源状态可以分为四种 Active Resources:有其他View正在展示这张图片 Memory cache:该图片...
第一节,我们主要分析Glide.with(this).load(url).into(imageView)这三步,也就是最简单的将一个网络图片展示在ImageView上的三步。...
提示:本文设计到的 Flutter framework 层源码是基于 Flutter 1.20.0 三行代码代表了Flutter APP 启动的三个主流程: binding初...
在开始阅读此篇文章之前,我们可以先思考下如下问题: 什么是 Mixin ? Mixin为什么会被设计出来,它解决了什么问题? 在 Mixin 被设计出来之前是如何解决此类问题...
线性表反转 查找出奇数个元素的链表中间位置的结点 判断链表是否有环 1. 线性表反转 前面已有一篇文章介绍线性表反转的四种算法[//www.greatytc.com...
常用的4种: 迭代反转法 递归反转法 头插法 就地逆置法 1 迭代反转法 从当前链表的首元节点开始,一直遍历至链表的最后一个节点,这期间会逐个改变所遍历到的节点的指针域,使其...
宝又调皮了🙄
从源码的角度分析View的绘制流程从源码的角度分析View的绘制流程 温馨提示:以下源码分析会截取源码进行说明,部分方法源码较长会只保留关键代码,其他代码用...省略 为了便于大家更好的理解源码调用逻辑,在看...
1 Widget 简介 在Flutter中,一切皆是Widget(组件),Widget的功能是“描述一个UI元素的配置数据”,它就是说,Widget其实并不是表示最终绘制在设...
原本庞大的项目组件化拆分后如果所有的 module 都放在主工程下会增加编译时间,降低开发效率。我们可以将每个 module 单独创建仓库去管理,主工程通过依赖远程 aar ...
1 AMS简介 1.1 什么是AMS AMS(ActivityManagerService)是系统的引导服务,应用进程的启动、切换和调度、四大组件的启动和管理都需要AMS的支...
1 LeakCanary简介 LeakCanary 是 Square 公司的一个开源库。通过它可以在 App 运行过程中检测内存泄漏,当内存泄漏发生时会生成发生泄漏对象的引用...
文/林小白 01 “爬山吗,朋友?” 这几天,一个关于“爬山”的段子在微博、朋友圈、抖音火了起来。而这个梗源自最近屡上热搜的国产剧——《隐秘的角落》。 《隐秘的角落》第一集,...
最近公司新业务太忙了,都没时间更😅
Android FileProvider 踩坑指北前言 从 Android N(7.0) 开始,将严格执行 StrictMode 模式。而从 Android N 开始,将不允许在 App 间,使用 file:// 的方式,传...
前言 从 Android N(7.0) 开始,将严格执行 StrictMode 模式。而从 Android N 开始,将不允许在 App 间,使用 file:// 的方式,传...
CPU与缓存一致性问题 我们都应该知道线程是 CPU 调度的最小单位,线程中的字节码指令最终都是在 CPU 中执行的。CPU在执行的时候,免不了要和各种数据打交道,而 Jav...
Android组件化混淆 每个module在创建之后,都会自带一个proguard-rule.pro的自定义混淆文件,每个moudule可以有自己的混淆规则。 但是在组件化中...