环信即时通讯云

环信即时通讯云

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

环信开发文档

环信客服云

环信客服云

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

声网开发者社区

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

技术讨论区

技术交流、答疑
资源下载

资源下载

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

iOS Library

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

Android Library

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

Android中Window 和 WindowManager Windows Android

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

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

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

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

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

Retrofit流程极简解析 retrofit Android

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

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

FLutter即时通讯 Flutter

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

kafka!还好我留了一手 kafka

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

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

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

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

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

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

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

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

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

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

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

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

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

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

这次,我想把内存泄漏讲明白 内存泄漏 Android

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

检测内存是否泄漏非常简单,只要在任意位置调用 Debug.dumpHprofData(file) 即可,通过拿到 hprof 文件进行分析就可以知道哪里产生了泄漏,但 dump 的过程会 suspend 所有的 java 线程,导致用户界面无响应,所以又不能随... ...查看全部
0
评论

JAVA创建线程的三种方式 多线程 Android

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

JAVA创建线程的三种方式一、JAVA创建线程的方式JAVA中为了有异步计算,所以需要开启线程帮助后来计算,后台运行,在java中开启线程的方式有三种:继承Thread类实现Runnable接口使用Callable和Future二、线程创建方式的异同继承Thr... ...查看全部
0
评论

冒泡排序的进化过程 算法

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

基础版本 所有情况下时间复杂度都为O(n2n^2n2) public static void bob(int[] array) { // 总共比较n-1轮 for (int i = 0; i < array.length - 1; i++... ...查看全部
0
评论

移动端网络监控实践 网络监控

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

1. 背景介绍 在移动端应用开发场景下,不可避免的要与网络打交道。有时在网络请求失败时,我们想知道网络的质量;有时需要明确的告知用户当前网络质量(比如游戏场景实时显示延迟)。网络监控离不开最经典的TCP/IP模型,基于模型分层统计网络耗时有助于我们更清晰的了解... ...查看全部
0
评论

MVVM + RxAndroid + RxView + DataBinding + LiveData + LiveEventBus + Retrofit 架构

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

前言 本来想记录一下最近相机相关的知识点的,但发现需要时间整理一下,那这里就介绍一下最近写的直播app中使用的整体架构吧。 由于之前项目大多是用MVC,MVP的整体架构,所以这次一个人写直播项目时就干脆用MVVM进行开发(sunflower的架构让我很馋) 简... ...查看全部
0
评论

Android Runtime (ART) 和 Dalvik 小知识,大挑战! Dalvik

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

1. Dalvik Dalvik是Google公司自己设计用于Android平台的虚拟机。它可以支持已转换为 .dex(即Dalvik Executable)格式的Java应用程序的运行,.dex 格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度... ...查看全部
0
评论

Android 热修复核心原理,ClassLoader类加载 ClassLoader Android

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

Android 热修复核心原理,ClassLoader类加载[TOC]Android前沿技术探讨:ClassLoader在热修复中的应用又在写bug?这句话虽然是句玩笑话,但是也正因为我们是人不是神,但也不能面面俱到,什么都考虑完美,出现bug是不可避免的。那... ...查看全部
0
评论

分析应用程序启动 性能优化 Android

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

一旦我们建立了触发应用程序缓慢启动的指标和场景,下一步就是提高性能。要了解是什么导致应用程序启动缓慢,我们需要对其进行分析。 Android Studio 提供了几种类型的分析器录制配置:Trace System Calls(又名 systrace、perfe... ...查看全部
0
评论

adb 如何衡量应用启动 启动耗时 Android

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

可以利用 ActivityTaskManager 的输出来获取应用程序启动持续时间。每当 Activity 启动时,都会在 logcat 输出中看到类似的内容:ActivityTaskManager: Displayed com.android.samples... ...查看全部
0
评论

Android入门教程 | Fragment 基础概念 fragment Android

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

什么是Fragment?Fragment,直译为“碎片”,“片段”。 Fragment 表示 FragmentActivity 中的行为或界面的一部分。可以在一个 Activity 中组合多个片段,从而构建多窗格界面,并在多个 Activity 中重复使用某个... ...查看全部
0
评论

Android 点击响应时间 View绘制 Android

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

Android 用户希望应用能够在短时间内响应他们的操作。UX 研究告诉我们,响应时间短于 100 毫秒会让人感觉立竿见影,而超过 1 秒的响应时间会让用户失去注意力。 当响应时间接近 10 秒时,用户只需放弃他们的任务。测量用户操作响应时间对于确保良好的用户... ...查看全部
0
评论

学不好Lambda,能学好Kotlin吗 Lambda kotlin

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

嗯,当然 不能 进入正题,Kotlin中,高阶函数的身影无处不在,听上去高端大气上档次的高阶函数,简化一点讲,其实就是Lambda + 函数。 如果,Lambda学不好,就会导致高阶函数学不好,就会导致协程等等一系列的Kotlin核心学不好,Kotlin自然就... ...查看全部
0
评论

Flutter开发·Stream的理解与简单使用 stream

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

介绍 Stream和Future都是在Flutter中常用来处理异步事件的对象,与Future只能处理单次异步操作不同的是,Stream具有多次响应异步事件监听的功能,是一系列异步事件的序列。 分类 Stream从订阅模式上分可以分为两类,一个是单订阅模式,另... ...查看全部
0
评论

Flutter输入框获取剪切板-合规问题踩坑 Flutter

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

前言:公司法务部检测出Flutter开发的App存在未同意隐私协议先获取系统剪切板数据的问题,要求整改。经过一系列调试后,定位到原来是Flutter输入框的坑,只要使用到输入框,就会先获取下剪切板数据。还没有属性可以关闭,着实踩坑,以下记录分享给大家,希望能稳... ...查看全部
0
评论

【辨析】Compose 完全脱离 View 系统了吗? compose

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

前言 Compose正式发布1.0已经相当一段时间了,但相信很多同学对Compose还是有很多迷惑的地方 Compose跟原生的View到底是什么关系?是跟Flutter一样完全基于Skia引擎渲染,还是说还是View的那老一套? 相信很多同学都会有下面的疑问... ...查看全部
0
评论

Android 程序崩溃之快速锁定! 崩溃

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

前言 从刚开始接触Android开发,第一次发版,遇到程序崩溃,那就一个慌张。好几年过去了,现在的听到程序崩溃?嗯,稍等我看看什么问题,然后该锁定该锁定该解决解决。 发版前减少bug、崩溃等,发版后遇到bug、崩溃也不要慌张,毕竟 bug不 会因为你的慌张而自... ...查看全部
0
评论

Java 内存模型 内存模型 Android

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

运行时的数据区(Runtime Data Area)本文主要看 JVM 内存模型主要指运行时的数据区,包括 5 个部分,如下图所示。虚拟机栈:也叫方法栈,是线程私有的,线程在执行每个方法时,JVM 都会在虚拟机栈中创建一个栈帧,用来存储局部变量表、操作栈、动态... ...查看全部
0
评论

Java 类加载器 源码 Android

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

类加载器 ClassLoader。在Java 内存模型我们介绍了 Java 字节码文件(.class)的格式。一个完整的 Java 程序是由多个 .class 文件组成的,在程序运行过程中,需要将这些 .class 文件加载到 JVM 中才可以使用。而负责加载... ...查看全部
0
评论

Java 垃圾回收(GC) 虚拟机 Android

柳天明 发表了文章 • 47 次浏览 • 2021-10-13 14:43 • 来自相关话题

前言垃圾回收(Garbage Collection,简写为 GC)可能是虚拟机众多知识点中最为大众所熟知的一个了,也是Java开发者最关注的一块知识点。Java 语言开发者比 C 语言开发者幸福的地方就在于,我们不需要手动释放对象的内存,JVM 中的垃圾回收器... ...查看全部
0
评论

Java多线程5 Callable、Future 和FutureTask 多线程 Android

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

前言创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。而自从Ja... ...查看全部
0
评论

Java虚拟机系列五:android虚拟机 虚拟机 Android

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

一.android虚拟机与hotspot虚拟机的区别android虚拟机非标准jvm实现存储和执行dex文件采用基于寄存器的指令集指令长度为2,4,6个字节,执行指令效率高,移植性差,依赖于平台hotspot虚拟机标准jvm实现存储和执行class文件采用基于... ...查看全部
0
评论

Android Jetpack系列之ViewModel jetpack ViewModel Android

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

ViewModel介绍ViewModel的定义:ViewModel旨在以注重生命周期的方式存储和管理界面相关的数据。ViewModel本质上是视图(View)与数据(Model)之间的桥梁,想想以前的MVC模式,视图和数据都会写在Activity/Fragme... ...查看全部
0
评论

Android内存泄露检测之LeakCanary的使用(转) leakCanary Android

柳天明 发表了文章 • 46 次浏览 • 2021-10-12 16:03 • 来自相关话题

LeakCanary github地址:square.github.io/leakcanary/开始使用目前为止最新的版本是2.3版本,相比于2.0之前的版本,2.0之后的版本在使用上简洁了很多,只需要在dependencies中加入LeakCanary的依赖... ...查看全部
0
评论

❤️ Android 源码解读-startActivity(含启动新应用)❤️ 源码阅读 Android

柳天明 发表了文章 • 65 次浏览 • 2021-10-12 16:02 • 来自相关话题

开局一张图源码版本:Android 11(SDK 30)涉及到的类Instrumentation:负责 Application 和 Activity 的建立和生命周期控制。ActivityTaskManager:此类提供... ...查看全部
0
评论

【奇淫技巧】解锁X5内核WebView同层渲染能力 webview x5 Android

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

前言WebView同层渲染,并不是一个新技术,国内一线互联网产品广泛应用,比如小程序的原生组件,电商H5嵌原生播放器等场景;如果您了解其原理,会发现这玩意在Android端,需要修改浏览器内核才能搞定,所以上手难度高;以至于读完文章,心血澎湃直呼牛逼,但是回过... ...查看全部
0
评论

Android Activity/Window/View 的background background Android

柳天明 发表了文章 • 51 次浏览 • 2021-10-12 15:59 • 来自相关话题

前言Activity/Window/View 的background,平时接触最多的就是View的background,Activity的background次之,最后用的较少的是Window的background,这三者有什么关联、区别呢?通过本篇文章,你将... ...查看全部
0
评论

❤️Android 安装包体积优化❤️ 优化

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

介绍 实际开发应用时,包体积优化是必不可少的。毕竟手机内存有限,如果包体积过大很多用户会直接放弃(以前手机内存很小的时候,这个真的很重要),现在由于手机内存大了(512G已经挡不住了),现在的用户更关注流畅度和美观作为参考,但是该有的优化还是要优化的,毕竟要尽... ...查看全部
0
评论

重新理解为什么 Handler 可能导致内存泄露? handler

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

总说 Handler 使用不当会导致内存泄露,真正的原因到底是什么? 网上千篇一律的答案貌似没有说到点子上,本文带你重新理解个中细节! 什么是 Handler 使用不当? 先搞清楚什么叫 Handler 使用不当? 一般具备这么几个特征: Handler 采... ...查看全部
0
评论

Kotlin开发中的一些Tips kotlin

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

如果你开始使用Kotlin,我个人的建议是多关注编译后字节码或是反编译后的java代码,这样你会发现更多的细节。单纯只学习语法会让你忽略一些细节,而这可能会是性能问题或bug的来源。 下面我举一些我在使用中碰到的问题,看能否给你启发,想到哪就写到哪了。本篇内容... ...查看全部
0
评论

flutter 风车加载指示组件 Flutter

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

前言Flutter 官方提供了诸如 CircularProgressIndicator和 LinearProgressIndicator两种常见的加载指示组件,但是说实话,实在太普通,比如下面这个CircularProgressIndica... ...查看全部
0
评论

kt协程 | suspend非阻塞挂起魔术解密 kotlin

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

一 前言 kotin协程,一种轻量级用户态线程,能通过suspend函数避免回调地狱以及快速实现线程的切换等,已经普及到大量实际项目中。这里将解析协程核心功能suspend的「非阻塞式挂起」实现原理,从而避免管中窥豹,使得在后续使用kotlin协程开发能更加得... ...查看全部
0
评论

java中的IO、NIO、Okio socket Android

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

java IO写这种写方法只能一个字节一个字节的写;注意把要关闭的流写在try括号中,省去了代码中finally关闭的过程,以下例子均是。private static void ioWrite() { try (OutputStream outputS... ...查看全部
0
评论

ARouter 拦截器之多 module 独立运行 arouter Android

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

本文说明上篇文章 已分享了路由配置、跳转、原理、完整的效果演示gif以及源码,而且是多 module 项目演示的,算是路由 ARouter 的入门,还没配置使用的可以先去看看。本文的内容主要涉及如下两个:路由拦截器使用module 独立运行前者在我们... ...查看全部
0
评论

Android Jetpack系列之Lifecycle lifecycle Android

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

Lifecycle介绍Lifecycle可以让某一个类变成Activity、Fragment的生命周期观察者类,监听其生命周期的变化并可以做出响应。Lifecycle使得代码更有条理性、精简、易于维护。Lifecycle中主要有两个角色:LifecycleOw... ...查看全部
0
评论

做一个透明的Dialog Activity dialog Android

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

做一个透明的Dialog Activity平时在很多软件中,肯定见到过从底部的弹窗,比如分享某个文件,从底部弹出的分享平台,大部分是通过PopupWindow 底部弹出实现,这次来讲一个不一样的。1. 什么是 Dialog Activity让Acti... ...查看全部
0
评论

Java多线程2 多个线程之间共享数据 kotlin Android

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

线程范围的共享变量多个业务模块针对同一个static变量的操作 要保证在不同线程中 各模块操作的是自身对应的变量对象public class ThreadScopeSharaData { private static int data = 0 ; ... ...查看全部