环信即时通讯云

环信即时通讯云

单聊、群聊、聊天室...
环信开发文档

环信开发文档

元宇宙讨论

元宇宙讨论

元宇宙到底是什么?来畅所欲言
RTE开发者社区

RTE开发者社区

汇聚音视频领域技术干货,分享行业资讯
技术讨论区

技术讨论区

技术交流、答疑
资源下载

资源下载

收集了海量宝藏开发资源
iOS Library

iOS Library

不需要辛辛苦苦的去找轮子, 这里都有
Android Library

Android Library

不需要辛辛苦苦的去找轮子, 这里都有
1
评论

java设计模式:抽象工厂模式 Java 设计模式 Android

王二蛋和他的张大花 发表了文章 • 454 次浏览 • 2021-04-21 10:24 • 来自相关话题

定义是一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。 抽象工厂模式是工厂方法模式的升级版本,工厂方法模式只生产一个等级的产品,而抽象工厂模式可生产多个等级的产品。 使用抽象工厂模式... ...查看全部
0
评论

聊聊 Activity 的启动模式 Android

王二蛋和他的张大花 发表了文章 • 266 次浏览 • 2021-04-21 09:36 • 来自相关话题

Activity 的启动模式本身是一个挺难理解的知识点,大多数开发者对这个概念的了解可能只限于四种 launchMode 属性值,但启动模式其实还需要受 Intent flag 的影响。而且 Activity 启动模式并不只是单纯地用来启动一个 Activit... ...查看全部
0
评论

Okio-很棒的文章 Okio Android

王二蛋和他的张大花 发表了文章 • 268 次浏览 • 2021-04-21 09:31 • 来自相关话题

前言 本文不去阐述 Okio 产生原因,也不去对比 Okio 与 Java 原生 IO 的优劣性,单纯分析 Okio 的实现,对每个关键点分析透彻,并配上精美图解。 本文分析点目录 Okio 类框架图 Source 与 Sink Buffer Segment... ...查看全部
1
评论

java 设计模式:责任链模式与Android事件传递 Java 设计模式 Android

王二蛋和他的张大花 发表了文章 • 494 次浏览 • 2021-04-21 09:16 • 来自相关话题

1、概念是一个请求有多个对象来处理,这些对象是一条链,但具体由哪个对象来处理,根据条件判断来确定,如果不能处理会传递给该链中的下一个对象,直到有对象处理它为止。2、使用场景有多个对象可以处理同一个请求,具体哪个对象处理该请求待运行时刻再确定在不明确指定接收者的... ...查看全部
0
评论

java 设计模式:观察者 Java 设计模式 Android

王二蛋和他的张大花 发表了文章 • 489 次浏览 • 2021-04-21 09:15 • 来自相关话题

1、概念在对象之间定义了一对多的依赖,使得么当一个对象状态发生改变,其相关依赖对象会收到通知并自动更新。2、场景一个抽象模型有两个方面,其中一个方面依赖于另一个方面一个对象的改变将导致一个或多个其他对象也发生改变需要在系统中创建一个触发链3、UML结构图分析抽... ...查看全部
0
评论

java 设计模式:模版方法 Java 设计模式 Android

王二蛋和他的张大花 发表了文章 • 474 次浏览 • 2021-04-21 09:14 • 来自相关话题

模板方法模式  定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。 模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。通俗的说的就是有很多相同的步骤的,在某一些地方可能有一些差别适合于这种模式,如大话设计模式中说到的考试场景中,每个人... ...查看全部
0
评论

java 设计模式:策略模式 Java 设计模式 Android

王二蛋和他的张大花 发表了文章 • 451 次浏览 • 2021-04-21 09:13 • 来自相关话题

概念:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换,策略模式让算法独立于使用它的客户而独立变化。策略模式使这些算法在客户端调用它们的时候能够互不影响地变化。使用场景:一个类定义了多种行为,并且这个行为在这个类的方法中以多个条件语... ...查看全部
1
评论

java 设计模式:工厂方法模式 Java 设计模式 Android

王二蛋和他的张大花 发表了文章 • 477 次浏览 • 2021-04-20 14:28 • 来自相关话题

前言简单工厂模式每增加一个产品就要增加一个具体产品类和一个对应的具体工厂类,这增加了系统的复杂度,违背了“开闭原则”。“工厂方法模式”是对简单工厂模式的进一步抽象化,其好处是可以使系统在不修改原来代码的情况下引进新的产品,即满足开闭原则。优点:用户只需要知道具... ...查看全部
1
评论

java 设计模式:简单工厂 设计模式 Java Android

王二蛋和他的张大花 发表了文章 • 384 次浏览 • 2021-04-20 11:55 • 来自相关话题

工厂模式的定义定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。简单工厂如果要创建的产品不多,只要一个工厂类就可以完成,这种模式叫“简单工厂模式”。简单工厂通常为静态方法,因此... ...查看全部
0
评论

Kotlin Vocabulary | 数据类 kotlin Android

柳天明 发表了文章 • 234 次浏览 • 2021-04-20 10:42 • 来自相关话题

一只小奶狗会有名字、品种以及一堆可爱的特点作为其属性。如果将其建模为一个类,并且只用来保存这些属性数据,那么您应当使用数据类。在使用数据类时,编译器会为您自动生成 toString()、equals() 与 hashCode() 函数,并提供开箱即用的 解构 ... ...查看全部
0
评论

Rxjava 线程切换原理 retrofit Android

柳天明 发表了文章 • 336 次浏览 • 2021-04-20 10:40 • 来自相关话题

前言 rxjava 可以很方便的进行线程切换, 那么rxjava是如何进行线程切换的呢?阅读本文可以了解下rxjava 是如何进行线程切换的及线程切换的影响点。 一个简单的代码: Observable.create(new ObservableOnSubsc... ...查看全部
0
评论

聊聊 Bitmap 的一些知识点 bitmap Android

柳天明 发表了文章 • 340 次浏览 • 2021-04-20 10:36 • 来自相关话题

Bitmap 应该是很多应用中最占据内存空间的一类资源了,Bitmap 也是导致应用 OOM 的常见原因之一。例如,Pixel 手机的相机拍摄的照片最大可达 4048 * 3036 像素(1200 万像素),如果使用的位图配置为 ARGB_8888(Andro... ...查看全部
0
评论

kotlin 扩展函数之Boolean扩展 kotlin

柳天明 发表了文章 • 223 次浏览 • 2021-04-20 10:33 • 来自相关话题

Kotlin 扩展函数Kotlin 能够扩展一个类的新功能而无需继承该类或者使用像装饰者这样的设计模式,这样一来,可以为一个你不能修改的、来自第三方库中的类编写一个新的函数。 这个新增的函数就像那个原始类本来就有的函数一样,可以用普通的方法调用。我们在Andr... ...查看全部
0
评论

Kotlin 单例模式的常用写法 kotlin

柳天明 发表了文章 • 215 次浏览 • 2021-04-20 10:30 • 来自相关话题

饿汉式 object Singleton 复制代码 线程安全的懒汉式 class Singleton private constructor() { companion object { private var instance: S... ...查看全部
0
评论

java 设计模式:组合模式 Java 设计模式 Android

王二蛋和他的张大花 发表了文章 • 491 次浏览 • 2021-04-20 10:17 • 来自相关话题

1、概念将对象以树形结构组织起来,以达成“部分-整体”的层次机构,使得客户端对单个对象和组合对象的使用具有一致性。是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象... ...查看全部
2
评论

java 设计模式:外观设计模式 Java 设计模式 Android

王二蛋和他的张大花 发表了文章 • 392 次浏览 • 2021-04-20 10:15 • 来自相关话题

1、概念外观设计模式的主要目的在于让外部减少与子系统内部多个模块的交互,从而让外部能够更简单的使用子系统。他负责把客户端的请求转发给子系统内部的各个模块进行处理。2、使用场景当你要为一个复杂子系统提供一个简单接口时客户程序与抽象类的实现部分之间存在很大的依赖性... ...查看全部
0
评论

java 设计模式:装饰者模式 Java 设计模式 Android

王二蛋和他的张大花 发表了文章 • 330 次浏览 • 2021-04-20 10:14 • 来自相关话题

简单详解:1、概念动态地给一个对象添加一些额外的职责。就增加功能来说, 装饰模式相比生成子类更为灵活。该模式以对客户端透明的方式扩展对象的功能。2、使用场景在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。和继承类似添加相应的职责。当不能采用生成... ...查看全部
0
评论

java 设计模式:适配器模式 Java 设计模式 Android

王二蛋和他的张大花 发表了文章 • 320 次浏览 • 2021-04-20 10:13 • 来自相关话题

adapter定义:将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。类适配器定义:是把适配的类的api转化成为目标类的api。adapter是为了让adaptee与Target发生关系建立的a... ...查看全部
0
评论

java 设计模式:建造者模式 Java 设计模式 Android

王二蛋和他的张大花 发表了文章 • 327 次浏览 • 2021-04-20 10:12 • 来自相关话题

概念:建造者模式是较为复杂的创建型模式,将组件和组件的组件过程分开,然后一步一步建造一个复杂的对象。所以建造者模式又叫生成器模式。它允许用户在不知道内部构建细节的情况下,非常精细地控制对象构建流程。该模式是为了将构建过程非常复杂的对象进行拆分,让它与它的部件解... ...查看全部
0
评论

从retrofit来学动态代理 设计模式 Android

王二蛋和他的张大花 发表了文章 • 240 次浏览 • 2021-04-19 17:58 • 来自相关话题

个人感觉,retrofit中的动态代理比较典型,我就拿出来解读一下:先来阅读一下retrofit 的源码,看retrofit怎么来实现动态代理ApiService apiService = retrofit.create(ApiService.class); ... ...查看全部
0
评论

你真的会用单例么? 设计模式 Android

王二蛋和他的张大花 发表了文章 • 443 次浏览 • 2021-04-19 17:52 • 来自相关话题

单例是什么?是一种对象创建模式,可以确保项目中一个类只产生一个实例。好处对于频繁使用的对象可以减少创建对象所花费的时间,这对于重量级对象来说,简直是福音。由于new的减少,对系统内存使用频率也会降低,减少GC的压力,并缩短GC停顿时间,这也会减少Android... ...查看全部
0
评论

iOS 实例对象,类对象,元类对象 iOS开发

zuyu 发表了文章 • 214 次浏览 • 2021-04-19 17:48 • 来自相关话题

OC对象的分类OC对象主要分为三类:instance(实例对象),class (类对象),meta-class(元类对象)实例对象:实例对象就是通过类调用alloc来产生的instance,每一次调用的alloc都是产生新的实例对象,内存地址都是不一样的,占据... ...查看全部
0
评论

iOS 对象的关联---isa/superclass指针 iOS开发

zuyu 发表了文章 • 224 次浏览 • 2021-04-19 17:43 • 来自相关话题

类对象和元类对象的存储结构里面都包含了一个isa指针,今天我们来看看它的作用,以及实例对象类对象元类对象之间的关联实例对象的isa指针当实例对象(instance)调用对象方法的时候,实例对象的isa指针指向类对象(class),在类对象中,查找对象方法并调用... ...查看全部
0
评论

iOS KVO底层原理&&KVO的isa指向 iOS开发

zuyu 发表了文章 • 279 次浏览 • 2021-04-19 17:39 • 来自相关话题

一.简单复习一下KVO的使用定义一个类,继承自NSObject,并添加一个name的属性#import <Foundation/Foundation.h> NS_ASSUME_NONNULL_BEGIN @interface TCPerson ... ...查看全部
0
评论

iOS 音视频编解码----H264-I(关键)帧,B/P(参考)帧 iOS开发

zuyu 发表了文章 • 279 次浏览 • 2021-04-19 17:34 • 来自相关话题

回顾一下视频里面到底是什么内容元素1.图像(image)2.音频(Audio)3.元素信息(Meta-data)编码格式1.Video:H2642.Audio:AAC(后面文章讲)3.容器封装:MP4/MOV/FLV/RM/RMVB/AVIH264当我们需要对... ...查看全部
0
评论

requestLayout竟然涉及到这么多知识点 Android

可口可乐 发表了文章 • 295 次浏览 • 2021-04-19 15:11 • 来自相关话题

1. 背景 最近有个粉丝跟我提了一个很有深度的问题。 粉丝:锁屏后,调用View.requestLayout()方法后会不会postSyncBarrier? 乍一看有点超纲了。细细一想,我把这个问题拆分成了两个问题,本文我将紧紧围绕这两个问题,讲解requ... ...查看全部
1
评论

Gradle 爬坑指南 -- 概念初解、Grovvy 语法、常见 API(2) gradle

一盆绿萝 发表了文章 • 272 次浏览 • 2021-04-19 15:05 • 来自相关话题

Groovy 语法 再次强调 Groovy 是基于 java 扩展的动态语言,直接写 java 代码是没问题的。上面的 hello world 就是这么跑起来。Groovy 没啥难的,大家把他当做一个新的语言来学下就行,Groovy 本身比较简单也不用我们学习... ...查看全部
1
评论

Gradle 爬坑指南 -- 概念初解、Grovvy 语法、常见 API(2) gradle

一盆绿萝 发表了文章 • 225 次浏览 • 2021-04-19 15:04 • 来自相关话题

Gradle 安装 上文书 Gradle 运行在 JVM 之上, 因此需要 JDK1.8 或以上 java 环境 1. 下载 Gradle 版本 从 Gradle 官方上下载,地址:Gradle 官网下载地址,选择 .all 的包下载,我下的是 6.6.1,尽... ...查看全部
1
评论

Gradle 爬坑指南 -- 概念初解、Grovvy 语法、常见 API(1) gradle

一盆绿萝 发表了文章 • 244 次浏览 • 2021-04-19 15:02 • 来自相关话题

理解 Gradle、Groovy 对于拦路虎、大 Boss,理论先于实际。手握理论的浮尘,方能遇坑过坑、遇水搭桥 (๑•̀ㅂ•́)و✧ 1. 什么是构建工具 简单的说就是自动化的编译、打包程序 我们来回忆一下,入门 java 那会,大家都写过 Hello Wr... ...查看全部
0
评论

iOS 音视频编解码基本概念 iOS开发

zuyu 发表了文章 • 214 次浏览 • 2021-04-19 14:07 • 来自相关话题

来看看视频里面到底有什么内容元素:图像(Image)⾳频(Audio)元信息(Metadata)编码格式: • Video: H264Audio: AAC视频相关基础概念1.视频文件格式相信大家平时接触的word文件后面带的.doc,图片后缀带有.png/.j... ...查看全部
0
评论

iOS Cateogry的深入理解 iOS开发

zuyu 发表了文章 • 236 次浏览 • 2021-04-19 14:04 • 来自相关话题

首先先看几个面试问题Cateogry里面有load方法么? load方法什么时候调用?load方法有继承么?1. 新建一个项目,并添加TCPerson类,并给TCPerson添加两个分类2.新建一个TCStudent类继承自TCPerson,并且给T... ...查看全部
0
评论

iOS Cateogry的深入理解&&initialize方法调用理解 iOS开发

zuyu 发表了文章 • 228 次浏览 • 2021-04-19 13:54 • 来自相关话题

上一篇文章我们讲到了load方法,今天我们来看看initialize新建项目,新建类   类结构图如下将原来的load方法换成initialize先告诉大家initialize方法调用的时间,以便大家带着答案去理解initialize:在类第一次接收... ...查看全部
1
评论

深度探索 Gradle 自动化构建技术(二、Groovy 筑基篇)(3) gradle

一盆绿萝 发表了文章 • 237 次浏览 • 2021-04-16 14:05 • 来自相关话题

四、文件处理 1、常规文件处理 1)、读文件 eachLine 方法 我们可以使用 eachLine 方法读该文件中的每一行,它唯一的参数是一个 Closure,Closure 的参数是文件每一行的内容。示例代码如下所示: def file = new Fil... ...查看全部
1
评论

深度探索 Gradle 自动化构建技术(二、Groovy 筑基篇)(2) gradle

一盆绿萝 发表了文章 • 230 次浏览 • 2021-04-16 14:05 • 来自相关话题

三、Groovy 基础语法Groovy 的基础语法主要可以分为以下 四个部分:1)、Groovy 核心基础语法。2)、Groovy 闭包。3)、Groovy 数据结构。4)、Groovy 面向对象1、Groovy 核心基础语法Groovy 中的变量变... ...查看全部
1
评论

深度探索 Gradle 自动化构建技术(二、Groovy 筑基篇)(1) gradle

一盆绿萝 发表了文章 • 255 次浏览 • 2021-04-16 11:41 • 来自相关话题

前言 成为一名优秀的Android开发,需要一份完备的 知识体系,在这里,让我们一起成长为自己所想的那样~。 Groovy 作为 Gradle 这一强大构建工具的核心语言,其重要性不言而喻,但是 Groovy 本身是十分复杂的,要想全面地掌握它,我想几十篇万字... ...查看全部
1
评论

"Gradle"系列: 一、Gradle相关概念理解,Groovy基础(4) gradle

一盆绿萝 发表了文章 • 228 次浏览 • 2021-04-15 15:35 • 来自相关话题

五、Groovy数据结构 通过这个模块的学习,我会结合具体的例子来说明如何查阅文档来确定闭包中的参数,在讲 Map 的时候我会讲到 Groovy 常用的数据结构有如下 四种: 1)、数组 2)、List 3)、Map 4)、Range 1、数组 在 Gro... ...查看全部
1
评论

"Gradle"系列: 一、Gradle相关概念理解,Groovy基础(3) gradle

一盆绿萝 发表了文章 • 223 次浏览 • 2021-04-15 15:31 • 来自相关话题

四、Groovy 闭包 在 Groovy 中,闭包非常的重要,因此单独用一个模块来讲 1、闭包定义 引用 Groovy 官方对闭包的定义:A closure in Groovy is an open, anonymous, block of code that... ...查看全部
1
评论

"Gradle"系列: 一、Gradle相关概念理解,Groovy基础(2) gradle

一盆绿萝 发表了文章 • 230 次浏览 • 2021-04-15 15:30 • 来自相关话题

三、Groovy 基础语法 再次强调 Groovy 是基于 java 扩展的动态语言,直接写 java 代码是没问题的,既然如此,Groovy 的优势在哪里呢? 在于 Groovy 提供了更加灵活简单的语法,大量的语法糖以及闭包特性可以让你用更少的代码来实现和... ...查看全部
1
评论

"Gradle"系列: 一、Gradle相关概念理解,Groovy基础(1) gradle

一盆绿萝 发表了文章 • 243 次浏览 • 2021-04-15 15:28 • 来自相关话题

前言 引用 Gradle 官方一段对Gradle的介绍:Gradle is an open-source build automation tool focused on flexibility and performance. Gradle build sc... ...查看全部
0
评论

协程+Retrofit 让你的代码足够优雅 retrofit 协程 Android

维生素C 发表了文章 • 280 次浏览 • 2021-04-14 15:04 • 来自相关话题

目标 简单起见,我们使用 Github 官方的 Api,查询官方返回的仓库列表。 如果你学习过官方 Paging Demo 的源码,会发现这份代码很熟悉,因为这份代码很大一部分来自这个Demo。 一、引入依赖 协程和 Retrofit 的版本:dependen... ...查看全部
0
评论

Jetpack新成员,Paging3从吐槽到真香 jetpack Android

维生素C 发表了文章 • 397 次浏览 • 2021-04-14 15:01 • 来自相关话题

各位小伙伴们大家早上好。 随着Android 11的正式发布,Jetpack家族也引入了许多新的成员。我之前有承诺过,对于新引入的App Startup、Hilt、Paging 3,我会分别写一篇文章进行介绍。 现在,关于App Start和Hilt的文章我都... ...查看全部
0
评论

Android 常见的错误日志及相应的解决方案总结 错误 Android

维生素C 发表了文章 • 665 次浏览 • 2021-04-14 14:51 • 来自相关话题

之前整理过一些关于常见的错误日志,基于生产的bug日志系统,我这边会不间断的更新错误日志及相应的解决方案,抛砖引玉(PS:也许解决的方法有点菜,希望大家能给出更优的解决方案及意见反馈,非常欢迎,相互学习共同进步) android.view.WindowMana... ...查看全部
0
评论

错过了金三银四,还不赶紧准备金九银十?这份Android大厂面试大纲静下心应对,九月就是你的战场! 面试题 Android

维生素C 发表了文章 • 265 次浏览 • 2021-04-14 14:44 • 来自相关话题

感悟这个世界有一个“二八原则”在好多地方都发挥着作用,在Android开发上我认为也一样有用。做为一名Android开发者,你也许只会用到Android开发知识中的20%,有80%其实你学了也不一定会用。而面试官也一样,他也可能只掌握了20%的知识,而且一个面... ...查看全部
0
评论

Material Design实战之可折叠式标题栏 Material Design Android

柳天明 发表了文章 • 338 次浏览 • 2021-04-14 11:40 • 来自相关话题

CollapsingToolbarLayout1.基本介绍CollapsingToolbarLayout是一个作用于Toolbar基础之上的布局,它可以让Toolbar的效果变得更加丰富,不仅仅是展示一个标题栏,还可以实现更加华丽的效果注意:Collapsin... ...查看全部
1
评论

Android Handler消息传递机制 Android

可口可乐 发表了文章 • 295 次浏览 • 2021-04-13 14:37 • 来自相关话题

Android中只允许UI线程(也就是主线程)修改Activity里的UI组件。实际开发中,新启动的线程需要周期性地改变界面组件的属性值就需要借助Handler的消息传递机制。Handler类Handler类的主要作用:在新启动的线程中发送消息在主线程中获取、... ...查看全部
1
评论

Android三方库glide的使用 Android

可口可乐 发表了文章 • 534 次浏览 • 2021-04-13 14:33 • 来自相关话题

glideGlide 是一个图片加载库,跟它同类型的库还有 Picasso、Fresco、Universal-Image-Loader 等。glide库的优点:加载类型多样化:Glide 支持 Gif、WebP 等格式的图片。生命周期的绑定:图片请求与页面生命... ...查看全部
1
评论

Android三方库OKHTTP请求的使用 网络请求 Android

可口可乐 发表了文章 • 343 次浏览 • 2021-04-13 14:29 • 来自相关话题

okhttpOkhttp是网络请求框架。OkHttp主要有Get请求、Post请求等功能。使用前,需要添加依赖,在当前项目的build.gradle下加入以下代码:implementation 'com.squareup.okhttp3:okhttp:3.5.... ...查看全部
1
评论

即学即用Android Jetpack - Navigation Navigation jetpack

可口可乐 发表了文章 • 279 次浏览 • 2021-04-13 14:16 • 来自相关话题

前言 即学即用Android Jetpack系列Blog的目的是通过学习Android Jetpack完成一个简单的Demo,本文是即学即用Android Jetpack系列Blog的第一篇。 记得去年第一次参加谷歌开发者大会的时候,就被Navigation的... ...查看全部
1
评论

Android日记之View的绘制流程(二) Android

维生素C 发表了文章 • 308 次浏览 • 2021-04-12 15:25 • 来自相关话题

Android日记之View的绘制流程(一)Measure过程Measure过程要分情况来看,如果只是原始的View,那么通过measure()方法就完成了测量的过程。如果是一个ViewGroup,除了完成自己的测量过程外,还要遍历去调用子元素的measure... ...查看全部
1
评论

Android日记之View的绘制流程(一) Android

维生素C 发表了文章 • 312 次浏览 • 2021-04-12 15:23 • 来自相关话题

前言 View的绘制流程,其实也就是工作流程,指的就是Measure(测量)、Layout(布局)和Draw(绘制)。其中,measure用来测量View的宽和高,layout用来确定View的位置,draw则用来绘制View,这里解析的Android SDK... ...查看全部