w4lle's Notes

人生如逆旅,我亦是行人。

w4lle's avatar w4lle

快手-开眼快创 Flutter 实践

本文主要介绍快手开眼快创 App 在 Flutter 上的一些实践。     阅读全文

w4lle's avatar w4lle

Flutter UI 渲染浅析(七)Composite

系列文章的第七篇,本篇文章继续分析下Composite合成过程。     阅读全文

w4lle's avatar w4lle

Flutter UI 渲染浅析(六)Paint

系列文章的第六篇,本篇文章继续分析下Paint绘制过程及Layer Tree。     阅读全文

w4lle's avatar w4lle

Flutter UI 渲染浅析(五)Layout

系列文章的第五篇,本篇文章主要分析下 Render Tree 的构建及 Layout 过程。     阅读全文

w4lle's avatar w4lle

Flutter UI 渲染浅析(四)Build

系列文章的第四篇,本篇文章主要分析下 Element.rebuild() 过程。 源码基于 Flutter v1.20.4。     阅读全文

w4lle's avatar w4lle

Flutter UI 渲染浅析(三)Animation 原理

系列文章的第三篇,本篇文章主要分析下收到 VSync 信号回调后 Dart Framework 触发动画的过程及动画实现原理。 基于 Android 平台,Flutter v1.20.4。     阅读全文

w4lle's avatar w4lle

Flutter UI 渲染浅析(二)VSync 注册

在 Flutter App 启动过程或者 State 刷新过程中,会请求注册 VSync 信号。 本篇文章主要分析下 VSync 信号注册以及回调过程。 基于 Android 平台,Flutter v1.20.4。     阅读全文

w4lle's avatar w4lle

Flutter UI 渲染浅析(一)总览

Flutter UI 渲染系列文章,基于 Flutter v1.20.4     阅读全文

w4lle's avatar w4lle

Flutter 工程架构

本文主要介绍Android视角下在已有 App 中嵌入 Flutter 应用的实践,iOS 的方案思路基本一致。     阅读全文

w4lle's avatar w4lle

Flutter 混合栈管理

Flutter 混合栈管理本文主要聊一下 Flutter 混合栈,由于 Flutter 版本跨度较大,所以 Flutter API 也有很大变化,下文中前几个方案的实现看看就好,不用深究。重点关注兼容目前 Flutter 版本(v1.9.1) 的实现。本文以 Android 平台为例进行讲解。     阅读全文

w4lle's avatar w4lle

UI2Code(三)imgcook

imgcook是阿里实现的基于sketch或Ps设计稿,自动生成布局代码的工具,支持生成支持flexbox布局的代码,包括JARVIS、Vue、微信小程序、React、H5、Rax等等。由两部分组成,一个是sketch(Ps)插件,另外一部分是imgcook平台。     阅读全文

w4lle's avatar w4lle

UI2Code(二)pixeltoapp

pixeltoapp 是一个通过传统图像处理把屏幕截图转换为 Android 代码的项目,使用python实现,提供在线服务,具体实现在项目源码地址     阅读全文

w4lle's avatar w4lle

UI2Code(一)pix2code

pix2code 项目通过机器学习,支持输入一张图片输出实际的布局代码,同时支持生成三端(Android、iOS、web)布局代码。 pix2code作为UI2Code的先驱项目,后续的相关项目或多或少的都有参考该项目的实现。     阅读全文

w4lle's avatar w4lle

51信用卡 Android 架构演进实践

随着业务的快速扩张,原本小作坊式的单个工程的开发模式越来与不能满足实际需求。早在两年多以前,51信用卡管家就向下沉淀出了单独的公用基础库,一些通用的功能组件和个别独立的业务被拆分成 SDK,形成了一套中型项目、多人并行的开发模式,也为未来组件化拆分做准备。     阅读全文

w4lle's avatar w4lle

Android热补丁之Robust(三)坑和解

在前两篇文章中,分析了 Android 热补丁框架 Robust 中,几个重要的流程包括: 补丁加载过程 基础包插桩过程 补丁包自动化生成过程 本篇文章主要分析下集成过程中遇到的坑以及分析问题的思路和最终的解决方案。包含: 打补丁包出错? Robust 定义的 API 不够用怎么办? 插件 Plugin Transform 的顺序问题? 与 Aspectj 冲突怎么办? static 方法中包含 super 方法怎么办?     阅读全文

w4lle's avatar w4lle

Android热补丁之Robust(二)自动化补丁原理解析

在 Android 热补丁框架 Robust 中,几个重要的流程包括: 补丁加载过程 基础包插桩过程 补丁包生成过程 在上一篇文章Android热补丁之Robust原理解析(一)中,我们分析了前两个,补丁加载过程和基础包插桩过程,分析的版本为 0.3.2。该篇文章为该系列的第二篇文章,主要分析补丁自动化生成的过程,分析的版本为0.4.82。     阅读全文

w4lle's avatar w4lle

使用 Python 处理 pdf

背景最近老婆工作中碰到一些困难,总是跟我抱怨工作好烦,不开心。主要是是因为要处理一些报告,这些 pdf 格式的样本报告比较多,基本都是人工操作比较容易出错,也比较琐碎,好心情都被磨没了。 然后我说要么写个小程序吧,帮你处理这些琐碎的工作,然后就大概梳理了一下主要需求:     阅读全文

w4lle's avatar w4lle

区块链(一)区块链和以太坊

区块链是什么 区块链(英语:blockchain 或 block chain)是用分布式数据库识别、传播和记载信息的智能化对等网络, 也称为价值互联网。中本聪在2008年,于《比特币白皮书》中提出“区块链”概念,并在2009年创立了比特币社会网络,开发出第一个区块,即“创世区块”。     阅读全文

w4lle's avatar w4lle

热修复总结

热修复总结     阅读全文

w4lle's avatar w4lle

Android热补丁之Robust原理解析(一)

早在16年9月份,美团技术团队就写过一篇文章描述 Android 热补丁框架Robust的简单实现原理,但是并没有开源;然后在17年3月份,美团团队宣布正式开源 Robust并且配套了自动打补丁包工具。本系列文章主要解析Robust实现原理,分为几个方面 补丁加载过程 基础包插桩过程 补丁包生成过程 本文为第一篇,主要讲解补丁加载过程和基础包插桩过程,分析版本 0.3.2。     阅读全文

w4lle's avatar w4lle

再见,薄荷!

2015.3.23 - 2017.3.8 两年时光,匆匆而逝。 来到薄荷已经两年时间,说长不长,说短不短。     阅读全文

w4lle's avatar w4lle

Gradle模块化配置

本文以AndResGuard和Tinker为例讲解下如何模块化配置Gradle,以及一键打Tinker补丁包的实现方法。     阅读全文

w4lle's avatar w4lle

Android Things初探

背景Android Things是Google推出的全新物联网操作系统     阅读全文

w4lle's avatar w4lle

一键接入Tinker

背景Tinker开...     阅读全文

w4lle's avatar w4lle

Android热补丁之Tinker原理解析

Tinker系列文章: Android热补丁之Tinker原理解析 一键接入Tinker Gradle模块化配置 本文是第一篇。 本文分析版本 93ecc9351367badc02a91fac25764bee50e6e6a6项目地址: Tinker 背景在今年的MDCC大会上,微信开发团队宣布正式开源Tinker,在这之前微信团队已经发出过一些Tinker的相关文章,说实话在开源之前我们还是相当期待Tinker开源的,一方面是因为之前使用的热补丁一直存在一些兼容性问题,另一方面也好奇Tinker的实现方案。     阅读全文

w4lle's avatar w4lle

AndroidStudio 常用快捷键

快捷键整理了下常用的快捷键因为我用AndroidStudio的vim插件,所以在编辑这块没有整理太多。需要的同学可以自己学些下。 熟记这些快捷键 + vim = 基本不用鼠标 = 提升效率50%     阅读全文

w4lle's avatar w4lle

OkHttp3 源码浅析

背景之前的底层网络...     阅读全文

w4lle's avatar w4lle

Retrofit Multipart多文件上传

背景新项目的网络库已经由Volley切到了Retrofit,配合Rxjava + Dagger2 + CleanArchitecture ,有效的将项目解耦和,各个层次职责更清晰。依赖注入和注解、动态代理极大的简化了网络请求,开发更高效。 项目中经常会有上传文件的需求,特别是上传图片。上传图片通常有两种方式: bitmap通过Base64转为String,这种方式对于客户端最友好,但是对于服务端要复杂些 multipart/form-data 方式     阅读全文

w4lle's avatar w4lle

Hexo Material主题

    阅读全文

w4lle's avatar w4lle

AsyncTask解析

    阅读全文