注册
环信即时通讯云

环信即时通讯云

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

环信开发文档

Demo体验

Demo体验

场景Demo,开箱即用
RTE开发者社区

RTE开发者社区

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

技术讨论区

技术交流、答疑
资源下载

资源下载

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

iOS Library

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

Android Library

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

Android项目中集成Flutter,实现秒开Flutter模块 Flutter模块

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

本文目标 成功在Android原生项目中集成Flutter Warning 从Flutter v1.1.7版本开始,Flutter module仅支持AndroidX应用 在release模式下Flutter仅支持以下架构:x86_64,armeabi-v7... ...查看全部
0
评论

Android启动优化之精确测量启动各个阶段的耗时 性能

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

1. 直观地观察应用启动时长 我们可以通过观察logcat日志查看Android应用启动耗时,过滤关键字"Displayed": ActivityTaskManager: Displayed com.peter.viewgrouptutorial/.acti... ...查看全部
0
评论

Android技术分享| 开源Demo any自习室布局架构 布局

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

需求 分析 布局分为横竖屏 涉及到视频窗口的大小、位置切换 通过观察需求原型图可得知,横竖屏切换可以简单分成7块区域 4个视频窗口 1个title,显示「XX号房间」 1个ViewGroup,放置「头像,头像,头像,N个观众」 另1个ViewGrou... ...查看全部
0
评论

Flutter 绘制番外篇 - 数学中的角度知识 Flutter

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

前言 对一些有趣的绘制技能和知识, 我会通过 [番外篇] 的形式加入《Flutter 绘制指南 - 妙笔生花》小册中,一方面保证小册的“与时俱进” 和 “活力”。另一方面,是为了让一些重要的知识有个 好的归宿。普通文章就像昙花一现,不管多美丽,终会被时间泯灭... ...查看全部
0
评论

Jetpack Compose入门篇-简约而不简单 compose

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

Compose简介 Jetpack Compose:利用声明式编程构建Android原生界面(UI)的 工具包 优势 更少的代码、代码量锐减 强大的工具/组件支持 直观的 Kotlin API 简单易用 Compose 编程思想 声明性编程范式:声... ...查看全部
0
评论

Fragment和Activity最佳通信方式 --- 共享ViewModel mvvm kotlin

柳天明 发表了文章 • 1647 次浏览 • 2021-09-08 15:22 • 来自相关话题

背景在日常开发中,我们经常会遇到Activity和Fragment之间通信的问题,其中之前最简单的办法是通过接口回调,因为fragment在attach时会拿到activity实例,在activity内部能拿到fragment实例,只需要定义接口让activi... ...查看全部
0
评论

(译)Kotlin中的Lateinits vs Nullables Android kotlin

柳天明 发表了文章 • 1037 次浏览 • 2021-09-08 15:04 • 来自相关话题

Kotlin给了我们很多简单明了的方式处理可空的变量,从而减少出问题的风险。当然前提是你正确地使用它。Lateinit修饰符通常来说,kotlin中所有不可空的属性都必须被正确地初始化。你可以用很多方式实现:在主构造器中,在初始化代码块中,直接在类里的属性声明... ...查看全部
0
评论

Jetpack Compose | Compose 滑动列表真的需要使用LazyColumn吗?No No No! Android jetpack

柳天明 发表了文章 • 2134 次浏览 • 2021-09-08 15:02 • 来自相关话题

Jetpack Compose | 控件篇(五)-- Spacer、LazyRow、LazyColumn & 让Column可滑动在上一篇中,我们完成了 Box、Row、Column 相关内容的学习,并且留下了一个疑问:"如果容器大... ...查看全部
0
评论

View实现3D效果 Android View绘制

柳天明 发表了文章 • 1195 次浏览 • 2021-09-08 15:00 • 来自相关话题

上次有文章介绍了利用传感器实现3D效果,根据加速度和重力传感器,计算xy偏移值,然后在移动view。1. 利用MotionLayout实现最开始想到的是用motionlayout也可以同样实现,但是最后发现我错了,motionlayout设置的view路径是固... ...查看全部
0
评论

Activity启动流程(基于AOSP 11) Android Activity

柳天明 发表了文章 • 1015 次浏览 • 2021-09-08 14:56 • 来自相关话题

当点击Launcher的App icon的时候,点击事件传递给ItemClickHandler的onClickAppShortcut,并最终调用到launcher.startActivitySafely->BaseDraggingActivity.sta... ...查看全部
0
评论

面试常问的ACTION_CANCEL到底何时触发,滑出子View范围会发生什么? 事件分发 Android

柳天明 发表了文章 • 1172 次浏览 • 2021-09-07 11:38 • 来自相关话题

看完本文你将了解:ACTION_CANCEL的触发时机滑出子View区域会发生什么?为什么不响应onClick()事件首先看一下官方的解释:/** * Constant for {@link #getActionMasked}: The current ge... ...查看全部
0
评论

Kotlin 写自定义 ViewGroup kotlin Android

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

Android 最近推行的 Compose ,有着 Kotlin 的加持,使写 UI 更加方便快速,不用担心布局嵌套,还是声明式 UI,那么 Compose 有这么多好处,原生写法还有 “出路” 吗?今天给大家分享一种非传统的自定义 ViewGroup 写法,... ...查看全部
0
评论

Android开发太难了:Java Lambda ≠ Android Lambda 源码分析 Android

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

我又来了,继续回归写作中,目标 1 月 2 篇。需要两篇才能阐述清楚Java Lambda ≠ Android Lambda,本篇为上篇,先解释清楚 Java Lambda 的一些知识。耐心阅读本文,你一定会有收获。一、Java Lambda 不等于 匿名内部... ...查看全部
0
评论

Android 11 绕过反射限制 反射 Android

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

1. 问题出现的背景腾讯视频在集成我们 replay sdk 的时候发现这么个错误,导致整个 db mock 功能完全失效。Accessing hidden field Landroid/database/sqlite/SQLiteCursor; ->m... ...查看全部
0
评论

初识 Jetpack Compose(三) :修饰符(Modifier) Modifier

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

Modifier modifier elements装饰或添加行为到 Compose UI 元素的有序的、不可变的集合。例如,背景、填充和单击事件侦听器装饰行、文本或按钮或向其添加行为。 正如其名,modifier主要为Compose组件提供修饰功能,包括... ...查看全部
0
评论

初识 Jetpack Compose(五) :组件-Text Text

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

一、Text Compose中的Text的作用与 xml 中的TextView无二,作用于最基本的文本显示。 1.属性 @Composable fun Text( // text: String, text: AnnotatedString, ... ...查看全部
0
评论

【开源项目】简单易用的Compose版骨架屏,了解一下~ compose

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

前言 骨架屏是页面的一个空白版本,通常会在页面完全渲染之前,通过一些灰色的区块大致勾勒出轮廓,待数据加载完成后,再替换成真实的内容。骨架屏加载中效果,比起传统的加载中效果可以提供更多信息,用户体验更好,因此也变得越来越流行 本文主要介绍如何使用Compose实... ...查看全部
0
评论

Retorfit + 协程机制 + MVVM 协程机制 mvvm Retorfit

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

协程是一种解决方案,是一种解决嵌套,并发、弱化线程概念的方案。能让多个任务之间更好的协作,能够以同步的方式编排代码完成异步工作,将异步代码写的像同步代码一样直观。 重点 协程的本质是方法的挂起与恢复:return + callback 协程是什么: ... ...查看全部
0
评论

Android正确的保活方案,不要掉进保活需求死循环陷进 保活

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

在开始前,还是给大家简单介绍一下,以前出现过的一些黑科技: 大概在6年前Github中出现过一个叫MarsDaemon,这个库通过双进程守护的方式实现保活,一时间风头无两。好景不长,进入 Android 8.0时代之后,这个库就废掉了。 最近2年Github上... ...查看全部
0
评论

Flutter实现"剑气"加载?️ 剑气

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

效果图知识点Animation【动效】Clipper/Canvas【路径裁剪/画布】Matrix4【矩阵转化】剑气形状我们仔细看一道剑气,它的形状是一轮非常细小的弯弯的月牙;在Flutter中,我们可以通过Clipper路径来裁剪出来,或者也可以通过canva... ...查看全部
0
评论

常见问题之webView 内存泄露 webview Android

柳天明 发表了文章 • 1906 次浏览 • 2021-09-03 09:54 • 来自相关话题

WebView内存泄露的原因:webView内部的一些线程持有activity对象,导致activity无法释放。继而内存泄漏。现象正常使用都会有内存泄露反复进出多次后:内存没有下降。 网上查了一些解决办法,主要有两种:解决方法一1.在Activit... ...查看全部
0
评论

ConstraintLayout2.0一篇写不完之KeyCycles的秘密 ConstraintLayout2.0 Android

柳天明 发表了文章 • 885 次浏览 • 2021-09-03 09:53 • 来自相关话题

KeyCycle与KeyFrame类似,但是又比KeyFrame复杂,复杂在于KeyFrame只是单帧,而KeyCycle则是在KeyFrame的基础上,增加了周期性的处理,所以,KeyCycle的核心就是周期,KeyCycle决定了在Scene中所有需要重复... ...查看全部
0
评论

Jetpack App Startup如何使用及原理分析 jetpack Android

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

1.App Startup是什么?来自 Google官方App Startup文档: App Startup 库提供了一种在应用程序启动时初始化组件的简单、高效的方法。Libary开发人员和App开发人员都可以使用App Startup来简化启动顺序... ...查看全部
0
评论

Jetpack生命周期管理 -Lifecycle实战及源码分析 jetpack Android

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

上次我们聊了 Android 触摸事件传递机制,这次我们来聊聊 Jetpack。具体地说是聊聊他的生命周期管理组件 LifeCycle,因为JetPack这个官方库还蛮大。这里不会再讲 Jetpack的前世今生,以及他的作用什么的。这里我们主要讲讲 LifeC... ...查看全部
0
评论

View的绘制流程 硬件渲染 View绘制 Android

柳天明 发表了文章 • 1159 次浏览 • 2021-09-03 09:49 • 来自相关话题

负责硬件渲染的主体对象ThreadedRenderer在整个绘制流程中做了哪几个步骤。1.enableHardwareAcceleration 实例化ThreadedRenderer2.initialize 初始化3.updateSurface 更新Surfa... ...查看全部
0
评论

Android 中java多线程编程及注意事项 多线程 Android

柳天明 发表了文章 • 969 次浏览 • 2021-09-02 13:54 • 来自相关话题

开启线程方式://方式1 public class MyThread extends Thread{ @Override public void run() { super.run(); //do my work... ...查看全部
0
评论

自定义View View绘制 Android

柳天明 发表了文章 • 833 次浏览 • 2021-09-02 13:49 • 来自相关话题

判断自己有没有掌握这个知识点,就模拟面试,看看你能不能给对方讲清楚1. 坐标系在Android坐标系中,以屏幕左上角作为原点,这个原点向右是X轴的正轴,向下是Y轴正轴。如下所示:除了Android坐标系,还存在View坐标系,View坐标系内部关系如图所示。2... ...查看全部
0
评论

你真的了解Handler吗? handler Android

柳天明 发表了文章 • 776 次浏览 • 2021-09-02 13:48 • 来自相关话题

Handler,一个面试中常问的高频词汇。大家想想这个知识点一般是怎么考察的?请解释一下Handler的原理?不不不,这个问题已经烂大街了,我要是面试官,我会这么问。我们知道在Handler中,存在一个方法叫 sendMessageDelay , 作用是延时发... ...查看全部
0
评论

View的绘制流程 onDraw View绘制 Android

柳天明 发表了文章 • 1083 次浏览 • 2021-09-02 13:45 • 来自相关话题

performTravel的方法走完onMeasure和onLayout流程后会走到下面这段代码段。 if (mFirst) { if (sAlwaysAssignFocus || !isInTouchMode()) { ... ...查看全部
0
评论

如何用Rust做AndroidUI渲染 Rust

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

大力智能客户端团队 西豢沝尔 背景 Rust优秀的安全性、媲美C++的性能以及对跨平台编译和外部语言(ffi)的支持使得其成为高性能跨平台库的上佳实现语言。然而,Rust是否可以在逻辑层之上进一步服务于一些通用性的UI渲染?我们大力智能客户端团队针对开... ...查看全部
0
评论

带倒计时RecyclerView的设计心路历程 RecyclerView

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

需求 目前有这样一个需求: 1 需要一个页面,展示多个条目 2 每个条目有独立的倒计时,倒计时结束后就删除此条目 3 每个条目上有删除按钮,点击可以删除该条目 4 列表上的条目类型是多样的 可行性分析 首先肯定是可以做的: ... ...查看全部
0
评论

在 Flutter 中探索 StreamBuilder StreamBuilder

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

原文 medium.com/flutterdevs… 正文 异步交互可能需要一个理想的机会来进行总结。偶尔,在周期结束之前可能会发出一些值。在 Dart 中,您可以创建一个返回 Stream 的容量,该容量可以在异步进程处于活动状态时发射一些值... ...查看全部
0
评论

带着问题学习Android中View的measure测量 measure

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

在进行研究measure原理之前,我们先带着这三个问题来想想。因为我是遇到这三个问题才开始研究measure的源码,所以我也把下面的三个问题当做引子。调用measure(int widthMeasureSpec, int heightMeasureSpec)方... ...查看全部
0
评论

kotlin协程最佳实践-android官网 协程

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

协程最佳实践 android官网地址 这些实践可以让你的程序在使用协程的时候更加的易扩展和易测试 1.注入调度器 不要在创建一个协程的时候或者调用withContext,硬编码来指定调度器 比如这样的 class NewsRepository { ... ...查看全部
0
评论

影响性能的 Kotlin 代码(一) kotlin

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

Kotlin 高级函数的特性不仅让代码可读性更强,更加简洁,而且还提高了生产效率,但是简洁的背后是有代价的,隐藏着不能被忽视的成本,特别是在低端机上,这种成本会被放大,因此我们需要去研究 kotlin 语法糖背后的魔法,选择合适的语法糖,尽量避免这些坑。 L... ...查看全部
0
评论

从android系统源码看java层的so加载。 so Android

柳天明 发表了文章 • 992 次浏览 • 2021-09-01 10:00 • 来自相关话题

理论基础我们在android开发项目过程中都必然会更so加载打交道,那么so加载在系统中的顺序和流程是怎样的,我们就有必要对这个加载过程进行熟悉了解掌握。so的加载是一种解析式装载,这与dex有一定区别,dex是先加载进行优化验证生成odex,再去解析odex... ...查看全部
0
评论

View的绘制流程 onLayout View绘制 Android

柳天明 发表了文章 • 905 次浏览 • 2021-09-01 09:58 • 来自相关话题

onLayout的原理 final boolean didLayout = layoutRequested && (!mStopped || mReportNextDraw); boolean triggerGlo... ...查看全部
0
评论

Java “优雅”地中断线程(原理篇) Thread Android

柳天明 发表了文章 • 1044 次浏览 • 2021-09-01 09:56 • 来自相关话题

前言之前有分析过如何优雅地中断线程,秉着"既要知其然,也要知其所以然"精神,本篇将从底层源码分析中断是如何工作的。 通过本篇文章,你将了解到:1、线程底层源码入口2、中断的作用3、Thread.sleep/Object.join/Object.wait 对中断... ...查看全部
0
评论

讲讲ViewGroup的setPersistentDrawingCache方法 ViewGroup Android

柳天明 发表了文章 • 894 次浏览 • 2021-09-01 09:53 • 来自相关话题

这是一篇采坑文章,灵感来源于博主某篇文章中与大佬的聊天前言记得在三年前,还在上一个学校,学生时代的时候,接过一个外包的Android单,里面有个需求是在一个Activity中根据用户的点击反复的执行两个动画以达到比较好的交互效果。当时在网上没有找到类似的效果,... ...查看全部
0
评论

Android 开发小总结 Android

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

1、Java 用FileReader 和 FileWriter 进行文件读写FileReader 和FileWriter是对文件进行读取和写入的;具体流程://文件路径 String path = Environment.getExternalStorageD... ...查看全部
0
评论

iOS 优雅的处理网络数据,你真的会吗?不如看看这篇. iOS开发

zuyu 发表了文章 • 937 次浏览 • 2021-08-31 17:18 • 来自相关话题

相信大家平时在用 App 的时候, 往往有过这样的体验,那就是加载网络数据等待的时间过于漫长,滚动浏览时伴随着卡顿,甚至在没有网络的情况下,整个应用处于不可用状态。那么我们该怎么去提高用户体验,保证用户没有漫长的等待感,还可以轻松自在的享受等待,对加载后的内容... ...查看全部
0
评论

Swift声明参考-超详细(下) iOS开发

zuyu 发表了文章 • 868 次浏览 • 2021-08-31 10:36 • 来自相关话题

枚举声明在你的程序里使用枚举声明来引入一个枚举类型。枚举声明有两种基本的形式,使用关键字enum来声明。枚举声明体使用从零开始的变量——叫做枚举事件,和任意数量的 声明,包括计算型属性,实例方法,静态方法,构造器,类型别名,甚至其他枚举,结构体,和类。枚举声明... ...查看全部
0
评论

Swift声明参考-超详细(上) iOS开发

zuyu 发表了文章 • 843 次浏览 • 2021-08-31 10:36 • 来自相关话题

一条声明可以在你的程序里引入新的名字和构造。举例来说,你可以使用声明来引入函数和方法,变量和常量,或者来定义 新的命名好的枚举,结构,类和协议类型。你也可以使用一条声明来延长一个已经存在的命名好的类型的行为。或者在你的 程序里引入在其他地方声明的符号。在swi... ...查看全部
0
评论

XCode 使用 PMD 扫描重复代码 iOS开发

zuyu 发表了文章 • 1421 次浏览 • 2021-08-31 10:27 • 来自相关话题

使用  HomeBrew 安装 PMDbrew install pmd在 Xcode 的 Build Phases 中,我们增加一个新的 Run Script#检测swi... ...查看全部
0
评论

ConstraintLayout2.0一篇写不完之嵌套滚动怎么滚 Android ConstraintLayout

柳天明 发表了文章 • 1026 次浏览 • 2021-08-31 09:56 • 来自相关话题

在ConstraintLayout1.x阶段,它主要提供的能力是对静态布局的支撑,那么到2.x之后,MotionLayout的拓展,让它对动态布局的支持有了进一步的优化,在1.x阶段不能实现的嵌套滚动布局布局方式,现在也就非常简单了。在没有Constraint... ...查看全部
0
评论

iOS AVPlayer的那些坑 iOS开发

zuyu 发表了文章 • 1212 次浏览 • 2021-08-30 21:45 • 来自相关话题

这次主要是总结和记录下视频播放遇到的坑,视频播放采用的是AVPlayer这个控件,语法大致如下: NSURL * url = [NSURL fileURLWithPath:@"视频地址"]; AVPlayerItem *playerItem = ... ...查看全部
0
评论

GPUImage recalculateViewGeometry卡UI线程的问题 iOS开发

zuyu 发表了文章 • 1076 次浏览 • 2021-08-30 21:43 • 来自相关话题

原因:更新xocde11.4之后发现GPUImage视频画面渲染特别慢,并且控制台输出如下信息:Main Thread Checker: UI API called on a background thread: -[UIView bounds] PID: 7... ...查看全部
0
评论

iOS-GPUImage实现美颜相机功能 iOS开发

zuyu 发表了文章 • 2038 次浏览 • 2021-08-30 21:41 • 来自相关话题

本文介绍了如何使用 GPUImage 来实现一个简单的相机。具体功能包括拍照、录制视频、多段视频合成、实时美颜、自定义滤镜实现等。前言AVFoundation 是苹果提供的用于处理基于时间的媒体数据的一个框架。我们想要实现一个相机,需要从手机摄像头采集数据,离... ...查看全部
0
评论

iOS 超隐匿的开发技巧 !!! iOS开发

zuyu 发表了文章 • 1059 次浏览 • 2021-08-30 21:35 • 来自相关话题

1、递归查看 view 的子视图(私有方法,没有代码提示)[self.view recursiveDescription]2、过滤字符串的特殊字符// 定义一个特殊字符的集合 NSCharacterSet *set = [NSCharacterSet char... ...查看全部
0
评论

自定义 UITableView 的 Cell 删除样式 iOS开发

zuyu 发表了文章 • 1121 次浏览 • 2021-08-30 21:31 • 来自相关话题

一、需求先说下我们的需求,在一个 tableView 中,左滑删除某个 cell 时,需要展示如下图所示的样式,浅灰色底色,橘红色 文字。1、修改删除按钮的文字修改删除按钮的文字很简单,只需要实现下面的方法:/... ...查看全部