环信即时通讯云

环信即时通讯云

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

环信开发文档

环信客服云

环信客服云

无需下载,注册即用
环信机器人

环信机器人

智能,高效
技术讨论区

技术讨论区

技术交流、答疑
资源下载

资源下载

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

iOS Library

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

Android Library

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

请教IOS IM SDK3.7.4版 发送消息的方法封装在哪里? 环信_iOS

iOS开发yangjian 回复了问题 • 2 人关注 • 59 次浏览 • 2021-05-07 15:43 • 来自相关话题

1
回复

漫游记录怎么获取,这么写有报错

Android开发转角45°、嫣然一笑 回复了问题 • 1 人关注 • 34 次浏览 • 2021-05-11 11:34 • 来自相关话题

0
评论

TransformationLayout Android

Android Library王二蛋和他的张大花 发表了文章 • 43 次浏览 • 2021-05-06 17:49 • 来自相关话题

这是一个用于Activity或者Fragment 以及View切换的过渡动画库,效果非常炫,它使用Material Design的运动系统过渡模式来创建变形动画。该库提供了用于绑定目标视图,设置淡入淡出和路径运动方向以及许多其他自定义选项的属性。8.1 如何使... ...查看全部
0
评论

Android界面左右滑动切换 Android

技术精选王二蛋和他的张大花 发表了文章 • 26 次浏览 • 2021-05-07 10:33 • 来自相关话题

Android 界面左右滑动切换 1.界面布局 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://... ...查看全部
0
评论

乐观锁VS悲观锁 Android

技术精选王二蛋和他的张大花 发表了文章 • 27 次浏览 • 2021-05-07 10:12 • 来自相关话题

乐观锁 VS 悲观锁 悲观锁:总是假设最坏的情况,每次取数据时都认为其他线程会修改,所以都会加锁(读锁、写锁、行锁等),当其他线程想要访问数据时,都需要阻塞挂起。 乐观锁:总是认为不会产生并发问题,每次去取数据的时候总认为不会有其他线程对数据进行修改,因此... ...查看全部
1
评论

面试官:说说什么是Java内存模型(JMM)? Android

技术精选王二蛋和他的张大花 发表了文章 • 34 次浏览 • 2021-05-07 10:10 • 来自相关话题

1. 为什么要有内存模型? 1.1. 硬件内存架构 1.2. 缓存一致性问题 1.3. 处理器优化和指令重排序 2. 并发编程的问题 3. Java 内存模型 3.1. Java 运行时内存区域与硬件内存的关... ...查看全部
0
评论

TIOBE5月编程语言榜单:Python超越Java重回第二,Rust崛起 Android

技术精选王二蛋和他的张大花 发表了文章 • 24 次浏览 • 2021-05-07 10:06 • 来自相关话题

作者 | 苏宓 出品 | CSDN(ID:CSDNnews) TIOBE 官方最新发布了 5 月的编程语言榜单,不妨一起来看一下本月榜单中又有哪些最新的变化呢? Python 重回第二 和 4 月相比,本月榜单的 TOP 10 ... ...查看全部
0
评论

Android应用架构之MVVM模式 Android

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

前言 早期的Android应用开发中,Activity/Fragment承担了过多的职责,它们不仅负责了应用界面的显示,而且负责了业务逻辑的处理。这样一来,Activity/Fragment很容易就变得臃肿、复杂,造成应用难以测试、维护和扩展。随着Andro... ...查看全部
0
评论

RateBottomSheet Android

Android Library王二蛋和他的张大花 发表了文章 • 36 次浏览 • 2021-05-06 17:48 • 来自相关话题

有时候,为了推广我们的应用,我们需要让用户跳转到应用商店为我们的APP打分,传统的对话框用户体验很不好,而本库则是用BottomSheet来进行提示,它位于底部缩略区域,用户体验很好。7.1 如何使用呢?在build.gradle 中添加如下依赖:d... ...查看全部
0
评论

Android仿微信红包动画平移动画 Android

技术精选王二蛋和他的张大花 发表了文章 • 39 次浏览 • 2021-05-07 10:00 • 来自相关话题

Android 仿微信红包动画 平移动画先看效果图:简单思路:先找好素材,一张红包封面和 “开”这个图片,先用ps将红包图片P成两部分,两个椭圆的样子。“开”要有不同角度的,因为要由帧动画完成。开完之后背景设个随机数。红包封面可以用ps软件p出来,用椭圆选框工... ...查看全部
0
评论

CurveGraphView Android

Android Library王二蛋和他的张大花 发表了文章 • 44 次浏览 • 2021-05-06 17:50 • 来自相关话题

CurveGraphView 是一个带有炫酷动画统计图表库,除了性能出色并具有许多样式选项之外,该库还支持单个平面内的多个线图。多个折线图对于比较不同股票,共同基金,加密货币等的价格非常有用。10.1 如何使用?1、在build.gradle&nbs... ...查看全部
0
评论

Donut Android

Android Library王二蛋和他的张大花 发表了文章 • 35 次浏览 • 2021-05-06 17:49 • 来自相关话题

这个一个可以展示多个数据集的圆弧形控件,具有精细的颗粒控制、间隙功能、动画选项以及按比例缩放其值的功能。可以用于项目中的一些数据统计。9.1 如何使用?在build.gradle 中添加如下依赖:dependencies { implemen... ...查看全部
0
评论

7大程序设计原则 程序设计

技术精选王二蛋和他的张大花 发表了文章 • 33 次浏览 • 2021-05-07 10:35 • 来自相关话题

编程的工作既是技术活,也是体力活,而编写优秀的软件,更是一件比较难的事情。 初级程序员只希望代码不出错,顶级程序员却把写代码当成艺术,当年雷军以过人的能力成为求伯君的左膀右臂,其早年的代码被说成“像诗一样优美”。 很多大牛,在着手写代码时并不是直接上手... ...查看全部
0
评论

iOS -开发SDK的技巧 iOS开发

iOS开发编程扫地僧 发表了文章 • 36 次浏览 • 2021-05-07 10:36 • 来自相关话题

本文目标:掌握封装及开发SDK的全部技巧内容提要:不同场景下如何封装及开发SDK.a静态库创建直接创建Framework库在已有工程中创建创建Framework工程进行封装创建Bundle资源库文件含界面SDK如何进行依赖开发使用脚本创建Framework库,... ...查看全部
0
评论

iOS 类簇(class clusters) iOS开发

iOS开发编程扫地僧 发表了文章 • 21 次浏览 • 2021-05-07 10:36 • 来自相关话题

类簇(class clusters)类簇是Foundation framework框架下广泛使用的一种设计模式。它管理了一组隐藏在公共抽象父类下的具体私有子类。没有使用类簇(Simple Concept but Complex Interface)为了说明类簇... ...查看全部
0
评论

开源一个自用的Android IM库,基于Netty+TCP+Protobuf实现(1) IM Android

技术精选柳天明 发表了文章 • 32 次浏览 • 2021-05-07 15:46 • 来自相关话题

写在前面 一直想写一篇关于im即时通讯分享的文章,无奈工作太忙,很难抽出时间。今天终于从公司离职了,打算好好休息几天再重新找工作,趁时间空闲,决定静下心来写一篇文章,毕竟从前辈那里学到了很多东西。工作了五年半,这三四年来一直在做社交相关的项目,有 直播、 即时... ...查看全部
0
评论

一个小型合作的流水线——Android Handler handler Android

技术精选柳天明 发表了文章 • 82 次浏览 • 2021-05-07 15:44 • 来自相关话题

当我们遇到多线程的问题,考虑到线程间消息传递的时候,首先想到的肯定是 Handler。虽然写这篇文章的初衷并不是想探究 Handler 的机制,但我们还是先从这个被说烂了的话题开始。 Handler 的工作原理 首先,在了解 Handler 之前,我们需要了解... ...查看全部
0
评论

Jetpack Compose 初体验(二) jetpack Android

技术精选柳天明 发表了文章 • 35 次浏览 • 2021-05-07 15:42 • 来自相关话题

Jetpack Compose 初体验(一)二、主题 基本布局已经差不多啦,那么我们再来搞一些共性的东西,就像我们黄种人都有一样的肤色——散在土地里的黄,有种顽强,非常东方…… 以前的 View 系统其实也有关于 theme 的定义,那些被定义的 style,... ...查看全部
0
评论

Jetpack Compose 初体验(一) jetpack Android

技术精选柳天明 发表了文章 • 38 次浏览 • 2021-05-07 15:41 • 来自相关话题

你是否受够了 Android 中 UI 编写的体验——在 xml 文件中编写复杂的层级结构和繁多的属性,动态化的视图逻辑又被分裂到 Activity 中?哦,这该死的友好度和割裂感! 这两年,Flutter 大行其道,不论是网上的讨论度还是实际的落地项目,风头... ...查看全部
0
评论

iOS 列表界面如何优雅实现模块化与动态化 iOS开发

iOS开发九漏鱼 发表了文章 • 53 次浏览 • 2021-05-07 11:48 • 来自相关话题

前言去年做了一个小组件,前些时间考虑到项目中可能会大规模实施,完善简化后新开了一个 repo: YBHandyList 。有些朋友抛出了 nimbus、IGListKit 等业界应用很广的库,前些时间网易工程师也推出了 M80TableViewComponen... ...查看全部
0
评论

iOS 应用内打开三方地图app直接导航 iOS开发

iOS开发九漏鱼 发表了文章 • 52 次浏览 • 2021-05-07 11:32 • 来自相关话题

当然因为有需求喽。疯狂试探- (BOOL)canOpenURL:(NSURL *)url NS_AVAILABLE_IOS(3_0);常用地图应用的url Scheme://百度地图 baidumap //高德地图 iosamap //谷歌地图 comgo... ...查看全部
0
评论

Swift之构建非常优雅的便利API—Swift中的计算属性 iOS开发

iOS开发九漏鱼 发表了文章 • 35 次浏览 • 2021-05-07 11:27 • 来自相关话题

使Swift成为如此强大且通用的语言的主要原因在于,当我们选择在为特定问题形成解决方案时选择使用哪种语言功能时,我们通常可以使用多种选项。然而,这种多样性也可能引起混淆和争论,特别是当我们正在考虑的功能的关键用例之间没有明确的界限时。本周,我们来看看一个这样的... ...查看全部
0
评论

HashMap原理底层剖析 Java

技术精选王二蛋和他的张大花 发表了文章 • 41 次浏览 • 2021-05-07 10:41 • 来自相关话题

注意以下文章可能有描述和理解上的错误,如果出现错误请到评论区指出,我会第一时间修改问题。也希望文章能解决你的疑惑。 HashMap结构图 HashMap底层数据结构:Entry数组+链表+红黑树(JDK1.8版本) Entry+链表(JDK1.7版本)... ...查看全部
0
评论

自学编程的人,90%以上都会掉进这些坑,避开这些误区能提高N倍学习效率 程序设计

技术精选王二蛋和他的张大花 发表了文章 • 54 次浏览 • 2021-05-07 10:39 • 来自相关话题

前言 几乎每一个程序员都会走上那么一段自学的道路,尤其是在校生或进入工作岗位之后,技术的提升基本都靠自学,有的虽然是网上报班学习,但更多时候还是自己在学习,师傅引进门,修行靠个人。 有的人自学很快,几乎一个多月就能掌握一门技术,而有的人苦苦坚持,最后还是半... ...查看全部
0
评论

Tomcat源码学习第4篇-Servlet请求分析 tomcat Java

技术精选王二蛋和他的张大花 发表了文章 • 30 次浏览 • 2021-05-07 10:37 • 来自相关话题

前段时间家里有事忙,停更了好长一段时间,这里跟等待更新的小伙伴们说一声抱歉,没能提前说明一下,让小伙伴们等了这么久,真的不好意思! 前面说完了Tomcat的初始化和启动步骤,那么接下来就要进入重头戏了!在本篇文章中,我会跟前面一样,通过图文的方式来带着小... ...查看全部
0
评论

AnimatedBottomBar Android

Android Library王二蛋和他的张大花 发表了文章 • 35 次浏览 • 2021-05-06 17:47 • 来自相关话题

这是一个带动画的底部导航栏库。它使你可以以编程方式以及通过XML添加和删除选项卡。此外,我们可以轻松地从BottomBar拦截选项卡。限制访问应用程序导航中的高级区域时,“拦截”标签非常有用。流畅的动画提供了许多自定义选项,从动画插值器到设置波纹效果。6.1 ... ...查看全部
0
评论

Android ColorX Android

Android Library王二蛋和他的张大花 发表了文章 • 37 次浏览 • 2021-05-06 17:47 • 来自相关话题

Android ColorX 以Kotlin 扩展函数的形式提供了一些重要的获取颜色的方法。通过提供不同颜色格式(RGB,HSV,CYMK等)的转换功能,它使开发变得更加轻松。该库的USP具有以下功能:颜色的不同阴影和色调。较深和较浅的阴影。颜色的补... ...查看全部
0
评论

RecyclerView 动画原理 | pre-layout,post-layout 与 scrap 缓存的关系 Android RecyclerView

技术精选柳天明 发表了文章 • 39 次浏览 • 2021-05-06 15:46 • 来自相关话题

RecyclerView 缓存之一的 scrap 结构中缓存的是什么?为什么需要 scrap 缓存?pre-layout 及 post-layout 过程中 scrap 缓存内容会如何变化?这一篇继续通过 走查源码 + 断点调试的方式解答这些疑问。引子 这一篇... ...查看全部
0
评论

RecyclerView缓存机制 | scrap view 的生命周期 Android RecyclerView

技术精选柳天明 发表了文章 • 33 次浏览 • 2021-05-06 15:45 • 来自相关话题

RecyclerView 内存性能优越,这得益于它独特的缓存机制。第一篇中遗留的一个问题还没有解决:复用表项时优先级最高的scrap view是用来干嘛的?这篇文章试着通过阅读源码来解答这个问题。scrap view对应的存储结构是final ArrayLis... ...查看全部
0
评论

RecyclerView 缓存机制 | 回收到哪去? Android RecyclerView

技术精选柳天明 发表了文章 • 34 次浏览 • 2021-05-06 15:45 • 来自相关话题

RecyclerView 内存性能优越,这得益于它独特的缓存机制,上两篇已经分析了 RecyclerView 缓存机制会回收哪些表项,及如何从缓存中获取表项。本篇在此基础上继续走读源码,分析“回收的表项是以怎样的形式存放”。回收入口 上一篇以列表滑动事件为起点... ...查看全部
0
评论

RecyclerView 缓存机制 | 回收些什么? RecyclerView Android

技术精选柳天明 发表了文章 • 37 次浏览 • 2021-05-06 15:44 • 来自相关话题

RecyclerView 内存性能优越,这得益于它独特的缓存机制,上一篇分析了“如何从缓存中复用表项?”,这一篇继续以走读源码的方式探究一下“哪些表项会被回收?”回收场景 在众多回收场景中最显而易见的就是“滚动列表时移出屏幕的表项被回收”。滚动是由Motion... ...查看全部
0
评论

RecyclerView 缓存机制 | 如何复用表项?(2) RecyclerView Android

技术精选柳天明 发表了文章 • 33 次浏览 • 2021-05-06 15:39 • 来自相关话题

RecyclerView 缓存机制 | 如何复用表项?(1)第四次尝试 ViewHolder tryGetViewHolderForPositionByDeadline(int position, boolean dryRun,... ...查看全部
0
评论

RecyclerView 缓存机制 | 如何复用表项?(1) RecyclerView Android

技术精选柳天明 发表了文章 • 42 次浏览 • 2021-05-06 15:38 • 来自相关话题

RecyclerView 内存性能优越,这得益于它独特的缓存机制,这一篇以走读源码的方式探究 RecyclerView 的缓存机制。引子 如果列表中每个移出屏幕的表项都直接销毁,移入时重新创建,很不经济。所以RecyclerView引入了缓存机制。 回收是为... ...查看全部
0
评论

源码篇:ThreadLocal的奇思妙想(万字图文)(二) Android

技术精选王二蛋和他的张大花 发表了文章 • 39 次浏览 • 2021-05-06 15:38 • 来自相关话题

源码篇:ThreadLocal的奇思妙想(万字图文)(一)取index值上面代码中,用取得的hash值,与ThreadLocalMap实例中数组长度减一的与操作,计算出了index值这个很重要的,因为大于长度的高位hash值是不需要的此处会将传入的Thread... ...查看全部
0
评论

源码篇:ThreadLocal的奇思妙想(万字图文)(一) Android

技术精选王二蛋和他的张大花 发表了文章 • 44 次浏览 • 2021-05-06 15:35 • 来自相关话题

前言 ThreadLocal的文章在网上也有不少,但是看了一些后,理解起来总感觉有绕,而且看了ThreadLocal的源码,无论是线程隔离、类环形数组、弱引用结构等等,实在是太有意思了!我必须也要让大家全面感受下其中所蕴含的那些奇思妙想! 所以这里我想写一篇... ...查看全部
0
评论

View嵌套太深会卡?来用JetpackCompose,随便套——IntrinsicMeasurement Android

技术精选王二蛋和他的张大花 发表了文章 • 33 次浏览 • 2021-05-06 15:28 • 来自相关话题

视频先行 如果你方便看视频,直接去 哔哩哔哩 或者 YouTube 看视频就好,下面的文章就不用看了。如果你不方便看视频,下面是视频内容的脚本整理稿。 开场 做 Android 开发的都知道一个规矩:布局文件的界面层级要尽量地少,越少越好,因为层级的增加... ...查看全部
0
评论

快速上手Flutter空安全 Android

技术精选王二蛋和他的张大花 发表了文章 • 30 次浏览 • 2021-05-06 15:26 • 来自相关话题

学习最忌盲目,无计划,零碎的知识点无法串成系统。学到哪,忘到哪,面试想不起来。这里我整理了Flutter面试中最常问以及Flutter framework中最核心的几块知识,欢迎关注,共同进步。 欢迎搜索公众号:进击的Flutter或者runflutter 里... ...查看全部
0
评论

RecyclerView 面试题 | 哪些情况下表项会被回收到缓存池?(1) Android RecyclerView

技术精选柳天明 发表了文章 • 41 次浏览 • 2021-05-06 15:48 • 来自相关话题

缓存是 RecyclerView 时间性能优越的重要原因。缓存池是所有缓存中速度最慢的,其中的ViewHodler是脏的,得重新执行onBindViewHolder()。这一篇从源码出发,探究哪些情况下“表项会被回收到缓存池”。 缓存池结构 在分析不同的回收场... ...查看全部
0
评论

RecyclerView 面试题 | 哪些情况下表项会被回收到缓存池?(2) Android RecyclerView

技术精选柳天明 发表了文章 • 39 次浏览 • 2021-05-06 15:49 • 来自相关话题

RecyclerView 面试题 | 哪些情况下表项会被回收到缓存池?(1)4. mCachedViews 中缓存的表项被删除 表项移出屏幕后,立刻被回收到mCachedViews结构中。若恰巧该表项又被删除了,则表项对应的 ViewHolder 从mCach... ...查看全部
0
评论

RecyclerView 动画原理 | 如何存储并应用动画属性值?(1) Android RecyclerView

技术精选柳天明 发表了文章 • 41 次浏览 • 2021-05-06 15:51 • 来自相关话题

RecyclerView 表项动画的属性值是怎么获取的,又存储在哪里?这一篇继续通过 走查源码 的方式解答这个疑问。 通过上两篇的分析得知,为了做动画 RecyclerView 会布局两次:预布局+后布局,依次将动画前与动画后的表项填充到列表。表项被填充后,就... ...查看全部
0
评论

EasyReveal Android

Android Library王二蛋和他的张大花 发表了文章 • 39 次浏览 • 2021-05-06 17:46 • 来自相关话题

从名字就知道,这是一个提供reveal动画效果的库,它的厉害之处在于可以提供不同尺寸、不同形状的reveal动画,并且还可以在定义它在屏幕任意位置开始和结束动画。4.1 如何使用?在build.gradle 中添加如下依赖:dependencies ... ...查看全部
0
评论

AestheticDialogs Android

Android Library王二蛋和他的张大花 发表了文章 • 41 次浏览 • 2021-05-06 17:46 • 来自相关话题

这是一个美观而时尚的AlterDialog库,目前可支持六种不同的对话框,如:Flash DialogConnectify DialogToaster DialogEmotion DialogDrake DialogEmoji Dialog并且啊,还提供了暗黑... ...查看全部
0
评论

Flourish Android

Android Library王二蛋和他的张大花 发表了文章 • 33 次浏览 • 2021-05-06 17:45 • 来自相关话题

Flourish提供了一个炫酷的方式来显示或者隐藏一个布局,实现方式也很简单,就是对View或者布局进行了包装,通过构建者模式来提供api给上层调用。就像使用dialog一样,调用show和dissmiss方法来显示和隐藏。此外,通过这些类,我们还可以自定义动... ...查看全部
0
评论

LiquidSwipe Android

Android Library王二蛋和他的张大花 发表了文章 • 31 次浏览 • 2021-05-06 17:44 • 来自相关话题

这是一个很棒的ViewPager库,它在浏览ViewPager的不同页面时,显示波浪的滑动动画,效果非常炫酷。该库的USP是触摸交互的。这意味着在视图中显示类似液体的显示过渡时,应考虑触摸事件。1.1如何使用呢?导入以下Gradle依赖项:implementa... ...查看全部
0
评论

总是听到有人说AndroidX,到底什么是AndroidX? Android

技术精选渡边菜狗 发表了文章 • 34 次浏览 • 2021-05-06 17:38 • 来自相关话题

本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭霖 即可关注,每个工作日都有文章更新。 Android技术迭代更新很快,各种新出的技术和名词也是层出不穷。不知从什么时候开始,总是会时不时听到AndroidX这个名词,这难道又是什么新出... ...查看全部
0
评论

Android kotlin+协程+Room数据库的简单使用 Android

技术精选渡边菜狗 发表了文章 • 36 次浏览 • 2021-05-06 17:35 • 来自相关话题

Room Room是Google为了简化旧版的SQLite操作专门提供的 1.拥有了SQLite的所有操作功能 2.使用简单(类似于Retrofit),通过注解的方式实现相关功能。编译时自动生成实现类impl 3.LiveData,LifeCycle,Pag... ...查看全部
0
评论

Android开发基础之控件RadioButton、RadioGroup Android

技术精选王二蛋和他的张大花 发表了文章 • 43 次浏览 • 2021-05-06 16:24 • 来自相关话题

目录 一、基础属性 RadioButton RadioGroup 二、自定义样式 三、监听事件       &nb... ...查看全部
0
评论

[干货]手把手教你写一个安卓app Android

技术精选王二蛋和他的张大花 发表了文章 • 43 次浏览 • 2021-05-06 16:20 • 来自相关话题

摘要:最近有很多小伙伴在后台留言:Android Studio。我想大家是想写一个手机app,前面已经分享了在QT上如何写一个安卓蓝牙app,虽然qt可以做app,但是比起Android Studio还是差很多。这里介绍一种快速入门的方法来制作一款app,就算... ...查看全部
0
评论

Android开发杂记--打包release(发行版)App,并将其体积压缩至最小 Android

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

#Android开发杂记--打包 release(发行版)App,并将其体积压缩至最小 引言 生成签名文件 配置build.gradle文件 执行 Release 打包脚本 引言 &... ...查看全部
0
评论

RecyclerView 动画原理 | 如何存储并应用动画属性值?(2) Android RecyclerView

技术精选柳天明 发表了文章 • 40 次浏览 • 2021-05-06 15:52 • 来自相关话题

RecyclerView 动画原理 | 如何存储并应用动画属性值?(1)存预布局动画属性值 InfoRecord中除了postInfo还有一个preInfo,分别表示后布局和预布局表项的动画信息。想必还有一个addToPreLayout()与addToPost... ...查看全部