注册
环信即时通讯云

环信即时通讯云

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

环信开发文档

环信FAQ

环信FAQ

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

RTE开发者社区

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

技术讨论区

技术交流、答疑
资源下载

资源下载

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

iOS Library

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

Android Library

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

Android常见图形绘制方式 UI Android

技术精选柳天明 发表了文章 • 844 次浏览 • 2021-07-02 11:40 • 来自相关话题

图形绘制概述Android平台提供丰富的官方控件给开发者实现界面UI开发,但在实际业务中经常会遇到各种各样的定制化需求,这必须由开发者通过自绘控件的方式来实现。通常Android提供了Canvas和OpenGL ES两种方式来实现,其中Canvas借助于And... ...查看全部
0
评论

使用Jetpack Compose完成自定义手势处理 jetpack Android

技术精选柳天明 发表了文章 • 917 次浏览 • 2021-07-02 11:38 • 来自相关话题

概述Jetpack Compose 为我们提供了许多手势处理 Modifier,对于常见业务需求来说已足够我们使用了,然而如果说我们对手势有定制需求,就需要具备自定义手势处理的能力了。通过使用官方所提供的基础 API 来完成各类手势交互需求,触摸反馈基础 AP... ...查看全部
0
评论

Gradle实战2:微信Tinker项目中的tinker-patch-gradle-plugin模块解析 gradle Android

Android Library柳天明 发表了文章 • 1204 次浏览 • 2021-07-02 11:36 • 来自相关话题

引言上一篇,我们学习了《微信Tinker项目中的maven-publish封装》,了解到了在一个成熟项目中,maven相关gradle的通用封装,进而巩固前面学习的gradle相关理论知识接下来,我们将对Tinker项目中的tinker-patch-gradl... ...查看全部
0
评论

将构建配置从 Groovy 迁移到 KTS kotlin Android

技术精选柳天明 发表了文章 • 1178 次浏览 • 2021-07-02 10:53 • 来自相关话题

将构建配置从 Groovy 迁移到 KTS前言作为Android开发习惯了面向对象编程,习惯了IDEA提供的各种辅助开发快捷功能。那么带有陌生的常规语法的Groovy脚本对于我来说一向敬而远之。Kotlin DSL的出现感觉是为了我们量身定做的,因为采用 Ko... ...查看全部
0
评论

老生新谈,从OkHttp原理看网络请求 okhttp

技术精选王二蛋和他的张大花 发表了文章 • 794 次浏览 • 2021-07-02 09:39 • 来自相关话题

OkHttp作为一个网络请求框架,地位是不言而喻的,研究它的好处就在于能够将TCP、HTTP、HTTPS等这些基础的网络知识实例化,抽象变为形象。 读完这篇文章您将了解到: OkHttp的整体请求结构; 责任链模式下各个拦截器的实现细节与职责; ... ...查看全部
0
评论

性能优化一分钟定位Android启动耗时问题 启动耗时

技术精选王二蛋和他的张大花 发表了文章 • 934 次浏览 • 2021-07-02 09:36 • 来自相关话题

前言 Tencent Matrix默认无法监测Application冷启动的耗时方法,本文介绍了如何改造Matrix支持冷启动耗时方法监测。让你一分钟就能给App启动卡顿号脉。 1. 接入Tencent Matrix 1.1 在你项目根目录下的 grad... ...查看全部
0
评论

【开源项目】利用环信IM开发的一款兴趣社交APP——相约国粹 开源项目

开源项目zuyu 发表了文章 • 1717 次浏览 • 2021-07-01 16:02 • 来自相关话题

项目背景 相约国粹是一个集结国内名著有声书,国粹欣赏以及外国著名音乐为主题 供用户欣赏 蕴含了古典文化的传播,教育,欣赏等 我们将每一种资源(比如论语)都单独开设群聊用户们可以根据喜欢的资源将志同道合的朋友欢聚一堂进行线上畅聊讨论运行说明&... ...查看全部
0
评论

Android APT 系列 (一):APT 筑基之反射 apt Android

技术精选柳天明 发表了文章 • 918 次浏览 • 2021-07-01 14:27 • 来自相关话题

前言很高兴遇见你~这又是一个新的系列,灵感来源于最近做的一次布局优化,我们知道:Android 中少量的系统控件是通过 new 的方式创建出来的,而大部分控件如 androidx.appcompat.widget 下的控... ...查看全部
0
评论

Android APT 系列 (二):APT 筑基之注解 apt Android

技术精选柳天明 发表了文章 • 812 次浏览 • 2021-07-01 14:24 • 来自相关话题

前言很高兴遇见你~在本系列的上一篇文章中,我们对反射一些常用的知识进行了讲解,还没有看过上一篇文章的朋友,建议先去阅读 Android APT 系列 (一):APT 筑基之反射。接下来我们看下 Java 注解Github Demo 地址 ,... ...查看全部
0
评论

Android APT 系列 (三):APT 技术探究 apt Android

技术精选柳天明 发表了文章 • 1026 次浏览 • 2021-07-01 14:23 • 来自相关话题

前言很高兴遇见你~在本系列的上一篇文章中,我们对注解进行了讲解,还没有看过上一篇文章的朋友,建议先去阅读 Android APT 系列 (二):APT 筑基之注解。至此,关于 Apt 基础部分我们都讲完了,接下来就正式进入 APT 技术的学习Github De... ...查看全部
0
评论

Android APT 系列 (四):APT 实战应用 apt Android

技术精选柳天明 发表了文章 • 1029 次浏览 • 2021-07-01 14:22 • 来自相关话题

前言很高兴遇见你~在本系列的上一篇文章中,我们对 APT 技术进行了讲解,还没有看过上一篇文章的朋友,建议先去阅读 Android APT 系列 (三):APT 技术探究。接下来,我们就使用 APT 技术来进行实战应用。Github Demo 地址 , 大家可... ...查看全部
0
评论

使用Jetpack Compose完成自定义手势处理 手势 jetpack

技术精选柳天明 发表了文章 • 819 次浏览 • 2021-07-01 14:19 • 来自相关话题

概述Jetpack Compose 为我们提供了许多手势处理 Modifier,对于常见业务需求来说已足够我们使用了,然而如果说我们对手势有定制需求,就需要具备自定义手势处理的能力了。通过使用官方所提供的基础 API 来完成各类手势交互需求,触摸反馈基础 AP... ...查看全部
0
评论

Linux - 远程操作 Linux iOS开发

技术精选zuyu 发表了文章 • 734 次浏览 • 2021-06-30 19:12 • 来自相关话题

shotdown命令,默认表示1分钟后关机.命令格式:$shutdown [选项] <参数>参数示例一分钟以后关机$shutdown 立刻关机$shutdown now 在今天的21:30关机$shutdown 21:30 10分钟以后关机$s... ...查看全部
0
评论

Linux简介 iOS开发

技术精选zuyu 发表了文章 • 937 次浏览 • 2021-06-30 19:07 • 来自相关话题

Linux 内核以及发行版Linux内核(kernel)操作系统内核是指大多数操作系统的核心部分。它由操作系统中用于管理存储器、文件、外设和系统资源的那些部分组成。操作系统内核通常运行进程,并提供进程间的通信。Linux 内核版本又分为 稳定版&nb... ...查看全部
0
评论

汇编-函数本质(下) iOS开发

技术精选zuyu 发表了文章 • 1167 次浏览 • 2021-06-30 19:01 • 来自相关话题

函数的返回值一般是一个指针,不会超过8字节。寄存器就完全够用了。如果要返回一个结构体类型超过字节。下面的例子(结构体占用字节):汇编代码:str这里没有使用作为返回值,而是使用了栈空间。8字节,也会保存在栈中返回(上一个函数栈空间)struct str { ... ...查看全部
0
评论

汇编-函数本质(上) iOS开发

iOS Libraryzuyu 发表了文章 • 2260 次浏览 • 2021-06-30 19:00 • 来自相关话题

栈函数调用栈恢复后数据并不销毁,拉伸栈空间后会先覆盖再读取。内存读写指令⚠️:读/写 数据都是往高地址读/写,也就是放数据从高地址往低地址放。比如读取16字节的数据,给的地址是0x02,那么读取的就是0x02和0x03。str(store register)指... ...查看全部
0
评论

汇编-基本概念 iOS开发

iOS Libraryzuyu 发表了文章 • 1388 次浏览 • 2021-06-30 18:33 • 来自相关话题

在逆向开发中,非常重要的一个环节就是静态分析。对于逆向iOS app来说,一个APP安装在手机上面的可执行文件本质上是二进制文件。因为iPhone手机本质上执行的指令是二进制。是由手机上的CPU执行的,静态分析是建立在分析二进制上面。汇编语言的发展机器语言由0... ...查看全部
0
评论

iOS越狱 iOS开发

技术精选zuyu 发表了文章 • 2626 次浏览 • 2021-06-30 18:20 • 来自相关话题

一、概述越狱(jailBreak),通过iOS系统安全启动链漏洞,从而禁止掉信任链中负责验证的组件。拿到iOS系统最大权限ROOT权限。iOS系统安全启动链当启动一台iOS设备时,系统首先会从只读的ROM中读取初始化指令,也就是系统的引导程序(事实上所有的操作... ...查看全部
0
评论

什么是库(Library)? iOS开发

技术精选zuyu 发表了文章 • 1771 次浏览 • 2021-06-30 18:10 • 来自相关话题

常见库文件格式:.a,.dylib,.framework,.xcframework,.tdb什么是库(Library)?库(Library)本质上就是一段编译好的二进制代码,加上头文件就可以供别人使用。应用场景?某些代码需要给别人使用,但是不希望别人看到源码,... ...查看全部
0
评论

Mac终端快捷键 iOS开发

技术精选zuyu 发表了文章 • 1672 次浏览 • 2021-06-30 17:55 • 来自相关话题

0
评论

Xcode多环境配置 iOS开发

技术精选zuyu 发表了文章 • 1126 次浏览 • 2021-06-30 17:52 • 来自相关话题

Xcode多环境配置一共有3种形式:TargetSchemexcconfigProject:包含了项目所有的代码、资源文件、所有信息。(一个项目是多个project的集合)Target:对指定代码和资源文件的具体构建方式。(指定某些代码如何生成ipa包,类似打... ...查看全部
0
评论

llvm优化alloc iOS开发

技术精选zuyu 发表了文章 • 943 次浏览 • 2021-06-30 17:42 • 来自相关话题

为什么调用alloc最终调用了objc_alloc?objc源码中探索分析在源码中我们点击alloc会进入到+ (id)alloc方法,但是在实际调试中却是先调用的objc_alloc,系统是怎么做到的呢?可以看到在这个方法中进行了imp的重新绑定将alloc... ...查看全部
0
评论

OC alloc 底层探索 iOS开发

技术精选zuyu 发表了文章 • 840 次浏览 • 2021-06-30 17:32 • 来自相关话题

一、alloc对象的指针地址和内存有如下代码://alloc后分配了内存,有了指针。 //init所指内存地址一样,init没有对指针进行操作。 HPObject *hp1 = [HPObject alloc]; HPObject *hp2 = [hp1 in... ...查看全部
1
评论

【开源项目】声网Agora+环信IM实现的社交APP---CircleLive 开源项目

开源项目CircleLive 发表了文章 • 1593 次浏览 • 2021-06-29 19:02 • 来自相关话题

CircleLive分享,遇见,Live分享自己絮语,心情,碎碎念,在Live中遇见共鸣。技术支持1、Agora互动直播SDK多人音视频互动2、Agora云信令实时消息通信,Live过程的消息分发3、环信IM 支持,建立好有关系,会话主要功能1、发布和浏览心情... ...查看全部
0
评论

【开源项目】用环信IM实现的公益APP--宝贝回家Baby back home 开源项目

开源项目admin 发表了文章 • 1717 次浏览 • 2021-06-29 18:13 • 来自相关话题

项目背景有时,只一瞬间没回头,生命中的最重要就消失不见。 这是电影《亲爱的》中一句最经典的台词,看完整个电影,就会明白失去孩子的父母有多无助,拐卖孩子的人贩子有多可恨。 当今社会通过网络平台,短视频,404页面等寻亲信息曝光,很多热心群众都自发参与帮助走失儿童... ...查看全部
0
评论

OC 对象、位域、isa iOS开发

技术精选zuyu 发表了文章 • 788 次浏览 • 2021-06-29 17:55 • 来自相关话题

一、对象的本质1.1 clang1.1.1clang 概述Clang是一个C语言、C++、Objective-C语言的轻量级编译器。源代码发布于BSD协议下。 Clang将支持其普通lambda表达式、返回类型的简化处理以及更好的处理constexp... ...查看全部
0
评论

Core Image 和视频 iOS开发

技术精选zuyu 发表了文章 • 954 次浏览 • 2021-06-29 17:43 • 来自相关话题

在这篇文章中,我们将研究如何将 Core Image 应用到实时视频上去。我们会看两个例子:首先,我们把这个效果加到相机拍摄的影片上去。之后,我们会将这个影响作用于拍摄好的视频文件。它也可以做到离线渲染,它会把渲染结果返回给视频,而不是直接显示在屏幕上。总览当... ...查看全部
0
评论

使用 Swift 进行函数式信号处理 iOS开发

技术精选zuyu 发表了文章 • 944 次浏览 • 2021-06-29 17:40 • 来自相关话题

作为一个和 Core Audio 打过很长时间交道的工程师,苹果发布 Swift 让我感到兴奋又疑惑。兴奋是因为 Swift 是一个为性能打造的现代编程语言,但是我又不是非常确定函数式编程是否可以应用到 “我的世界”。幸运的是,很多人已经探索和克服了这些问题,... ...查看全部
0
评论

【开源项目】用环信IM实现的一款教学助手 开源项目

开源项目admin 发表了文章 • 1997 次浏览 • 2021-06-29 16:17 • 来自相关话题

教学助手开发环境:Tools : Android Studio 4.1.2os : windows 10code : kotlin配置文件:appId 目录 com.kangaroo.studentedu.app.appIdappCe(证书) 目录 com.k... ...查看全部
0
评论

Kotlin 源码 | 降低代码复杂度的法宝 源码分析 kotlin

技术精选柳天明 发表了文章 • 805 次浏览 • 2021-06-29 15:12 • 来自相关话题

随着码龄增大,渐渐意识到团队代码中的最大的敌人是“复杂度”。不合理的复杂度是降低代码质量,增加沟通成本的元凶。Kotlin 在降低代码复杂度方面有着诸多法宝。这一篇就以两个常见的业务场景来剖析下简单和复杂的关系。若要用一句话概括这关系,我最喜欢这一句:“一切简... ...查看全部
0
评论

Kotlin 协程 | CoroutineContext 为什么要设计成 indexed set?(一) 协程 kotlin

技术精选柳天明 发表了文章 • 1047 次浏览 • 2021-06-29 15:09 • 来自相关话题

CoroutineContext是 Kotlin 协程中的核心概念,它是用来干嘛的?它由哪些元素组成?它为什么要这样设计?这篇试着分析源码以回答这些问题。 indexed set 既是 set 又是 map? CoroutineContext的定义如下: /*... ...查看全部
0
评论

Compose Column控件讲解并且实现一个淘宝商品item的效果 compose jetpack Android

技术精选柳天明 发表了文章 • 973 次浏览 • 2021-06-28 17:19 • 来自相关话题

前情提要本篇文章主要对 Compose 中的 Column 进行使用解析,文章结束会使用 Column 和 Row 配合实现一个淘宝商品 Item 的效果,最终效果预览:如果您对 Column 的用法比较娴熟,可以直接看最后一节的内容Column 简单说明Co... ...查看全部
0
评论

Android 布局打气筒 (一):玩转 LayoutInflater layoutinflater Android

技术精选柳天明 发表了文章 • 1101 次浏览 • 2021-06-25 13:57 • 来自相关话题

前言很高兴遇见你~今天准备和大家分享的是 LayoutInflater,我给它取名:布局打气筒,很形象,其实就是根据英文翻译过来的😂。我们知道气球打气筒可以给气球打气从而改变它的形状。而布局打气筒的作用就是给我们的 Xml 布局打气让它变成一个个 View 对... ...查看全部
0
评论

通俗易懂的Android屏幕刷新机制 vsync Android

技术精选柳天明 发表了文章 • 2826 次浏览 • 2021-06-25 13:56 • 来自相关话题

前言我们买手机的时候经常听说这个手机多少多少HZ刷新率。目前手机大多都是60HZ,现在有的手机都到144HZ的高刷新率了。这个刷新率指标是干什么的呢?屏幕又是如何将数据显示到Android手机屏幕上的呢?玩游戏时的卡顿是怎么形成的? 基于对这些问题的好奇,小研... ...查看全部
0
评论

OpenGL ES 文字渲染 OpenGL ES OpenGL

技术精选柳天明 发表了文章 • 1409 次浏览 • 2021-06-25 13:54 • 来自相关话题

在音视频或 OpenGL 开发中,文字渲染是一个高频使用的功能,比如制作一些酷炫的字幕、为视频添加水印、设置特殊字体等等。实际上 OpenGL 并没有定义渲染文字的方式,所以我们最能想到的办法是:将带有文字的图像上传到纹理,然后进行纹理贴图。本文分别介绍下在应... ...查看全部
0
评论

Android 第三方RoundedImageView设置各种圆形、方形头像 RoundedImageView

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

Android 自定义CoolImageView实现QQ首页背景图片动画效果一.第三方RoundedImageView1.在Android Studio中,可进入模块设置中添加库依赖。 进入Module结构设置添加库依赖 ,输入Rounde... ...查看全部
0
评论

Android之CircleImageView使用 CircleImageView

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

文章大纲一、什么是CircleImageView二、代码实战三、项目源码下载一、什么是CircleImageView  圆角 ImageView,在我们的 App 中这个想必是太常见了,也许我们可以有无数种展示圆角图片的方法,但是 CircleImageVie... ...查看全部
0
评论

移动端强大的富文本编辑器richeditor-android 富文本编辑器

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

通常我们使用富文本编辑器都是在H5端实现,但是如果你遇到在移动端发表文章的功能,那么richeditor-android这套框架可以轻松为你实现,不需要再使用大量的控件进行拼凑! 功能表如下图所示: 引入richeditor-android ... ...查看全部
0
评论

Android加载离线和网络git gif图片

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

本文介绍如何将android-gif-drawable集成到项目中,并且如何使用android-gif-drawable加载离线和网络Gif动图。 android-gif-drawable的集成 在线集成 Github上相关教程,也比较简单,将依赖添加到... ...查看全部
0
评论

Andorid进阶二:LeakCanary源码分析,从头到尾搞个明白 leakCanary Android

技术精选柳天明 发表了文章 • 956 次浏览 • 2021-06-24 16:55 • 来自相关话题

四,ObjectWatcher 保留对象检查分析我们转到 ObjectWatcher 的 expectWeaklyReachable 方法看看@Synchronized override fun expectWeaklyReachable( watched... ...查看全部
0
评论

Andorid进阶一:LeakCanary源码分析,从头到尾搞个明白 leakCanary Android

技术精选柳天明 发表了文章 • 2019 次浏览 • 2021-06-24 16:54 • 来自相关话题

"内存优化会不会?知道怎么定位内存问题吗?"面试官和蔼地坐在小会议室的一侧,亲切地问有些拘谨地小张。"就是...那个,用LeakCanary 检测一下泄漏,然后找到对应泄漏的地方,把错误的代码改一下,没回收的引用回收掉,优化下长短生命周期线程的依赖关系吧""那... ...查看全部
0
评论

Android Compose 初探! jetpack compose Android

技术精选柳天明 发表了文章 • 2183 次浏览 • 2021-06-24 16:53 • 来自相关话题

使用前的准备工作android studio Arctic Fox版本或更新的版本如果是一个新项目,可以在创建的时候,新建一个Empty Compose Activity在module的build.gradle文件中添加android { buildF... ...查看全部
0
评论

Android 安卓超级强劲的轻量级数据库ObjectBox,快的飞起 数据库

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

文章目录 ObjectBox 引入ObjectBox 简单的代码栗子 生成和创建数据库 ObjectBox初始化 基本操作 - 增 基本操作 - ... ...查看全部
0
评论

简阅-一个以Kotlin实现的第三方聚合阅读App开源啦 阅读器

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

简阅(SimpleRead)以Kotlin实现的简单纯净的阅读软件,主要使用到MVP+RxJava+Retrofit+RxLifecycle+Glide+GreenDao等技术软件开发背景简阅是我学习安卓开发的第一个项目,最初是使用传统的MVC模式,然后一步步... ...查看全部
0
评论

Android资源冲突检测插件 插件

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

背景 之前我们写了一篇定义关于如何定义Gradle插件,有兴趣的朋友可以看一下,今天我们就来简单讲一个自定义Gradle插件的实战Android项目Module间资源冲突检测的Gradle插件。对应的使用方法和源码已经在GitHub给出Android资源冲突检... ...查看全部
0
评论

一文全面了解Android单元测试 单元测试

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

前言 众所周知,一个好的项目需要不断地打造,而一些有效的测试则是加速这一过程的利器。本篇博文将带你了解并逐步深入Android单元测试。 什么是单元测试? 单元测试就是针对类中的某一个方法进行验证是否正确的过程,单元就是指独立的粒子,在Android... ...查看全部
0
评论

全新 LeakCanary 2 ! 完全基于 Kotlin 重构升级 ! leakCanary

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

大概一年以前,写过一篇 LeakCanary 源码解析 ,当时是基于 1.5.4 版本进行分析的 。Square 公司在今年四月份发布了全新的 2.0 版本,完全使用 Kotlin 进行重构,核心原理并没有太大变化,但是做了一定的性能优化。在本文中,就让我们通... ...查看全部
0
评论

利用tess-two和cv4j实现简单的ocr功能 ocr

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

ocr 光学字符识别(英语:Optical Character Recognition, OCR)是指对文本资料的图像文件进行分析识别处理,获取文字及版面信息的过程。 Tesseract Tesseract是Ray Smith于1985到1995年间在惠普... ...查看全部
0
评论

[译] R8 优化:字节码常量操作 字节码操作 Android

技术精选柳天明 发表了文章 • 841 次浏览 • 2021-06-23 15:03 • 来自相关话题

1. Log Tags(日志标签)关于在类中定义标记字符串的最佳方法,有一个正在进行的争论(如果您甚至可以这样称呼它的话)。历史上有两种策略:字符串文本和对类调用 getSimpleName()。private static final String TAG ... ...查看全部
0
评论

CocoaPods 都做了什么 iOS开发

技术精选zuyu 发表了文章 • 894 次浏览 • 2021-06-23 15:01 • 来自相关话题

稍有 iOS 开发经验的人应该都是用过 CocoaPods,而对于 CI、CD 有了解的同学也都知道 Fastlane。而这两个在 iOS 开发中非常便捷的第三方库都是使用 Ruby 来编写的,这是为什么?先抛开这个话题不谈,我们来看一下 CocoaPods ... ...查看全部