注册
环信即时通讯云

环信即时通讯云

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

环信开发文档

环信FAQ

环信FAQ

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

RTE开发者社区

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

技术讨论区

技术交流、答疑
资源下载

资源下载

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

iOS Library

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

Android Library

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

java中的IO、NIO、Okio socket Android

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

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

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

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

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

Android Jetpack系列之Lifecycle lifecycle Android

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

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

做一个透明的Dialog Activity dialog Android

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

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

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

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

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

Kotlin是如何帮助你避免内存泄漏的? kotlin

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

本文的代码位置在github.com/marcosholga…中的kotlin-mem-leak分支上。 我是通过创建一个会导致内存泄漏的Activity,然后观察其使用Java和Kotlin编写时的表现来进行测试的。 其中Java代码如下: public c... ...查看全部
0
评论

建议收藏!!Flutter状态管理插件哪家强?请看岛上码农的排行榜! 状态管理 Flutter

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

前言一路下来,Flutter 状态管理相关的文章写了有几十篇了,这是本人也没想到的结果。Flutter 的状态管理插件实在太多,感觉要深挖,可以继续写上几十篇。只是,这样写,怕是自己不累,看客都累了!😂😂😂授人以鱼不如授人以渔,本篇就专门对 Flutter 比... ...查看全部
0
评论

Flutter 入门与实战(九十三):使用 Animation 构建爱心三连动画 Flutter Animation

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

前言 我们开始 Flutter 动画相关篇章之旅,在应用中通过动效能够给用户带来更愉悦的体验,比较典型的例子就是一些直播平台的动效了,比如送火箭能做出来那种火箭发射的动效——感觉倍有面子,当然这是土豪的享受,我等码农只在视频里看过😂😂😂。本篇我们来介绍基于 A... ...查看全部
0
评论

RxHttp + Flow 三步搞定任意请求 RxHttp flow

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

1、前言 RxHttp 在之前的版本中,已提供了RxHttp + Await协程、RxHttp + RxJava两种请求方式,这一次,RxHttp 无缝适配了 Flow , RxHttp + Flow协程配合使用,使得请求更加简单,至此,RxHttp已集齐3架... ...查看全部
0
评论

了解Parcelable存在的意义 序列化 Android

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

Parcelable是Google团队专门为Android设计的序列化类,那在Java中已经有了Serializable序列化为什么还需要Parcelable呢?我们接下来就通过阅读Parcelable的实现类和源码来比较它们的区别,建议先对Serializa... ...查看全部
0
评论

高级UI事件分发、事件冲突处理 事件分发 Android

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

一、MotionEvent介绍二、事件的接收流程。可根据之前的结成介绍找到入口。viewRootImpl会对事件进行处理,首先找到DecorView,然后再找到activity再在dispatchTouchEvent()里处理。setView@ViewRoot... ...查看全部
0
评论

Android WebView H5 秒开方案总结 Android webview

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

为了满足跨平台和动态性的要求,如今很多 App 都采用了 Hybrid 这种比较成熟的方案来满足多变的业务需求。Hybrid 也叫混合开发,即半原生半 H5 的方式,通过 WebView 来实现需要高度灵活性的业务,在需要和 Native 做交互或者是调用特定... ...查看全部
0
评论

Flutter怎么样做国际化 Flutter

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

什么是国际化 国际化是指在设计软件时,将软件与特定语言及地区脱钩的过程。当软件被移植到不同的语言地区时,软件本身不用做内部工程上的改变或修正。 本地化则是指当移植软件时,加上与特定区域设置有关的资讯和翻译文件的过程。 国际化和本地化之间的区别虽然微妙,但却很重... ...查看全部
0
评论

Flutter 绘制番外篇 - 圆中取形 绘制

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

前言: 对一些有趣的绘制 技能和知识, 我会通过 [番外篇] 的形式加入《Flutter 绘制指南 - 妙笔生花》小册中,一方面保证小册的“与时俱进” 和 “活力”。另一方面,是为了让一些重要的知识有个 好的归宿。 一、正 N 边形的绘制 1. 正三角形绘制... ...查看全部
0
评论

Android 开发必知必会:Java 并发之三大性质、synchronized、volatile volatile synchronized

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

原子性 原子(atomic) 本意是“不能被进一步分割的最小粒子”,而原子操作(atomic operation) 意为“不可被中断的一个或一系列操作”。原子性则可以表示为:一个操作是不可中断的,要么全部执行成功要么全部执行失败,有着“同生共死”的感觉。 有序... ...查看全部
0
评论

【开源项目】Compose版SmartRefreshLayout,了解一下~ SmartRefreshLayout

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

下拉刷新是我们开发中的常见的需求,官方提供了SwipeRefreshLayout来实现下拉刷新,但我们常常需要定制Header或者Header与内容一起向下滚动,因此SwipeRefreshLayout往往不能满足我们的需求 在使用XML开发时,Github上... ...查看全部
0
评论

优雅地处理运行时权限请求 permission Android

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

前言从android 6.0(API 级别 23)开始,android引入了运行时权限,用户开始在应用运行时向其授予权限,而不是在应用安装时向其授予权限,如果应用的某项功能需要使用到受运行时权限保护的资源(例如相机、位置、麦克风等),但在运行该功能前没有动态地... ...查看全部
0
评论

Android混合开发快速上手入门 混合开发 Android

柳天明 发表了文章 • 905 次浏览 • 2021-10-08 16:00 • 来自相关话题

一 混合开发简介原生app :java/kotlin 纯原生写出的app;web app:web写出的app;hybird app:原生+web(通过webview)写出的app;当然,现在也有很多第三方混合开发框架以及简便的js桥,但是作为最基础的webvi... ...查看全部
0
评论

Glide源码解析 源码解析 Android

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

本次源码解析基于4.12.0,如有描述错误,请大佬们评论指出。一、Glide的用法 // RecyclerView中加载图片 @Override public void onBindViewHolder(PhotoViewHolder holder, int ... ...查看全部
0
评论

Android 架构之OkHttp源码解读(上) https Android

柳天明 发表了文章 • 1044 次浏览 • 2021-10-08 15:55 • 来自相关话题

前言在我们编写Android程序时,OkHttp已经成为了我们必不可少的部分,但我们往往知道OkHttp怎么用,不知其原理。在本篇中,我将通过如下方式带你深入其原理。OkHttp 介绍OkHttp 调用流程socket 连接池复用机制高并发请求队列:任务分发责... ...查看全部
0
评论

Retrofit解析 retrofit Android

柳天明 发表了文章 • 990 次浏览 • 2021-10-08 15:52 • 来自相关话题

本次源码解析基于2.9.0,如有描述错误,请大佬们评论指出。一、Retrofit的作用Retrofit基于okhttp,简化了okhttp请求接口的操作,而且适配Rxjava和kotlin的协程,但目前还没有适配kotlin的Flow,如果要适配,自己封装也是... ...查看全部
0
评论

Android 系统启动流程Init、Zygote、SystemService、ServiceManager 启动耗时 Android

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

Android系统启动流程操作系统本身也是一个程序,只是这个程序是用来管理我们 App 应用程序的。 从系统的角度上来讲,Android系统的启动过程可以分为 bootloader 引导,装载和启动 linux内核,启动Android系统。Android 系统... ...查看全部
0
评论

国庆渐变头像 View绘制 Android

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

国庆五星红旗渐变色头像五星红旗半透明头像教程国旗渐变头像国庆头像 国旗渐变 制作设置教程此生不悔入华夏 祝祖国繁荣昌盛!效果展示缘起群聊的时候, 有人说这个国旗渐变的效果, 我看了一下, 有点帅呢, 就研究了一下环境雷电模拟器: 4.0.63 Android版... ...查看全部
0
评论

Kotlin系列八:静态方法、infix函数、高阶函数的常见应用举例 kotlin

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

一 静态方法 java中定义静态方法只需要在方法前添加static即可; kotlin中有四种方式:object的单例类模式、companion object(可以局部写静态方法)、JvmStatic注解模式、顶层函数模式。 1.1 object 用objec... ...查看全部
0
评论

反射解决FragmentDialog内存泄露??‍♂️ FragmentDialog

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

怎么引发内存泄露的 这个DialogFragment的内存泄露几年前我就遇到了,但当时也稀里糊涂的,在网上搜索各种办法,看的我也是云里雾里,迷迷糊糊。在查阅大量资料之后,终于明白为什么会导致内存泄露了。 归根到底就是DialogFragment在给Dialog... ...查看全部
0
评论

图解 ArrayDeque 比 LinkedList 快 LinkedList ArrayDeque

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

接口 Deque 的子类 ArrayDeque ,作为栈使用时比 Stack 快,因为原来的 Java 的 Stack 继承自 Vector,而 Vector 在每个方法中都加了锁,而 Deque 的子类 ArrayDeque 并没有锁的开销。 接口 Dequ... ...查看全部
0
评论

Android -activity的布局加载流程 Activity Android

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

Activity 布局加载的流程首先在onCreate通过setContentView设置布局protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstan... ...查看全部
0
评论

设计模式-代理模式(Proxy Pattern) 设计模式 Android

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

定义为其他对象提供一种代理以控制对这个对象的访问按照代理的创建时期,代理类可以分为两种: 静态代理:由程序员创建代理类或特定工具自动生成源代码再对其编译。在程序运行前代理类的.class文件就已经存在了。动态代理:在程序运行时运用反射机制动态创建而成... ...查看全部
0
评论

Compose 仅50行代码轻松定制下滑刷新 compose

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

目前有一个正在进行的 Jetpack Compose中文手册 项目,旨在帮助开发者更好的理解和掌握Compose框架,目前仍还在开荒中,欢迎大家进行关注与加入! 这篇文章由本人撰写,目前文章已经发布到该手册中,欢迎进行查阅。 下滑刷新效果展... ...查看全部
0
评论

Flutter ListView懒加载(滑动不加载,停止滑动加载) ListView Flutter

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

前言:为了更好的减小网络的带宽,使得列表更加流畅,我们需要了解懒加载,也称延迟加载。 面试真题:flutter如何实现懒加载? 关于上一章的登录界面,各位属实难为我了,我也在求ui小姐姐,各位点点赞给我点动力吧~ 懒加载也叫延迟加载,指的是在长网页中延迟... ...查看全部
0
评论

为什么 Compose 没有布局嵌套问题? compose

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

前言 做过布局性能优化的同学都知道,为了优化界面加载速度,要尽可能的减少布局的层级。这主要是因为布局层级的增加,可能会导致测量时间呈指数级增长。 而Compose却没有这个问题,它从根本上解决了布局层级对布局性能的影响: Compose界面只允许一次测量。这意... ...查看全部
0
评论

Android-activity的启动流程 Activity kotlin Android

柳天明 发表了文章 • 819 次浏览 • 2021-09-26 15:43 • 来自相关话题

需要结合Application的启动流程。 juejin.cn/post/701209…//查看栈顶可见activity是否正等待 if (normalMode) { try { if (mStackSupervisor.at... ...查看全部
0
评论

Kotlin系列三:空指针检查 kotlin Android

柳天明 发表了文章 • 783 次浏览 • 2021-09-26 15:41 • 来自相关话题

Android系统上崩溃率最高的异常类型就是空指针异常(NullPointerException)。public void doStudy(Study study) { if (study != null) { study.readBo... ...查看全部
0
评论

Flutter 入门与实战(八十):使用GetX构建更优雅的页面结构 Flutter

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

前言 App 的大部分页面都会涉及到数据加载、错误、无数据和正常几个状态,在一开始的时候我们可能数据获取的状态枚举用 if...else 或者 switch 来显示不同的 Widget,这种方式会显得代码很丑陋,譬如下面这样的代码: if (PersonalC... ...查看全部
0
评论

落地西瓜视频埋点方案,埋点从未如此简单 埋点

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

前言 目前,几乎每个商用应用都有数据埋点的需求。你的 App 是怎么做埋点的呢,有遇到让你 “难顶” 的问题吗? 在这篇文章里,我将带你建立数据埋点的基本认识,还会介绍西瓜视频团队的前端埋点方案,最后为你带来我的落地实现 EasyTrack。如果能帮上忙,请... ...查看全部
0
评论

【Flutter 状态管理】第一论: 对状态管理的看法与理解 状态 Flutter

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

前言 由 编程技术交流圣地[-Flutter群-] 发起的 状态管理研究小组,将就 状态管理 相关相关话题进行为期 两个月 的讨论。小组将于两个月后解散,并发布相关讨论成果。 目前只有内定的 5 个人参与讨论,如果你对状态管理有什么独特的见解,或想参与其中。... ...查看全部
0
评论

Android 高级UI5 画笔Paint的基本用法 View绘制 Android

柳天明 发表了文章 • 958 次浏览 • 2021-09-24 11:20 • 来自相关话题

1.setStyle(Paint.Style style)设置画笔样式,取值有Paint.Style.FILL :填充内部Paint.Style.FILL_AND_STROKE :填充内部和描边Paint.Style.STROKE :仅描边代码实例:publi... ...查看全部
0
评论

android音视频基础 音视频 Android

柳天明 发表了文章 • 797 次浏览 • 2021-09-24 11:15 • 来自相关话题

一、编码目的编码的目的:压缩,各种音视频的编码方式就是为了让视频体积更小,有利于存储和传输。编码的核心四想就是去除冗余信息。二、编码思路1.空间冗余图像内部相邻元素之间存在较强的相关性,造成信息的冗余。(一块区域颜色一样)2.时间冗余相邻视频帧具有较大的相关性... ...查看全部
0
评论

Android 是怎么捕捉 java 异常的 异常

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

val default = Thread.getDefaultUncaughtExceptionHandler() Thread.setDefaultUncaughtExceptionHandler { t, e ->    //... ...查看全部
0
评论

Kotlin协程实现原理概述 协程

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

协程的顶层实现-CPS 现有如下代码: fun test(a: Int, b: Int) { // 求和 var result = a + b // 乘以2 result = result shl 1 // 加2 ... ...查看全部
0
评论

Flutter跨进程混合栈渲染的实践——子进程WebView Flutter webview

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

前言 首先祝大家中秋节快乐,而明天又要上班啦~ 哈哈哈。不过,立此之处,国庆可期矣~ 好了,书归正传,在此我想分享一下关于我在Flutter 安卓端的跨进程渲染所做的一些实践。 起因 随着项目不断的迭代,功能日益复杂,内存占用也与日俱增。在压测过程中,app的... ...查看全部
0
评论

Android性能优化—StrictMode的使用 StrictMode Android

柳天明 发表了文章 • 867 次浏览 • 2021-09-23 14:06 • 来自相关话题

概述StrictMode是Android开发过程中一个必不可缺的性能检测工具,他能帮助开发检测出一些不合理的代码块。策略分类StrictMode分为线程策略(ThreadPolicy)和虚拟机策略(VmPolicy)线程策略(ThreadPolicy)线程策略... ...查看全部
0
评论

写个图片加载框架 imageloader Android

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

假如让你自己写个图片加载框架,你会考虑哪些问题?首先,梳理一下必要的图片加载框架的需求:异步加载:线程池切换线程:Handler,没有争议吧缓存:LruCache、DiskLruCache防止OOM:软引用、LruCache、图片压缩、Bitmap像素存储位置... ...查看全部
0
评论

Android 高级UI 事件传递机制 事件分发 Android

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

1.View的事件分发流程dispatchTouchEvent():onTouchListener--->onTouch方法onTouchEventonClickListener--->onClick方法ListenerInfo static... ...查看全部
0
评论

Android View post 方法 post

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

解析View.post方法。分析一下这个方法的流程。 说起post方法,我们很容易联想到Handler的post方法,都是接收一个Runnable对象。那么这两个方法有啥不同呢? Handler的post方法 先来简单看一下Handler的post(Runna... ...查看全部
0
评论

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

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

前言 在页面中常常需要展示网络请求状态,以带来更好的用户体验,具体来说通常有加载中,加载失败,加载为空,加载成功等状态. 在XML中我们通常用一个ViewGroup封装各种状态来实现,那么使用Compose该如何实现这种效果呢? 本文主要介绍Compose如何... ...查看全部
0
评论

ViewPager2&TabLayout:拓展出一个文本选中放大效果 TabLayout ViewPager2

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

ViewPager2正式推出已经一年多了,虽然不如3那样新潮,但是也不如老前辈ViewPager那样有众多开源库拥簇,比如它的灵魂伴侣TabLayout明显后援不足,好在TabLayout自身够硬! ViewPager2灵魂伴侣是官方提供的: com.goog... ...查看全部
0
评论

Dialog 按照顺序弹窗 dialog Android

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

背景: 产品需求,在同一个页面弹窗需要按照顺序实现: 利用PriorityQueue现实,支持相同优先级,按插入时间排序,目前仅支持Activity,不支持Fragment代码: DialogPriorityUtil 实现优先级弹窗/** ... ...查看全部
0
评论

kotlin的协程异步,并发(同步) 协程 kotlin

柳天明 发表了文章 • 3180 次浏览 • 2021-09-22 13:57 • 来自相关话题

一:协程的异步任务private fun task(){ println("currentThread:${Thread.currentThread().name}, time:${System.currentTimeMillis()}, start"... ...查看全部
0
评论

Kotlin中的高阶函数,匿名函数、Lambda表达式 函数 kotlin

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

高阶函数、匿名函数与lambda 表达式 Kotlin 函数都是头等的,这意味着它们可以存储在变量与数据结构中、作为参数传递给其他高阶函数以及从其他高阶函数返回。可以像操作任何其他非函数值一样操作函数。 头等函数:头等函数(first-class functi... ...查看全部