- 博客(57)
- 收藏
- 关注
原创 【Android】EventBus的使用及源码分析
1、获取订阅者的所有订阅方法,遍历这些方法。然后拿到每个方法对应的所有订阅者集合,将订阅者从集合中移除。从它的内部结构来看有一种似曾相识的感觉,没错它的内部结构相当于。从它的内部结构来看有一种似曾相识的感觉,没错它的内部结构相当于。准备订阅者:声明并注释您的订阅方法,可以选择指定线程模式。的简化版,但是原理还是一样的,也是使用了线程池。的简化版,但是原理还是一样的,也是使用了线程池。是一个接口,所以实际上是调用了它的实现类对象的。实际上是一个接口,所以这里返回的是它的实现类。方法,在方法的内部创建了一个。
2024-12-01 19:12:17 881
原创 【Android】ARouter的使用及源码解析
ARouter 是阿里巴巴开源的一款 Android 路由框架,专为组件化架构设计,用于模块之间的页面跳转和服务通信。ARouter 是路由系统,给无依赖的双方提供通信和路由的能力“终于懂了” 系列:组件化框架 ARouter 完全解析(一) 原理详解-腾讯云开发者社区-腾讯云 (tencent.com)ARouter源码解析(一)-腾讯云开发者社区-腾讯云 (tencent.com)
2024-11-23 22:13:46 1010
原创 【Android】Android滑动冲突解决方案
整体框架还是和上面内部拦截法给出的一样,在ACTION_MOVE处理水平增量和竖直增量,水平滑动就交给父容器处理,父容器调用onTouchEvent处理。如果此时想要横向滑动,父容器拦截该事件,在onTouchEvent方法处理;方法源码,ViewPager主要关心横向界面的切换,如果当前意图是横向切换,就响应用户操作并拦截。左右滑动让父容器的View拦截点击事件来处理,上下滑动让内部的View拦截点击事件来处理。主要在这里,根据x,y滑动距离判断当前的意图,如果是要横向滑动就调用。
2024-11-14 16:20:47 911
原创 【Android】组件化开发入门
模块化(Modularization)模块化是指将应用程序分解为多个功能模块,每个模块可以独立开发、测试和复用。这些模块通常会有各自的职责,比如“用户模块”、“支付模块”、“商品模块”等。模块化的目标是提升代码的可管理性和复用性。
2024-11-08 22:57:59 1133
原创 【Android】View的事件分发机制
`dispatchTouchEvent(MotionEvent event)` 方法是事件分发的入口。 - 每当事件产生时(如点击、滑动),系统会将该事件封装成一个 `MotionEvent` 对象,并通过 `dispatchTouchEvent` 方法传递给根视图(通常是 `Activity` 中的 `DecorView`)。 - 在 `dispatchTouchEvent` 中,事件会根据层级逐层传递给子视图,直到找到可以处理事件的视图为止。 - 若 `dispatchTouchEv
2024-11-03 21:32:20 1149
原创 【Android】view的基础知识
的平移滑动效果,是一种较为灵活且常用的方式。这种方法不仅可以控制滑动的距离和方向,还能够调整滑动的速度、加速度等效果,让动画更流畅和自然。是 Android 中的 UI 组件的基类,代表了用户界面上的一个可视元素。LayoutParams用于保存一个view的布局参数,我们可以通过改变view的布局参数来改变位置。可以直接对 View 的属性进行动画操作,是另一种实现弹性滑动效果的方式。是 Android 提供的一个辅助类,用于实现 View 的平滑滑动。的初始位置的偏移量,单位是像素。
2024-10-27 22:50:32 953
原创 【Android】Jetpack入门知识总结(LifeCycle,ViewModel,LiveData,DataBinding等)
这里实现一个自定义的,并实现能够响应生命周期事件的功能// 添加注解与生命周期事件关联start();stop();Toast.makeText(context, "点", Toast.LENGTH_SHORT).show();
2024-10-20 18:25:50 1225
原创 【Android】Glide基本用法及With方法源码解析
Glide是一个快速高效的Android图片加载库。专门用来帮助开发者从网络、文件系统或应用资源中加载图片,并显示在 `ImageView` 或其他 UI 组件上。它具备高效的缓存机制和解码能力,能够处理图片、GIF、视频缩略图等多种媒体文件。
2024-09-27 09:43:47 1613
原创 【Android】BottomSheet基本用法总结(BottomSheetDialog,BottomSheetDialogFragment)
是一种位于屏幕底部的面板,用于显示附加内容或选项。提供了从屏幕底部向上滑动显示内容的交互方式。这种设计模式在 Material Design 中被广泛推荐,因为它可以提供一种优雅且不干扰主屏幕内容的方式来展示额外信息或操作。具体实现主要包含:BottomSheetBeahvior 、BottomSheetDialog、BottomSheetDialogFragment。
2024-09-22 23:08:03 1791
原创 【Android】Handler用法及原理解析
Handler是用于在不同线程之间进行消息传递的机制。它与Looper和一起工作,帮助在不同线程间传递和处理消息,特别是在主线程与子线程之间进行通信。
2024-09-13 18:33:10 1713
原创 【Android】ViewPager基本用法总结
ViewPager是 Android 中一个用于在同一屏幕上滑动不同页面(通常是左右滑动)的组件。它通常用于实现多页面滑动效果,比如应用的引导页、图片轮播、以及支持标签导航的界面。ViewPager与结合使用。是一个适配器,它负责为ViewPager提供页面内容。每个页面通常是一个Fragment,也可以是一个普通的View。
2024-09-06 16:52:55 2298
原创 【Android】UI拓展之滑动菜单、悬浮按钮、CoordinatorLayout布局等
是一个特殊的布局容器,用于在屏幕的边缘创建一个可以滑动的菜单。是 Android 中一个常用的控件,用于在界面上显示卡片样式的布局。它提供了一个带阴影和圆角效果的容器,使得内容更加美观。内的一个视图,提供了侧滑菜单的实现。它用于显示应用的导航菜单,通常包含一个菜单列表或多个菜单项。属性用于设置控件的阴影效果,即控件与其父布局的相对高度。实现复杂的交互效果,比如滚动联动、浮动操作按钮的显示/隐藏等。是 Android 提供的一个高级布局容器,它扩展了。的值,可以改变控件的阴影强度,从而增强其视觉层次感。
2024-08-31 00:17:44 1281
原创 【Android】安卓四大组件之Service用法
使用Handler更新UI,基本特点后台执行Service主要用于在后台执行一些长时间运行的操作,比如音乐播放、文件下载等,而不会影响用户界面的交互。
2024-08-08 15:08:47 1206
原创 【Android】JSON的具体使用方法之数据格式,数据解析,GSON的使用
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人类阅读和编写,同时也易于机器解析和生成。在你的Activity或Fragment中使用Gson进行JSON序列化和反序列化。键是字符串,值可以是字符串、数字、对象、数组、布尔值或null。:一个无序的键值对集合,键必须是字符串,值可以是任何合法的JSON数据。注解允许你指定JSON中的字段名称与Java对象中的字段名称之间的映射。:一个有序的值列表,值可以是任何合法的JSON数据。包围,包含一个有序的值列表。
2024-08-07 10:20:00 1164
原创 【Android】网络技术知识总结之WebView,HttpURLConnection,OKHttp,XML的pull解析方式
网络技术知识总结—WebView,HttpURLConnection,OKHttp,XML的pull解析方式
2024-08-07 10:15:19 1206
原创 【Android】安卓四大组件之ContentProvider知识总结
统一资源标识符(URI)是一种用于标识资源的字符串。它可以是一个网址、文件路径、或其他形式的资源定位符。在Android中,URI通常用于访问内容提供者(Content Provider)提供的数据。获取设备上存储的所有图片获取设备上所有联系人信息获取ID为45的单个联系人信息在Java中,可以通过Uri.parse方法将字符串URI转换为Uri对象。
2024-08-03 14:30:40 1356
原创 【设计模式】设计模式之观察者模式
观察者模式(Observer Pattern)是一种设计模式它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象使得当一个对象的状态发生改变时,其依赖的其他对象会被自动通知和更新。// 抽象观察者// 抽象主题角色类// 添加订阅者(添加观察者对象)//删除订阅者//通知订阅者更新消息。
2024-08-02 09:44:49 1019
原创 【Android】安卓多媒体之通知、摄像头、相册、播放音乐、视频用法总结
用户可以通过设置选择是否允许敏感的通知内容显示在安全的锁屏上。富文本通知指的是可以展示复杂内容的通知,例如包含多种样式的文本、图片、链接等。来进行震动、灯光、音效的设置,且通知必须添加通知渠道,同样需进行版本判断,否则通知不会被发送。的通知可以展示一系列的消息,仿佛是一个对话线程,让用户能够在通知栏中查看消息交流的上下文。的机制,可以在将来某个时刻代替应用程序的进程执行特定的操作,即使应用程序不在运行中。用于显示一组消息的列表,适合显示多个简短的消息。来设置通知的震动、灯光、音效的设置,新内容加了。
2024-08-01 12:33:02 598
原创 【Android】数据存储之SQLite数据库知识总结
SQL本质上是一种编程语言,它的学名叫作"结构化查询语言”(全称为structured QueryLanguage,简称SQL)。不过SQL语言并非通用的编程语言,它专用于数据库的访问和处理,更像是一种操作命令,所以常说SQL语句而不说SQL代码。
2024-07-31 19:29:37 1280
原创 【Android】Fragment与Activity间通信知识总结
就是在MainActivity进行动态注册时,把data通过构造方法传参的形式传给fragment,所以要对fragment类进行修改。我这里有两个碎片在MainActivity上放着,并且他们各自都有一个按钮和文本,按钮用来发送数据,文本用来接收显示数据。这样,当数据发生变化时,我们可以通过这个变量来调用对应的实现,以通知数据变化。是一个用于携带数据的键值对集合,它可以保存各种类型的数据,本身是一个实现了。接口的类,因此它可以被序列化以便在组件之间传递。方法则是在视图创建完成后调用的,使用。
2024-07-27 17:08:10 1545
原创 【Android】Fragment碎片的动态与静态创建,生命周期及常用操作总结
在Fragment之前,我们通常把一个Activity作为一个页面。但随着页面元素的增加以及场景的复杂,单个页面已经不能满足需要,在屏幕上通常要同时展示多个区域、多个页面内容,这些内容的切换通常是整体的。因此,为了让屏幕展示更多内容,以及对这些内容统一管理,引入了Fragment。Fragment,就是将一块内容区域封装在一起,统一管理,构成一个Fragment。Fragment是依附在Activity上而存在的。一个Activity中可以有多个Fragment,各个。
2024-07-26 12:22:44 1242
原创 【Android】数据存储方案——文件存储、SharedPreferences、SQLite数据库用法总结
今天来介绍一下Android的数据持久化技术,提供了三种存储方式,还可以存储到SD卡中。适用于存储较大或复杂的数据文件,比如图像、视频、文档等。也适合存储简单的文本文件。适用于存储简单的键值对数据,比如用户设置和应用配置。数据量通常较小,数据结构简单。适用于存储结构化数据,支持复杂的查询和数据管理。
2024-07-25 21:18:27 1321
原创 【Android】Activity生命周期与五种启动模式
Android会不惜一切代价让它存活下来,甚至会根据需要杀死栈中更底部的 Activity 所依附的应用,以保障该Activity 所需的资源。当另一个 Activity 变为活动状态时,这个 Activity 就会被暂停,当变为不可见时,它就会被停止。当一个 Activity 变得完全不可见时,它就会处于停止状态,而所有 Activity 在进入停止状态之前都要经历暂停状态以进行转换。在此环境中,可能会出现多个应用同时可见,但只有用户最后一次与之交互Activity 才会被认为处于活动状态。
2024-07-25 10:44:13 1265
原创 【Android】安卓四大组件之广播知识总结
Override// 获取布局中的按钮并设置点击事件监听器@Override// 创建一个 Intent,指定广播的动作// 设置广播只发送给当前应用的接收器// 发送广播});@OverrideToast.makeText(context, "在 MyBroadcastReceiver 中接收", Toast.LENGTH_LONG).show();@Override。
2024-07-24 22:20:44 1081
原创 【Android】ListView和RecyclerView知识总结
SimpleAdapter是Android中用于将数据模型转换成ListView或其他视图组件的适配器。它简化了数据绑定过程,通过映射数据集中的字段到布局文件中的视图。是 Android 中的一种视图组件,用于显示可滚动的垂直列表。它通常用于显示一组相似的数据,比如联系人列表、消息列表等。是 Android 提供的一个更高级和灵活的列表视图控件,相对于。它引入了一些新的概念,如。模式,更高效的滚动和动画支持,以及更灵活的布局管理器(和数据源之间的桥梁,将数据源转换为可以显示在。中的字符串显示在列表视图中。
2024-07-23 16:28:28 1702
原创 【Android】ConstrainLayout约束布局基本操作
借助,您可以创建具有扁平视图层次结构(没有嵌套视图组)的大型复杂布局。它与类似,所有视图都是根据同级视图与父布局之间的关系进行布局的,但它比更灵活,并且更易于与 Android Studio 的布局编辑器一起使用。布局编辑器的可视化工具中直接提供了的所有功能,因为布局 API 和布局编辑器是专为彼此构建的。您可以完全使用通过拖动(而非修改 XML)来构建布局。
2024-07-19 20:35:01 1776
原创 【Android】使用视图绑定ViewBinding来代替findViewById
ViewBinding 是 Android 开发中的一个功能,它简化了访问视图的过程,避免了使用的繁琐步骤。它通过生成与布局文件相对应的绑定类,使得我们能够以类型安全的方式访问布局中的视图。
2024-07-19 09:50:01 2977
原创 【Android】Intent基础用法及作用
Intent(意图)是一种重要的消息传递对象,用于在不同组件(如活动(Activity)、服务(Service)、广播接收器(BroadcastReceiver)等)之间进行通信和交互。用于在应用内部启动组件(如Activity、Service、BroadcastReceiver)。在 Android 中,如果我们需要从一个活动返回数据给上一个活动,可以使用。方法启动目标活动,并在目标活动中设置结果数据。),第二个参数是要启动的目标。的第一个参数是当前的。
2024-07-18 19:16:05 982
原创 【Android】视图与常用控件总结
属性名描述android:id为视图分配唯一的ID,用于在代码中引用设置视图的宽度设置视图的高度设置视图的外边距设置视图的内边距设置视图在其父视图中的对齐方式(仅适用于ViewGroup的子视图)设置视图内容的对齐方式设置视图的背景颜色或图片设置视图的可见性(visibleinvisiblegone设置视图在线性布局中的权重(仅适用于设置视图是否与父视图的顶部对齐(仅适用于设置视图是否与父视图的底部对齐(仅适用于设置视图是否在父视图中居中(仅适用于设置视图在另一视图的下面(仅适用于。
2024-07-17 15:04:58 1157
原创 【JAVA】Properties与xml知识点总结
properties是一个双列集合集合,拥有Map集合所有的特点(一般不会当集合使用)。
2024-06-16 14:07:52 1046 2
原创 【JAVA】网络编程,反射及注解知识总结
使用@interface可以自定义注解。自定义注解自动继承了接口。一、定义@interfacepublic @interface 注解名 {public 属性类型 属性名() default 默认值;二、注解的参数类型基本类型(如 int、long、double 等)Class类型String类型enum类型三、自定义注解示例// 定义一个int类型的参数,默认值为0// 定义一个String类型的参数,默认值为空字符串。
2024-06-07 16:49:54 1190
原创 【JAVA】方法引用,异常,File,IO流知识总结
定义异常类写继承关系空参构造带参构造所有异常都必须是 Throwable 的子类。如果希望写一个检查性异常类,则需要继承 Exception 类。如果你想写一个运行时异常类,那么需要继承 RuntimeException 类。// 自定义异常类的代码意义:自定义异常的意义在于提高程序的可读性和可维护性,使得控制台输出的错误信息更加具有意义和可理解性。
2024-05-26 16:50:54 1129
原创 【设计模式】六大设计原则
类,模块,函数等应该是可以拓展的,但是不可修改对扩展开放,对修改关闭。想要达到这样的效果,我们需要使用抽象实现(接口和抽象类)。因为抽象灵活性好,适应性广,只要抽象的合理,可以基本保持软件架构的稳定。而软件中易变的细节可以从抽象派生来的实现类来进行扩展,当软件需要发生变化时,只需要根据需求重新派生一个实现类来扩展就可以了。举个例子,阅读下面代码。
2024-05-24 23:08:04 700
原创 【JAVA】抽象类,接口与内部类,常用API知识总结
public abstract 返回值类型 方法名(参数列表);public abstract class 类名{}接口用关键字interface来定义[可见度] interface 接口名称 [extends 其他的接口名] {// 声明变量// 抽象方法/* 文件名 : Animal.java */接口不能实例化接口和类之间是实现关系,通过implements关键字表示public class 类名 implements 接口名{}接口的子类(实现类)
2024-05-12 16:18:21 892
原创 【算法】回溯算法—组合问题
回溯算法实际上是 一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。
2024-05-10 20:33:33 1110
原创 【JAVA】继承,多态,包知识总结
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。Java中提供一个关键字extends,用这个关键字,我们可以让一个类与另一个类建立起继承关系Student称为子类(派生类),Person称为父类(基类或超类)
2024-05-05 18:19:25 1292
原创 【JAVA】方法,类和对象,封装,构造方法,字符串,集合,static关键字知识总结
public class 类名 {1.成员变量2.成员方法3.构造器4.代码块5.内部类如果没有定义构造方法,系统会给出一个默认的无参数构造方法如果定义了构造方法,系统不再提供默认的无参数构造方法。
2024-04-28 17:44:44 1029 1
原创 【JAVA】java入门之关键字,数据类型,String类与数组
是一种引用数据类型使用“”进行赋值String声明的字符串可以包含0到多个字符。
2024-04-21 17:47:33 879 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人