【Jetpack】了解LiveData
了解LiveData前段时间学习ViewModel的时候就提到LiveData,单独的ViewModel并不能发挥它的全部“实力”。所以需要继续学习LiveData,善于实践结合ViewModel完成MV的解耦。1、LiveData简介LiveData组件是什么?有哪些优势?这些在Google的官网都能找到答案。详见 Guides > LiveData Overview">LiveData Ove
2026年以前手搓博客一千多篇。如今 Claw、Cursor、Claude 等 AI Agent 横空出世。只需一句话,AI 就能生成文章、调整格式、润色语言,并一键自动发布。欢迎来到 AI 驱动博客时代 🚀
了解LiveData前段时间学习ViewModel的时候就提到LiveData,单独的ViewModel并不能发挥它的全部“实力”。所以需要继续学习LiveData,善于实践结合ViewModel完成MV的解耦。1、LiveData简介LiveData组件是什么?有哪些优势?这些在Google的官网都能找到答案。详见 Guides > LiveData Overview">LiveData Ove
Android中的两种序列化:Parcelable和SerialableAndroid开发中常常用到序列化,典型的应用就是Intent携带数据(不宜携带过多数据)。跨进程传输是将对象序列化,转换成可存储或可传输的状态,再通过网络等方式传输。Intent之所以能够跨进程传输因为它实现了Android特有的序列化接口Serialable。这也是开发中用到序列化的原因之一: ①永久性保存对象,保存对象的

Parcelable序列化插件Android开发中跨进程传输数据,用到Parcelable序列化传输对象。关于Parcelable详见Android中的两种序列化:Parcelable和Serialable。实际开发中需要序列化的属性非常多,手动写又慢有容易出错。现在工具这么多很方便,极大的提高开发效率。推荐使用Android Parcelable code generator插件一键实现Parc

数据库调试工具:Android Debug Database以前调试数据库的时候需要查看数据库,都是从手机里先用adb pull命令到电脑上,再用DB Browser(SQLite数据库浏览器)查看.db数据库文件。步骤麻烦,而且不能实时的查看手机应用的数据库内容。最近发现一个非常好用的数据库调试工具:Android Debug Database,实时调试数据库,又将一个开发调试神器收入囊中。此库

ViewModel视图与数据的桥梁学习Jetpack库第二步,ViewMode是必经之路。它是Google提供的类,专门用来存放数据。Android开发中通常会将业务逻辑和UI界面 拆分,不然的话会导致页面代码臃肿复杂。1、ViewModel听到ViewModel就想到MVVM,ViewModel就是介于View和Model之间的对象。将数据从View中脱离出来。1.1、ViewModel介绍Vi
Lifecycle生命周期感知组件安卓开发过程中业务和应用的生命周期息息相关,这会导致业务和生命周期的耦合。尽管通过MVP等架构设计项目代码稍微有一些好转,但是还是依赖生命周期的各种回调。Google提供的Lifecycle组件,是一种可以感知应用程序生命周期的组件,开发者专注自己的业务,降低代码的耦合。1、LifecycleObserver和LifecycleOwnerLifecycle使用之前

本地搜索:Everything程序员都爱用的本地搜索工具EveryThing,软件小巧,使用极其方便,一搜即达。但是大部分人还没有发挥它的潜力,还有很多快捷方式用来搜索。1、本地服务器Everything提供了一个本地服务器,可以在网页进行搜索。打开工具 > 选项 > HTTP服务器选项默认端口80,打开本地网页http://localhost:80进入Everything网页,保存书签可以快速的
ActivityLifecycleCallbacks的原理分析在Activity生命周期监听ActivityLifecycleCallbacks中了解到ActivityLifecycleCallbacks用来监控Activity的生命周期,它的实现原理也不难,在框架中新增接口及相关的回调即可。现在来分析一下其中的原理。1、mActivityLifecycleCallbacks集合在Applicat

Activity生命周期监听ActivityLifecycleCallbacks一个应用有很多Activity,一些重复的代码,可以通过抽象出BaseActivity类抽取出来。也可以通过hock的方式启动应用增加额外判断。Activity的生命周期如何统一管理呢?曾经接触过UMeng的埋点SDK,不需要任何配置,即可监听应用的所有页面活动并上报埋点。他们是通过什么来实现的呢?答案就是:Activ

Glide配置:AppGlideModuleGlide用起来非常方便,基本用法见Glide的基本用法,简短的一句链式调用就能给ImageView设置图片。而且自带缓存实现,如果不进行额外的设置Glide的缓存目录、缓存大小都是默认的。应用可以自行进行定制修改,就用到AppGlideModule。1、自定义AppGlideModule配置Glide加载图片的设置、缓存设置、缓存策略,就需要应用自己继
安全调用运算符 ?.Kotlin一大特色就是编译期发现空指针问题,避免了运行时出现NullPointException异常。在Android移动开发中空指针问题及其容易出现,代码仓中到处都是冗杂的判空操作。使用Kotlin可以用安全调用运算符大大简化Java中的繁琐判空操作。1、Kotlin中的安全调用 ?.先举个例子看看Java中的常见判空,一个方法对传入的参数判空,如果不空则执行后面的操作。如
Elvis运算符 ?:Java开发中有很多判断操作,比如:参数不空则执行计算,否则参数为空返回其默认值。1、Elvis运算符 ?:Kotlin提供了方便的运算符来简化Java上面场景中的代码:Elvis运算符,?: 1.1、语法Elvis运算符左右两个参数,第一个参数不为null,则整个表达式就是第一个值。如果第一个值为null,则整个表达式的值就是第二个参数。1.2、简化Java中啰嗦的代码就能

伴生对象:companionKotlin语言中类不能有静态成员,像Java那样在类中用static关键字修饰的变量。1、伴生对象但是Kotlin提供了伴生对象,这个概念提供类似Java中通过类访问其中静态成员的语法。1.1、定义用companion关键字修饰在类中定义的对象。注意:每个类最多只能定义一个伴生对象1.2、名称①可以给伴生对象指定一个名称伴生对象本质上还是生成一个同名的类,并且用“饿汉

对象声明:objectKoltin中的object关键字专门用来在定义一个类的同时创建这个类的一个实例。1、对象声明开发中常常需要用到单例,Java有很多方式创建单例,详见单例的五种方式。Kotlin为单例模式提供了语言层面的支持,借助object对象声明可以方便的创建单例。1.1、创建对象声明使用object对象声明将类声明和类实例结合到一起,对象声明定义的类和普通类一样,可以添加方法、字段属性

数据类:data class在Java中toString()、equals()、hashCode()方法非常熟悉,这是Object基类中的固有方法。重写hashCode()和equals()实现对象之间的比较。toString()方法就更不用说了,如果要打印某个对象,就需要重写toString()再拼凑字符串,很麻烦!1、数据类好在Kotlin总结了很多Java开发中的痛点,不必再重写这些基础方法

SequenceDiagram:一键生成时序图代码阅读往往是跟踪方法的执行流程开始,第一次上项目阅读代码,从一个EditView开始,逐步跟踪方法的执行从View层到Presenter层,再到后台的数据处理,手绘出方法时序图。后来用Visio画时序图,更快速。推荐一个AndroidStudio插件SequenceDiagram,可以一键生成方法时序图。1、介绍SequenceDiagram插件也叫
BitmapFactory详解Android提供了BitmapFactory类来创建Bitmap位图。关于Bitmap详见Bitmap位图介绍。1、BitmapFactoryBitmapFactory顾名思义,Bitmap工厂,专门用于创建Bitmap位图。该类功能比较单一,一眼就能看懂。主要有两点:创建Bitmap的静态方法,以及创建Bitmap的选项Options。参考 Reference >