
Android
文章平均质量分 94
Android学习笔记
Whhang_
愿乘长风 破万里浪
展开
-
Android网络框架OkHttp源码分析(2)——拦截器分析
Android网络框架——OkHttp源码分析本文基于Kotlin语言讲解上一篇文章:Android网络框架OkHttp源码分析(1)——请求流程讲解了OkHttp的请求流程,这篇文章进入第二部分——OkHttp的拦截器分析。OkHttp源码分析之拦截器分析上一章节中发送请求的过程中有一个重要的方法getResponseWithInterceptorChain(),里面会创建许多拦截器,它们会在请求发送到服务器之前对请求做一系列的处理,在服务器返回响应之后,同样这些拦截器对响应做了一系列处理原创 2021-07-23 14:58:09 · 230 阅读 · 1 评论 -
Android网络框架OkHttp源码分析(1)——请求流程
Android网络框架——OkHttp源码分析前言OkHttp是一个处理网络请求的高性能框架,由Square公司贡献。它的出现替代了HttpUrlConnection和Apache HttpClient。OkHttp采用了分层设计的思想,使用多层拦截器,每个拦截器解决一个问题,多层拦截器套在一起,就像设计模式中的装饰者模式一样,可以在保证每层功能高内聚的情况下,解决多样性的问题。OkHttp源码的讲解可以分为两大部分:请求流程拦截器分析接下来讲解第一部分:okhttp3源码分析之请求流原创 2021-07-20 21:52:55 · 458 阅读 · 3 评论 -
Android网络框架——Retrofit源码分析
Retrofit源码解析Retrofit是一个RESTFUL的HTTP网络请求框架(基于OkHttp)。Retrofit的具体流程如下:创建Retrofit实例创建网络请求接口的实例(通过解析注解配置网络请求参数)发送网络请求解析数据切换线程处理结果下来我们一一进行讲解。一、创建Retrofit实例通过内部类Builder(建造者模式)创建出一个Retrofit实例,其具体创建过程配置了一下参数:平台类型对象(Platform—Android)网络请求的url地址(baseU原创 2021-07-18 21:10:44 · 334 阅读 · 0 评论 -
详解View的工作原理
View的工作原理View的流程主要包括测量流程(measure)、布局流程(layout)、绘制流程(draw)。当然除了View的这三大流程外,我们也应该了解一些View的基础概念以及View是怎么一步步绘制出来的。我们先看下Android在UI方面的层级关系。ViewRoot和DecorViewViewRoot是ViewRootImpl类的实现,它是连接WindowManager和DecorView的纽带,View的三大流程均是通过ViewRoot来完成的。当Activity对象被创建完原创 2021-06-03 17:00:28 · 359 阅读 · 2 评论 -
View的事件体系——View的滑动冲突
View的事件体系——View的滑动冲突滑动冲突,当界面内外两层都可以进行滑动时,就会出现滑动冲突,这是一个非常让人困扰的问题,但是当你足够理解View的分发机制时,这些问题就很好解决了。1.常见的滑动冲突场景...原创 2021-05-12 19:58:00 · 353 阅读 · 2 评论 -
View的事件体系——View的事件分发机制
View的事件分发机制事件分发机制是View事件体系中的核心知识点,View的滑动冲突问题的解决方法就是基于View的分发机制,因此理解掌握View的分发机制是十分重要的。1.点击事件的传递规则《View的事件体系——View的基础知识》一文中我们已经介绍了MotionEvent,即手指触碰屏幕后所产生的一系列事件。所谓的事件分发机制实质就是对MotionEvent事件的分发过程,也就是说当一个MotionEvent产生后,系统需要把这个事件传递到一个具体的View处理,而这个过程就称为分发过程。原创 2021-05-11 21:53:57 · 345 阅读 · 2 评论 -
View的事件体系——弹性滑动
View的事件体系——弹性滑动在知道了View的滑动以后,我们还应该知道如何实现View的弹性滑动,因为比较生硬的划过去对用户的体验是极差的,所以我们应该实现渐进式滑动。实现弹性滑动的方式就是将一次大的滑动分成若干次小的滑动,并且在一定时间段内完成即可下面我们将介绍三种弹性滑动的方式:使用Srcoller使用动画使用延时策略1.使用Scroller在《View的事件体系——View的基础知识》一文中我们简单介绍了Scroller及其简单用法。本文我们将探究Scroller如何实现弹性滑原创 2021-05-11 12:06:08 · 235 阅读 · 1 评论 -
View的事件体系——View的滑动
View的滑动在Android应用中,滑动已经成为标配,下拉刷新,左滑选择删除,ViewPager…它们的基础都是滑动。所以,滑动在Android开发中具有很重要的作用我们将介绍三种View的滑动方式:使用scrollTo/scrollBy使用动画改变布局参数1.使用scrollTo/scrollBy我们看一下scrollTo和scrollBy的源码: public void scrollTo(int x, int y) { if (mScrollX != x |原创 2021-05-10 17:23:24 · 301 阅读 · 2 评论 -
View的事件体系——View的基础知识
View基础知识View不属于Android四大组件,但是它的作用甚至超过了四大组件,当Android系统所提供的基础控件不能满足我们的需求时,我们就需要自定义View来满足我们的需求,这就需要我们对View体系有深入的理解。为了更好地了解View的内容,我们将介绍:View的位置参数,MotionEvent,TouchSlop对象,VelocityTracker对象,GestureDetector对象和Scroller对象。1.什么是View众所周知,Android中有许许多多的基础控件,例如:B原创 2021-05-10 16:48:41 · 536 阅读 · 1 评论 -
ThreadLocal的使用与原理
ThreadLocal的使用与原理ThreadLocal的简介ThreadLocal是一个线程内部的数据存储类,通过它可以在指定的线程中存储数据,数据存储以后,只有在指定线程中可以获取到存储的数据,对于其他线程来说则无法获取到数据。ThreadLocal提供了一种与众不同的线程安全方式,它不是在发生线程冲突时想办法解决冲突,而是彻底的避免了冲突的发生。ThreadLocal的基本使用首先创建一个ThreadLocal对象:private ThreadLocal<Integer> mI原创 2021-05-08 18:09:04 · 259 阅读 · 4 评论 -
IntentFilter的匹配规则
IntentFilter的匹配规则启动Activity分为显式调用和隐式调用。隐式调用需要Intent能够匹配目标组件的IntentFilter中所设置的过滤信息。IntentFilter中的过滤信息有action,category,data。一个Activity中可以有多个intent-filter,一个Intent只要能匹配任何一组intent-filter,即可成功启动对应的Activity。action的匹配规则action的匹配规则是Intent中的action必须能够和过滤规则中的acti原创 2021-04-28 12:52:32 · 527 阅读 · 1 评论 -
Android进阶——Activity的生命周期和启动模式
前言本文会讲述一些Activity在正常情况和异常情况下的生命周期分析,Activity启动模式任务栈的图解以及Activity中IntentFilter过滤器的匹配规则,不会讲述生命周期和启动模式的基本概念。如果需要关于Activity的生命周期和启动模式基础知识,可以查看如下博客:Android初体验——活动的状态与周期Android初体验——活动的启动模式Activity正常情况下的生命周期分析1.特定场景下Activity的生命周期分析当开启一个新的Activity时,由于是第一原创 2021-04-28 11:43:14 · 421 阅读 · 0 评论 -
详解Android的消息机制
Android的消息机制本人初学Android,可能会因为文章中的一些错误而对您造成了困扰,万分抱歉,如有错误欢迎您在评论区指正。文章目录Android的消息机制概述一、pandas是什么?二、使用步骤1.引入库2.读入数据总结概述Handler是Android消息机制的上层接口,所以Android的消息机制主要指的就是Handler的运行机制,其主要应用于UI线程(主线程)和子线程之间的交互。众所周知,一般情况下,出于安全的考虑,所有与UI控件的操作都要放在主线程,而一些耗时的I/O操作应原创 2021-04-23 22:32:36 · 1221 阅读 · 3 评论 -
Android 全局大喇叭——详解广播机制
Android 全局大喇叭——详解广播机制一、广播机制简介1. 标准广播(Normal broadcasts)2. 有序广播(Ordered broadcasts)二、接收系统广播1. 动态注册监听网络变化2. 静态注册实现开机启动提示三、发送自定义广播1. 发送标准广播2. 发送有序广播一、广播机制简介安卓的每个程序都可以对自己感兴趣的广播进行注册,这样该程序就只会接受到自己所关心的广播内容,这些广播可以来自系统,也可以来自其他应用程序。Android提供了一套完整的API来允许应用自由地接受和发送原创 2020-09-13 22:19:40 · 764 阅读 · 0 评论 -
Android碎片的状态与周期
Android——碎片的生命周期前言一、碎片的状态1. 运行状态2. 暂停状态3. 停止状态4. 销毁状态二、碎片的活动周期前言在这之前我们学习了活动的状态与生命周期,其实碎片也有它自己的生命周期,并且它和活动的生命周期非常相似,下面我们一起来许学习它的生命周期。一、碎片的状态活动有四个不同的状态:运行状态、暂停状态、停止状态、销毁状态。类似地,碎片也有这些状态,只不过它们的状态会有一些细小的区别。1. 运行状态当一个碎片可见时,并且与他关联的活动正在处于运行状态时,该碎片也处于运行状态。原创 2020-09-11 21:01:51 · 457 阅读 · 1 评论 -
Android UI篇——碎片
Android UI——碎片fragment碎片是一种嵌入在活动中的UI片段,它能使程序更加合理和充分地利用大屏的空间,因而在平板上地应用更加广泛。碎片的简单用法:新建一个项目unit4,分别建立左侧碎片和右侧碎片。左侧碎片中只放置一个按钮,编写left_fragment.xml:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/re原创 2020-09-07 20:10:04 · 278 阅读 · 0 评论 -
Andorid UI篇——RecyclerView
Andorid UI篇——RecyclerView上一篇文章简单的介绍了ListView,如果没有一些技巧来提升它的运行效率,它的性能就会非常差,并且它不能实现横向的滚动。为此,Android提供了一个更强大的滚动控件——RecyclerView。RecyclerView的基本用法...原创 2020-09-06 14:36:47 · 200 阅读 · 0 评论 -
Android UI篇——ListView
Android UI篇——ListViewListView是一个用来纵向显示条目的视图,这些条目内容来自于与该ListView相关联的ListAdapter.ListView的简单用法先新建一个项目吧!创建了主活动MainActivity后,我们修改在activity_main.xml中的代码:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com原创 2020-09-05 11:54:09 · 306 阅读 · 0 评论 -
Android初体验UI篇——四种基本布局
Android初体验UI篇——四种基本布局四种基本布局1. 线性布局(LinearLayout)相对布局(RelativeLayout)合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入四种基本布局一个丰富的界面由许许多多的控件组成,为了控原创 2020-08-14 20:04:42 · 269 阅读 · 0 评论 -
Android初体验——活动的启动模式
Android初体验——活动的启动模式使用方法简述四种活动启动模式前提1. standard2. singleTop3. singleTask4. singleInstance使用方法AndroidManifest.xml中通过给< activity >标签指定android:lauchMode属性来选择启动模式简述四种活动启动模式在实际的项目开发中,我们会根据不同的需求为每个活动指定特定的启动模式。启动模式一共分为四种,分别是standard,singleTop,singleTask,原创 2020-08-10 11:21:05 · 304 阅读 · 0 评论 -
Android初体验——活动的状态与周期
初始Android——活动的生命周期①返回栈②活动状态(四种状态)1. 运行状态2. 暂停状态3. 停止状态4. 销毁状态③活动的生命周期(七个周期)1.onCreat()2.onStart()3.onResume()4.onPause()5.onStop()6.onDestroy()7.onRestart()①返回栈Android是用任务(Task)来管理活动的,每个任务就是一个栈里所有活动的集合,这个栈我们一般成其为返回栈(Back Stack)。默认情况下,每当我们启动新的活动,它就会入栈也就是处原创 2020-08-09 22:11:21 · 354 阅读 · 0 评论