注册
环信即时通讯云

环信即时通讯云

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

环信开发文档

Demo体验

Demo体验

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

RTE开发者社区

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

技术讨论区

技术交流、答疑
资源下载

资源下载

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

iOS Library

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

Android Library

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

Crash拦截器 - 让unrecognized selector消失 iOS开发

zuyu 发表了文章 • 910 次浏览 • 2021-08-20 15:07 • 来自相关话题

在本文中,我们将了解到如下内容:基础的消息转发流程unrecognized selector 拦截建议快速转发(Fast Forwarding)拦截unrecognized selector常规转发(Normal Forwarding)拦截unrecogniz... ...查看全部
0
评论

自定义KVO(四) iOS开发

zuyu 发表了文章 • 934 次浏览 • 2021-08-20 15:00 • 来自相关话题

四、KVOController上面Hook系统kvo相关方法的方式侵入太严重了,我们要做的其实只是需要对自己的调用负责而已,可以通过中间类来完成。这块有很多第三方框架,其中Facebook提供的KVOController是很优秀的一个框架。在这篇文章中将对这个... ...查看全部
0
评论

自定义KVO(三) iOS开发

zuyu 发表了文章 • 1274 次浏览 • 2021-08-20 14:59 • 来自相关话题

三、系统kvo容错处理在上面自定义kvo中处理了自动移除观察者逻辑,以及将回调使用block实现。在实际使用系统kvo的时候有以下问题:1.多次添加同一观察者会进行多次回调。2.某个属性没有被观察,在dealloc中移除会造成crash。3.多次移除观察者也会... ...查看全部
0
评论

自定义KVO(二) iOS开发

zuyu 发表了文章 • 793 次浏览 • 2021-08-20 14:48 • 来自相关话题

2.2.2 优化Hook逻辑上面在+ load中Hook dealloc方法是在NSObject分类中处理的,那么意味着所有的类的dealloc方法都被Hook了。显然这么做是不合理的。逻辑就是仅对需要的类进行Hook dealloc方法,所以将Hook延迟到... ...查看全部
0
评论

自定义KVO(一) iOS开发

zuyu 发表了文章 • 753 次浏览 • 2021-08-20 14:36 • 来自相关话题

kvo1.1 hp_addObserver由于只有属性才有效,所以先进行容错处理。1.1.2 isa_swizzle动态生成子类static NSString *const kHPKVOClassPrefix = @"HPKVONotifying_"; //... ...查看全部
0
评论

Android 11源码分析:从Activity的setContent方法看渲染流初识Window 源码分析 Android

柳天明 发表了文章 • 1120 次浏览 • 2021-08-20 11:35 • 来自相关话题

在上一篇的分析中,我们已经知道DecorView以下的部分弄的很明白了,但是对于DecorView是如何显示在我们的屏幕上还是不太清楚。所以接着分析DecorView与PhoneWindow与Activity具体是如何建立联系的。 我们先弄清楚两个问题:Dec... ...查看全部
0
评论

[Android翻译]解除对WindowManager的束缚 WindowManager Android

柳天明 发表了文章 • 1010 次浏览 • 2021-08-20 11:34 • 来自相关话题

原文地址:medium.com/androiddeve…原文作者:medium.com/@pmaggi发布时间:2021年8月20日 - 6分钟阅读为可折叠设备和大屏幕设备优化应用程序Android的屏幕尺寸正在迅速变化,随着平板电脑和可折叠设备的不断普及,了... ...查看全部
0
评论

Android组件化开发笔记 组件化 Android

柳天明 发表了文章 • 1047 次浏览 • 2021-08-20 11:33 • 来自相关话题

Modularization什么是组件化组件化就是将一个app拆分成不同的组件,每一个组件都是一个独立的module。组件化的意义组件化能降低耦合性,而耦合性低就能提高维护性。于此同时由于组件间是独立的,所以组件与组件间耦合性低,所以我们在团队开发的时候可以以... ...查看全部
0
评论

Android数据库高手秘籍,如何在Kotlin中更好地使用LitePal LitePal

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

前言 自从 LitePal 在 2.0.0 版本中全面支持了 Kotlin 之后,我也一直在思考如何让 LitePal 更好地融入和适配 Kotlin 语言,而不仅仅停留在简单的支持层面。 Kotlin 确实是一门非常出色的语言,里面有许多优秀的特性是在 ... ...查看全部
0
评论

从精准化测试看ASM在Android中的强势插入-JaCoco初探 ASM

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

在Java技术栈上,基本上提到覆盖率,大家就会想到JaCoco「Java Code Coverage的缩写」,几乎所有的覆盖率项目,都是使用JaCoco,可想而知它的影响力有多大,我们在Android项目中,也集成了JaCoco,官网文档如下。 docs.g... ...查看全部
0
评论

JetpackSplashscreen解析助力新生代IT农民工事半功倍 Splashscreen jetpack

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

公众号:ByteCode,致力于分享最新技术原创文章,涉及 Kotlin、Jetpack、译文、系统源码、 LeetCode / 剑指 Offer / 多线程 / 国内外大厂算法题 等等一系列文章。 Jetpack 家族迎来了一位新的成员 Core Sp... ...查看全部
0
评论

Flow操作符shareIn和stateIn使用须知 flow

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

Flow.shareIn 与 Flow.stateIn 操作符可以将冷流转换为热流: 它们可以将来自上游冷数据流的信息广播给多个收集者。这两个操作符通常用于提升性能: 在没有收集者时加入缓冲;或者干脆作为一种缓存机制使用。 注意 : 冷流 是按需创建的... ...查看全部
0
评论

Android超简单实现验证码倒计时,页面关闭不中断,杀掉进程也不中断 验证码 Android

柳天明 发表了文章 • 974 次浏览 • 2021-08-19 11:41 • 来自相关话题

在日常开发中,获取验证码是一个常见的功能,通常验证码倒计时的实现思路都是使用CountDownTimer来实现,但是存在一个问题就是当页面关闭之后重新进入页面,倒计时是不会继续进行的,如果后端验证码接口做了时间限制,那么我们再次请求的时候就会报错,用户体验不好... ...查看全部
0
评论

四大组件之Service|Android开发系列 service Android

柳天明 发表了文章 • 912 次浏览 • 2021-08-19 11:39 • 来自相关话题

概述  Service 是一种可在后台执行长时间运行操作而不提供界面的应用组件,与Activity不同,Activity是现实图形用户界面的,而Service的运行是不可见的。服务可由其他应用组件启动,即使切换到其他的应用,Service仍将在后台继... ...查看全部
0
评论

Android Binder 学习笔记-未完结 Binder Android

柳天明 发表了文章 • 923 次浏览 • 2021-08-19 11:38 • 来自相关话题

读者须知:在跟随大佬学习的历程中,不断地跟着源码查看,主要参阅的博客我会在文章开头着重声明一遍。由于自己能力有限,在总结过程中发现很多东西没有想象的简单,该文章暂时处于烂尾模式....重启计划暂定于一年后。 Binder 真的太深了(个人感觉,短时间内没办法总... ...查看全部
0
评论

熟悉又陌生的Handler handler Android

柳天明 发表了文章 • 812 次浏览 • 2021-08-18 13:50 • 来自相关话题

熟悉又陌生的Handler-3nativeInit:在上文中,关于Handler三件套的创建流程,第一个涉及到的JNI调用就是MessageQueue的nativeInit方法。MessageQueue(boolean quitAllowed) { m... ...查看全部
0
评论

解析android源码中dex文件的几个关键函数 dex Android

柳天明 发表了文章 • 1143 次浏览 • 2021-08-18 13:48 • 来自相关话题

dex简介dex文件作为android的的主要格式,它是可以直接在Dalvik虚拟机中加载运行的文件。 dex 文件可以分为3个模块,头文件(header)、索引区(xxxx_ids)、数据区(data)。 我们在进行对android加固和脱壳的时候都需要进行... ...查看全部
0
评论

Android Java 虚拟机 虚拟机 Android

柳天明 发表了文章 • 870 次浏览 • 2021-08-17 11:50 • 来自相关话题

1. 概述 1.1 Java 虚拟机家族1.1.1 HotSpot VMOracle JDK 和 OpenJDK 中自带的虚拟机,最主流和使用范围最广的 Java 虚拟机。1.1.2 J9 VM1.1.3 Zing VM1.2 Java 虚拟机执行流... ...查看全部
0
评论

Android 多返回栈技术详解 Activity Android

柳天明 发表了文章 • 973 次浏览 • 2021-08-17 11:47 • 来自相关话题

用户通过系统返回按钮导航回去的一组页面,在开发中被称为返回栈 (back stack)。多返回栈即一堆 "返回栈",对多返回栈的支持是在 Navigation 2.4.0-alpha01 和 Fragment 1.4.0-alpha01 中开始的。本文将为您展... ...查看全部
0
评论

Android 面试准备进行曲-Java基础篇 面试题 Android

柳天明 发表了文章 • 876 次浏览 • 2021-08-17 11:47 • 来自相关话题

虚拟机 基础jvm 参考文章JVM内存管理JVM执行Java程序的过程:Java源代码文件(.java)会被Java编译器编译为字节码文件(.class),然后JVM中的类加载器加载各个类的字节码文件,加载完毕之后,交由JVM执行引擎执行。运行时数据区被分为&... ...查看全部
0
评论

Android 面试准备进行曲-Android基础进阶 面试题 Android

柳天明 发表了文章 • 887 次浏览 • 2021-08-17 11:46 • 来自相关话题

View相关View的绘制流程自定义控件: 1、组合控件。这种自定义控件不需要我们自己绘制,而是使用原生控件组合成的新控件。如标题栏。 2、继承原有的控件。这种自定义控件在原生控件提供的方法外,可以自己添加一些方法。如制作圆角,圆形图片。 3、完全自定义控件:... ...查看全部
0
评论

Activity的启动方法 Android

柳天明 发表了文章 • 903 次浏览 • 2021-08-17 11:45 • 来自相关话题

在 Android 中,界面的跳转通常是通过启动不同的 Activity 来实现的,下面介绍一下 Activity 的启动方法。显式调用显式调用,字面意思即”明显的调用“,我们可以在调用方法中明确的知道我们即将启动的 Activity,显示调用的具体方法如下:... ...查看全部
0
评论

kotlin 作用域函数 kotlin

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

在Kotlin标准库(Standard.kt)中定义了几个作用域函数,其中包含let、run、with、apply和also。这几个函数有一个共同点就是在一个对象的上下文中执行代码块。 当对一个对象调用一个函数并提供一个lambda表达式时,它会形成一... ...查看全部
0
评论

Recyclerview EditText 引发的问题与解决方案 EditText RecyclerView

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

问题 我使用简单的魔法就让各位大佬的财富值减少了,我们来看看谷歌公司是怎样做到的。 我们知道 Recyclerview 是有复用机制的,一般复用的个数是一个屏幕多一点的数量,比如我这里就是 16 。 默认情况,找到产生问题的原因 也就是我们不做任何... ...查看全部
0
评论

给Android应用设置DeviceOwner权限遇到的问题及解决方案 DeviceOwner

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

背景 Android手机品牌和型号众多,特别是国产手机系统时常添加各种中国特色功能,因此其与设备管理员模式的兼容性或多或少存在一些问题,今天专门来讲讲我遇到的一些常见机型兼容性问题。 注意事项 设备管理员模式不需要反复连接电脑设置,只需要配置一次,重启或... ...查看全部
0
评论

Android 状态机源码解析 状态机

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

概述如果流程围绕失误的状态流转,这时候就要用到状态机,状态机描述一个事务,有多种状态,不同的动作作用再状态上导致抓状态的转换,这里面有三个重点状态 : 睡觉,工作,吃饭事件 : 起床,饥饿,疲惫动作 : 比如说闹铃触发了起床事件导致状态 从睡觉->工作(... ...查看全部
0
评论

Android 多返回栈技术详解 返回栈

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

用户通过系统返回按钮导航回去的一组页面,在开发中被称为返回栈 (back stack)。多返回栈即一堆 "返回栈",对多返回栈的支持是在 Navigation 2.4.0-alpha01 和 Fragment 1.4.0-alpha01 中开始的。本文将为您展... ...查看全部
0
评论

『ios』NSProxy解决NStimer循环引用的思考 iOS开发

zuyu 发表了文章 • 1169 次浏览 • 2021-08-16 16:00 • 来自相关话题

1.nstimer为什么回循环引用2.NSObject如何解决NStimer循环引用3.NSProxy如何解决NStimer循环引用4.为什么要用NSProxy,优势在哪围绕上面几个问题我们来思考一下1.nstimer为什么回循环引用self.timer = ... ...查看全部
0
评论

MQTT通信协议介绍 IM MQTT

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

一:MQTT协议介绍MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,它是一种轻量级的、基于代理的“发布/订阅”模式的消息传输协议。其具有协议简洁、小巧、可扩展性强、省流量、等优... ...查看全部
0
评论

WorkManager :工作链 workmanager Android

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

工作链工作链也是WorkManager的一个非常重要的功能。你可以使用WorkManager创建工作链并将其加入队列。工作链用于指定多个依存任务并定义这些任务的运行顺序。当需要以特定顺序运行多个任务时,此功能尤其有用。例如,假设您的应用有三个 OneTimeW... ...查看全部
0
评论

一文带你理解Kotlin协程本质核心 协程 kotlin Android

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

1. 协程是什么协程是编译器的能力,因为协程并不需要操作系统和硬件的支持(线程需要),是编译器为了让开发者写代码更简单方便, 提供了一些关键字, 并在内部自动生成了处理字节码线程和协程的目的差异线程的目的是提高CPU资源使用率, 使多个任务得以并行的运行,是为... ...查看全部
0
评论

Compose版FlowLayout了解一下~ FlowLayout

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

前言 FlowLayout是开发中常用的一种布局,并且在面试时,如何自定义FlowLayout也是一个高频问题 最近Compose发布正式版了,本文主要是以FlowLayout为例,熟悉Compose自定义Layout的主要流程 本文主要要实现以下效果: ... ...查看全部
0
评论

View.post和Handler.post的关系 handler

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

前言 View.post和Handler.post是Android开发中经常使用到的两个”post“方法,我们经常通过前者去获取一些View在运行时的渲染数据,或者测量页面的渲染时间。而后者则是Android的核心Handler的一个方法,它会向对应线程的M... ...查看全部
0
评论

搞懂Socket通信(一) socket

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

搞懂Socket通信(一) Socket 在编程中并不陌生,即时通信、推送的应用场景也都是用到它。对于做Android的小伙伴来说,自己也很少的去写底层的逻辑,相应的是去使用第三方的开源框架,当然在一般场景下,第三方基本都能满足需求了,但对于极端的场景... ...查看全部
0
评论

图文记录HTTPS知识点 https Android

柳天明 发表了文章 • 1001 次浏览 • 2021-08-16 13:57 • 来自相关话题

底层网络监测工具:Wireshark一、名词全称HTTPSHTTP Secure/HTTP over SSL / HTTP over TLSSSLSecure Socket Layer :安全套接字层TLSTransport Layer Security:安全... ...查看全部
0
评论

LiveData奇思妙用总结 LiveData

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

前言 本文不涉及LiveData的基本使用方式。 阅读本文之前,强推推荐先看官方文档 LiveData的概览,官方文档写的非常好,并且很详细。 本文是一篇总结文,自己的一些使用结总结以及网上的学习归纳。 一、LiveData结... ...查看全部
0
评论

autojs正经的交互-安卓与webview webview Android

柳天明 发表了文章 • 2002 次浏览 • 2021-08-16 13:51 • 来自相关话题

效果展示缘起我一直觉得现在的autojs和webview交互不正经,监听弹框监听console日志监听网页title监听url尤其是监听弹框, 直接dismiss, 那那些需要弹框的网页怎么办?环境Autojs版本: 9.0.4Android版本: 8.0.0... ...查看全部
0
评论

Objective-C 动态方法决议 iOS开发

zuyu 发表了文章 • 713 次浏览 • 2021-08-16 11:51 • 来自相关话题

一、动态方法决议当imp没有找到的时候的时候会赋值libobjc.A.dylib_objc_msgForward_impcache`,首先会进入如下代码逻辑: if (slowpath(behavior & LOOKUP_RESOLVER)) { ... ...查看全部
0
评论

GCD底层分析 - 队列、同步异步函数 iOS开发

zuyu 发表了文章 • 1113 次浏览 • 2021-08-16 11:47 • 来自相关话题

一、GCD 简介1.1 GCDGCD(Grand Central Dispatch)本质是 将任务添加到队列,并且指定执行任务的函数。GCD是纯C语言实现,提供了非常强大的函数。GCD的优势:是苹果公司为多核的并行运算提出的解决方案。会自动利用更多的... ...查看全部
0
评论

iOS LLDB(Low Lever Debug) iOS开发

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

一、概述LLDB(Low Lever Debug这里的low指轻量级)默认内置于Xcode中的动态调试工具。标准的 LLDB 提供了一组广泛的命令,旨在与老版本的 GDB 命令兼容。 除了使用标准配置外,还可以很容易地自... ...查看全部
0
评论

IO系列 字节、字符流|Java基础 io Java

柳天明 发表了文章 • 791 次浏览 • 2021-08-13 11:37 • 来自相关话题

字节缓冲流介绍BufferOutputStream:该类实现缓冲输出流。 通过设置这样的输出流,应用程序可以向底层输出流写入字节,而不必为写入的每个字节导致底层系统的调用BufferedInputStream:创建BufferedInputStream将创建一... ...查看全部
0
评论

【JVM入门食用指南】JVM内存管理 内存调优 jvm Android

柳天明 发表了文章 • 937 次浏览 • 2021-08-13 11:36 • 来自相关话题

📑即将学会JVM的内存管理的相关知识点,JVM对内存管理进行了哪些规范Java从编译到执行.java文件经过javac编译成.class文件 .class文件通过类加载器(ClassLoader)加载到方法区 jvm执行引擎执行 把字节码翻译成机器码... ...查看全部
0
评论

Jetpack Compose 快来学学吧! jetpack Android

柳天明 发表了文章 • 1790 次浏览 • 2021-08-13 11:35 • 来自相关话题

简介官方入门文档:developer.android.com/jetpack/com…Jetpack Compose 是 Google 在2019年 Google I/O 大会上公布的全新的 Android 原生 UI 开发框架,历时两年2021年7月29日,... ...查看全部
0
评论

Android Studio中的 Image Asset Studio(图标生成工具) AndroidStudio Android

柳天明 发表了文章 • 1648 次浏览 • 2021-08-13 11:34 • 来自相关话题

Android 图标在线生成Android Studio 包含一个名为 Image Asset Studio 的工具,它可以帮我们把自定义图像、系统图标素材、文本字符串自动生成适配系统的应用图标。它为你的应用程序支持的每个像素密度生成一组适当分辨率的图标。Im... ...查看全部
0
评论

Android面试题之Activity和Fragment生命周期 一次性记忆 面试题 Android

柳天明 发表了文章 • 1156 次浏览 • 2021-08-13 11:32 • 来自相关话题

每当我们换工作面试之前,总是会不由自主的刷起面试题,大部分题我们反反复复不知道刷了多少遍,但是今天记住了,等下一次面试的时候又刷着相同的面试题,我就想问在座的各位,Activity的生命周期,你们到底刷过多少遍 [哭笑] 作为一名程序员 把时间浪费在重复性劳动... ...查看全部
0
评论

Android JNI 原理 jni Android

柳天明 发表了文章 • 1163 次浏览 • 2021-08-12 17:34 • 来自相关话题

JNI:Java Native Interface1. 系统源码中的 JNI2. MediaRecorder 框架中的 JNIMediaRecorder,用于录音和录像。2.1 Java Framework 层的 MediaRecorder2.2 JNI 层的... ...查看全部
0
评论

超详细的android so库的逆向调试 调试 jni Android

柳天明 发表了文章 • 1941 次浏览 • 2021-08-12 17:16 • 来自相关话题

好久没有写博客了,最近的精力全放在逆向上面。目前也只是略懂皮毛。android java层的逆向比较简单,主要就是脱壳 、反编译源码,通过xposed进行hook。接下来介绍一下,如何去调试hook native层的源码,也就是hook so文件。应用环境准备... ...查看全部
0
评论

Android 自动化交互实践 自动化 Android

柳天明 发表了文章 • 927 次浏览 • 2021-08-12 17:13 • 来自相关话题

Android 自动化交互可以代替人工完成重复性的工作,包括通过自动操作 App 进行黑盒测试和第三方 App 的自动运行。常见的自动化交互包含启动 App、view 的点击、拖拽和文本输入等。随着 App 安防能力的提升,要想实现完整流程的自动化交互变的越来... ...查看全部
0
评论

Android 面试准备进行曲-Android 基础知识 面试题 Android

柳天明 发表了文章 • 853 次浏览 • 2021-08-12 17:11 • 来自相关话题

基础部分Activity生命周期onCreate() -> onStart() -> onResume() -> onPause() -> onStop() -> onDetroy() 图片简要说明启动 onCreate... ...查看全部
0
评论

性能优化2 - 内存、启动速度、卡顿、布局优化 Java 性能优化

柳天明 发表了文章 • 1310 次浏览 • 2021-08-12 17:09 • 来自相关话题

性能优化是在充分了解项目+java、android基础知识牢固的基础上的。内存优化基础知识回顾(看前面文章JVM详解):jVM内存模型,除了程序计数器以外,别的都会出现 OOM。JAVA对象的生命周期,创建、运行、死亡。GC对象可回收的判定:可达性分析。GC ... ...查看全部