移动开发

Android的ANR原理分析

大概 Android的ANR主要有两种方式: 1. 通过handler的延迟机制触发ANR 2. Input事件触发ANR Service、BroadcastReceiver、ContentProvider都是通过Hander机制触发ANR。 ANR的发生的场景有: service timeout:前台服务在20s未执行完,后台服务200s未执行完。 BroadcastQueue timeout

iOS 多线程原理 - GCD函数底层

libdispatch-1271.120.2 下载 苹果官方资源opensource 多线程相关文献: iOS 多线程原理 - 线程与队列底层 iOS 多线程原理 - GCD函数底层 iOS 线程底层 - 锁 本章节探究: 1.单例 dispatch_once 2.栅栏函数 barrier 3.调度组 group 4.信号量 semaphore 5.dispatch_source 前言 在了解了线

深入理解Glide源码:三条主线分析 Glide 执行流程

Glide流程分析 说到图片加载框架,大家最熟悉的莫过于Glide了,但我却不推荐简历上写熟悉Glide, 除非你熟读它的源码,或者参与Glide的开发和维护。然而很多小伙伴对于Glide的流程及其源码解读总是无从下手,本篇就从三条主线来分析一下Glide流程及源码! 第一条主线 加入队列流程: RequestManager with = Glide.with(this); RequestBuil

iOS 编译与链接四:静态库和动态库

一:静态链接库 1.制作.a文件 .a文件即 static library library和framework 创建library,project的配置对最终产物.a文件基本没有影响,只需要关注target的配置 copy files会在product文件夹生成include文件夹,里面就是cpoy file copy files Header会在product文件夹

OpenGL系列之十八:FBO离屏渲染

目录 相关文章 OpenGL系列之一:OpenGL第一个程序 OpenGL系列之二:绘制三角形 OpenGL系列之三:三角形顶点增加颜色 OpenGL系列之四:绘制四边形 OpenGL系列之五:绘制点和线 OpenGL系列之六:绘制立方体 OpenGL系列之七:纹理贴图 OpenGL系列之八:立方体纹理贴图 OpenGL系列之九:glsl着色器语言 OpenGL系列之十:VAO、VB

Android Service详解

        Service 对于广大的Android开发者来说算是耳熟能详了,作为Android的四大组件之一,在我们的开发中也起着重要的作用,作为Android开发,或多或少都知道一些,但是不是每个人把所有知识点都了解的透测。本篇文章对Service的用法做一个总结,从Service的简介,Service的启动方式,Service的生命周期和IntentService四个方面来细说Servi

Android ViewPager嵌套的手势冲突,分别用`内部拦截法` 和 `外部拦截法` 两种方式。看懂你就明白所有的手势处理的流程了

简介: 用内部拦截法 和 外部拦截法 两种方式处理两个横向的ViewPager嵌套的手势冲突 最终实现效果:按住右侧部分横滑就是滑动大ViewPager。类似抖音的首页 这个demo看懂你就明白所有的手势处理的流程了 github地址 功能: ✅Demo展示了 内部拦截法 和 外部拦截法 两种方式 ✅海量的代码注释,且注明了为什么要调用这行代码,如果不调用会怎么样 ✅看懂这个demo,所有的手势

Android-推荐一个检测内存泄漏的库(LeakCanary)

图片来源网络,入侵必删 在Android开发当中,内存泄漏是会影响用户体验的。LeakCanary开源库是一个常见的定位内存泄漏的开源库,这篇博客来分享一下它的使用,让我们的应用更加的丝滑。 LeakCanary 一个帮助开发者检测内存泄漏以及Application Not Responding的开源库。更多具体的简介请查看wiki 引入项目 dependencies { // d

Delphi无法正确动态调用C++ dll库的几个原因

摘自: 本文说明delphi调用C++DLL库的几个问题,并给出解决方法。 1、问题一: delphi找不到dll中的函数,出现“无法定位程序输入点”的问题 如下图所示: 分析: 这是因为dll库开放的函数名和代码中的函数名不致导致的,比如myfunc的函数名生成dll后变为_myfu

Android动画原理分析

简单描述为:将View的一次大的属性变化拆分为多次小的属性变化,在每次VSYNC信号到来时,根据当前时间和插值器来计算当前View属性的值,然后给该View设置该属性值,直到动画执行完毕。其中Choreographer将动画拆分成一次次小的属性变化,Choreographer是动画的指挥者。理想情况下,属性刷新次数(动画拆分为多次小的属性变化)=动画执行时间/16.7ms。 我们从以下4个问题来讲