目录1.OKHttp简单使用2.OkHttp分发器源码解析2.1.同步请求方式2.2.异步的方式进行请求2.3.分发器线程池3.OkHttp的拦截器3.1.RetryAndFollowUpInterceptor 重试和重定向拦截器3.2.桥接拦截器BridgeInterceptor3.3.缓存拦截器CacheInterceptor3.4.连接拦截器Conne ......
280
0
0
2023-06-21
目录介绍项目结构前端代码activity_main.xmlitem_spin_guns.xml后端代码GunBean.javaGenericAdapter.javaMainActivity.java介绍Spinner是一种点一下后供用户可以上下选择用的组件。我们直接来看一个例子说明这个组件是做什么用的。我们放大点看我们这次的课程目标就是实现这样的一种点一下然 ......
231
0
0
2023-06-20
目录前言什么是 DSL?您使用任何 DSL 吗?为什么我们使用 DSL?我们如何编写自己的 DSL?中缀调用现在,让我们讨论 Android 中 DSL 的用例和示例。前言在这篇文章中,我们将学习如何在您的 Android 项目中编写 Kotlin DSL。这个文章会很长,所以花点时间,让我们一起来写你的 DSL。我们将讨论以下主题,什么是简单英语中的 DS ......
308
0
0
2023-06-20
目录前言NotificationListenerService方法集NotificationListenerService接收流程通知消息发送流程NotificationListenerService注册总结前言在上一篇通知服务NotificationListenerService使用方法 中,我们已经介绍了如何使用NotificationListenerS ......
263
0
0
2023-06-19
目录前言Android Window体系1.Window和Activity以及WindowManager什么时候建立的关系?2.Window什么时候和View进行关联?3.Window有哪些属性?类型?层级关系?z-order?Window标志?Window窗口类型(Type)应用程序窗口子窗口系统窗口Window窗口层级关系(Z-Order)Window窗 ......
322
0
0
2023-06-18
目录方案了解ItemDecoration利用ItemDecoration来绘制悬浮标题栏代码方案1.设置一个悬浮的视图挂在recycleView顶部,随着item的移动位置,悬浮标题自动跟随移动或者是保持原地不动。2.使用recyclerView的ItemDecoration,给指定的item设置不同的itemDecoration,并且跟随item的移动而移 ......
221
0
0
2023-06-17
目录介绍课程目标项目结构设计UI端的设计可复用的Adapter的代码设计可复用的Adapter-GenericAdapter业务(ViewBean)Bean-IconBean主交互端-MainActivity介绍今天给大家讲一下如何构建一个可复用的自定义BaseAdapter,我们每次涉及到ListView GridView等其他的Adapter控件,都需要 ......
205
0
0
2023-06-17
目录Looper是什么简单使用从源码了解loop原理loop分析myLooper()next()handler.dispatchMessagehandler分析消息入队同步屏障总结Looper是什么用于为线程运行消息循环的类。默认情况下,线程没有与之关联的消息循环。要创建一个,在要运行循环的线程中调用 prepare(),然后调用loop()让它处理消息,直 ......
225
0
0
2023-06-17
目录前言从一个报错说起rememberSaveable 源码分析恢复 key 的数据注册 ValueProvider注销 registryDisposableSavableStateRegistry 源码分析saveableStateRegistry 与 SavedStateRegistryDisposableSaveableStateRegistry 与 ......
293
0
0
2023-06-17
目录介绍设计项目结构UI端代码后端代码运行效果介绍在上一篇“SimpleAdapter“章节中,我们看到了把:ListView和Listview内部详细页面进行分离的Adapter的设计手法。可是,这个SimpleAdapter的构造函数不够录活、苦涩难懂。很难满足我们实际大多生产场景的开发。因此,今天我们就要来看一个更人性化的“自定义BaseAdapter ......
254
0
0
2023-06-17
目录一、数据绑定流程二、建立观察者模式绑定关系在前面DataBinding原理----布局的加载这篇文章中,我们说明了DataBinding中布局的加载过程,这里继续下一步,数据是如何进行绑定的,这里只介绍单向数据绑定,即数据的变化会反映到控件上;后面再介绍双向数据绑定。在分析源码之前,在心里要有一个概念就是这里的数据绑定是基于观察者模式来实现的,所以在阅读 ......
251
0
0
2023-06-17
目录一、布局加载二、view映射上一章说明了DataBinding生存的类之间关系,现在这里来看看布局是如何加载的以及view是如何映射的。一、布局加载这里把之前的代码重新贴下方便说明,代码如下:class MainActivity : AppCompatActivity() { private val viewModel: SimpleViewM ......
222
0
0
2023-06-17
目录一、在相应的板块中开启DataBinding二、DataBing的简单使用三、生成的xml布局四、生存的代码一、在相应的板块中开启DataBinding  dataBinding {    enabled true  }二、DataBing的简单使用这里写一个简单的布局,如下 ......
237
0
0
2023-06-17
目录前言setContentView()流程WindowManager.addView流程前言又是一年一度的1024程序员节了,今天不写点什么总感觉对不起这个节日。想来想去,就写点关于View的绘制。本文不会重点讲View绘制三大回调函数:onMeasure、onLayout、onDraw,而是站在Android framework的角度去分析一下View的 ......
253
0
0
2023-06-17
目录前言AIDLAIDL示例客户端运行日志AIDL通信过程分析bindService流程分析前言众所周知,Android进程间通信采用的是Binder机制。Binder是Android系统 独有的进程间通信方式,它是采用mmp函数将进程的用户空间与内核空间的一块内存区域进行映射,免去了一次数据拷贝,相比Linux上的传统IPC具有高效、安全的优点。本文结合A ......
234
0
0
2023-06-17