awk技巧

通过awk批量解压tar包 awk会将管道数据每一行输出组合为tar命令,最后交给sh执行,有多少行就会执行多少次,总之就类似循环遍历执行命令 ls |grep "tar$"| awk '{print "tar -xvf" $1}' |sh


Handler的理解

要理解Handler首先要理解Looper,Handler,Thread这几个的关系,然后再是消息队列,消息本身,消息传递之间的相互协作关系 Looper class Looper和ThreadLocal类关系图


WindowAnimationStyle属性生效情况对比

起因 在给app配置Activity切换动画时,发现一些作用于theme的动画属性,比如 activityOpenEnterAnimation activity打开动画 taskToFrontEnterAnimation Activity任务栈切换到前台的进入动画 但是在Android P之后的一些


AOSP编译指令

源码下载 Android 源码 假设我们已经配置好了repo 官网教程:下载 Android 源代码 | Android Open Source Project[1] mkdir aosp && cd aosp //google地址 repo init -u https://android.goog


Activity窗口自定义动画资源加载源码分析

通过Theme设置的动画 支持的动画属性 在AndroidManifest.xml中通过设置style的形式指定动画资源,比如有:activityOpenEnterAnimation framework中定义动画的属性文件为:base/core/res/res/values/attrs.xml 其中


Activity添加自定义过度动画

本文基于Android 13 通过xml引入动画 适用于应用内有多个Activity的场景,这些Activity都在同一个Task任务栈内, 换而言之,下面的配置对Task之间的切换动画不生效,launchMode也会有影响,详细说明请参考 不同Android版本之间的区别 定义动画文件 在res/


Android 网格布局GridLayout使用方法

这两天遇到一个需求,一堆按钮要排列成 一个3x2矩阵,中间几个可能会消失,后边的按钮依次往前递进占位,按照之前的相对布局约束变换来做的话就会非常复杂,要写一对逻辑控制约束,于是想到了网格布局,网格布局有两种: RecyclerView搭配GirdLayoutManager非常灵活 GirdLayou


Linux下的各种代理配置集合

记录Linux下各种常见的代理配置方式 npm 代理 设置 npm config set proxy http://127.0.0.1:7890 npm config set https-proxy http://127.0.0.1:7890 取消 npm config delete proxy


从Framework层分析高斯模糊的实现逻辑

本文基于Android 13源码分析 当试图阅读AOSP源码的时候往往无从下手,本文试图从设置窗口高斯模糊效果为目的来梳理Framework中一些重要类的各种关系,比如从Activity根View的创建到window的加载以及和ViewRootImpl的关系,最后在自定义Window中模拟Activ


常用adb命令集合

一些设备隐藏了系统设置,甚至隐藏了关于项,此时需要命令行操作 打开设置主页 手机 标准手机设置app adb shell am start com.android.settings/com.android.settings.Settings 车机 adb shell am start -a andr