环信即时通讯云

环信即时通讯云

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

环信开发文档

元宇宙讨论

元宇宙讨论

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

RTE开发者社区

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

技术讨论区

技术交流、答疑
资源下载

资源下载

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

iOS Library

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

Android Library

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

RxJava的并发实现 Android rxjava

柳天明 发表了文章 • 78 次浏览 • 2021-11-03 11:35 • 来自相关话题

我们在开发App过程中,常常遇见这种需求,例如首页,仅一个界面就要请求3个甚至更多的接口,更变态的是这些接口必须按顺序请求,来以此展示返回结果,那么这样我们就无法用普通的并发去同时请求接口了,因为我们无法预知各个接口的请求完成时间,普通的也是最简单的办法就是依... ...查看全部
0
评论

Android线程思考 Android 多线程

柳天明 发表了文章 • 85 次浏览 • 2021-11-03 11:33 • 来自相关话题

在编程中我们经常遇到多线程相关的问题,记得刚工作的时候对线程没有太多概念,只知道new Thread()run函数中是新的线程,函数多调用几层,特别是一些别人的回调函数中,就忽略了线程引起的并发问题,产生了并发修改异常的崩溃。今天总结一些线程相关的知识。线程基... ...查看全部
0
评论

Kotlin - Compose 编程思想 compose kotlin Android

柳天明 发表了文章 • 77 次浏览 • 2021-11-03 11:31 • 来自相关话题

Kotlin - Compose Compose 编程思想 Jetpack Compose 是一个适用于 Android 的新式声明性界面工具包。Compose 提供声明性 API,让您可在不以命令方式改变前端视图的情况下呈现应用界面,从而... ...查看全部
0
评论

面试官问我JVM内存结构,我真的是 jvm

王二蛋和他的张大花 发表了文章 • 81 次浏览 • 2021-11-03 10:02 • 来自相关话题

面试官:今天来聊聊JVM的内存结构吧? 候选者:嗯,好的 候选者:前几次面试的时候也提到了:class文件会被类加载器装载至JVM中,并且JVM会负责程序「运行时」的「内存管理」 候选者:而JVM的内存结构,往往指的就是JVM定义的「运行时数据区域」 候选者:... ...查看全部
0
评论

大力作业灯APP编译内存治理 编译内存

王二蛋和他的张大花 发表了文章 • 76 次浏览 • 2021-11-03 09:59 • 来自相关话题

背景 随着作业灯业务的蓬勃发展,大力客户端的编译情况劣化越来越严重。sync一次项目需要长达五分钟,本地编译耗时也极长,还会经常出现GC over limit 错误,严重影响开发效率。CI编译时长经常超过20分钟,严重影响合码效率。 以上劣化已经严重影响到日常... ...查看全部
0
评论

我该如何给Flutter webview添加透明背景? webview

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

为何写这篇文章 承接以上前言,我之所以写这篇文章,是因为我改的是Flutter官方的插件webview_flutter。Flutter官方的插件,全部是在一个gitHub仓库上维护的,各个库之间又相互关联。【见下图】 所以改功能其实是其次,如何在这庞大的Fl... ...查看全部
0
评论

Flutter 主流状态管理框架 provider get 分析与思考 Flutter provider

王二蛋和他的张大花 发表了文章 • 104 次浏览 • 2021-11-03 09:49 • 来自相关话题

Flutter 中状态管理是一个经久不衰的话题,当下市面上也有诸如 provider 、get 、fish_redux 等框架。自接触 flutter 开发以来,我大致经历了无状态管理 、简单的状态抽象,再到目前使用的是公司内部一个类似 provider 的解... ...查看全部
0
评论

flutter 优秀dio网络拦截可视化 (IMGEEK首发) dio Flutter

王二蛋和他的张大花 发表了文章 • 85 次浏览 • 2021-11-02 16:43 • 来自相关话题

flutter_interceptor flutter dio 拦截器 库源码:github.com/smartbackme… 开始集成 dependencies: flutter_interceptor: ^0.0.1 dio添加拦截器 _dio.int... ...查看全部
0
评论

聊聊ViewPager2实现原理以及缓存复用机制 ViewPager2 Android

柳天明 发表了文章 • 123 次浏览 • 2021-11-02 11:35 • 来自相关话题

1. 前言众所周知ViewPager2是ViewPager的替代版本。它解决了ViewPager的一些痛点,包括支持right-to-left布局,支持垂直方向滑动,支持可修改的Fragment集合等。ViewPager2内部是使用RecyclerView来实... ...查看全部
0
评论

ViewModel-Flow-LiveData,我们还是好朋友 jetpack Android

柳天明 发表了文章 • 94 次浏览 • 2021-11-02 11:33 • 来自相关话题

在Android应用程序中加载UI数据可能是一个挑战。各种屏幕的生命周期需要被考虑在内,还有配置的变化导致Activity的破坏和重新创建。当用户在一个应用程序中进一步或后退,从一个应用程序切换到另一个应用程序,或者设备屏幕被锁定或解锁时,应用程序的各个屏幕会... ...查看全部
0
评论

android Compose中沉浸式设计和导航栏的处理 compose Android

柳天明 发表了文章 • 134 次浏览 • 2021-11-02 11:31 • 来自相关话题

Material Design风格的顶部和底部导航栏Compose中Material Design风格的设计我们的做法如下:1、使用Scafoold作为页面的顶级,Scafoold中承载topbar和bottombar分别作为顶部导航栏和底部导航栏。2、调用W... ...查看全部
0
评论

算法题:String类型转int类型(不用Java内置函数) 算法

柳天明 发表了文章 • 76 次浏览 • 2021-11-02 11:29 • 来自相关话题

如何不采用java的内置函数,把String类型转换为int类型,想到两种方法,如下代码自己测试下 package com.journey.test; public class AtoiTest { public static void main(Str... ...查看全部
0
评论

Window和WindowManager和ViewRootImpl Android

柳天明 发表了文章 • 76 次浏览 • 2021-11-01 11:36 • 来自相关话题

1 Window1.1什么是Window?Window是一个抽象类,提供了绘制窗口的一组通用API。Window负责Android中的显示,可以理解为一个View的载体,负责将这个View显示出来。-PhoneWindow是Window的唯一子类。举例:Act... ...查看全部
0
评论

View的事件分发机制 事件分发 Android

柳天明 发表了文章 • 69 次浏览 • 2021-11-01 11:32 • 来自相关话题

1 基本概念1.1 事件分发的对象是谁?当用户触摸屏幕时将产生点击事件(Touch事件),其相关细节(发生触摸的位置、时间等)会被封装成MotionEvent对象。MotionEvent对象就是事件分发的对象。事件类型事件类型具体动作MotionEvent.A... ...查看全部
0
评论

含有边框的TextView-Android textview Android

柳天明 发表了文章 • 70 次浏览 • 2021-11-01 11:31 • 来自相关话题

前言实际的项目中我们经常会遇到边框的问题,一开始我都是直接用shape来实现,但是这种方式非常的麻烦,后面又用了三方库SuperTextView,后面学习了自定义View自己来实现一下吧.Codepublic class BorderTextView exte... ...查看全部
0
评论

安卓TextView完美展示html格式代码 textview Android

柳天明 发表了文章 • 95 次浏览 • 2021-11-01 11:30 • 来自相关话题

对于TextView展示html格式代码,最简单的办法就是使用textview.setText(Html.fromHtml(html));,即便其中有img标签,我们依然可以使用ImageGetter,和TagHandler对其中的图片做处理,但用过的都知道,... ...查看全部
0
评论

Google 宣布废弃 LiveData.observe 方法 LiveData Android

柳天明 发表了文章 • 102 次浏览 • 2021-11-01 11:28 • 来自相关话题

本篇文章作为技术动态了解即可,废弃 LiveData.observe() 扩展方法,已经不是什么新的新闻了,在很久以前,Google 废弃掉这个方法的时候,第一时间我在 朋友圈 和 掘金沸点 发过一个... ...查看全部
0
评论

Jackson 之 LocalDateTime 序列化与反序列化 Jackson

王二蛋和他的张大花 发表了文章 • 80 次浏览 • 2021-11-01 10:06 • 来自相关话题

前言 在 Java 8 中对 LocalDateTime、LocalDate 的序列化和反序列化有很多种操作 全局 在 ObjectMapper 对象中配置 JavaTimeModule,此为全局配置。 @Bean public ObjectM... ...查看全部
0
评论

高并发场景下JVM调优实践之路 JVM调优

王二蛋和他的张大花 发表了文章 • 67 次浏览 • 2021-11-01 10:02 • 来自相关话题

一、背景 2021年2月,收到反馈,视频APP某核心接口高峰期响应慢,影响用户体验。 通过监控发现,接口响应慢主要是P99耗时高引起的,怀疑与该服务的GC有关,该服务典型的一个实例GC表现如下图: 可以看出,在观察周期里: 平均每10分钟Young&n... ...查看全部
0
评论

Flutter 图片库高燃新登场 图片库

王二蛋和他的张大花 发表了文章 • 94 次浏览 • 2021-11-01 10:00 • 来自相关话题

背景 去年,闲鱼图片库在大规模的应用下取得了不错的成绩,但也遇到了一些问题和诉求,需要进一步的演进,以适应更多的业务场景与最新的 flutter 特性。比如,因为完全抛弃了原生的 ImageCache,在与原生图片混用的场景下,会让一些低频的图片反而占用了缓存... ...查看全部
0
评论

@OnLifecycleEnvent 被废弃,替代方案更简单 OnLifecycleEnvent

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

近期 androidx.lifecycle 发布了 2.4.0 版本,此次更新中 @OnLifecycleEvent 注解被废弃,官方建议使用 LifecycleEventObserver 或者 DefaultLifecycleObserver 替代 现... ...查看全部
0
评论

Android Gradle 基础自定义构建 gradle Android

柳天明 发表了文章 • 98 次浏览 • 2021-10-29 11:30 • 来自相关话题

win7 Android Studio 2.1.3基础自定义构建 Basic Build Customization本章目的理解Gradle文件build tasks入门自定义构建理解Gradle文件在Android Studio中新建一个项目后,会自动创建3... ...查看全部
0
评论

Android Handler解读 handler Android

柳天明 发表了文章 • 91 次浏览 • 2021-10-29 11:29 • 来自相关话题

Handler通常都会面被问到这几个问题1.一个线程有几个Handler?2.一个线程有几个Looper?如何保证?3.Handler内存泄漏原因?4.子线程中可以new Handler吗?5.子线程中维护的Looper,消息队列无消息的时候的处理方案是什么?... ...查看全部
0
评论

Android不使用反射完成LiveDataBus LiveData Android

柳天明 发表了文章 • 176 次浏览 • 2021-10-29 11:28 • 来自相关话题

LiveDataBus大家都很熟悉了,网上也有很多通过反射实现的LiveDataBus。但是通过反射实现的代码比较混乱,也比较难以理解。这里给出一版通过代码实现的。更加的简洁优雅~首先来看一下LiveData原理一般我们都是这样使用的,创建一个LiveData... ...查看全部
0
评论

Jetpack Compose 自定义 Loading compose jetpack

柳天明 发表了文章 • 93 次浏览 • 2021-10-29 11:26 • 来自相关话题

自学Jetpack Compose 半月有余了,写了一个Loading加载动效效果图实现思路拆分将正方形均分为4份 确定4个符号的中心点位置BoxWithConstraints(modifier = modifier) {    val ... ...查看全部
0
评论

List常用操作比for循环更优雅的写法 List

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

list常用的lamada表达式-单list操作 引言 使用JDK1.8之后,大部分list的操作都可以使用lamada表达式去写,可以让代码更简洁,开发更迅速。以下是我在工作中常用的lamada表达式对list的常用操作,喜欢建议收藏。 以用户表为例,用户实... ...查看全部
0
评论

还在傻乎乎得背MyISAM与InnoDB 的区别?一篇文章让你理解的明明白白 InnoDB MyISAM

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

序言     相信不少的小伙伴在准备面试题的时候,必定会遇到这个面试题,MyISAM与InnoDB 的区别是什么?我们当时可谓是背一次忘一次,以至于很多的同学去找实习工作的时候,经常被这个问题卡脖子,那么今天我就系统的来... ...查看全部
0
评论

android常用命令介绍 命令

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

adb命令 安装apk -f 表示强制安装 adb install -f apk 获取当前顶部activity名称方式 windows: adb shell dumpsys window | findstr mCurrentFocus mac: adb s... ...查看全部
0
评论

Moshi踩坑之HashMap Android Moshi

柳天明 发表了文章 • 72 次浏览 • 2021-10-28 09:55 • 来自相关话题

Moshi 之HashMap就是这个错 moshi让你写自定义Adapter呢,报错摘要:No JsonAdapter for class java.util.HashMap, you should probably use Map ins... ...查看全部
0
评论

Adnroid 卡顿分析与布局优化 Android 性能优化

柳天明 发表了文章 • 90 次浏览 • 2021-10-28 09:51 • 来自相关话题

1 卡顿分析1 SystraceSystrace是Android平台提供的一款工具,用于记录短期内的设备活动,其中汇总了Android内核中的数据,例如CPU调度程序,磁盘活动和应用程序,Systrace主要用来分析绘制性能方面的问题,在发生卡顿时,通过这份报... ...查看全部
0
评论

Android - Binder通信架构 Binder ipc

柳天明 发表了文章 • 99 次浏览 • 2021-10-28 09:50 • 来自相关话题

Java应用层:  对于上层应用通过调用AMP.startService, 完全可以不用关心底层,经过层层调用,最终必然会调用到AMS.startService.Java IPC层:  Binder通信是采用C/S架构,... ...查看全部
0
评论

JetPack Compose 主题配色太少怎么办? 来设计自己的颜色系统吧 compose jetpack

柳天明 发表了文章 • 88 次浏览 • 2021-10-28 09:47 • 来自相关话题

引言JetPack Compose 正式版已经发布好几个月了,在这段时间里,除了业务相关需求之外,我也开始了 Compose 在实际项目中的落地实验,因为一旦要接入当前项目,那么遇到的问题其实远远大于新创建一个项目所需要的问题。本... ...查看全部
0
评论

Moshi踩坑之ArrayList Moshi

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

就是这个错 moshi让你写自定义Adapter呢,No JsonAdapter for class java.util.ArrayList, you should probably use List instead of ArrayList (Mo... ...查看全部
0
评论

Android 序列化(Serializable和Parcelable) Parcelable Serializable

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

什么是序列化 由于存在于内存中的对象都是暂时的,无法长期驻存,为了把对象的状态保持下来,这时需要把对象写入到磁盘或者其他介质中,这个过程就叫做序列化。 🔥 为什么序列化 永久的保存对象数据(将对象数据保存在文件当中、或者是磁盘中)。 对象在网络中传递。 对象... ...查看全部
0
评论

看动画学算法之:队列queue queue

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

简介 队列Queue是一个非常常见的数据结构,所谓队列就是先进先出的序列结构。 想象一下我们日常的排队买票,只能向队尾插入数据,然后从队头取数据。在大型项目中常用的消息中间件就是一个队列的非常好的实现。 队列的实现 一个队列需要一个enQueue入队列操作和一... ...查看全部
0
评论

来讨论下 Android 面试该问什么? 面试

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

经历过一些面试,也面过一些同学。 被面试官问到头皮发麻,也把候选人问得面红耳赤。 曾怨恨问题刁钻刻薄,也曾怀疑提问跑题超纲。 经历过攻守的角色转换后,沉下心,回顾过往,不由得发出感叹。如果要将“面试”作类比的话,我愿意将其比作“相亲”。 之所以这样类比,是因为... ...查看全部
0
评论

动画曲线天天用,你能自己整一个吗?看完这篇你就会了! 动画 Android

柳天明 发表了文章 • 95 次浏览 • 2021-10-26 14:12 • 来自相关话题

前言最近在写动画相关的篇章,经常会用到 Curve 这个动画曲线类,那这个类到底怎么实现的?如果想自己来一个自定义的动画曲线该怎么弄?本篇我们就来一探究竟。Curve 类定义查看源码, Curve 类定义如下:abstr... ...查看全部
0
评论

Android协程(Coroutines)系列-深入理解suspend(挂起函数)关键字 协程 kotlin

柳天明 发表了文章 • 157 次浏览 • 2021-10-26 13:55 • 来自相关话题

Kotlin 协程把suspend 修饰符引入到了我们 Android 开发者的日常开发中。您是否好奇它的底层工作原理呢?编译器是如何转换我们的代码,使其能够挂起和恢复协程操作的呢?suspend挂起函数,是指把协程代码挂起不继续执行的函数,也叫协程被函数挂起... ...查看全部
0
评论

实现一个 Coroutine 版 DialogFragment DialogFragment Android

柳天明 发表了文章 • 73 次浏览 • 2021-10-26 13:54 • 来自相关话题

Android 对话框有多种实现方法,目前比较推荐的是 DialogFragment,先比较与直接使用 AlertDialog,可以避免屏幕旋转等配置变化造成消失。但是其 API 建立在回调的基础上使用起来并不友好。接入 Coroutine... ...查看全部
0
评论

LeetCode刷题-合并区间 合并区间

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

一、题目描述 难度:中等~ 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。 示例1: 输入:... ...查看全部
0
评论

使用 Kotlin Flow 优化你的网络请求框架,减少模板代码 flow

王二蛋和他的张大花 发表了文章 • 113 次浏览 • 2021-10-26 09:54 • 来自相关话题

一、以前封装的遗憾点 主要集中在如下2点上: Loading的处理 多余的LiveData 总而言之,就是需要写很多模板代码。 不必编写模版代码的一个最大好处就是: 写的代码越少,出错的概率越小. 1.1 Loading的处理 对于封装二,虽然... ...查看全部
0
评论

MVVM 进阶版:MVI 架构了解一下~ MVI

王二蛋和他的张大花 发表了文章 • 73 次浏览 • 2021-10-26 09:50 • 来自相关话题

前言 Android开发发展到今天已经相当成熟了,各种架构大家也都耳熟能详,如MVC,MVP,MVVM等,其中MVVM更是被官方推荐,成为Android开发中的显学。 不过软件开发中没有银弹,MVVM架构也不是尽善尽美的,在使用过程中也会有一些不太方便之处,而... ...查看全部
0
评论

Android IPC 之 Messenger Messenger

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

绑定服务(Bound Services)概述 绑定服务是client-server接口中的服务器。它允许组件(例如活动)绑定到服务、发送请求、接收响应和执行进程间通信(IPC)。 绑定服务通常仅在它为另一个应用程序组件提供服务时才存在,并且不会无限期地在后台运... ...查看全部
0
评论

一天高中的女同桌突然问我是不是程序猿 程序猿

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

背景 昨天一个我高中的女同桌突然发微信问我“你是不是程序猿 我有问题求助”, 先是激动后是茫然再是冷静,毕业多年不见联系,突然发个信息求助,感觉大脑有点反应不过来... 再说我一个搞Android的也不咋会python啊(不是说Java不能实现,大家懂的,人... ...查看全部
0
评论

美团面试官问我一个字符的String.length()是多少,我说是1,面试官说你回去好好学一下吧 String

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

public class testT { public static void main(String [] args){ String A = "hi你是乔戈里"; System.out.println(A.lengt... ...查看全部
0
评论

领导:谁再用定时任务实现关闭订单,立马滚蛋! 定时任务

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

在电商、支付等领域,往往会有这样的场景,用户下单后放弃支付了,那这笔订单会在指定的时间段后进行关闭操作,细心的你一定发现了像某宝、某东都有这样的逻辑,而且时间很准确,误差在1s内;那他们是怎么实现的呢? 一般的做法有如下几种定时任务关闭订单rocketmq延迟... ...查看全部
0
评论

搜索历史记录的实现-Android Android

柳天明 发表了文章 • 84 次浏览 • 2021-10-25 11:41 • 来自相关话题

前言最近一个客户想要实现搜索中搜索历史的功能,其实这个功能听起来很简单,实际上里面有很多逻辑在里面,一开始写的时候脑子蒙蒙的,最后提给客户的时候一堆毛病,这一次来详细梳理一下,也分享一下我的思路主要逻辑搜索后保存当前内容将最新的搜索记录在最前面搜索历史记录可以... ...查看全部
0
评论

动态代理的使用-功能增强 apt Android

柳天明 发表了文章 • 92 次浏览 • 2021-10-25 11:39 • 来自相关话题

背景接手某项目时碰到切换主线程的逻辑, 原项目代码流程如下:xxPresenter 会创建observer直接用于二方库的 SDKService (通常在子线程中回调),记为 innerObserverxxActivit... ...查看全部
0
评论

smali语言之locals和registers的区别 逆向 Android

柳天明 发表了文章 • 103 次浏览 • 2021-10-25 11:37 • 来自相关话题

介绍对于dalviks字节码寄存器都是32位的,它能够表示任何类型,2个寄存器用于表示64位的类型(Long and Double)。作用声明于方法内部(必须).method public getName()V .registers 6 retu... ...查看全部
0
评论

如何优雅的集成Google pay到你的项目中 GooglePlay Android

柳天明 发表了文章 • 117 次浏览 • 2021-10-22 14:02 • 来自相关话题

官方集成文档 官方集成文档 官方集成文档第一步:javadependencies { def billing_version = "3.0.0" implementation 'com.android.billingcli... ...查看全部