
Android Workshop线上活动分享
Android Workshop线上活动分享前段时间Google发起的一个Android SDK Workshop 线上活动。因为有问答环节,所以参加了并且准备几个问题要提问,希望得到官方的回答。1、活动安排 活动日程:(最终安排请以当天日程为准) 10:00 - 10:10 开场 10:10 - 10:30 Android 的最新进展 10:30 - 10:45 ResourcesLoader
2026年以前手搓博客一千多篇。如今 Claw、Cursor、Claude 等 AI Agent 横空出世。只需一句话,AI 就能生成文章、调整格式、润色语言,并一键自动发布。欢迎来到 AI 驱动博客时代 🚀

Android Workshop线上活动分享前段时间Google发起的一个Android SDK Workshop 线上活动。因为有问答环节,所以参加了并且准备几个问题要提问,希望得到官方的回答。1、活动安排 活动日程:(最终安排请以当天日程为准) 10:00 - 10:10 开场 10:10 - 10:30 Android 的最新进展 10:30 - 10:45 ResourcesLoader
Android桌面Launcher3的启动SystemServer启动会在startBootstrapServices()方法中启动引导带服务,其中就包括PackageManagerService(这里判断了手机是否是工厂模式)。而包管理服务和接下来要分析的Launcher启动有很大关系。SystemServer启动流程参考《SystemServer系统服务启动》。startOtherServic
Kotlin object 关键字详解:对象表达式、对象声明与伴生对象在 Java 里,"匿名内部类""单例""静态成员"是三套各不相同的写法,琐碎且易错。Kotlin 用一个 object 关键字把它们统一了——根据出现位置和是否带名字,分别表达"匿名对象""单例""类级静态成员"三种语义。本文把这三种用法、它们的差异与陷阱一次讲透。参考文档:Kotlin 官方文档 · Object decla
LNMP:快速搭建服务器后端环境最初搭建这个站点的时候需要在Linux服务器上安装各种软件,Apache、MySql等等。非常麻烦,就没有像Windows下的XAMPP那样简单易用集成好服务器后端环境的软件呢?有,LNMP!1、LNMPLNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RHEL/Fedora/Aliyun/Amazon、Debian/Ubuntu/Raspb
Kotlin 数据类与密封类详解在 Java 里,写一个"纯数据"的类要手写一堆 getter/setter/equals/hashCode/toString,写一个"有限取值"的类型又得靠枚举或抽象类加 if-else。Kotlin 为这两类高频场景提供了专门语法:数据类(data class)专治"持有数据"的样板代码,密封类(sealed class)专治"受限分类"的穷尽匹配。本文把两者的

View not attached to window manager异常开发的越多,遇到的问题也就越多。知识的圈子不断扩大,接触到的问题也就越多。1、异常Activity退出后,又进行了Dialog的操作会抛出下面的异常,这个异常比较少见。但是确实暴露出代码逻辑的不严谨,有待强化。2、分析原因根据异常的堆栈,从源码开始看。跳过前面的各种调度,直接从Dialog开始:mWindowManager是
Canvas: trying to use a recycled bitmap android.graphics又又遇到祖传问题,网上一搜6年前都有这个问题,看来从历史吸取经验教训是最快的成长!1、异常捕获复现很容易:写一个Bitmap,调用Bitmap的recycle()方法将其回收掉,再设置给ImageView。捕获到下面的异常:Process: com.easyicon.learnglide
Android 获取内存信息全攻略:堆内存、系统内存与进程内存内存优化始终是 Android 性能工程的重头戏,而"优化"的前提是"量得到"。但不少同学照着网上的代码一抄,发现拿到的内存值要么只涨不跌、与 Android Studio Profiler 对不上,要么数字大得离谱——根源在于 Android 的"内存"有好几套口径:Java 堆、系统可用内存、进程 PSS、设备物理内存,各自 API
Kotlin循环语句每门语言都要学一下循环语句,虽然每种语言都有for、while等循环,但总有些各自的特色。1、for循环for循环遍历集合或者数组,使用 in 关键字遍历任何提供迭代器。语法:例:先定义一个数组或集合array:遍历集合array:通常还需要用到索引index,调用集合的withIndex()方法参与循环遍历。例:使用下面的方式遍历for循环,同时获取元素当前索引index和当
条件语句:if和whenkotlin有两种条件语句一种是熟知的if条件语句,另一种是新颖的when条件语句。开发过程中更推荐使用when替代层层if判断,代码会更简洁。1、ifif条件参数类型为布尔类型,只有true和false两种。if...else...常见的可以简写成:可以多重嵌套if...else if...else...语句条件判断除了简单的直接用Boolean条件,还能使用关键字 in

Kotlin基本类型Kotlin没有基础数据类型,但是封装了6种数值类型,分别是Double、Float、Long、Int、Short、Byte。此外还有字符类型Char。1、NumberKotlin中定义的6中数值类型都继承自Number父类。父类定义如下,定义了7中方法,也就是Kotlin中所有的数值类型都可以调用上面的方法转换。2、常量在《Kotlin基本语法》中介绍了变量,现在了解一下什么