注册
环信即时通讯云

环信即时通讯云

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

环信开发文档

环信FAQ

环信FAQ

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

RTE开发者社区

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

技术讨论区

技术交流、答疑
资源下载

资源下载

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

iOS Library

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

Android Library

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

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

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

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

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

技术精选zuyu 发表了文章 • 941 次浏览 • 2021-04-19 17:48 • 来自相关话题

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

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

技术精选zuyu 发表了文章 • 909 次浏览 • 2021-04-19 17:43 • 来自相关话题

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

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

技术精选zuyu 发表了文章 • 1090 次浏览 • 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 发表了文章 • 1195 次浏览 • 2021-04-19 17:34 • 来自相关话题

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

Android 快速跳转库 fragment Activity

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

事情起源activity 或者 fragment 每次跳转传值的时候,你是不是都很厌烦那种,参数传递。 那么如果数据极其多的情况下,你的代码将苦不堪言,即使在很好的设计下,也会很蛋疼。那么今天我给大家推荐一个工具 和咱原生跳转进行比较比较:1.跳转方式比较ba... ...查看全部
0
评论

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

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

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

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

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

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

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

技术精选一盆绿萝 发表了文章 • 971 次浏览 • 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

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

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

快速搭建Android项目-QMUI_Android 角标 UI

Android Library柳天明 发表了文章 • 1301 次浏览 • 2021-04-19 14:27 • 来自相关话题

QMUI Android 的设计目的是用于辅助快速搭建一个具备基本设计还原效果的 Android 项目,同时利用自身提供的丰富控件及兼容处理,让开发者能专注于业务需求而无需耗费精力在基础代码的设计上。不管是新项目的创建,或是已有项目的维护,均可使开发效率和项目... ...查看全部
0
评论

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

技术精选zuyu 发表了文章 • 1040 次浏览 • 2021-04-19 14:07 • 来自相关话题

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

iOS Cateogry的深入理解 iOS开发

技术精选zuyu 发表了文章 • 985 次浏览 • 2021-04-19 14:04 • 来自相关话题

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

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

技术精选zuyu 发表了文章 • 933 次浏览 • 2021-04-19 13:54 • 来自相关话题

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

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

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

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

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

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

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

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

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

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

高度封装的 WebView-AgentWeb webview Android

Android Library柳天明 发表了文章 • 1814 次浏览 • 2021-04-16 10:27 • 来自相关话题

AgentWeb 介绍AgentWeb 是一个基于的 Android WebView ,极度容易使用以及功能强大的库,提供了 Android WebView 一系列的问题解决方案 ,并且轻量和极度灵活,体验请下载的agentweb.apk,或者你也可以到 Go... ...查看全部
1
评论

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

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

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

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

技术精选一盆绿萝 发表了文章 • 1048 次浏览 • 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

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

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

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

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

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

通用的广告栏控件-ConvenientBanner 轮播 Android

Android Library柳天明 发表了文章 • 1224 次浏览 • 2021-04-15 10:26 • 来自相关话题

demo:ConvenientBanner通用的广告栏控件,让你轻松实现广告头效果。支持无限循环,可以设置自动翻页和时间(而且非常智能,手指触碰则暂停翻页,离开自动开始翻页。你也可以设置在界面onPause的时候不进行自动翻页,onResume之后继续自动翻页... ...查看全部
0
评论

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Android图片轮播-banner 轮播

Android Library柳天明 发表了文章 • 1275 次浏览 • 2021-04-14 10:34 • 来自相关话题

使用步骤以下提供的是最简单的步骤,需要复杂的样式自己可以自定义Step 1.依赖bannerGradledependencies{ compile 'com.youth.banner:banner:2.1.0' }Step 2.添加权限到你的 An... ...查看全部
1
评论

Android Handler消息传递机制 Android

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

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

Android三方库glide的使用 Android

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

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

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

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

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

即学即用Android Jetpack - Navigation Navigation jetpack

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

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

多条件筛选菜单-DropDownMenu 下拉菜单 UI

Android Library柳天明 发表了文章 • 1341 次浏览 • 2021-04-13 10:52 • 来自相关话题

示例图:简介一个实用的多条件筛选菜单,在很多App上都能看到这个效果,如美团,爱奇艺电影票等我的博客 自己造轮子--android常用多条件帅选菜单实现思路(类似美团,爱奇艺电影票下拉菜单)特色支持多级菜单你可以完全自定义你的菜单样式,我这里只是封装... ...查看全部
1
评论

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

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

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

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

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

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

Android日记之线程池 Android

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

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

安卓选择器类库-AndroidPicker UI

Android Library柳天明 发表了文章 • 2707 次浏览 • 2021-04-12 10:39 • 来自相关话题

示例图:AndroidPicker安卓选择器类库,包括日期及时间选择器(可设置范围)、单项选择器(可用于性别、职业、学历、星座等)、城市地址选择器(分省级、地级及县级)、数字选择器(可用于年龄、身高、体重、温度等)、双项选择器、颜色选择器、文件及目录选择器等…... ...查看全部
1
评论

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

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

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

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

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

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

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

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

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

时间选择器和选项选择器-Android-PickerView Android

Android Library柳天明 发表了文章 • 3511 次浏览 • 2021-04-09 10:18 • 来自相关话题

Android-PickerView介绍这是一款仿iOS的PickerView控件,有时间选择器和选项选择器,新版本的详细特性如下:——TimePickerView 时间选择器,支持年月日时分,年月日,年月,时分等格式。——OptionsPickerView ... ...查看全部
1
评论

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

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

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

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

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

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

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

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

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

Android屏幕适配方案-AndroidAutoLayout UI Android

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

AndroidAutoLayoutAndroid屏幕适配方案,直接填写设计图上的像素尺寸即可完成适配。引入Android Studio将autolayout引入dependencies { compile project(':autolayout') ... ...查看全部
1
评论

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

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

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

小谈 Kotlin 的空处理 Android

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

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

Activity启动流程 Android

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

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

一个Android TabLayout库,目前有3个TabLayout TabLayout

Android Library柳天明 发表了文章 • 1496 次浏览 • 2021-04-07 14:39 • 来自相关话题

FlycoTabLayout示例图:一个Android TabLayout库,目前有3个TabLayoutSlidingTabLayout:参照PagerSlidingTabStrip进行大量修改.新增部分属性新增支持多种Indicator显示器新增支持未读消... ...查看全部