注册
环信即时通讯云

环信即时通讯云

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

环信开发文档

环信FAQ

环信FAQ

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

RTE开发者社区

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

技术讨论区

技术交流、答疑
资源下载

资源下载

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

iOS Library

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

Android Library

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

移动架构 (七) 人人都能看得懂的组件化框架模型 架构 Android

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

移动架构 (一) 架构第一步,学会画各种 UML 图移动架构 (二) Android 中 Handler 架构分析,并实现自己简易版本 Handler 框架移动架构 (三) AMS 源码分析移动架构 (四) EventBus 3.1.1 源码分析及实现自己的轻... ...查看全部
0
评论

移动架构 (六) 轻量级进程间通信框架设计 架构 Android

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

移动架构 (一) 架构第一步,学会画各种 UML 图移动架构 (二) Android 中 Handler 架构分析,并实现自己简易版本 Handler 框架移动架构 (三) AMS 源码分析移动架构 (四) EventBus 3.1.1 源码分析及实现自己的轻... ...查看全部
0
评论

移动架构 (五) 仅仅对 Java Bean 的操作,就能完成对数据持久化 架构 Android

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

移动架构 (一) 架构第一步,学会画各种 UML 图移动架构 (二) Android 中 Handler 架构分析,并实现自己简易版本 Handler 框架移动架构 (三) AMS 源码分析移动架构 (四) EventBus 3.1.1 源码分析及实现自己的轻... ...查看全部
0
评论

移动架构 (四) EventBus 3.1.1 源码分析及实现自己的轻量级 EventBus 框架,根据 TAG 发送接收事件。 架构 Android

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

移动架构 (一) 架构第一步,学会画各种 UML 图移动架构 (二) Android 中 Handler 架构分析,并实现自己简易版本 Handler 框架移动架构 (三) AMS 源码分析EventBus 我相信大家不会很默认,应该也都在项目中使用过,虽然 ... ...查看全部
0
评论

移动架构 (三) AMS 源码分析 架构 Android

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

移动架构 (一) 架构第一步,学会画各种 UML 图移动架构 (二) Android 中 Handler 架构分析,并实现自己简易版本 Handler 框架AMS 介绍 ActivityManagerService 简称 AMS , 是 Android 内核中... ...查看全部
0
评论

移动架构 (二) Android 中 Handler 架构分析,并实现自己简易版本 Handler 框架 架构 Android

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

移动架构 (一) 架构第一步,学会画各种 UML 图Android 中消息机制Android 的消息机制主要指 Handler 的运行机制,先来看下 Handler 的一张运行架构图来对 Handler 有个大概的了解。Handler 消息机制图:Handle... ...查看全部
0
评论

移动架构 (一) 架构第一步,学会画各种 UML 图 架构 Android

王二蛋和他的张大花 发表了文章 • 1327 次浏览 • 2021-04-27 11:12 • 来自相关话题

注意: 文章中 UML 图开始用是 Windows PowerDesigner 工具,后来换电脑了用的 StarUML。 UML 定义 UML 是统一建模语言, 是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开... ...查看全部
0
评论

美团外卖Android Crash治理之路 Android

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

Crash率是衡量一个App好坏的重要指标之一,如果你忽略了它的存在,它就会愈演愈烈,最后造成大量用户的流失,进而给公司带来无法估量的损失。本文讲述美团外卖Android客户端团队在将App的Crash率从千分之三做到万分之二过程中所做的大量实践工作,抛砖引玉... ...查看全部
0
评论

Kotlin集成Arouter kotlin Android

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

使用场景 为了软件间的解耦操作,确保模块之间Activity的相互跳转不受影响。故引用阿里巴巴的Arouter。但官网上还没有针对Kotlin的集成说明,故在此记录下来 如何使用 gradle配置 目录配置,常量类配置 在Application中进行Ar... ...查看全部
0
评论

Object类和Any详解 kotlin Android

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

Any Any类是kotlin类结构的跟,每个kotlin都继承或间接继承于Any类 /** * The root of the Kotlin class hierarchy. Every Kotlin class has [Any] as a superc... ...查看全部
0
评论

Android修炼系列(五),写一篇超全面的annotation讲解(2) Android

维生素C 发表了文章 • 946 次浏览 • 2021-04-27 10:43 • 来自相关话题

自定义编译期注解(CLASS) 为什么要最后说编译期注解呢,因为相对前面的自定义注解来说,编译期注解有些难度,涉及到的东西比较多,但却是平时用到的最多的注解,因为编译期注解不存在反射,所以对性能没有影响。 本来也想用绑定 View 的例子讲解,但是现在这样的 ... ...查看全部
0
评论

Android修炼系列(五),写一篇超全面的annotation讲解(1) Android

维生素C 发表了文章 • 1027 次浏览 • 2021-04-27 10:42 • 来自相关话题

不学注解,也许是因为平时根本不需要没事自定义个这玩意玩,可随着Android形势越来越内卷,不学点东西是真不行了。而通过本文的学习,可以让你对于注解有个全面的认识,你会发现,小小的注解,大有可为,编不下去了.. 注解不同于注释,注释的作用是为了方便自己或者别... ...查看全部
0
评论

Android修炼系列(四),谈起泛型,大家都很佛性 Android

维生素C 发表了文章 • 855 次浏览 • 2021-04-27 10:37 • 来自相关话题

当我们new了一个对象,会发生什么呢?来段代码: public class Tested { public static int T = 10; public int c = 1; } 复制代码 类初始化 在编译期,编译器会将 Tested.j... ...查看全部
0
评论

移动应用遗留系统重构(6)- 测试篇 重构 Android

王二蛋和他的张大花 发表了文章 • 938 次浏览 • 2021-04-26 11:27 • 来自相关话题

前言 上一篇移动应用遗留系统重构(5)- 重构方法篇我们分享了进行依赖解除的重构流程。主要为4个操作步骤,识别内聚包、解除依赖、移动、验收。同时最后也提出了一个问题,重构时如何保证功能的正确性,不会修改出新问题? 其实这个问题容易但又不简单。容易的是把修改得功... ...查看全部
0
评论

移动应用遗留系统重构(5)- 重构方法篇 重构 Android

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

前言 上一篇 移动应用遗留系统重构(4)-分析篇  我们根据CloudDisk未来的架构,借助ArchUnit进行架构测试守护以及Intellij的Dependendencies分析出了按照未来的架构设计需要解决的异常依赖。 这一篇开始我们将分享进... ...查看全部
0
评论

移动应用遗留系统重构(4)-分析篇 重构 Android

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

前言 上一篇移动应用遗留系统重构(3)-示例篇我们介绍了CloudDisk的业务及代码现状。分享了“理想”(未来的架构设计)与“现实”(目前的代码现状),接下来在我们开始动手进行重构时,我们首先得知道往理想的设计架构演化,中间存在多少问题。一方面作为开始重构的... ...查看全部
0
评论

移动应用遗留系统重构(3)-示例篇 重构 Android

王二蛋和他的张大花 发表了文章 • 1051 次浏览 • 2021-04-26 11:24 • 来自相关话题

前言 上一篇移动应用遗留系统重构(2)-架构篇我们介绍了业内的优秀架构实践以及CloudDisk团队根据业务情况设计的分层架构。 这一篇我们将介绍一个浓缩版的示例,示例中我们设计了一些常见的异常依赖,后续的重构篇我们也将基于这个示例进行操作演示。为了简化代码及... ...查看全部
0
评论

移动应用遗留系统重构(2)-架构篇 重构 Android

王二蛋和他的张大花 发表了文章 • 1548 次浏览 • 2021-04-26 11:23 • 来自相关话题

前言 上一篇移动应用遗留系统重构(1)- 开篇我们分享了移动应用遗留系统常见的问题。那么好的实践或者架构设计是怎样的呢? 这一篇我们将整理业内优秀的移动应用架构设计,包含微信、淘宝、支付宝以及美团外卖。其中的部分产品也经历过遗留系统的重构改造,具有非常好的参考... ...查看全部
0
评论

移动应用遗留系统重构(1)- 开篇 重构 Android

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

前言 2008年9月22日,谷歌正式对外发布第一款Android手机。苹果公司最早于2007年1月9日的MacWorld大会上公布IOS系统。移动应用领域的发展已经超过10年。在App Annie 最新的移动市场报告中分享2020应用下载量已经达到2180亿次... ...查看全部
0
评论

这15个Android开源库,只有经常逛Github的才知道! Android

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

哈喽,大家好,我是西哥! 又到了大家最喜欢了的环节--开源库推荐,前面为大家推荐了我收藏的一些非常酷的开源库,受到大家一致好评,还没看过的,请移步至: 【Android珍藏】推荐10个炫酷的开源库 【开源推荐】进阶实战,从一款音乐播放器开始 【2020年Git... ...查看全部
0
评论

7个你应该知道的Gradle实用技巧 Android

王二蛋和他的张大花 发表了文章 • 1032 次浏览 • 2021-04-26 11:17 • 来自相关话题

前言 Gradle在android开发中应用地十分广泛,但相信有很多同学并不很了解gradle 本文主要介绍了使用gradle的一些实用技巧,帮助读者增进对这个熟悉的陌生人的了解 主要包括以下内容 1.Gradle依赖树查询 2.使用循环优化Gradle依赖... ...查看全部
0
评论

一文读懂 View.Post 的原理及缺陷 Android

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

很多开发者都了解这么一个知识点:在 Activity 的 onCreate 方法里我们无法直接获取到 View 的宽高信息,但通过 View.post(Runnable)这种方式就可以,那背后的具体原因你是否有了解过呢? 读者可以尝试以下操作。可以发现,除了通... ...查看全部
0
评论

一文读懂 View & Window 机制(二) Android

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

一文读懂 View & Window 机制(一)六、DecorView DecorView 是 FrameLayout 的子类,其 onResourcesLoaded 方法在拿到 PhoneWindow 传递过来的 layoutResource 后,就... ...查看全部
0
评论

一文读懂 View & Window 机制(一) Android

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

Android 系统中,Window 在代码层次上是一个抽象类,在概念上表示的是一个窗口。Android 中所有的视图都是通过 Window 来呈现的,例如 Activity、Dialog 和 Toast 等,它们实际上都是挂载在 Window 上的。大部分情... ...查看全部
0
评论

Android修炼系列(三),一个对象在JVM的生死存亡 Android

维生素C 发表了文章 • 941 次浏览 • 2021-04-26 10:35 • 来自相关话题

当我们new了一个对象,会发生什么呢?来段代码: public class Tested { public static int T = 10; public int c = 1; } 复制代码 类初始化 在编译期,编译器会将 Tested.j... ...查看全部
0
评论

Android修炼系列(二),Class类加载过程与类加载器 Android

维生素C 发表了文章 • 973 次浏览 • 2021-04-26 10:34 • 来自相关话题

在说类加载器和双亲委派模型之前,我们先来梳理下Class类文件的加载过程,JAVA虚拟机为了保证 实现语言的无关性,是将虚拟机只与“Class 文件”字节码 这种特定形式的二进制文件格式 相关联,而不是与实现语言绑定。类加载过程Class类... ...查看全部
0
评论

Android修炼系列(一),写一篇易懂的动态代理讲解 Android

维生素C 发表了文章 • 1182 次浏览 • 2021-04-26 10:34 • 来自相关话题

在说动态代理之前,先来简单看下代理模式。代理是最基本的设计模式之一。它能够插入一个用来替代“实际”对象的“代理”对象,来提供额外的或不同的操作。这些操作通常涉及与“实际”对象的通信,因此“代理”对象通常充当着中间人的角色。 代理模式 代理对象为“实际”对象提供... ...查看全部
0
评论

研究Android音视频-2-MediaCodec使用:YUV码流编码位MP4的示例 音视频 Android

维生素C 发表了文章 • 2270 次浏览 • 2021-04-26 10:31 • 来自相关话题

本文解决的问题 查看编解码器 录制YUV文件 将YUV文件编码为MP4视频格式 官方的示意图 数据流 input:给解码器输入需要解码或需要编码的数据流 output:解码器输出解码好或编码好的数据给客户端 MediaCodec内部采用异步的方式处理数... ...查看全部
0
评论

AdapterViewFlipper 图片/文字 轮播动画控件 Android

维生素C 发表了文章 • 966 次浏览 • 2021-04-25 14:43 • 来自相关话题

1. 问题/坑点 1.1 item宽高不生效问题 需要注意的是,AdapterViewFlipper 在布局时,宽高一定要用 match_parent 或者 具体dp值。 如果宽、高中使用了 wrap_content 时,会导致 AdapterViewFlip... ...查看全部
0
评论

Jcenter 停止服务,我哭了 —— 说一说我们的迁移方案 Android

维生素C 发表了文章 • 2110 次浏览 • 2021-04-25 14:42 • 来自相关话题

在今年的 2 月 3 日,Jcenter 运营官方发布一则通告称:包括 GoCenter、Bintray、JCenter 在内的多项软件包管理和分发服务都将停止运营。 UPDATE: To better support the community in thi... ...查看全部
0
评论

SparseArray解析 数组 Android

维生素C 发表了文章 • 947 次浏览 • 2021-04-25 14:41 • 来自相关话题

作者:btcw链接:https://juejin.cn/post/6954972237443104782来源:掘金著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
0
评论

iOS -- malloc分析(2) iOS开发

zuyu 发表了文章 • 1442 次浏览 • 2021-04-25 11:09 • 来自相关话题

2.10 segregated_band_grow分析boolean_t segregated_band_grow(nanozone_t *nanozone, nano_meta_admin_t pMeta, size_t slot_bytes, u... ...查看全部
0
评论

iOS —— malloc分析(1) iOS开发

zuyu 发表了文章 • 1343 次浏览 • 2021-04-25 11:06 • 来自相关话题

一、malloc_zone_t 分析这个家伙是一个非常重要的家伙,我们先来看看 malloc_zone_t 的结构typedef struct _malloc_zone_t { void *reserved1; /* RESER... ...查看全部
0
评论

OpenGL绘制正方形并让其移动 iOS开发

zuyu 发表了文章 • 920 次浏览 • 2021-04-25 10:56 • 来自相关话题

一.main函数里面的基本设置 在我们集成OpenGl之后,我们开始绘制正方形,首先我们倒入我们需要的东西:并且定义;main函数里面:     //设置当前工作目录,针对MAC OS X    /*... ...查看全部
0
评论

iOS Block浅谈 iOS开发

zuyu 发表了文章 • 1027 次浏览 • 2021-04-25 10:49 • 来自相关话题

一.Block的本质 block本质是一个OC对象,它里面有个isa指针,封装了函数调用环境的OC对象,封装了函数调用上下文的OC对象。 Block底层结构图查看Block源码: struct __block_impl { void*isa; int... ...查看全部
0
评论

OutOfMemoryError 可以被 try catch 吗? Android

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

目录 OutOfMemoryError 可以被 try catch 吗? 捕获 OutOfMemoryError 有什么意义? JVM 中哪一块内存不会发生 OOM ? OutOfMemoryError 可以被 try catch 吗? 群里小伙伴碰到的一... ...查看全部
0
评论

那你讲一下LeakCanary的原理 Android

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

今天来写一波内存泄漏工具LeakCanary的分析,也整理一下之前的笔记,废话不多说,源码整起来。 我用的1.5.1版本。 LeakCanary核心源码解析 看源码还是那句话,先找入口,顺着入口看主流程。 LeakCanary监听Activity的onDes... ...查看全部
0
评论

【android每日一问】怎么检测UI卡顿?(线上及线下) Android

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

什么是UI卡顿? 在Android系统中,我们知道UI线程负责我们所有视图的布局,渲染工作,UI在更新期间,如果UI线程的执行时间超过16ms,则会产生丢帧的现象,而大量的丢帧就会造成卡顿,影响用户体验。 UI卡顿产生的原因? 在UI线程中做了大量的耗时操作... ...查看全部
0
评论

Android逆向之https Android

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

介绍HTTP协议发展史、状态码、方法,整理了几乎所有常见的头部,讲述TLS的单向认证流程,Android中HTTPS抓包方法、防抓包策略以及绕过防抓包策略思路。 HTTP协议 超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协... ...查看全部
0
评论

zygote启动流程 Android

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

对zygote的理解 在Android系统中,zygote是一个native进程,是所有应用进程的父进程。而zygote则是Linux系统用户空间的第一个进程——init进程,通过fork的方式创建并启动的。 作用 zygote进程在启动时,会创建一个Dalv... ...查看全部
0
评论

Android 开发也要懂得数据结构 - SparseArray源码 Android

王二蛋和他的张大花 发表了文章 • 1093 次浏览 • 2021-04-23 16:58 • 来自相关话题

在之前分析 HashMap 就知道当容量达到 75% 时就需要扩容,那也就意味着 25% 的内存空间啥也不放,浪费掉了,为了解决这个问题,就有了 SparseArray。 本文章使用的是 JDK1.8 ,不同版本源码有差异。 可先食用 Android 开发也要... ...查看全部
0
评论

View.post()为什么能准确拿到View的宽高? Android

王二蛋和他的张大花 发表了文章 • 1014 次浏览 • 2021-04-23 16:53 • 来自相关话题

老生常谈之------View.post() 起因:之前一群里的哥们问 Handler.post() 为什么会在 Activity 的 onResume() 之后执行,我找了一遍之后并没有找到原因,后来从这个问题我想起其他的问题 view.post() 为什... ...查看全部
0
评论

ARouter原理与缺陷解析 Android

王二蛋和他的张大花 发表了文章 • 2335 次浏览 • 2021-04-23 16:51 • 来自相关话题

前言 本文主要包括以下内容 1.为什么需要ARouter及ARouter的基本原理 2.什么是APT及ARoutr注解是如何生效的? 3.ARouter有什么缺陷? 4.什么是字节码插桩,及如何利用字节码插桩优化ARouter? 为什么需要ARouter 我们... ...查看全部
0
评论

ConstraintLayout 约束布局 Android

柳天明 发表了文章 • 1334 次浏览 • 2021-04-23 15:13 • 来自相关话题

约束布局 约束布局概念 ConstraintLayout 可让您使用扁平视图层次结构(无嵌套视图组)创建复杂的大型布局。它与 RelativeLayout相似,其中所有的视图均根据同级视图与父布局之间的关系进行布局,但其灵活性要高于 RelativeLayou... ...查看全部
0
评论

Jetpack Compose TriStateCheckbox,Checkbox,Switch用法详解 Android jetpack

可口可乐 发表了文章 • 1524 次浏览 • 2021-04-23 15:03 • 来自相关话题

这篇文章我们会通过分析TriStateCheckbox,Checkbox,Switch 他们的代码,并且讲解他们每个属性的含义以及用法。 一:TriStateCheckbox 我们来看下TriStateCheckbox的代码 @Composable fun T... ...查看全部
0
评论

Kotlin - 内部类 kotlin Android

王二蛋和他的张大花 发表了文章 • 1033 次浏览 • 2021-04-23 13:32 • 来自相关话题

内部类 内部类就是定义在类内部的类,Kotlin 中的内部类大致分为 2 种: 静态内部类 非静态内部类 静态内部类 在某个类中像普通类一样声明即可,可以认为静态内部类与外部类没有关系,只是定义在了外部类"体内"而已,在使用静态内部类时需要"带上"外部类:... ...查看全部
0
评论

Kotlin - 区间与数组 kotlin Android

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

区间(Range) 区间是一个数学上的概念,表示范围。 区间的声明 Kotlin 中可以使用 .. 或 until 来声明区间: val range: IntRange = 0..1024 // 闭区间[0,1024],包括1024 val rangeExcl... ...查看全部
0
评论

【疯狂Android之Kotlin】关于Kotlin的高阶函数 kotlin Android

王二蛋和他的张大花 发表了文章 • 971 次浏览 • 2021-04-23 13:26 • 来自相关话题

高阶函数介绍 概念 相信许多同学都已经知道,所谓的高阶函数就是就是方法的参数 或 返回值 是函数类型的 函数 2. 通过例子说明 List 集合的 forEach( )循环 , 该方法就是接收一个高阶函数类型变量作为参数 , 有点类似于C/C++中的函数指... ...查看全部
0
评论

Android 开发经验谈:多线程你了解多少? 多线程 Android

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

 i= i+1;如上代码很简单,在单线程中i就等于i+1,执行不会出问题。但是在多线程中就会有问题。在说多线程之前我从别人的博客里摘了一段文字:大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入... ...查看全部
0
评论

Android添加联系人到通讯录 Android

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

本周项目中遇到了需要添加联系人或者添加到已有联系人的需求,联系人中需要保存的字段有很多,之前不太熟悉,在这里总结一下。 字段 联系人名字 名字不知道为什么,值设置了之后传过去没有,于是自己通过Intent最后又单独传了一次 // 联系人名字 ContentVa... ...查看全部