注册
环信即时通讯云

环信即时通讯云

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

环信开发文档

环信FAQ

环信FAQ

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

RTE开发者社区

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

技术讨论区

技术交流、答疑
资源下载

资源下载

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

iOS Library

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

Android Library

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

浅谈Android插件化 插件化 Android

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

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

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

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

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

AndroidRoom库基础入门 Room

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

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

Android数据库—SQLite SQLlite

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

JAVA开发MQTT程序总结 MQTT

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

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

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

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

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

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

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

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

iOS Crash分析中的Signal iOS开发

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

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

iOS编译&链接 iOS开发

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

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

RSA概述 iOS开发

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

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

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

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

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

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

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

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

java设计模式:中介者模式 设计模式

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

前言在现实生活中,常常会出现好多对象之间存在复杂的交互关系,这种交互关系常常是“网状结构”,它要求每个对象都必须知道它需要交互的对象。例如,每个人必须记住他(她)所有朋友的电话;而且,朋友中如果有人的电话修改了,他(她)必须让其他所有的朋友一起修改,这叫作“牵... ...查看全部
0
评论

iOS Cateogry的深入理解&&initialize方法调用理解(二) iOS开发

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

上一篇文章我们讲到了load方法,今天我们来看看initialize新建项目,新建类(和上一篇文章所建的类相同,方便大家理解,具体的类相关关系可以看上一篇文章我的介绍)类结构图如下将原来的load方法换成initialize先告诉大家initialize方法调... ...查看全部
0
评论

iOS Cateogry的深入理解&&load方法调用&&分类重写方法的调用顺序(一) iOS开发

zuyu 发表了文章 • 820 次浏览 • 2021-06-04 10:58 • 来自相关话题

首先先看几个面试问题Cateogry里面有load方法么? load方法什么时候调用?load方法有继承么?1. 新建一个项目,并添加TCPerson类,并给TCPerson添加两个分类2.新建一个TCStudent类继承自TCPerson,并且给T... ...查看全部
0
评论

java设计模式:享元模式 设计模式

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

前言在面向对象程序设计过程中,有时会面临要创建大量相同或相似对象实例的问题。创建那么多的对象将会耗费很多的系统资源,它是系统性能提高的一个瓶颈。 例如,围棋和五子棋中的黑白棋子,图像中的坐标点或颜色,局域网中的路由器、交换机和集线器,教室里的桌子和凳子等。这些... ...查看全部
0
评论

java设计模式:桥接模式 设计模式

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

桥接模式的定义与特点桥接(Bridge)模式的定义如下:将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。 通过上面的讲解,我们能很好的感觉到桥接模式遵循了里氏替换原则和依赖倒置原则,最终实现了... ...查看全部
0
评论

你有原则么?懂原则么?想了解么?快看设计模式原则篇,让你做个有原则的程序员 设计模式

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

前言无论做啥,要想好设计,就得多扩展,少修改 开闭原则此原则是由”Bertrand Meyer”提出的。原文是:”Software entities should be open for extension,but closed for modificatio... ...查看全部
0
评论

华为手机升级HarmonyOS全攻略:公测&内测&线下升级 鸿蒙

阿花君霸占路人 发表了文章 • 962 次浏览 • 2021-06-03 16:07 • 来自相关话题

写在前面:本文旨在帮助社区各位小伙伴选择合适的渠道尽早升级HarmonyOS系统,深夜撸稿,还望三连支持一哈!!目前正在进行的升级活动:消费者公测、消费者内测、HarmonyOS体验官(线下)必要说明:所有消费者公测渠道最终都会跳转到花粉俱乐部;初期申请量巨大... ...查看全部
0
评论

FBKVOController - 面试聊到KVO如何有效的怒怼面试官! iOS开发

zuyu 发表了文章 • 1015 次浏览 • 2021-05-31 18:20 • 来自相关话题

1.系统KVO的问题2.FBKVOController优点3.FBKVOController的架构设计图4.FBKVOController源码详读5.FBKVOController总结一.系统KVO的问题当观察者被销毁之前,需要手动移除观察者,否则会出现程序异... ...查看全部
0
评论

没对象么?那就来了解Java创建对象详解 对象 Android

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

对象是对类的实例化。对象具有状态和行为,变量用来表明对象的状态,方法表明对象所具有的行为。Java 对象的生命周期包括创建、使用和清除,本文详细介绍对象的创建 Java虚拟机内存架构模型详解 1.使用new创建对象 使用new关键字创建对象应该是最常见的一种... ...查看全部
0
评论

iOS必备装X技能-NSOperationQueue 控制串行执行、并发执行 iOS开发

zuyu 发表了文章 • 1894 次浏览 • 2021-05-31 15:23 • 来自相关话题

 NSOperationQueue 控制串行执行、并发执行NSOperationQueue 创建的自定义队列同时具有串行、并发功能,那么他的串行功能是如何实现的?这里有个关键属性 maxConcurrentOperationCount,叫做... ...查看全部
0
评论

iOS面试-与面试官盘NSOperation、NSOperationQueue iOS开发

zuyu 发表了文章 • 734 次浏览 • 2021-05-31 15:14 • 来自相关话题

NSOperation、NSOperationQueue 是苹果提供给我们的一套多线程解决方案。实际上 NSOperation、NSOperationQueue 是基于 GCD 更高一层的封装,完全面向对象。但是比 GCD 更简单易用、代码可读性也更高。为什么... ...查看全部
0
评论

iOS开发 - 面试被问到内存概念怎么办? iOS开发

zuyu 发表了文章 • 775 次浏览 • 2021-05-31 14:48 • 来自相关话题

在早期的计算机中,程序是直接运行在物理内存上的,也就是说:程序在运行时访问的地址就是物理地址。这样也就是单运行的时候没有什么问题!可是,计算机会有多到程序、分时系统和多任务,当我们能够同时运行多个程序时,CPU的利用率将会比较高。那么有一个非常严重的问题:如何... ...查看全部
0
评论

多线程安全-iOS开发注意咯 iOS开发

zuyu 发表了文章 • 868 次浏览 • 2021-05-31 14:43 • 来自相关话题

正式因为多线程能够在时间片里被CPU快速切换,造就了以下优势资源利用率更好程序设计在某些情况下更简单程序响应更快但是并不是非常完美,因为多线程常常伴有资源抢夺的问题,作为一个高级开发人员并发编程那是必须要的,同时解决线程安全也成了我们必须要要掌握的基础原子操作... ...查看全部
1
评论

为了能够摸鱼,我走上了歧路 transform gradle Android

柳天明 发表了文章 • 1054 次浏览 • 2021-05-27 14:21 • 来自相关话题

前言 每天都是重复的工作,这样可不行,已经严重影响我的日常摸鱼,为了减少自己日常的开发时间,我决定走一条歧路,铤而走险,将项目中的各种手动埋点统计替换成自动化埋点。以后再也不用担心没时间摸鱼了~ 作为Android届开发的一员,今天我决定将摸鱼方案分享给大家,... ...查看全部
0
评论

[Android]使用函数指针实现native层异步回调 native Android

柳天明 发表了文章 • 877 次浏览 • 2021-05-25 14:32 • 来自相关话题

1. 前言 在上篇关于lambda表达式实现方式的文章中,有提到一个概念叫做MethodHandle,当时的解释是类似于C/C++的函数指针,但是文章发出后咨询友人的意见,发现很多人并不清楚函数指针是怎么用的,其实我本人也是只是知道这个概念,但是并没有实际使用... ...查看全部
0
评论

NestedScrollView嵌套滑动源码解读! 滑动 RecyclerView Android

柳天明 发表了文章 • 950 次浏览 • 2021-05-19 16:31 • 来自相关话题

1、前言滑动对于android来说,是一个必不可少;它不复杂,大家都知道在onTouchEvent中,让它滑动就完事了,说它复杂,其嵌套处理复杂;在本系列文章,最终是为了熟悉嵌套滑动机制;对于滑动,分为下面几篇文章来完成解读:滑动基础ScrollView滑动源... ...查看全部
0
评论

LinkedList源码解析(手把手带你熟悉链表) Android

可口可乐 发表了文章 • 963 次浏览 • 2021-05-14 15:04 • 来自相关话题

前言链表是常见的数据结构之一,但是很多同学只听说过链表,并不知道什么是链表,所以本文将会带领各位同学手写一个LinkedList,源码跟官方会有点不一样,不过思路是大概相同的,最后再带领大家读官方源码为了降低源码难度简化泛型代码,手写的LinkedList只能... ...查看全部
1
评论

Android修炼系列(十二),自定义一个超顺滑的回弹RecyclerView Android

维生素C 发表了文章 • 2034 次浏览 • 2021-05-14 10:50 • 来自相关话题

前面写了一个嵌套滑动框架和分析了ViewDragHelper的事件分发,本节主要自定义一个带有回弹效果的RecyclerView,看看事件和动画的配合,这在各大App中都比较常见了,效果如下: 实现 这是定义的回弹类:OverScrollRecycl... ...查看全部
1
评论

Android修炼系列(十一),强大的可拖拽工具类ViewDragHelper Android

维生素C 发表了文章 • 1179 次浏览 • 2021-05-14 10:49 • 来自相关话题

demo实现效果图见下,可自由拖拽的view,还在自己造轮子吗?使用系统androidx包(原v4)下的ViewDragHelper 几行代码即可搞定.. 实现 ViewDragHelper是用于编写自定义ViewGroup的工具类。它提供了许多有用... ...查看全部
0
评论

Android修炼系列(十),事件分发从手写一个嵌套滑动框架开始 Android

维生素C 发表了文章 • 950 次浏览 • 2021-05-14 10:48 • 来自相关话题

先放了一张效果图,是一个嵌套滑动的效果。博客的栗子我都上传到了gitHub上,感兴趣的可以下载看下。 在说代码之前,可以先看下最终的NestedViewGroup XML结构,NestedViewGroup内部包含顶部地图 MapView和滑动布局L... ...查看全部
0
评论

CocoaAsyncSocket源码Write(总结篇 二) iOS开发

zuyu 发表了文章 • 1099 次浏览 • 2021-05-13 14:58 • 来自相关话题

if (hasNewDataToWrite) { //拿到buffer偏移位置 const uint8_t *buffer = (const uint8_t *)[curr... ...查看全部
0
评论

CocoaAsyncSocket源码Write(总结篇) iOS开发

zuyu 发表了文章 • 1012 次浏览 • 2021-05-13 14:57 • 来自相关话题

我们切入口//写数据对外方法 - (void)writeData:(NSData *)data withTimeout:(NSTimeInterval)timeout tag:(long)tag { if ([data length] == 0) re... ...查看全部
0
评论

CocoaAsyncSocket源码Read(七) iOS开发

zuyu 发表了文章 • 906 次浏览 • 2021-05-13 14:50 • 来自相关话题

最后还是提下SSL的回调方法,数据解密的地方。两种模式的回调;Part7.两种SSL数据解密位置:1.CFStream:当我们调用:CFIndex result = CFReadStreamRead(readStream, buffer, defaultByt... ...查看全部
0
评论

CocoaAsyncSocket源码Read(六) iOS开发

zuyu 发表了文章 • 958 次浏览 • 2021-05-13 14:45 • 来自相关话题

讲了半天理论,想必大家看的有点不耐烦了,接下来看看代码实际是如何处理的吧:step1:从prebuffer中读取数据://先从提前缓冲区去读,如果缓冲区可读大小大于0 if ([preBuffer availableBytes] > 0) { ... ...查看全部
0
评论

CocoaAsyncSocket源码Read(五) iOS开发

zuyu 发表了文章 • 969 次浏览 • 2021-05-13 14:42 • 来自相关话题

在我们来看flushSSLBuffers方法之前,我们先来看看这个一直提到的全局缓冲区prebuffer的定义,它其实就是下面这么一个类的实例:Part3.GCDAsyncSocketPreBuffer的定义@interface GCDAsyncSocketP... ...查看全部
0
评论

CocoaAsyncSocket源码Read(四) iOS开发

zuyu 发表了文章 • 923 次浏览 • 2021-05-13 14:38 • 来自相关话题

前文讲完了两次TLS建立连接的流程,接着就是本篇的重头戏了:doReadData方法。在这里我不准备直接把这个整个方法列出来,因为就光这一个方法,加上注释有1200行,整个贴过来也无法展开描述,所以在这里我打算对它分段进行讲解:注:以下代码整个包括在这个方法定... ...查看全部
0
评论

CocoaAsyncSocket源码Read(三) iOS开发

zuyu 发表了文章 • 1042 次浏览 • 2021-05-13 14:35 • 来自相关话题

这里我们就讲讲几个重要的关于SSL的函数,其余细节可以看看注释:创建SSL上下文对象:sslContext = SSLCreateContext(kCFAllocatorDefault, kSSLServerSide, kSSLStreamType); ssl... ...查看全部
0
评论

CocoaAsyncSocket源码Read(二) iOS开发

zuyu 发表了文章 • 1332 次浏览 • 2021-05-13 14:31 • 来自相关话题

讲讲两种TLS建立连接的过程讲到这里,就不得不提一下,这里个框架开启TLS的过程。它对外提供了这么一个方法来开启TLS:- (void)startTLS:(NSDictionary *)tlsSettings 可以根据一个字典,去开启并且配置TLS,那么这个字... ...查看全部