第123篇状态保存与恢复:onSaveInstanceState 的时机
本文深入解析Android状态保存与恢复的核心逻辑:关键不在“存”,而在“判”——明确区分视图状态(View)、界面状态(Activity Bundle)与业务数据(ViewModel/Repository)三层,严守1MB Binder事务限制,规避TransactionTooLargeException;强调onSaveInstanceState不保证调用,关键状态须冗余存储;提供可落地的工程实践与面试高分要点。
第130篇WorkManager:后台任务的最终归宿
WorkManager 专解“保证完成+尊重系统调度”问题,非实时执行方案。核心能力:持久化任务队列、约束条件(如网络/电量/存储)、可组合工作链。选型关键:可延迟但必须成功——用它;需即时响应、用户可见——用前台服务或推送。
第099篇 属性委托实战:SharedPreferences 的现代写法
本文详解Kotlin属性委托的实战应用:何时自研委托(满足SP/DataStore存储、读写加工、多处复用三条件之一)、如何落地(内存缓存、加密、过期校验、key动态派生),并避坑SP全量加载、主线程commit、key硬编码等问题。强调委托核心价值——将状态读写策略从业务代码中解耦抽离。
阿里云限时大促全汇总:云服务器新客特惠机型、活动规则与选购指南
阿里云云服务器限时大促是面向新客户推出的年度优惠专场,主打低门槛上云,覆盖轻量应用服务器、ECS多款实例规格,适合个人建站、开发测试、小型业务部署等场景。本次活动以首购特惠为核心,搭配代金券、免费试用资源包,不同机型价格差异明显,大家可以根据业务负载、带宽需求、存储容量来挑选合适套餐。
第056篇 新时间 API:LocalDateTime 取代 Date 的理由
移动端时间处理易出线上事故:`SimpleDateFormat` 静态共享致线程不安全;跨时区“昨天”判断偏差;字符串截取本地化日期失效。Java 8 `java.time` 核心在于厘清**三类时间语义**:`Instant`(UTC瞬时点)、`LocalDateTime`(无时区墙上时间)、`ZonedDateTime`(含时区规则,支持夏令时)。存储用 `Instant`,展示才绑定时区;格式化必传 `Locale`;`YYYY`≠`yyyy`;`Period`(日历量)与 `Duration`(物理量)不可混用。
第070篇 扩展函数原理:它到底是不是给类加方法
Kotlin扩展函数本质是**静态方法**,编译后以接收者为首个参数,置于文件类中;调用依**静态类型决议**,不参与多态,**不访问private成员**,且**成员方法永远优先于同名扩展**——它是语法糖,而非真正的方法增强。
第044篇 ThreadLocal 原理:主线程到底能不能用
ThreadLocal核心在于“线程独享+弱引用Key+强引用Value”:每个线程持独立ThreadLocalMap,Key为ThreadLocal弱引用,Value强引用用户对象;若不显式remove,线程池复用时易致内存泄漏与数据串号。务必在finally中清理!
第017篇 枚举 enum:不止是常量集合
Android面试中,枚举不仅是“带名字的常量”,更是类型安全的状态管理、轻量策略模式与线程安全单例的统一载体。本文从原理、场景、坑点三层面讲透:如何用`code`字段替代`ordinal`持久化、为何避免可变状态、何时选用`@IntDef`权衡内存与安全,并附可运行代码与EnumSet/EnumMap高效用法。