
View布局参数LayoutParams
View布局参数LayoutParams为了计算布局实现动效和LayoutParams密切接触有一段时间,LayoutParams彻底玩明白了。1、LayoutParamsLayoutParams直译为布局参数,是定义在ViewGroup中的静态内部类。1.1、LayoutParams用途LayoutParams类的注释清楚的写明此类的用途:LayoutParams是子View用来告诉它们的父布局
2026年以前手搓博客一千多篇。如今 Claw、Cursor、Claude 等 AI Agent 横空出世。只需一句话,AI 就能生成文章、调整格式、润色语言,并一键自动发布。欢迎来到 AI 驱动博客时代 🚀

View布局参数LayoutParams为了计算布局实现动效和LayoutParams密切接触有一段时间,LayoutParams彻底玩明白了。1、LayoutParamsLayoutParams直译为布局参数,是定义在ViewGroup中的静态内部类。1.1、LayoutParams用途LayoutParams类的注释清楚的写明此类的用途:LayoutParams是子View用来告诉它们的父布局
EventBus源码分析(四):EventBus中的几种设计模式再看一下EventBus,总结一下其中几个重要的设计模式,也是最常见的几种设计模式:单例模式、建造者模式、观察者模式。多看源码的好处之一就是能从优秀的代码里活学活用。1、单例模式单例模式(Singleton Pattern)是设计模式中最简单也是最常见的设计模式。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。单例模

Windows解除文件占用小技巧从网上下载各种资源的时候,难免会遇到流氓软件。比如这种常见的工具下载站点,不能直接下载文件,而是要通过提供的下载器下载:一旦运行之后,就会遇到文件或者文件夹删除不掉的麻烦事。这些软件隐藏起来运行,在后台执行不为人知的操作。很多时候遇到文件夹或者文件无法删除,是因为要删除的文件/文件夹正在被某个程序占用使用中。打开任务管理器,如果能够直接在运行的进程中找到运行的程序,

EventBus源码分析(三):Subscribe注解详解前面把EventBus源码看了一遍,回头再看一下EventBus初步使用一文中提到的Subscribe注解,就会更加理解这其中三个属性的含义及作用:1、Subscribe注解Subscribe注解定义如下:Subscribe注解只能作用在方法上;在编译后不仅被保留,在运行时获取该注解。Subscribe注解有三个属性: ①threadMod

EventBus源码分析(二):事件分发及处理前面了解了EventBus的构造及事件订阅,接下来看看EventBus事件分发的实现原理。1、事件分发使用过EventBus的同学都应该知道,EventBus提供两个事件发送API方法:通过post(event)可以发送普通一次性事件外,另外一个方法是postSticky(event)可以发送粘性事件。所谓粘性事件其实和普通事件一样,只不过会将【粘性事

EventBus源码分析(一):构造及订阅通过一文EventBus初步使用,了解了EventBus的使用。光了解是不够的,深入源码才算熟悉。EventBus源码不多,适合开发者精读学习,仅代码就1800余行(使用SourceCounter统计)。1、构造EventBus实例项目开发中,一般使用EventBus类中的getDefault()静态方法获取全局总线实例。1.1、默认单例getDefaul

EventBus初步使用1、认识EventBus最早使用EventBus是在19年底,一位同学为了解耦代码引入的。深入学习一个开源库之前,得先了解它是干什么的,怎么用,现在记录一下。GitHub:greenrobot/EventBus官网:greenrobot.org/eventbus1.1、介绍在使用EventBus之前,为了解耦各个组件之间的通信,常见的一种方法是使用广播,更高效一点就用本地广

又一效率神器:Wox好久没有跟新博客,翻了翻囤货,还好可以续上一篇。很久之前发现的一个非常好用的开源效率神器:Wox。安装后一直在用,可以说"爱不释手"。集成度很高的本机搜索软件,随时随地 Alt + Space键 唤起搜索框,可以节省很多"找"的时间,继Quicker之后的又一效率神器。Wox官网:www.wox.oneGitHub:github/Wox-launcher/Wox。1、集成的搜索

在线代码查看神器:github1s在GitHub上发现微软一个牛掰的项目:github1s,基于Node.JS、Yarn、Python等技术栈,实现“One second to read GitHub code with VS Code.”。和前段时间推荐的GitHub浏览插件:Git Master一样高效的在线浏览GitHub代码,但不需要任何插件的束缚,非常方便。项目地址:github.com

交互式反编译器:GDA以前对APK进行反编译需要用到很多工具:apktool、dex2jar、jd-gui等,还要记住很多命令,很不方便,详见APK反编译一文。有没有将这些工具集成到一起的反编译工具?1、GDA反编译集成工具找到一个宣称是中国第一款也是唯一一款全交互式的现代反编译器:GDA。经过一段时间的使用,确实方便好用,功能齐全。官网:Gjoy Dex AnalysizerGitHub:git
一个高效的Apk提取脚本开发者如何将手机上已安装应用的安装包提取导出到电脑上呢?以前是这样做的,只需要简单三步:①利用焦点拿到当前打开的应用包名(如果已经知道需要导出的应用包名,可以跳过此步)②知道应用包名后,通过pm获取安装包路径③最后就是将apk从手机中pull出来。注意如果路径包含'/base.apk'需要加一个'/'改成'//base.apk',后面写的脚本有这一步处理。还可以更快,更高效

QuickLook:高效文件预览当打开的文件扩展类型是电脑无法处理的时候,系统会弹框提示。举个例子:打开.java扩展名的文件,一般电脑软件是不会关联这个文件扩展名。当我们尝试打开就会弹出对话框选择打开软件,如果没有安装处理这种文件类型的软件就比较耽误时间。推荐一个文件高效预览软件:QuickLook,只要选中文件,按下空格键即可快速显示文件预览(再按空格退出预览)。支持四十多种文件格式:常见的图

GitHub浏览插件:Git Master又找到一个和开发相关的效率工具:Git Master,是Chrome浏览器插件,让开发者在GitHub上浏览代码更便捷。主要功能:Git 文件树(GitHub && GitLab && Gitee && Gitea)文件搜索显示 GitHub 存储库大小和文件下载支持GitHub 通知GitHub 暗模式,也适用于要点代码片段浏览文件的历史记录 (GitH

bindService绑定服务源码流程终于轮到双休,周末可以摸一下书。本次阅读的源码基于API 30,将来回头再看可能有误。1、绑定ServiceService作为四大组件之一,承担着执行后台任务的重担。有两种启动方式:①startService,②bindService。本篇跟随源码了解绑定Service的过程。绑定Service仅需简单几步:将Service的绑定过程拆分开来看,并不复杂,逻辑

文件夹标记工具:Folder Painter刷抖音的时候看到一款非常好用(且免费)的文件夹美化工具:Folder Painter,点赞不如记录一下这个工具。可以让Windows上枯燥的文件夹变得五颜六色,增加美观度和辨识度,比如将重要的文件夹标记为显眼的红色。去官网:folder-painter上下载Folder Painter,免安装,解压后直接运行程序。麻雀虽小五脏俱全,软件支持中文等多语言,
查看文件inode信息:stat除了日常经常使用的ls命令查看文件信息,还有一个命令:stat,用于查看文件的详细信息及状态。1、stat参数--help选项快速了解stat命令的用法。1.1、可选参数stat命令用法比较简单,参数不多。1.2、格式参数文件的有效格式选项(不带--file-system选项):文件系统的有效格式选项:2、示例直接用stat和stat -L显示的文件信息是一样的:s
探究 try-with-resources语法有没有想过 try-with-resources 语法到底是在虚拟机层面做了处理还是在编译时候做了手脚?得空刨根问底研究一下。1、可关闭对象开发中用到很多表示资源的可关闭对象:FileOutputStream、Socket等等。1.1、AutoCloseable接口这些表示资源的对象通常继承自Closeable接口,用完需要关闭。其close()方法中

adb命令插件:ADB Idea再安利一个AndroidStudio插件:ADB Idea,GitHub上找到了该插件的源码:pbreault/adb-idea 。AndroidSutdio上已经装了几十个插件,这些尽可能为了提高开发效率,减少重复冗余工作。先安装插件,打开File > Settings > Plugins,搜索ADB Idea安装该插件。打开Tools > ADB Idea菜单,

uptime 查看系统运行时间记录一个命令:uptime。直接输入该命令,会得到系统当前时间、系统运行了多长时间、登录用户数量以及过去 1、5 和 15 分钟的系统负载平均值。这个命令不光可以了解系统启动时间,还可以了解当前系统的负载状况。如果不熟悉一个命令的用法,通常用--help选项快速了解一个命令的用法。加上-p选项,阅读友好的形式显示系统启动时间,按:周,日,时,分。结合-s选项,显示系统
深入理解Android Parcel原计划按照AIDL、Binder不断深入学习Android跨进程IPC,中途发现这些都离不开一个容器:Parcel,还记得在Android中的两种序列化:Parcelable和Serialable一文中讲到Parcelable,Parcelable也通过Parcel的写入和读出完成数据序列化。先来了解一下Parcel及其底层原理,将这前后知识串起来。1、剖析Pa