注册
环信即时通讯云

环信即时通讯云

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

环信开发文档

环信FAQ

环信FAQ

集成常见问题及答案
RTE开发者社区

RTE开发者社区

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

技术讨论区

技术交流、答疑
资源下载

资源下载

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

iOS Library

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

Android Library

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

zuyu 发表了文章 • 1081 次浏览 • 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 发表了文章 • 1186 次浏览 • 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

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

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

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

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

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

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

一盆绿萝 发表了文章 • 961 次浏览 • 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

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

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

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

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

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

iOS Cateogry的深入理解 iOS开发

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

一盆绿萝 发表了文章 • 1039 次浏览 • 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

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

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

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

一盆绿萝 发表了文章 • 1096 次浏览 • 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 发表了文章 • 1037 次浏览 • 2021-04-14 15:04 • 来自相关话题

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

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

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

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

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

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

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

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

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

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

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

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

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

Android Handler消息传递机制 Android

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

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

Android三方库glide的使用 Android

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

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

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

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

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

即学即用Android Jetpack - Navigation Navigation jetpack

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

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

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

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

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

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

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

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

Android日记之线程池 Android

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

前言 在编程中经常会使用线程来异步处理任务,但是每个线程的创建和销毁都需要一定的开销。如果每次执行一个任务都需要一个新进程去执行,则这些线程的创建和销毁将消耗大量的资源;并且线程都是“各自为政”的,很难对其进行控制,更何况有一堆的线程在执行。这时候就需要线程池... ...查看全部
1
评论

揭开 LiveData 的通知机制的神秘面纱 Android

可口可乐 发表了文章 • 1142 次浏览 • 2021-04-09 14:27 • 来自相关话题

LiveData 和 ViewModel 一起是 Google 官方的 MVVM 架构的一个组成部分。巧了,昨天分析了一个问题是 ViewModel 的生命周期导致的。今天又遇到了一个问题是 LiveData 通知导致的。而 ViewModel 的生命周期和 ... ...查看全部
1
评论

揭开 ViewModel 的生命周期控制的神秘面纱 Android

可口可乐 发表了文章 • 1327 次浏览 • 2021-04-09 14:23 • 来自相关话题

1、从一个 Bug 说起想必有过一定开发经验的同学对 ViewModel 都不会陌生,它是 Google 推出的 MVVM 架构模式的一部分。这里它的基础使用我们就不介绍了,毕竟这种类型的文章也遍地都是。今天我们着重来探讨一下它的生命周期。起因是这样的,昨天在... ...查看全部
1
评论

一文说透 Android 应用架构 MVC、MVP、MVVM 和 组件化 Android

可口可乐 发表了文章 • 1447 次浏览 • 2021-04-09 14:17 • 来自相关话题

MVC、MVP 和 MVVM 是常见的三种架构设计模式,当前 MVP 和 MVVM 的使用相对比较广泛,当然 MVC 也并没有过时之说。而所谓的组件化就是指将应用根据业务需求划分成各个模块来进行开发,每个模块又可以编译成独立的APP进行开发。理论上讲,组件化和... ...查看全部
1
评论

今日头条屏幕适配方案终极版正式发布! Android

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

前言 我在前面两篇文章中详细介绍了 今日头条适配方案 和 SmallestWidth 限定符适配方案 的原理,并验证了它们的可行性,以及总结了它们各自的优缺点,可以说这两个方案都是目前比较优秀、比较主流的 Android 屏幕适配方案,而且它们都已经拥有了一定... ...查看全部
1
评论

骚年你的屏幕适配方式该升级了!-SmallestWidth 限定符适配方案 Android

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

前言 ok,根据上一篇文章 骚年你的屏幕适配方式该升级了!-今日头条适配方案 的承诺,本文是这个系列的第二篇文章,这篇文章会详细讲解 smallestWidth 限定符屏幕适配方案 了解我的朋友一定知道,MVPArms 一直使用的是 鸿神 的 AndroidA... ...查看全部
1
评论

骚年你的屏幕适配方式该升级了!-今日头条适配方案 Android

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

前言 这个月在 Android 技术圈中 屏幕适配 这个词曝光率挺高的,为什么这么说呢?因为这个月陆续有多个大佬发布了屏幕适配相关的文章,公布了自己认可的屏幕适配方案 上上个星期 Blankj 老师发表了一篇力挺今日头条屏幕适配方案的 文章,提出了很多优化的方... ...查看全部
1
评论

Android 优雅的为RecyclerView添加HeaderView和FooterView Android

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

1、概述RecyclerView通过其高度的可定制性深受大家的青睐,也有非常多的使用者开始对它进行封装或者改造,从而满足越来越多的需求。如果你对RecyclerView不陌生的话,你一定遇到过这样的情况,我想给RecyclerView加个headerView或... ...查看全部
1
评论

小谈 Kotlin 的空处理 Android

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

近来关于 Kotlin 的文章着实不少,Google 官方的支持让越来越多的开发者开始关注 Kotlin。不久前加入的项目用的是 Kotlin 与 Java 混合开发的模式,纸上得来终觉浅,终于可以实践一把新语言。本文就来小谈一下 Kotlin 中的空处理。 ... ...查看全部
1
评论

Activity启动流程 Android

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

Activity启动流程很多文章都已经说过了,这里说一下自己的理解。Activity启动流程分两种,一种是启动正在运行的app的Activity,即启动子Activity。如无特殊声明默认和启动该activity的activity处于同一进程。如果有声明在一个... ...查看全部
1
评论

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

泡杯花茶 发表了文章 • 1167 次浏览 • 2021-04-07 14:32 • 来自相关话题

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

iOS开发 - 编译&链接 iOS开发

泡杯花茶 发表了文章 • 1116 次浏览 • 2021-04-07 14:22 • 来自相关话题

对于平常的应用程序开发,我们很少需要关注编译和链接过程。我们平常Xcode开发就是集成的的开发环境(IDE),这样的IDE一般都将编译和链接的过程一步完成,通常将这种编译和链接合并在一起的过程称为构建,即使使用命令行来编译一个源代码文件,简单的一句gcc he... ...查看全部
1
评论

iOS开发 Fastlane 自动打包技术 iOS开发

泡杯花茶 发表了文章 • 1616 次浏览 • 2021-04-07 14:03 • 来自相关话题

Fastlane是一套使用Ruby写的自动化工具集,旨在简化Android和iOS的部署过程,自动化你的工作流。它可以简化一些乏味、单调、重复的工作,像截图、代码签名以及发布AppGithub官网文档我认为我们在选择一些三方开源库或是工具的前提是:可以满足我们... ...查看全部