路漫漫其修远兮,吾将上下而求索
skia-基本图形的绘制 skia-基本图形的绘制
skia的图形绘制API和我们平时使用的各种平台的Canvas API几乎没什么区别. 看名字一般也就能知道具体是什么绘制操作了. 例子#include "demo.h" #include "include/core/SkBitmap.h"
2021-03-21
skia中的SkBitmap skia中的SkBitmap
SkBitmap是一个二维的光栅化像素数组. SkImageInfoSkImageInfo包含以下信息: 整形的宽,高 这里的宽可以认为是图像的列数,即 column count 这里的高可以认为是图像的行数, 用于描述像素格式的SkC
2021-03-21
CameraX的简单使用 CameraX的简单使用
基本说明目前CameraX已经处于RC(Release Candidate)阶段了,意味着API不会有大的改动了,官方提示可以应用在实际产品中了. CameraX对之前的Camera2进行了包装,重新设计了API,让开发者可以更简单,更快速
2021-01-24
“显示布局边界”的原理 “显示布局边界”的原理
设置页的处理逻辑在packages/apps/Settings/src/com/android/settings/development/ShowLayoutBoundsPreferenceController.java中有: public
2021-01-19
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
1 / 6