人生从来就没什么退路可言,从选择开始就注定了只能向前冲
LayoutInflater原理分析 LayoutInflater原理分析
两种资源 预编译的layout资源(dex文件) xml layout文件 预编译的布局目前的版本(Android 11)并没有开放这个功能. 基本的处理流程如下: 使用view_compiler将xml布局直接编译成CompiledV
2021-01-04
XML Pull API 方式解析XML XML Pull API 方式解析XML
XmlPullParserpublic interface XmlPullParser { String NO_NAMESPACE = ""; int START_DOCUMENT = 0; int END_DOCU
2020-12-31
Context.getSystemService()实现解析 Context.getSystemService()实现解析
Android中经常会通过context.getSystemService(Context.XX_Service),这里简单看一下实现方式. 在ContextImpl.java中有: @Override public Obj
2020-12-28
Activity状态保存与重建 Activity状态保存与重建
主要方法 onSaveInstanceState(Bundle outState) onRestoreInstanceState(Bundle savedInstanceState) 调用时机 onSaveInstanceState(Bu
2020-12-27
std::deque std::deque
C++中的std::deque,看名字就知道是一个双端队列. 容量操作// 容量大小 deq.size(); // 最大容量 deq.max_size(); // 更改容器大小 deq.resize(); // 容器判空 deq.e
2020-12-12
Flutter在Android上的启动流程 Flutter在Android上的启动流程
目前Flutter项目更新还是比较频繁的,这里主要是看主要的的流程,主要的代码,一些细枝末节或者与主题无关的代码均已忽略. 本文源码基于Flutter Engine master分支,updated 2020/12/07 基本流程 初始
2020-12-10
C++11中的Lambda C++11中的Lambda
C++ 11 中支持了Lambda,然后C++14, C++20中又有所增加. 本着实用的目的,这里就简单的说下C++11中Lambda的基本用法. 语法有以下几种形式: [ captures ] ( params ) -> ret { b
2020-12-08
Flutter Engine编译和源码阅读 Flutter Engine编译和源码阅读
Flutter Engine的编译以及源码阅读其实挺简单的,只要按照官方文档的步骤来,一般都不会有什么问题.这里记录一下编译的流程,以及源码查看的一些配置和问题. 下载 下载depot_tools,并配置环境 git clone https
2020-12-07
C++11中的std::function C++11中的std::function
先来看一个例子: #include <iostream> std::function<int(int, int)> func; int add(int a, int b) { return a + b; } aut
2020-12-06
C++中的typedef C++中的typedef
typedef几个用途: 定义类型的别名 typedef char* PCHAR typedef + struct 定义结构体,其实与别名本质上是一样的 typedef struct { char* name; int
2020-12-05
Golang-处理json Golang-处理json
Marshalmarshal的中文意思是“编码”,“数据打包”的意思 基本操作编码json.Marshal(v interface{}) ([]byte, error) 即将一个struct对象序列化成字节数组. 解码json.Unmars
2020-12-02
Golang-http的简单使用 Golang-http的简单使用
基本使用发送HTTP请求 普通的请求 resp, err := http.Get("http://example.com/") ... resp, err := http.Post("http://example.com/upload",
2020-12-01
浅谈TLS 浅谈TLS
基本概念TLS协议的目的就是为网络通信的两端提供一个安全的通道. 具有以下特性: 身份认证 确保交换信息的各方是他们声称的身份 加密 通道上传输的数据仅对两个端点可见. 不过TLS默认并不隐藏传输数据的长度,但是两端可以向TLS记录中填
2020-11-29
WebSocket WebSocket
什么是WebSocketWebSocket是一种网络传输协议,可以在单个TCP连接上进行全双工通信,位于OSI模型的应用层. 特点如下: 允许服务端主动向客户端推送数据 在HTTP端口80和443工作,支持HTTP代理和中介 WebSoc
2020-11-27
Dart中的Isolate Dart中的Isolate
基本概念每个Isolate有自己的内存和EventLoop.不同的Isolate只能通过传递消息来进行通信. Dart的Isolate没有内存共享机制,这样设计有一个好处,就是在处理内存分配和回收时,无需加锁,因为仅一个线程,并不会抢占.
2020-11-25
写个简单的短链接服务 写个简单的短链接服务
基本说明短链接服务就是一个将比较长的url转换为比较短的url的功能. 如果要实现一个短链接服务,至少要实现这几个功能: 将较长的url转换为较短的url 访问短链接可以直接访问到原网站/链接 时效性:永久有效/过期机制 统计与效率 如
2020-11-22
Flutter-从Widget导出图片 Flutter-从Widget导出图片
在Android中从View中导出图片,使用的是Canvas + Bitmap. 在Flutter中,同样支持这种功能,使用的是RepaintBoundary 使用RepaintBoundary包装WidgetRepaintBoundary
2020-11-12
Glide原理分析 Glide原理分析
一个图片加载库应该具备的功能 图片下载 各种格式图片编解码 图片显示 缓存 图像处理:圆角,色调,调整大小等等 现在分析下Glide是如何实现这个图片加载库的,先来看一下Glide的主要模型 Glide内部模型TargetGlide可以将
2020-11-03
1 / 6