AI笔记本

2026年以前手搓博客一千多篇。如今 Claw、Cursor、Claude 等 AI Agent 横空出世。只需一句话,AI 就能生成文章、调整格式、润色语言,并一键自动发布。欢迎来到 AI 驱动博客时代 🚀

文章列表

Android 是如何查找最匹配的资源
Android

Android 是如何查找最匹配的资源

Android 是如何查找最匹配的资源Android开发中,应用需要适配各种大小的屏幕、设备(折叠屏、平板等)、国家语言、深色模式等。比起在代码里到处插桩、资源替换(切换主题就是采用这种方法)等繁琐的方式,最有效也是最简单的适配途径就是利用资源目录。这是最近几个月海量适配的经验总结,框架保证可靠性。1、资源目录限定符在资源目录名中添加限定符,Android会根据当前配置为APP选择合适的资源加载。

2.1k
getSystemService()引起的内存泄漏​
Android

getSystemService()引起的内存泄漏​

getSystemService()引起的内存泄漏通常获取系统服务通过Context的getSystemService(String name)方法,举个例子:每个系统服务都有独一无二的名称对应,其中CONNECTIVITY_SERVICE是定义在Context中的"connectivity":1、getSystemService方法getSystemService(String name)方法是

3.2k
一键搜索插件:CodeSearch​
分享

一键搜索插件:CodeSearch​

一键搜索插件:CodeSearch前段时间在AOSP代码在线搜索:Code Search一文中分享了AOSP代码搜索浏览工具:CodeSearch,同时也想到一个痛点:想要查找资料,先复制需要搜索的内容,再去浏览器,打开百度/Google/掘金等网站,最后粘贴搜索。要是能直接在AndroidStudio中搜索,或者点击直接打开到对应的网页结果,一步直达。已经有插件解决了这个痛点,也叫CodeSea

2.2k
实时调试插值方程:interpolator​
开源

实时调试插值方程:interpolator​

实时调试插值方程:interpolator分享一个实时调试插值方程的开源工具:interpolator,在动效开发中会有帮助,预览插值器效果,所见即所得。关于插值器另见动画插值器Interpolator一文。GitHub地址:github/inloop/interpolator。interpolator是用JavaScript和Html实现的前端项目,clone到本地打开index.html文件即

2.2k
分支merge操作​
Git

分支merge操作​

分支merge操作通常dev开发分支合格上线之后,就要合入到master主线分支。可以用cherry-pick的方式,将dev分支上的提交依次cherry-pick到master分支再合入。但不提倡这种方式,不仅费时费力还容易遗漏提交。git提供了合并分支的merge操作,将两个或多个开发历史合并到一起。 merge命令有许多可选项,记不住很正常,真到需要用的时候,用git help merge在

1.8k
权限申请库:AndPermission(二)
开源

权限申请库:AndPermission(二)

权限申请库:AndPermission(二)在权限申请库:AndPermission(一)中介绍了阿里严振杰所写的权限申请库:AndPermission,虽然很不靠谱被喷的不少,但仍推荐阅读此库的源码。它的源码比较容易阅读和理解,适合Android初学者学习,帮助理解Android的权限机制。随着Google对Android的不断升级完善,越来越重视对用户隐私的保护,现在Android框架的权限机

1.8k
彻底删除AndroidStudio不兼容的插件
分享

彻底删除AndroidStudio不兼容的插件

彻底删除AndroidStudio不兼容的插件AndroidStudio是基于IntelliJ IDEA的开发调试工具,丰富的插件扩展了功能也提高了开发效率。但是随着AndroidStudio版本不断升级,有些插件因为兼容性无法再使用。有两种方式:一是删除不兼容的插件,寻找类似插件替代;二是联系开发者及时更新插件。之前安装的插件用的好好的,升级AndroidStudio之后就不能用了,而且每次启动

2.5k
专业的屏幕捕获工具:VeryCapture
分享

专业的屏幕捕获工具:VeryCapture

专业的屏幕捕获工具:VeryCapture之前分享了三个非常好用的工具,分别是:截屏工具Snipaste、录屏工具oCam、Gif录制工具Honeycam。最近找到一个集截屏、录屏、Gif录制于一身的软件,它就是VeryCapture。一款定位功能强大,设计优美的屏幕捕捉软件,截屏和录屏都毫无压力。1、截屏 除了常用的全屏截图、矩形截图,还有几个有意思也比较实用的截图方式:长截屏、任意截屏。1.1

2.1k
一键导出PPT中的图片
分享

一键导出PPT中的图片

一键导出PPT中的图片好记性不如烂笔头,学到了一个小技巧,及时的记录一下。浏览网页时看到好看的图片,可以在浏览器选择图片另存为。在打开的PPT中,也可以选择另存为导出PPT里面的图片:当一个PPT里面有数百张的图片需要导出时,上面这种操作显然不合适:将PPT复制一份,文件后缀名改为.rar压缩包格式。PPT本质其实就是一个压缩文件,apk安装包也是。至于PPT是如何存储,有兴趣阅读这篇PPT存储结

1.8k
权限申请库:AndPermission(一)
开源

权限申请库:AndPermission(一)

权限申请库:AndPermission(一)在Android 6.0(也就是Android M)之前,权限在安装时全部授予,在保护隐私方面起到的作用有限;于是在Android 6.0及之后对权限进行了分类,涉及隐私等重要权限需要在运行时动态申请。另外,随着Android版本的更新迭代,有新的权限加入,也有旧的权限废弃。关于权限的申请,之前就了解过一些优秀的库:通过注解申请权限的Permission

2.4k
三种常见的颜色格式及其转换:RGB、YUV、CMYK
分享

三种常见的颜色格式及其转换:RGB、YUV、CMYK

三种常见的颜色格式及其转换:RGB、YUV、CMYK彩色记录的格式有很多种,常见的有RGB、YUV、CMYK这三种。RGB是运用最广的颜色系统之一;YUV的发明用于彩色电视与黑白电视的过渡;CMYK即印刷色彩模式,顾名思义就是用来印刷的。Android开发中用到的主要是RGB,详见Color详解一文。1、常见的三种颜色格式1.1、RGB格式RGB模式是一种发光的色彩模式,诉求于人眼对色彩的感应。R

2.9k
AOSP代码在线搜索:Code Search
Android

AOSP代码在线搜索:Code Search

AOSP代码在线搜索:Code Search阅读源码的时候,一个痛点就是“迷失在茫茫目录中”:找不到类文件在哪、找不到接口的实现类是哪个、找不到方法在哪实现的。比如,看Display相关源码,会发现DisplayManagerGlobal中有一个成员IDisplayManager,对源码结构不熟悉的话,一时找不到这个接口实现在哪里。在Android源码目录结构一文中对AOSP的目录有些许的了解,知

3.1k
SurfaceFlinger启动流程
Android

SurfaceFlinger启动流程

SurfaceFlinger启动流程 好久没有看源码,恰好接触到SurfaceFlinger,简单了解一下SurfaceFlinger。SurfaceFlinger是一个系统服务,接受来自多个来源的数据缓冲区,对它们进行合成,然后发送到显示设备进行显示。在Zygote进程的启动一文中,了解到:在系统启动时,init进程读取位于/android/platform/system/core/rootdi

3.0k
Facebook开源闪光效果库:Shimmer
开源

Facebook开源闪光效果库:Shimmer

Facebook开源闪光效果库:ShimmerFacebook开源的库总是令人称赞,比如强大的Android调试工具Stetho、大名鼎鼎的跨端框架React Native、声明式UI渲染框架Litho等均是出自Facebook。Shimmer也是Facebook开源的一个Android库,提供了一种简单的方法为应用中的任何视图添加闪光效果。最近借助它实现内容加载骨架,无论在开发过程中,还是最终效

3.5k
Android

View的setWillNotDraw()方法作用

View的setWillNotDraw()方法作用仅View一个类代码就超过3万行,从头到尾看一遍难度太大。除了记住常用的方法,还有一些不那么常用的。本篇将要介绍的是setWillNotDraw()方法。1、setWillNotDraw() 方法介绍如果调用View的setWillNotDraw(true)方法,也就是给View设置WILL_NOT_DRAW标志,会跳过当前View的绘制,对应Vi

3.0k
maven { url 'https://jitpack.io' } 无法下载的问题
分享

maven { url 'https://jitpack.io' } 无法下载的问题

解决maven { url 'https://jitpack.io' } 无法下载的问题要使用GitHub上项目的开源库,比如 BRV ,加强版的RecyclerView框架:需要在项目根目录的 build.gradle 添加 jitpack 仓库:以上这些都照做了,却遇到Gradle无法下载依赖的问题。这种情况以前也遇到过,一般是由于网络故障引起的,可以用国内的镜像仓库。尝试了不同方法,仍然无法

6.6k
Android数据库调试助手:Glance
数据库

Android数据库调试助手:Glance

Android数据库调试助手:Glance开发中查看数据库是个麻烦事,以前是先把数据库文件从手机里pull出来,然后用DB Browser for SQLite软件打开。后来用过一个数据库调试工具:Android Debug Database。今天再介绍一个数据库调试工具库:Glance。此Glance非彼Glance,Jetpack中也有一个名为Glance的库,目的是用Compose样式的 A

2.1k
Android逆向工具:jadx
分享

Android逆向工具:jadx

Android逆向工具:jadx移动应用同质化严重,相似的的界面,一样的操作。背后是各家的产品相互"借鉴",开发也会用逆向技术"参考"。关于反编译之前在APK反编译中有记录,后来介绍了一个好用的交互式反编译器:GDA。本篇再分享一个类似的开源逆向工具:jadx。GitHub地址:github.com/skylot/jadx/1、jadxjadx是一款优秀的Android反编译工具,同时支持命令和图

2.6k
Android

ViewStub源码剖析

ViewStub源码剖析之前在ViewStub懒加载一文中记录了如何使用ViewStub懒加载布局,当时没有继续对ViewStub深入研究。现在回头看看ViewStub源码,只有三百多行,属实需要细细品一下。 nukc在看了ViewStub源码之后突发灵感,写了StateView库,吸收了ViewStub的一些特性,内存占用少。从ViewStub的构造函数开始看,ViewStub继承自View,所

1.8k
视图绑定:ViewBinding​
Android

视图绑定:ViewBinding​

视图绑定:ViewBinding安卓开发中让开发者厌烦的要数findViewById(),早些时候JakeWharton大神写的View注入框架ButterKnife很火,干掉重复的工作提高效率。不过现在不再维护,而且用的也越来越少。2020年3月Google官方推出了Android Studio3.6,亮点就是ViewBinding,来解决上面那个烦人的问题。ViewBinding也用了一年多,

3.8k