环信即时通讯云

环信即时通讯云

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

环信开发文档

环信客服云

环信客服云

无需下载,注册即用
声网开发者社区

声网开发者社区

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

技术讨论区

技术交流、答疑
资源下载

资源下载

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

iOS Library

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

Android Library

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

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

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

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

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

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

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

实现一个 Coroutine 版 DialogFragment DialogFragment Android

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

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

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

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

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

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

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

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

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

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

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

Android IPC 之 Messenger Messenger

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

android 如何优雅的集成 Razorpay Android Razorpay

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

请在您的应用build.gradle文件中添加以下依赖项:repositories { mavenCentral() } dependencies { implementation 'com.razorpay:checkout... ...查看全部
0
评论

Android-关于设备唯一ID的奇技淫巧 唯一标识 Android

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

前言最近在二开项目国际版客户的功能,我们项目中默认是有一个游客登录的,一般大家都是取Android设备的唯一ID上传服务器,然后服务器给你分配一个用户信息.但是Google在高版本对于设备唯一Id的获取简直限制到了极点.以前我都是直接获取IMEI来作为设备的唯... ...查看全部
0
评论

一条SQL查询语句是如何执行的 sql

柳天明 发表了文章 • 24 次浏览 • 2021-10-22 13:59 • 来自相关话题

背景我们执行一条查询语句时,对客户端是一个很简单的过程,但对服务端(MySQL)内部却涉及到很复杂的组件和逻辑,当出现一些比较复杂的SQL问题时,如果不理解其内部执行的原理,将会很难去定位和解决问题正文先聊聊MySQL的逻辑架构大体来说,MySQL可以分为 S... ...查看全部
0
评论

熬夜再战Android之修炼Kotlin-【findView】篇 findView

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

前提 前面我们学了Kotlin语言,趁热打铁我们试试Kotlin在Android中的应用。 如果是新手,请先学完Android基础。 推荐先看小空之前写的熬夜Android系列,再来尝试。 👉实践过程 😜方式一 使用扩展,如果你第一次创建项目的时候选择的是Ko... ...查看全部
0
评论

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

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

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

Android模块化设计之组件开发规范 开发规范

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

最近一直在做基础建设方面的工作,面对这三十多个完全没有规范可言的组件,气的我直接打了一套闪电五连鞭,但打工还得继续,于是想对这些组件建立一套规范,来降低够用、使用、维护以及扯皮成本,本想在网上白嫖一套,可找到的都是一些基础的代码规范,用处不大,于是乎根据自己的... ...查看全部
0
评论

消失性进度条 进度条

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

效果&使用 图例分别为: 修改读条起点为y轴正方向 消失性读条 正常读条 使用: 1 在xml中添加控件 <com.lloydfinch.ProgressTrackBar android:id="@+id/progress_tr... ...查看全部
0
评论

Android学习指南 — Android进阶篇 Android

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

ARTART 代表 Android Runtime,其处理应用程序执行的方式完全不同于 Dalvik,Dalvik 是依靠一个 Just-In-Time (JIT) 编译器去解释字节码。开发者编译后的应用代码需要通过一个解释器在用户的设备上运行,这一机制并不高... ...查看全部
0
评论

Android自定义控件六边形 自定义View Android

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

Android自定义六边形控件一.效果图原文地址: https://blog.csdn.net/oMengHui/article/details/45540645二.核心算法平面内一个坐标点是否在多边形内判断,使用射线法判断。从目标点出发引一条射线,... ...查看全部
0
评论

Kotlin协程的取消和异常传播机制 协程 kotlin

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

1.协程核心概念回顾结构化并发(Structured Concurrency)作用域(CoroutineScope /SupervisorScope)作业(Job/SupervisorJob)开启协程(launch/async)2.协程的取消2.1 协程的取消... ...查看全部
0
评论

Java正则表达式语法大全 正则表达式

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

在我们日常开发项目中经常用到正则表达式/比如邮箱/电话手机号/域名/ip等)都会经常用到其实一个字符串就是一个简单的正则表达式,例如 Hello World 正则表达式匹配 "Hello World" 字符串。.(点号)也是一个正则表达式,... ...查看全部
0
评论

熬夜再战Android之修炼Kotlin-【Get和Set】、【继承】、【抽象类/嵌套类/内部类】篇 kotlin

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

前提 当前环境 2021年10月8日最新下载2020.3.1 Patch 2 版本 👉实践过程 😜Get和Set 其实Kotlin声明实体类之后,里面的变量默认就带有set和get的属性功能了。除非想要特殊业务内容。 比如set需要结合项目进行其他业务处理,g... ...查看全部
0
评论

使用BlackHook(黑钩) 可以Hook一切java或者kotlin方法 Hook

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

前言 之前做内存优化的时候,为了实现对线程的使用监控,借助了一个第三方的hook框架(epic),这个框架可以hook一切java方法,使用也简单,但是最大的问题是它有较严重的兼容性问题,部分机型会出现闪退的现象,这就导致它不能被带到线上使用,只能在线下使用,... ...查看全部
0
评论

扒一扒Android的.9图 .9图 Android

柳天明 发表了文章 • 49 次浏览 • 2021-10-20 14:42 • 来自相关话题

前言相信大家对.9图都不陌生,我们在开发当中当有控件的背景需要对内容的大小做自适应的时候,可能就需要用到.9图。如下图所示,就是一张.9图。官方是这么定义的:NinePatchDrawable 图形是一种可拉伸的位图,可用作视图的背景。Android... ...查看全部
0
评论

在Android中使用Netty进行通讯,附带服务端代码 IM Netty

柳天明 发表了文章 • 53 次浏览 • 2021-10-20 14:41 • 来自相关话题

NettyNetty 是一个利用 Java 的高级网络的能力,隐藏其背后的复杂性而提供一个易于使用的 API 的客户端/服务器框架。 Netty 是一个广泛使用的 Java 网络编程框架(Netty 在 2011 年获得了Duke's Choice Award... ...查看全部
0
评论

再谈协程之第三者Flow基础档案 协程 kotlin

柳天明 发表了文章 • 39 次浏览 • 2021-10-20 14:32 • 来自相关话题

该来的还是来了,LiveData提供了响应式编程的基础,搭建了一套数据观察者的使用框架,但是,它相当于RxJava这类的异步框架来说,有点略显单薄了,这也是经常被人诟病的问题,因此,Flow这个小三就顺应而生了。Flow作为一套异步数据流框架,几乎可以约等于R... ...查看全部
0
评论

Hilt 扩展 | MAD Skills 依赖注入 hilt Android

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

案例: WorkManager 扩展Hilt 扩展是一个生成代码的库,常通过注解处理器实现。生成的代码作为构成 Hilt 依赖项注入关系图的模块或入口点。Jetpack 中 WorkManager 的集成库就是一个扩展的例子。WorkManager ... ...查看全部
0
评论

面试官:Java从编译到执行,发生了什么? 编译

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

面试官:今天从基础先问起吧,你是怎么理解Java是一门「跨平台」的语言,也就是「一次编译,到处运行的」?候选者:很好理解啊,因为我们有JVM。候选者:Java源代码会被编译为class文件,class文件是运行在JVM之上的。候选者:当我们日常开发安装JDK的... ...查看全部
0
评论

面试官:双亲委派模型你了解吗? 双亲委派

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

面试官:要不你今天来详细讲讲双亲委派机制? 候选者:嗯,好的。 候选者:上次提到了:class文件是通过「类加载器」装载至JVM中的 候选者:为了防止内存中存在多份同样的字节码,使用了双亲委派机制(它不会自己去尝试加载类,而是把请求委托给父加载器去完成,依次向... ...查看全部
0
评论

Flutter 快速开发框架 Flutter

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

项目简介 此框架旨在将常规的Flutter项目中使用到的通用(与业务无关)的功能从剥离出来,构成Flutter开发项目的框架,在开发新的Flutter项目时,可以直接引用本项目 import 'package:framework/framework.dart'... ...查看全部
0
评论

都 2021 年了,还有人在研究 Handler? handler

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

我们经常使用和提及 Android 中特有的线程间通信方式即 Handler 机制,缘于该机制特别好用、极为重要! 初尝 Handler 机制的时候,原以为 Handler 类发挥了很大的作用。当你深入了解它的原理之后,会发现 Handler 只是该机制的调用... ...查看全部
0
评论

【知识点】OkHttp 原理 8 连问 okhttp

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

前言 OkHttp可以说是Android开发中最常见的网络请求框架,OkHttp使用方便,扩展性强,功能强大,OKHttp源码与原理也是面试中的常客 但是OKHttp的源码内容比较多,想要学习它的源码往往千头万绪,一时抓不住重点. 本文从几个问题出发梳理OKH... ...查看全部
0
评论

Android中Window 和 WindowManager Windows Android

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

Window 是一个抽象类,具体实现是 PhoneWindow,通过 WindowManager 创建。WindowManager是外界访问Window的入口,Window 的具体实现位于 WindowManagerService 中WindowManager... ...查看全部
0
评论

一篇文章带你走近Android自定义view 自定义View Android

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

前言从专科到本科,目前本科大四,已经是学习Android的第四个年头了,本打算积累一下冲23考研,但是最近被大佬洗脑后准备冲一冲22的考研,所以后续出文章的几率会很小,但是在前不久答应粉丝整理一个较为详细的Android自定义view教程,恰巧最近报名被华为选... ...查看全部
0
评论

Retrofit流程极简解析 retrofit Android

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

Retrofit流程极简解析以SandwichDemo为例子来解析。github地址创建Retrofitprivate val retrofit: Retrofit = Retrofit.Builder() .client(okHttpClient) .bas... ...查看全部
0
评论

FLutter即时通讯 Flutter

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

1. 即时通讯简述 即时通讯是端开发工作中常见的需求,本篇文章以作者工作中使用FLutter开发社交软件即时通讯需求为背景,描述一下即时通讯功能设计的要点。 2. 重要概念 即时通讯需要前后端配合,约定消息格式与消息内容。本次IM客户端需求开发使用了公司已有的... ...查看全部
0
评论

看动画学算法之:平衡二叉搜索树AVL Tree 平衡二叉搜索

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

简介 平衡二叉搜索树是一种特殊的二叉搜索树。为什么会有平衡二叉搜索树呢? 考虑一下二叉搜索树的特殊情况,如果一个二叉搜索树所有的节点都是右节点,那么这个二叉搜索树将会退化成为链表。从而导致搜索的时间复杂度变为O(n),其中n是二叉搜索树的节点个数。 而平衡二叉... ...查看全部
0
评论

密码学系列之:加密货币中的scrypt算法 加密货币

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

简介 为了抵御密码破解,科学家们想出了很多种方法,比如对密码进行混淆加盐操作,对密码进行模式变换和组合。但是这些算法逐渐被一些特制的ASIC处理器打败,这些ASIC处理器不做别的,就是专门来破解你的密码或者进行hash运算。 最有名的当然是比特币了,它使用的是... ...查看全部
0
评论

java流太太太..............好用了 java流

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

情景:一个集合对象list,现在想获取这个集合中每个对象的id,并将这些id值存放在另一个集合中,方便我去查询数据。如果是你来实现这个需求,你会用什么方法去实现呢。 我猜会有许多人会选择循环变量这个集合对象,取出id存放在集合里面,代码是这样的: List&... ...查看全部
0
评论

为什么需要Java内存模型? 内存模型

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

面试官:今天想跟你聊聊Java内存模型,这块你了解过吗? 候选者:嗯,我简单说下我的理解吧。那我就从为什么要有Java内存模型开始讲起吧 面试官:开始你的表演吧。 候选者:那我先说下背景吧 候选者:1. 现有计算机往往是多核的,每个核心下会有高速缓存。高速缓存... ...查看全部
0
评论

「一探究竟」迷之序列化 序列化

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

事件起因 今天,我需要上线一个非常小但是又非常重要的系统改动,即给核心接口的RPC接口出参增加序列化接口(由下图可见,原实体类未实现序列化)。 编码、测试、代码审核一气呵成,然后收到驳回通知,架构师说实现序列化接口时注意不要忘记配置serialversio... ...查看全部
0
评论

kafka!还好我留了一手 kafka

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

本文面试情节虚假,但知识真实,请在家人或者朋友的陪同下仔细观看,防止在观看的过程发呆、走神导致没学到知识。性能篇一位身穿格子衬衣,头发好似一拳超人的中年人走了过来,没错他就是面试官,他手握简历,若有所思,我当时害怕极了,然后他开口:小伙子啊,我们这边是基础架构... ...查看全部
0
评论

【Java字符串】字符串虽简单,但这些你不一定知道 字符串

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

前言: 字符串是程序开发当中,使用最频繁的类型之一,有着与基础类型相同的地位(字符串不属于基本类型),甚至在 JVM(Java 虚拟机)编译的时候会对字符串做特殊的处理,比如拼加操作可能会被 JVM 直接合成为一个最终的字符串,从而到达高效运行的目的。 1 :... ...查看全部
0
评论

完蛋,公司被一条 update 语句干趴了! sql

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

大家好,我是小林。 昨晚在群划水的时候,看到有位读者说了这么一件事。 大概就是,在线上执行一条 update 语句修改数据库数据的时候,where 条件没有带上索引,导致业务直接崩了,被老板教训了一波 这次我们就来看看: 为什么会发生这种的事故? 又该如何... ...查看全部
0
评论

庆祝神舟十三号发射成功,来一个火箭发射动画 火箭发射

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

前言 北京时间10月16日0时23分,神舟十三号飞船成功发射,目前三名航天员已经顺利进驻空间站,开始为期6个月的“太空差旅”生活。 国家的航天技术的突飞猛进也让岛上码农很自豪,今天看 Flutter 的动画知识,看到了 AnimatedPositioned ... ...查看全部
0
评论

复习Activity各种场景的生命周期 Activity Android

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

Activity是Android组件中最基本也是最为常见用的四大组件之一,也是我们在开发过程之中接触最多的组件,所以了解Activity的生命周期,并正确的理解与应用,是必不可少的。之前看到很多错误文章,今天特意自己亲自测试一遍,下面就来介绍一下Activit... ...查看全部