小文字 吃饭,睡觉,遛狗头


为何获取Android Gradle Plugin源码这么麻烦?

背景 已经忘了多少次想获取Android Gradle 的源码,但是多少次又搁置了。 repo sync 在使用Android Studio的时候,需要配置一个android的classpath这个大家应该不陌生,正如自定义的plugin配置类似。 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gr... 更多


Multidex启动与安装分析

背景 自从Google推出了官方的multidex1扩展库,巨型App进行分包就变得简单了不少;本文主要从源码角度分析multidex的实现逻辑。 dex 大家对dex动态插入原理应该都有所了解。根据不同Andorid版本的ClassLoader存在的差异,通过反射进行dex数组的编辑操作,将主dex之外的从dex依次插入就可以实现很多事情,比如动态加载,分包等等,当然核心原理是这样,实际上实现的时候又是怎么处理的呢? 下面我们基于multidex的源码开始分析。 multide... 更多


美食实践DIY

唯美食与美女不可辜负:)精选26道自制美味,爱生活,爱美食; 川味回锅肉 清蒸螃蟹 阿根廷红虾 牛肉面 北极贝 拌米粉 韭菜盒子 粉丝... 更多


帧动画调优实践

本文源于笔者内部分享整理而来,同步发表于: https://www.zybuluo.com/avenwu/note/876161 微信公众号:App架构 帧动画调优实践 1. 背景 在做动画的时候我们有很多选择方案。 最常见的是Android原生的帧动画,位移动画,旋转动画,属性动画等等,具体根据动画效果选择实现方案; 针对那些有规律,不太复杂的矢量动画我们往往也采取自定义View来实现,比如各种狂拽炫酷的loading动画; 如果自定义实现成本比较大,或... 更多


编写清晰的脚本:IO输出也能干大事

前言 在写批处理任务时,或多或少会使用到一些常规发行包没有安装命令,或者在macOS下开发的脚本要运用到linux/unix的各种变种时可能会遇到类似问题; 因此有必要在使用非常规命令前,做一下检测;这里就会用到shell输出的重定向。 检测命令可用性 通过google,可以发现一些通行的写法, 比如我们想检测当前是否存在jq命令,如果不存在输出警告信息,并终止运行: type jq >/dev/null 2>&1 || { echo >&2 "jq i... 更多