环信即时通讯云

环信即时通讯云

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

环信开发文档

环信客服云

环信客服云

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

声网开发者社区

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

技术讨论区

技术交流、答疑
资源下载

资源下载

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

iOS Library

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

Android Library

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

网易换肤第二篇:本地换肤实现! 换肤

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

完整脑图:https://note.youdao.com/s/V2csJmYS Demo源码:点击下载 技术分析 我们在换肤的第一篇介绍了换肤的核心思想。就是在setContentView()之前调用setFactory2()。 第一篇的Demo利... ...查看全部
0
评论

网易换肤第一篇:换肤技术解密! 换肤

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

参考 脑图:https://note.youdao.com/s/Q1e6r39j 最终效果: Demo源码:点击跳转 技术点分析 换肤的核心思路主要是在setContentView()之前调用setFactory2()来收集控件属性,然后在F... ...查看全部
0
评论

带着问题学,协程到底是什么? 协程

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

前言 随着kotlin在Android开发领域越来越火,协程在各个项目中的应用也逐渐变得广泛 但是协程到底是什么呢? 协程其实是个古老的概念,已经非常成熟了,但大家对它的概念一直存在各种疑问,众说纷纷 有人说协程是轻量级的线程,也有人说kotlin协程其... ...查看全部
0
评论

Android 注解知多少 Android 注解

柳天明 发表了文章 • 21 次浏览 • 2021-06-18 17:28 • 来自相关话题

注解的概念什么是注解?注解又称为标注,用于为代码提供元数据。 作为元数据,注解不直接影响你的代码执行,但也有一些类型的注解实际上可以用于这一目的。可以作用在类、方法、变量、参数和包等上。 你可以通俗的理解成“标签”,这个标签可以标记类、方法、变量、参数和包。什... ...查看全部
0
评论

手把手带你走一遍Compose重组流程 jetpack compose

柳天明 发表了文章 • 6 次浏览 • 2021-06-18 17:27 • 来自相关话题

前言我们都知道 Jetpack Compose 是一套声明式 UI 系统,当 UI 组件所依赖的状态发生改变时会自动发生重绘刷新,这个过程被官方称作重组,前面已经有人总结过 Compose 的重组范围了,文章详见 《Compose 的重组会影响性能吗?聊一聊 ... ...查看全部
0
评论

偷师 - Kotlin 委托 委托、代理 kotlin

柳天明 发表了文章 • 9 次浏览 • 2021-06-18 17:25 • 来自相关话题

关键字synchorinzedCAS委托/代理模式委托要理解 kotlin-委托 的作用和用法首先要理解什么是委托。初看委托二字如果不太理解的话不妨转换成代理二字。委托模式和代理模式是一种设计模式的两种称呼而已。委托/代理模式代理模式,字面... ...查看全部
0
评论

Flutter IM跨端架构设计和实现 IM Flutter

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

作者:闲鱼技术——祈晴1. 闲鱼IM现状闲鱼IM框架构建于2016-2017年,期间多次迭代升级导致历史包袱累积多,后经IM界面Flutter化,造成架构更复杂,开发层面总结闲鱼当前架构主要存在如下几个问题:•研发效率较低:当前架构开发需求涉及到Android... ...查看全部
0
评论

Jetpack—架构组件—App Startup jetpack Android

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

App Startup介绍作用这是官网的截图,大意就是 App Startup 是一种用来在 app 启动时候规范初始化数据的 library。同时使用 App Startup 可以解决我们平时滥用 ContentProvider 导致的启动变慢问题。还有一点... ...查看全部
0
评论

SpannableStringBuiler封装Kotlin SpannableStringBuiler kotlin Android

柳天明 发表了文章 • 20 次浏览 • 2021-06-17 15:08 • 来自相关话题

前言SpannableStringBuilder和SpannableString功能基本一样,不过SpannableStringBuilder可以拼接,主要是通过setSpan来实现各种效果,主要的方法如下:start: 指定Span的开始位置 end: 指定... ...查看全部
0
评论

APP路由框架与组件化简析 组件化

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

前端开发经常遇到一个词:路由,在Android APP开发中,路由还经常和组件化开发强关联在一起,那么到底什么是路由,一个路由框架到底应该具备什么功能,实现原理是什么样的?路由是否是APP的强需求呢?与组件化到底什么关系,本文就简单分析下如上几个问题。 路由... ...查看全部
0
评论

浅谈Android插件化 插件化

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

一、认识插件化 1.1 插件化起源 插件化技术最初源于免安装运行 Apk的想法,这个免安装的 Apk 就可以理解为插件,而支持插件的 app 我们一般叫 宿主。 想必大家都知道,在 Android 系统中,应用是以 Apk 的形式存在的,应用都需要安装才... ...查看全部
0
评论

二阶贝塞尔仿微信扔炸弹动画 动画

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

前言 新出来的微信炸屎动画很多人都玩过了,所以先仿照一个微信扔炸弹的动画,在后续有时间会做一个完整的,效果如下: 具体实现 其中最麻烦的就是绘制抛物线了,爆炸的效果只是播放了一个动画,另外微信貌似都是通过代码绘制的,可能不是动画,奈何没有人家那技术,... ...查看全部
0
评论

Android App唤醒丶保活详解 , 以及代码展示 保活

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

安卓进程进程保活分为: 黑色保活,白色保活,灰色保活 黑色保活: 可以说黑色保活,可以通过网络切换,拍照,拍视频,开机,利用系统产生的广播唤醒app,接入三方的sdk也会唤醒一些app,如支付宝,微信..........这样的话,这样的话,不敢想象系统存... ...查看全部
0
评论

iOS - Block 准备面试必须了解的东西 iOS面试题 iOS开发

zuyu 发表了文章 • 26 次浏览 • 2021-06-16 14:36 • 来自相关话题

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

iOS - Metal的认识 iOS开发

zuyu 发表了文章 • 13 次浏览 • 2021-06-16 14:33 • 来自相关话题

一.Metal 简介        在 WWDC 2014 上,Apple为游戏开发者推出了新的平台技术 Metal,该技术能够为 3D 图像提高 10 倍的渲... ...查看全部
0
评论

iOS KVO底层原理&&KVO的isa指向 iOS开发

zuyu 发表了文章 • 21 次浏览 • 2021-06-16 14:29 • 来自相关话题

一.简单复习一下KVO的使用定义一个类,继承自NSObject,并添加一个name的属性#import <Foundation/Foundation.h> NS_ASSUME_NONNULL_BEGIN @interface TCPerson ... ...查看全部
0
评论

View系列:事件分发(一) 事件分发 Android

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

基础相关View坐标系MotionEvent当用户触摸屏幕的时候,产生Touch事件,事件的相关细节(发生触摸的位置、时间等)被封装成MotionEvent对象事件类型具体动作MotionEvent.ACTION_DOWN按下View(所有事件的开始)Moti... ...查看全部
0
评论

View系列:动画 动画 Android

柳天明 发表了文章 • 17 次浏览 • 2021-06-16 14:15 • 来自相关话题

View Animation(视图动画)最大的特点是:并没有改变目标实际的属性(宽高/位置等)。例如:移动后,点击原来的位置出发点击事件;移动后再旋转,还是回到原来的位置旋转。Tween Animation(补间动画)锚点可以是数值、百分数、百分数p三种样式,... ...查看全部
0
评论

「Java 路线」| 关于泛型能问的都在这里了(含Kotlin) 泛型

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

前言 泛型(Generic Type) 无论在哪一门语言里,都是最难语法的存在,细节之繁杂、理解之困难,令人切齿; 在这个系列里,我将总结Java & Kotlin中泛型的知识点,带你从 语法 & 原理 全面理解泛型。追求简单易懂又... ...查看全部
0
评论

「Java 路线」| 反射机制(含 Kotlin) 反射

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

前言 反射(Reflection)是一种在运行时 动态访问类型信息 的机制。 在这篇文章里,我将带你梳理Java & Kotlin反射的使用攻略,追求简单易懂又不失深度,如果能帮上忙,请务必点赞加关注! 目录 1. 类型系统... ...查看全部
0
评论

Java | JDK 动态代理的原理其实很简单 动态代理

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

前言 代理模式(Proxy Pattern)也称委托模式(Delegate Pattern),是一种结构型设计模式,也是一项基础设计技巧; 其中,动态代理有很多有意思的应用场景,比如 AOP、日志框架、全局性异常处理、事务处理等。这篇文章,我们主要... ...查看全部
0
评论

这一次,彻底搞懂SparseArray实现原理 SparseArray

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

最近在整理SparseArray这一知识点的时候,发现网上大多数SparseArray原理分析的文章都存在很多问题(可以说很多作者并没有读懂SparseArray的源码),也正因此,才有了这篇文章。我们知道,SparseArray与ArrayMap是Andro... ...查看全部
0
评论

iOS 音视频编解码----H264-I(关键)帧,B/P(参考)帧 iOS开发

zuyu 发表了文章 • 15 次浏览 • 2021-06-16 11:44 • 来自相关话题

内容元素1.图像(image)2.音频(Audio)3.元素信息(Meta-data)编码格式1.Video:H2642.Audio:AAC3.容器封装:MP4/MOV/FLV/RM/RMVB/AVIH264当我们需要对发送的视频文件进行编码时,只要是H264... ...查看全部
0
评论

OpenGLES/(GLKit/CoreAnimation正方体的渲染+旋转) iOS开发

zuyu 发表了文章 • 32 次浏览 • 2021-06-15 16:28 • 来自相关话题

一.Hello--OpenGLES                 OpenGL可用于渲染... ...查看全部
0
评论

OpenGl纹理相关常用API iOS开发

zuyu 发表了文章 • 21 次浏览 • 2021-06-15 16:26 • 来自相关话题

一.原始图像数据1.像素包装:                    图像存储空间=图像的宽度*图像的高度*每个像素的字节数二.相关函数(加粗部分表示常用)2.... ...查看全部
0
评论

iOS---webView相关及原生和web的交互 iOS开发

zuyu 发表了文章 • 23 次浏览 • 2021-06-15 16:20 • 来自相关话题

webView的基本应用,监听加载进度,返回上一页,异常处理web调用原生:处理跳转到指定的原生页面,拦截跳转其他app,添加app白名单,拦截通用链接跳转,js注入,关闭webView原生调用web:获取webView的标题等web原生互相调用:web获取a... ...查看全部
0
评论

iOS开发宏定义整理 iOS开发

zuyu 发表了文章 • 19 次浏览 • 2021-06-15 16:13 • 来自相关话题

宏定义今天整理一些自己的项目里零零碎碎的东西,发现有些东西太杂太乱,就是定义的全局.这里一个宏,那边一个#define,发现这东西会左右引用,很影响性能下面分开介绍各种宏:Macros.h这里面就放各各宏的头文件,然后在PCH文件中引用着这个一个头文件就OK#... ...查看全部
0
评论

iOS开发必备 - iOS 的锁 iOS开发

zuyu 发表了文章 • 26 次浏览 • 2021-06-15 16:11 • 来自相关话题

这次主要想解决这些疑问:锁是什么?为什么要有锁?锁的分类问题为什么 OSSpinLock 不安全?解决自旋锁不安全问题有几种方式为什么换用其它的锁,可以解决 OSSpinLock 的问题?自旋锁和互斥锁的关系是平行对立的吗?信号量和互斥量的关系信号量和条件变量... ...查看全部
0
评论

浅谈Android插件化 插件化 Android

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

一、认识插件化1.1 插件化起源插件化技术最初源于免安装运行 Apk的想法,这个免安装的 Apk 就可以理解为插件,而支持插件的 app 我们一般叫 宿主。想必大家都知道,在 Android ... ...查看全部
0
评论

APP路由框架与组件化简析 路由 Android

柳天明 发表了文章 • 45 次浏览 • 2021-06-15 15:05 • 来自相关话题

前端开发经常遇到一个词:路由,在Android APP开发中,路由还经常和组件化开发强关联在一起,那么到底什么是路由,一个路由框架到底应该具备什么功能,实现原理是什么样的?路由是否是APP的强需求呢?与组件化到底什么关系,本文就简单分析下如上几个问题。路由的概... ...查看全部
0
评论

AndroidRoom库基础入门 Room

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

一、前言     Room 是 Android Jetpack 的一部分。在 Android 中数据库是SQLite数据库,Room 就是在SQLite上面提供了一个抽象层,通过 Room 既能流畅地访问数据库,又能充... ...查看全部
0
评论

Android数据库—SQLite SQLlite

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

Android数据库—SQLite 不适合存储大规模数据 用来存储每一个用户各自的信息 在线查看数据库方法 Android Studio查看SQLite数据库方法大全 从前我使用的是stetho方法来查看数据库,因为是外国网站,所以需要翻... ...查看全部
0
评论

总是听到有人说AndroidX,到底什么是AndroidX? AndroidX

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

Android技术迭代更新很快,各种新出的技术和名词也是层出不穷。不知从什么时候开始,总是会时不时听到AndroidX这个名词,这难道又是什么新出技术吗?相信有很多朋友也会存在这样的疑惑,那么今天我就来写一篇科普文章,向大家介绍AndroidX的前世今生。An... ...查看全部
0
评论

【面试专题】Android屏幕刷新机制 面试

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

这个问题在其他人整理的面试宝典中也有提及,一般来说都是问View的刷新,基本上从ViewRootImpl的scheduleTraversals()方法开始讲就可以了。之前看别人面试斗鱼的面经,被问到了Android屏幕刷新机制、双缓冲、三缓冲、黄油计划,然后我... ...查看全部
0
评论

java设计模式:备忘录模式 设计模式

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

前言 备忘录模式能记录一个对象的内部状态,当用户后悔时能撤销当前操作,使数据恢复到它原先的状态。 定义 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。该模式又叫快照模式。 ... ...查看全部
0
评论

java设计模式:访问者模式 设计模式

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

前言 访问者模式是一种将数据操作和数据结构分离的设计模式。 定义 将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元素提供多种访问方式。它将对数据的操作与数据结构... ...查看全部
0
评论

面试题:介绍一下 LiveData 的 postValue ? Livedate

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

很多面试官喜欢会就一个问题不断深入追问。 例如一个小小的 LiveData 的 postValue,就可能会问出一连串问题: postValue 与 setValue postValue 与 setValue 一样都是用来更新 LiveData 数据... ...查看全部
0
评论

基于FakerAndroid的一次il2cpp游戏逆向精修实录!!!零汇编零二进制纯编码实现 逆向

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

~~~格式优化整理~~~1、下载FakerAndroid工具包 下载地址:https://github.com/Efaker/FakerAndroid/releases 2、cmd切换到FakerAndroid.jar平级目录  [工具包和... ...查看全部
1
评论

iOS离屏渲染的触发原理与躲在背后的性能优化 iOS开发

zuyu 发表了文章 • 46 次浏览 • 2021-06-08 17:29 • 来自相关话题

一.带着问题了解什么是离屏渲染?        在iOS开发中,我们经常会写到这样的代码:btn.layer.cornerRadius = 50;btn.clipsToBounds = YE... ...查看全部
0
评论

iOS------OpenGL 图形专有名词与坐标解析 iOS开发

zuyu 发表了文章 • 36 次浏览 • 2021-06-08 17:24 • 来自相关话题

一.OpenGL简介OpenGL(英语:Open Graphics Library,译名:开放图形库或者“开放式图形库”)是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。它将计算机的资源抽象称为⼀个个OpenGL的对象,对这些资源的操... ...查看全部
0
评论

一文速览苹果WWDC 2021:没有硬件发布的夜晚,iOS 15才是主角 WWDC

zuyu 发表了文章 • 252 次浏览 • 2021-06-08 10:41 • 来自相关话题

WWDC 2021在成功把M1芯片置入到了iPad Pro之后,我们最关心的另一个问题是,iPad Pro是否能有足够的软件生态来最大程度的利用好这颗高性能核心。当你带着这样的期待去收看这届的WWDC 2021之时,你会发现自己的全部期待都落了空——iPadO... ...查看全部
0
评论

面试官问我:如何使用LeakCanary排查Android中的内存泄露,看我如何用漫画装逼! 内存泄漏

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

1)在项目的build.gradle文件添加: debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5' releaseCompile 'com.squareup.leakc... ...查看全部
0
评论

JAVA开发MQTT程序总结 MQTT

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

JAVA开发MQTT总结MQTT 介绍它是一种 机器之间通讯 machine-to-machine (M2M)、物联网 Internet of Things (IoT)常用的一种轻量级消息传输协议适用于网络带宽较低的场合包含发布、订阅模式,通过一个代理服务器(... ...查看全部
0
评论

MQTT在Android端的使用详解以及MQTT服务器搭建、Paho客户端使用 MQTT

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

前言最近的项目中使用了MQTT来接收后端推送过来的一些数据,这篇文章来介绍下Android端如何集成使用,关于MQTT相关介绍将不再阐述。由于光写代码不实践的接收下数据很难验证我们写的是否正确,所以我将简单介绍下如何配置个MQTT服务端,并使用工具来发送数据到... ...查看全部
0
评论

学习MQTT协议,与设备沟通 MQTT

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

概述 MQTT是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和制动器之间通信的桥梁。 MQTT协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控... ...查看全部
0
评论

iOS Crash分析中的Signal iOS开发

zuyu 发表了文章 • 25 次浏览 • 2021-06-07 10:45 • 来自相关话题

下面是一些信号说明SIGHUP本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端不再关联。登录Linux时,系统会分配给登录用户一个终端(Session)。在这个终端运行的... ...查看全部
0
评论

iOS编译&链接 iOS开发

zuyu 发表了文章 • 45 次浏览 • 2021-06-07 10:42 • 来自相关话题

对于平常的应用程序开发,我们很少需要关注编译和链接过程。我们平常Xcode开发就是集成的的开发环境(IDE),这样的IDE一般都将编译和链接的过程一步完成,通常将这种编译和链接合并在一起的过程称为构建,即使使用命令行来编译一个源代码文件,简单的一句gcc he... ...查看全部
0
评论

RSA概述 iOS开发

zuyu 发表了文章 • 40 次浏览 • 2021-06-07 10:35 • 来自相关话题

RSA概述首先看这个加密算法的命名.很有意思,它其实是三个人的名字.早在1977年由麻省理工学院的三位数学家Rivest、Shamir 和 Adleman一起提出了这个加密算法,并且用他们三个人姓氏开头字母命名.RSA加密算法是一种非对称加密算法,其玩法打破了... ...查看全部
0
评论

java设计模式:命令模式 设计模式

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

前言在软件开发系统中,“方法的请求者”与“方法的实现者”之间经常存在紧密的耦合关系,这不利于软件功能的扩展与维护。例如,想对方法进行“撤销、重做、记录”等处理都很不方便,因此“如何将方法的请求者与实现者解耦?”变得很重要,命令模式就能很好地解决这个问题。 在现... ...查看全部
0
评论

Java设计模式:迭代器模式 设计模式

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

前言在现实生活以及程序设计中,经常要访问一个聚合对象中的各个元素,如“数据结构”中的链表遍历,通常的做法是将链表的创建和遍历都放在同一个类中,但这种方式不利于程序的扩展,如果要更换遍历方法就必须修改程序源代码,这违背了 “开闭原则”。 既然将遍历方法封装在聚合... ...查看全部