注册
环信即时通讯云

环信即时通讯云

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

环信开发文档

环信FAQ

环信FAQ

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

RTE开发者社区

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

技术讨论区

技术交流、答疑
资源下载

资源下载

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

iOS Library

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

Android Library

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

2022 年 App 上架审核问题集锦,全面踩坑上线不迷路 上架审核

王二蛋和他的张大花 发表了文章 • 681 次浏览 • 2022-09-15 14:57 • 来自相关话题

相信这几年负责过上架应用市场的 App 开发,或多或少都躺过上线审核的坑,经历过的各种问题也是千奇百怪,今天就给大家做个汇总,希望可以帮助大家少走弯路,争取做一个“优雅”的客户端开发。 首先,近年来为了 “净化” App 环境、保护用户隐私和优化用户体验,各部... ...查看全部
0
评论

毕业5年了还不知道热修复? 热修复

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

前言 热修复到现在2022年已经不是一个新名词,但是作为Android开发核心技术栈的一部分,我这里还得来一次冷饭热炒。 随着移动端业务复杂程度的增加,传统的版本更新流程显然无法满足业务和开发者的需求, 热修复技术的推出在很大程度上改善了这一局面。国内大部分成... ...查看全部
0
评论

LinkedList源码解析 LinkedList

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

LinkedList源码解析 目标 理解LinkedList底层数据结构 深入源码掌握LinkedList查询慢,新增快的原因 1.简介 List 接口的链接列表实现。实现所有可选的列表操作,并且允许所有元素(包括 null )。除了实现 List 接口外... ...查看全部
0
评论

最安全的加密算法 Bcrypt,再也不用担心数据泄密了~ 加密算法

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

这是《Spring Security 进阶》专栏的第三篇文章,给大家介绍一下Spring Security 中内置的加密算法BCrypt,号称最安全的加密算法,究竟有着什么魔力能让黑客闻风丧胆 哈希(Hash)与加密(Encrypt) 哈希(Hash)是将目标... ...查看全部
0
评论

Android DIY你的菜单栏 Android

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

前言个人打算开发个视频编辑的APP,然后把一些用上的技术总结一下,这次主要是APP的底部菜单栏用到了一个自定义View去绘制实现的,所以这次主要想讲讲自定义View的一些用到的点和自己如何去DIY一个不一样的自定义布局。实现的效果和思路可以先看看实现的效果两个... ...查看全部
0
评论

Kotlin中 Flow、SharedFlow与StateFlow区别 StateFlow SharedFlow flow kotlin

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

一、简介 了解过协程Flow 的同学知道是典型的冷数据流,而SharedFlow与StateFlow则是热数据流。 冷流:只有当订阅者发起订阅时,事件的发送者才会开始发送事件。 热流:不管订阅者是否存在,只要发送了事件就会被消费,意思是不管接受方是... ...查看全部
0
评论

Kotlin 协程 Select:看我如何多路复用 协程 Select kotlin

王二蛋和他的张大花 发表了文章 • 479 次浏览 • 2022-09-13 11:01 • 来自相关话题

前言协程通信三剑客:Channel、Select、Flow,上篇已经分析了Channel的深水区,本篇将会重点分析Select的使用及原理。通过本篇文章,你将了解到:Select 的引入Select 的使用Invoke函数 的妙用Select 的原理Selec... ...查看全部
0
评论

Kotlin协程:flowOn与线程切换 flowOn kotlin 协程

王二蛋和他的张大花 发表了文章 • 510 次浏览 • 2022-09-13 10:57 • 来自相关话题

    本文分析示例代码如下: launch(Dispatchers.Main) { flow { emit(1) emit(2) }.flowOn(Dispatchers.IO).collect { del... ...查看全部
0
评论

Koltin协程:Flow的触发与消费 协程 Koltin flow

王二蛋和他的张大花 发表了文章 • 441 次浏览 • 2022-09-13 10:55 • 来自相关话题

    本文分析示例代码如下: launch(Dispatchers.Main) { val task = flow { emit(2) emit(3) }.onEach { ... ...查看全部
0
评论

Kotlin Sealed Class 太香了,Java 8 也想用怎么办? kotlin Sealed

王二蛋和他的张大花 发表了文章 • 517 次浏览 • 2022-09-02 10:40 • 来自相关话题

为避免数据在分发过程中被恶意篡改,Kotlin 将 SealedClass 参数设置为 val 即可,Java 17 以下未引入 SealedClass,且若实现 Kotlin val 同等效果,样板代码瞬间飙出许多,等于解决了数据一致性的同时,滋生了更多 “... ...查看全部
0
评论

Compose制作“抖音”、“快手”视频进度条Loading动画效果 Loading compose

王二蛋和他的张大花 发表了文章 • 671 次浏览 • 2022-09-02 10:36 • 来自相关话题

现在互联网产品,感觉谁家的App不整点视频功能,严格意义上都不能说是一个现代互联网App了😂,我们知道最火的是抖音、快手这类短视频App,在刷视频的同时,他们的App交互上面的一些特色能让我们一直沉浸在刷视频中; 比如,我们今天要聊的,短视频翻页流列表,视频加... ...查看全部
0
评论

Kotlin学习快速入门—— 属性委托 属性委托 kotlin

王二蛋和他的张大花 发表了文章 • 519 次浏览 • 2022-09-02 10:34 • 来自相关话题

委托其实是一种设计模式,但Kotlin把此特性编写进了语法中,可以方便开发者快速使用,本篇也来具体讲解下关于Kotlin中属性委托的使用 委托对应的关键字是by 属性委托 先讲下属性委托吧,首先,复习下kotlin中设置set和get方法 默认的set和get... ...查看全部
0
评论

Flutter开发·async await原理解析 await async

王二蛋和他的张大花 发表了文章 • 444 次浏览 • 2022-09-02 10:27 • 来自相关话题

async await 与 Future 在异步调用中有三个关键词,async、await、Future,其中async和await需要一起使用。在Dart中可以通过async和await进行异步操作,async表示开启一个异步操作,也可以返回一个Futu... ...查看全部
0
评论

android 自定义View: 视差动画 Android 视差动画

王二蛋和他的张大花 发表了文章 • 461 次浏览 • 2022-09-01 10:51 • 来自相关话题

废话不多说,先来看今天要完成的效果: 在上一篇:android setContentView()解析中我们介绍了,如何通过Factory2来自己解析View, 那么我们就通过这个机制,来完成今天的效果《视差动画》, 回顾 先来回顾一下如何在Fragment中... ...查看全部
0
评论

Flutter EventBus事件总线的应用 eventbus

王二蛋和他的张大花 发表了文章 • 618 次浏览 • 2022-09-01 10:47 • 来自相关话题

前言 flutter项目中,有许多可以实现跨组件通讯的方案,其中包括InheritedWidget,Notification,EventBus等。本文主要探讨的是EventBus事件总线实现跨组件通讯的方法。 EventBus的简介 EventBus的核心是基... ...查看全部
0
评论

Flutter 状态管理 | 业务逻辑与构建逻辑分离 状态管理 Flutter

王二蛋和他的张大花 发表了文章 • 651 次浏览 • 2022-09-01 10:45 • 来自相关话题

1. 业务逻辑和构建逻辑 对界面呈现来说,最重要的逻辑有两个部分:业务数据的维护逻辑 和 界面布局的构建逻辑 。其中应用运行中相关数据的获取、修改、删除、存储等操作,就是业务逻辑。比如下面是秒表的三个界面,核心 数据 是秒表的时刻。在秒表应用执行功能时,数据的... ...查看全部
0
评论

Flutter 3.3 正式发布,快来看看有什么新功能吧 Flutter

王二蛋和他的张大花 发表了文章 • 712 次浏览 • 2022-09-01 10:43 • 来自相关话题

Flutter 3.3 正式发布啦,本次更新带来了 Flutter Web、桌面、文本性能处理等相关更新,另外,本次还为 go_router 、DevTools 和 VS Code 扩展引入了更多更新。 Framework Global Selection F... ...查看全部
0
评论

【开源 UI 组件】Flutter 图表范围选择器 图表 Flutter

王二蛋和他的张大花 发表了文章 • 627 次浏览 • 2022-08-24 10:58 • 来自相关话题

前言 最近有一个小需求:图表支持局部显示,如下底部的区域选择器支持 左右拖动调节中间区域 拖拽中间区域,可以进行移动 图表数据根据中间区域的占比进行显示部分数据 这样当图表的数据量过大,不宜全部展示时,可选择的局部展示就是个不错的解决方案。由于一般的图... ...查看全部
0
评论

这些flow常见API的使用,你一定需要掌握! flow

王二蛋和他的张大花 发表了文章 • 543 次浏览 • 2022-08-24 10:53 • 来自相关话题

collect通知flow执行 public suspend inline fun <T> Flow<T>.collect(crossinline action: suspend (value: T) -> Unit): Unit... ...查看全部
0
评论

Android通知 Notification的简单使用 notification

王二蛋和他的张大花 发表了文章 • 602 次浏览 • 2022-08-23 10:50 • 来自相关话题

在Android应用的开发中,必然会遇上通知的开发需求,本文主要讲一下Android中的通知 Notification的简单基本使用,主要包含创建通知渠道、初始化通知、显示通知、显示图片通知、通知点击、以及配合WorkManager发送延迟通知。Demo下载创... ...查看全部
0
评论

浅谈Kotlin编程-Kotlin空值处理 空值 kotlin

王二蛋和他的张大花 发表了文章 • 691 次浏览 • 2022-08-23 10:47 • 来自相关话题

前言 许多编程语⾔(包括 Java)中最常⻅的错误之⼀,就是访问空成员会导致空异常(NullPointerException 或简称 NPE)。 开发中,经常会遇到空指针异常,如果对这个问题处理不当,还会引起程序的崩溃(crash),在Kotlin中,为了避免... ...查看全部
0
评论

Compose制作一个“IOS”效果的SwitchButton SwitchButton compose

王二蛋和他的张大花 发表了文章 • 1037 次浏览 • 2022-08-23 10:43 • 来自相关话题

本文一个定制样式的SwitchButton,使用Compose来写是非常容易的,下面先来看看我们对外提供如下方法: @Composeable fun IosSwitchButton( modifier: Modifier, checked: B... ...查看全部
0
评论

Flutter 的 build 系统(一) build

王二蛋和他的张大花 发表了文章 • 1085 次浏览 • 2022-08-22 10:49 • 来自相关话题

前言对于Flutter开发者来说,build_runner 可以说并不是一个陌生的东西,很多package中就要求调用build_runner 来自动生成处理代码,比如说json_serializable;但正如其描述中所述的那样,其是通过 Dart... ...查看全部
0
评论

【Flutter】实现自定义TabBar主题色配置 TabBar Flutter

王二蛋和他的张大花 发表了文章 • 722 次浏览 • 2022-08-22 10:47 • 来自相关话题

需求背景 首页开发需求要求实现每个频道具备不同主题色风格,因此需要实现TabBar每个Tab具备自己主题色。Flutter官方提供TabBar组件只支持设置选中和非选中条件标签颜色并不支持配置不同更多不同配置色,TabBar组件配置项为labelColor和u... ...查看全部
0
评论

Flutter StatefulBuilder实现局部刷新 Flutter StatefulBuilder

王二蛋和他的张大花 发表了文章 • 772 次浏览 • 2022-08-22 10:46 • 来自相关话题

前言 flutter项目中,在页面数据较多的情况下使用全量刷新对性能消耗较大且容易出现短暂白屏的现象,出于性能和用户体验方面的考虑我们经常会使用局部刷新代替全量刷新进行页面更新操作。 GlobalKey、ValueNotifier和StreamBuilder等... ...查看全部
0
评论

翻车了,字节一道 Fragment面试题 fragment

王二蛋和他的张大花 发表了文章 • 485 次浏览 • 2022-08-18 10:52 • 来自相关话题

一道面试题 前段时间面试,面试官先问了一下fragment的生命周期,我一看这简单呀,直接按照下图回答 面试官点点头,然后问,如果Activity里面有一个fragment,那么启动他们时,他们的生命周期加载顺序是什么? 所以今天,我们好好了解了解这个用得... ...查看全部
0
评论

Android登录拦截的场景-面向切面基于AOP实现 AOP Android

王二蛋和他的张大花 发表了文章 • 714 次浏览 • 2022-08-18 10:49 • 来自相关话题

前言 场景如下:用户第一次下载App,点击进入首页列表,点击个人页面,需要校验登录,然后跳转到登录页面,注册/登录完成跳转到个人页面。 非常常见的场景,正常我们开发就只能判断是否已经登录,如果未登录就跳转到登录,然后登录完成之后怎么继续执行?如何封装?有哪些方... ...查看全部
0
评论

Flutter 语法进阶 | 深入理解混入类 mixin mixin Flutter

王二蛋和他的张大花 发表了文章 • 552 次浏览 • 2022-08-18 10:46 • 来自相关话题

混入类引言 混入类是 Dart 中独有的概念,它是 继承 、实现 之外的另一种 is-a 关系的维护方式。它和接口非常像,一个类支持混入多个类,但在本质上和接口还是有很大区别的。在感觉上来说,从耦合性来看,混入类像是 抽象类 和 接口 的中间地带。下面就来认识... ...查看全部
0
评论

Android 官方项目是怎么做模块化的?快来学习下 模块化

王二蛋和他的张大花 发表了文章 • 548 次浏览 • 2022-08-17 10:48 • 来自相关话题

概述模块化是将单一模块代码结构拆分为高内聚内耦合的多模块的一种编码实践。模块化的好处模块化有以下好处:可扩展性:在高耦合的单一代码库中,牵一发而动全身。模块化项目当采用关注点分离原则。这会赋予了贡献者更多的自主权,同时也强制执行架构模式。支持并行工作:模块化有... ...查看全部
0
评论

Kotlin 协程如何与 Java 进行混编? 混编 kotlin

王二蛋和他的张大花 发表了文章 • 978 次浏览 • 2022-08-17 10:44 • 来自相关话题

问题 在 Java 与 Kotlin 混编项目中大概率是会遇到 Kotlin 线程的使用问题。协程的混编相对于其他特性的使用上会相对麻烦而且比较容易踩坑。我们以获取 token 来举例,比如有一个获取 token 的 suspend 函数: // 常规的 su... ...查看全部
0
评论

最近很火的反调试,你知道它是什么吗? 反调试

王二蛋和他的张大花 发表了文章 • 764 次浏览 • 2022-08-17 10:42 • 来自相关话题

前言 我们日常开发中,永远离不开debug调试,断点技术一直是我们排查bug的有力手段之一!随着网络安全意识的逐步提高,对app安全的要求就越来越高,反调试的技术也渐渐深入我们开发者的眼帘,那么我们来具体看看,android中,同时也是linux内核中,是怎么... ...查看全部
0
评论

Android: Shape 的使用 自定义View Android

柳天明 发表了文章 • 536 次浏览 • 2022-08-16 16:18 • 来自相关话题

Android Shape 的使用 在Android开发中,我们可以使用shape定义各种各样的形状,也可以定义一些图片资源。相对于传统 图片来说,使用shape可以减少资源占用,减少安装包大小,还能够很好地适配不同尺寸的手机。 1. shape属性 sha... ...查看全部
0
评论

Android技术分享|【Android踩坑】怀疑人生,主线程修改UI也会崩溃? 主线程修改UI

王二蛋和他的张大花 发表了文章 • 488 次浏览 • 2022-08-16 15:42 • 来自相关话题

前言 某天早晨,吃完早餐,坐回工位,打开电脑,开启chrome,进入友盟页面,发现了一个崩溃信息: java.lang.RuntimeException: Unable to resume activity {com.youdao.youdaomath/com... ...查看全部
0
评论

Android性能优化 -- 大图治理 Android性能

王二蛋和他的张大花 发表了文章 • 432 次浏览 • 2022-08-16 10:49 • 来自相关话题

在实际的Android项目开发中,图片是必不可少的元素,几乎所有的界面都是由图片构成的;像列表页、查看大图页等,都是需要展示图片,而且这两者是有共同点的,列表展示的Item数量多,如果全部加载进来势必会造成OOM,因此列表页通常采用分页加载,加上Recycle... ...查看全部
0
评论

分享Kotlin协程在Android中的使用 协程 kotlin

王二蛋和他的张大花 发表了文章 • 625 次浏览 • 2022-08-16 10:42 • 来自相关话题

前言 之前我们学了几个关于协程的基础知识,本文将继续分享Kotlin协程的知识点~挂起,同时介绍协程在Android开发中的使用。 正文 挂起 suspend关键字 说到挂起,那么就会离不开suspend关键字,它是Kotlin中的一个关键字,它的中文意思是暂... ...查看全部
0
评论

Flutter中的ValueNotifier和ValueListenableBuilder ValueListenableBuilder ValueNotifier

王二蛋和他的张大花 发表了文章 • 992 次浏览 • 2022-08-16 10:38 • 来自相关话题

在这篇文章中,我们将深入探讨ValueNotifier及其相应的主题。 ValueNotifier简介 ValueNotifier是继承自ChangeNotifier的一个类。该类可以保存单个值,并每当其持有值更改时会通知正在监听它的Widget。ValueN... ...查看全部
0
评论

Java四大引用详解:强引用、软引用、弱引用、虚引用 引用

王二蛋和他的张大花 发表了文章 • 1025 次浏览 • 2022-08-15 16:27 • 来自相关话题

面试官考察Java引用会问到强引用、弱引用、软引用、虚引用,具体有什么区别?本篇单独来详解 @mikechen Java引用 从JDK 1.2版本开始,对象的引用被划分为4种级别,从而使程序能更加灵活地控制对象的生命周期,这4种级别由高到低依次为:强引用、软引... ...查看全部
0
评论

神奇的共享内存 共享内存

王二蛋和他的张大花 发表了文章 • 718 次浏览 • 2022-08-15 10:53 • 来自相关话题

前言 共享内存(shared memory)是最常见的ipc进程之间通讯的方式之一了,很多linux书籍上,都将共享内存评价为“最有用的ipc机制”,就连Binder机制盛行的android体系,同样也离不开共享内存的应用!在所以ipc方式中,共享内存以“快”... ...查看全部
0
评论

Transform 被废弃,TransformAction 了解一下~ TransformAction transform

王二蛋和他的张大花 发表了文章 • 603 次浏览 • 2022-08-15 10:51 • 来自相关话题

前言 Transform API 是 AGP1.5 就引入的特性,主要用于在 Android 构建过程中,在 Class转Dex的过程中修改 Class 字节码。利用 Transform API,我们可以拿到所有参与构建的 Class 文件,然后可以借助ASM... ...查看全部
0
评论

使用 Kotlin 对 XML 文件解析、修改及创建 XML kotlin

王二蛋和他的张大花 发表了文章 • 491 次浏览 • 2022-08-15 10:49 • 来自相关话题

一 XML 基本概念 XML 全称 ExtensibleMarkupLanguage,中文称可扩展标记语言。它是一种通用的数据交换格式,具有平台无关性、语言无关性、系统无关性的优点,给数据集成与交互带来了极大的方便。XML 在不同的语言环境中解析方式都是一样的... ...查看全部
0
评论

Flutter 语法进阶 | 抽象类和接口本质的区别 抽象类

王二蛋和他的张大花 发表了文章 • 466 次浏览 • 2022-08-15 10:41 • 来自相关话题

1. 接口存在的意义? 在 Dart 中 接口 定义并没有对应的关键字。可能有些人觉得 Dart 中弱化了 接口 的概念,其实不然。我们一般对接口的理解是:接口是更高级别的抽象,接口中的方法都是 抽象方法 ,没有方法体。通过接口的定义,我们可以通过定义接口来声... ...查看全部
0
评论

浅谈Kotlin编程-Kotlin基础语法和编码规范 kotlin

王二蛋和他的张大花 发表了文章 • 468 次浏览 • 2022-08-12 11:09 • 来自相关话题

前言 上一篇我们认识了Kotlin编程语言,也搭建好开发环境。本篇就进入Kotlin的基础语法介绍,与其他编程语言一样,Kotlin也有自己的一套编码规范。 文章总览 1.Kotlin基本语法 1.1 函数声明 使用关键字 fun 声明: fun sum(a... ...查看全部
0
评论

Android—以面试角度剖析HashMap源码 HashMap

王二蛋和他的张大花 发表了文章 • 487 次浏览 • 2022-08-12 11:01 • 来自相关话题

前言 HashMap 这个词想必大家都挺熟悉的!但往往大多数都知其所用,而不知其原理,导致面试的处处碰壁!因此,这一篇的作用就是以面试的角度剖析HashMap!话不多说,直接开始! 温馨提示:此文有点长,建议先插眼,等有空闲时间观看 1、为什么要学HashMa... ...查看全部
0
评论

Android drawFunctor 原理及应用 drawFunctor

王二蛋和他的张大花 发表了文章 • 564 次浏览 • 2022-08-12 11:00 • 来自相关话题

一. 背景 蚂蚁 NativeCanvas 项目 Android 平台中使用了基于 TextureView 环境实现 GL 渲染的技术方案,而 TextureView 需使用与 Activity Window 独立的 GraphicBuffer,RenderT... ...查看全部
0
评论

Android Gradle 三方依赖管理 gradle

王二蛋和他的张大花 发表了文章 • 894 次浏览 • 2022-08-12 10:55 • 来自相关话题

发展历史 Gradle 的依赖管理是一个从开始接触 Android 开发就一直伴随着我们的问题(作者是Android开发,仅以此为例),从最初的 没有统一管理 到 通过.gradle或gradle.properties管理,再到 Kotlin 出现之后使用 b... ...查看全部
0
评论

线程池及使用场景说明 线程池

王二蛋和他的张大花 发表了文章 • 468 次浏览 • 2022-08-11 10:57 • 来自相关话题

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第22天,点击查看活动详情newFixedThreadPool(固定大小的线程池):public static ExecutorService newFixedThreadPool(int n... ...查看全部
0
评论

为什么要使用Kotlin 对比 Java,Kotlin简介 Java kotlin

王二蛋和他的张大花 发表了文章 • 524 次浏览 • 2022-08-11 10:55 • 来自相关话题

什么是Kotlin 打开Kotlin编程语言的官网,里面大大的写着, A modern programming languagethat makes developers happier. 是一门让程序员写代码时更有幸福感的现代语言 Kotlin语法... ...查看全部
0
评论

从权限系统的菜单管理看算法和数据结构 权限系统

王二蛋和他的张大花 发表了文章 • 507 次浏览 • 2022-08-11 10:53 • 来自相关话题

菜单管理,感觉上是个小模块,但实际做下来的感触是,要做的好用,不容易。算法和数据结构,长期活跃在面试题中,实际业务中好像接触的不多,但如果能用好,可以解决大问题。如上图,是我在开源世界找到的一个菜单管理的设计页面,其上可以看到,菜单管理主要管理一颗菜单树,可以... ...查看全部
0
评论

Android代码检查之自定义Lint lint

王二蛋和他的张大花 发表了文章 • 1005 次浏览 • 2022-08-11 10:51 • 来自相关话题

概述Lint 是 Android studio 提供的一款静态代码检查工具,它可以帮助我们检查 Android 项目源文件是否有潜在的 bug,以及在正确性、安全性、性能、易用性、无障碍性和国际化方面是否需要优化改进。Lint 的好处不言而喻,它能够... ...查看全部
0
评论

分库分表后路由策略设计 分库分表

王二蛋和他的张大花 发表了文章 • 463 次浏览 • 2022-08-10 10:59 • 来自相关话题

概述 分库分表后设计到的第一个问题就是,如何选择路由key,应该如何对key进行路由。路由key应该在每个表中都存在而且唯一。路由策略应尽量保证数据能均匀进行分布。 如果是对大数据量进行归档类的业务可以选择时间作为路由key。比如按数据的创建时间作为路由key... ...查看全部