自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 iPhoneSE列表加载图片crash的解决方案

近期业务做了评论模块,评论内容跟其他APP基本一致,就是评分、文字以及图片,每条评论可以至多包含6张图片,在评论列表会展示评论星级、用户头像、昵称、评论文字、图片以及评论时间,逻辑非常简单,一天搞完,提交打包给测试验证,基本无有效bug,第二天下午测试跑过来说在iPhoneSE上有一个商品,点击后滑动就必会crash,我开始以为是图片数组越界导致,但是测试说别的手机不会crash,我去bugly查看crash信息,发现bugly空空如也,并无crash上报,无奈之下只有真机debug了,找到...

2020-09-24 16:02:40 267

原创 iOS百度地图小结

概述由于项目需要,近期使用百度地图SDK实现了相关业务需求,主要功能包含定位、地址解析、添加标签、标签聚合、驾车路线规划等。本文除了讲解主要功能的实现之外,也记录了项目过程中遇到的一些问题及解决方案,以避免后续重复踩坑。功能实现 SDK 导入与初始化:采用cocoapods导入,除了pod install耗时比较长之外过程顺利,需要注意的是百度SDK采用bundleID验证机制,如果申请appid时绑定的bundleID与项目对应不上,会导致授权失败。关键授权代码如下 [[B.

2020-08-18 16:23:27 626

原创 iOS 使用ImageIO framework解析gif

ImageIO介绍概述:ImageIO框架提供了读取与写入图片数据的基本方法,使用它一、可以获取到图片元数据(描述图片属性的数据:宽、高、图片类型等等)。二、获取网络图片和上传图片到网络上。三、解析图片。四、实现图片的渐进加载 主要类描述: CGImageSource:用来读取图片数据 CGImageDestination:将图片数据写入指定的目标中 CGImageMetadata:图片元数据封装gif解析步骤1.//转换urlNSURL *...

2020-07-01 16:34:56 245

转载 iOS APM监控总览

APP APM考察指标主要包含卡顿、网络、crash、耗电量、CPU使用率、内存消耗等几个方面

2020-06-29 10:35:08 2923

原创 计算机系统漫游总结

程序编译过程:预处理,编译,汇编,链接计算机硬件组成:CPU(ALU+寄存器),总线,IO设备,主存,硬盘,驱动计算机抽象层次:文件(管理IO设备),操作系统(管理硬件、进程调度),虚拟存储器计算机存储层次:寄存器,L0 cache,L1 cache ,主存,硬盘进程:操作系统管理应用程序的单位,一个进程可以有多个线程内存:代码和只读数据区、栈区、全局数据区、内核区、堆区并发与并行:并发是指操作系统分时处理多个线程,并行是指多个同时运行多个任务...

2020-05-28 18:57:59 106

原创 iOS蓝牙开发要点

1.名词中心与外围设备,中心指处理服务的蓝牙设备,一般就是iPhone手机,外围是指包含蓝牙功能的设备,比如手环、手表耳机等,一个外围设备可以发布多个服务,一个服务可以包含一个或多个特征,一个特征就是一个key-value键值对2.iOS中的实现中心:用CBCentralManager表示外围设备:用CBPeripheral表示服务:用CBService表示,服务使用UUID字段来标识,使用CBPeripheral的services属性来获取设备的所有服务特征:用CBCharacte

2020-05-21 19:14:16 334

转载 iOS 保持界面流畅的技巧

这篇文章会非常详细的分析 iOS 界面构建中的各种性能问题以及对应的解决思路,同时给出一个开源的微博列表实现,通过实际的代码展示如何构建流畅的交互。

2017-03-02 11:10:00 259

转载 iOS最全面的关于CATransform3D的解析

CATransform3D是QuartzCore下声明的一个结构体,文档对它的描述:The transform matrix is used to rotate, scale, translate, skew, and project the layer content. Functions are provided for creating, concatenating, and m

2017-02-21 10:27:23 1141

转载 关于直播,所有的技术细节都在这里了(四)

引言网络视频直播存在已有很长一段时间,随着移动上下行带宽提升及资费的下调,视频直播被赋予了更多娱乐和社交的属性,人们享受随时随地进行直播和观看,主播不满足于单向的直播,观众则更渴望互动,直播的打开时间和延迟变成了影响产品功能发展重要指标。那么,问题来了: 如何实现低延迟、秒开的直播?先来看看视频直播的5个关键的流程:录制->编码->网络传输->解码->播放,每个环节对于直播的延迟都会产生不

2017-02-09 09:34:34 803

转载 关于直播,所有的技术细节都在这里了(三)

引言网络视频直播存在已有很长一段时间,随着移动上下行带宽提升及资费的下调,视频直播被赋予了更多娱乐和社交的属性,人们享受随时随地进行直播和观看,主播不满足于单向的直播,观众则更渴望互动,直播的打开时间和延迟变成了影响产品功能发展重要指标。那么,问题来了: 如何实现低延迟、秒开的直播?先来看看视频直播的5个关键的流程:录制->编码->网络传输->解码->播放,每个环节对于直播的延迟都会产生不

2017-02-09 09:33:00 581

转载 关于直播,所有的技术细节都在这里了(二)

引言网络视频直播存在已有很长一段时间,随着移动上下行带宽提升及资费的下调,视频直播被赋予了更多娱乐和社交的属性,人们享受随时随地进行直播和观看,主播不满足于单向的直播,观众则更渴望互动,直播的打开时间和延迟变成了影响产品功能发展重要指标。那么,问题来了: 如何实现低延迟、秒开的直播?先来看看视频直播的5个关键的流程:录制->编码->网络传输->解码->播放,每个环节对于直播的延迟都会产生不

2017-02-09 09:31:49 631

转载 关于直播,所有的技术细节都在这里了(一)

引言网络视频直播存在已有很长一段时间,随着移动上下行带宽提升及资费的下调,视频直播被赋予了更多娱乐和社交的属性,人们享受随时随地进行直播和观看,主播不满足于单向的直播,观众则更渴望互动,直播的打开时间和延迟变成了影响产品功能发展重要指标。那么,问题来了: 如何实现低延迟、秒开的直播?先来看看视频直播的5个关键的流程:录制->编码->网络传输->解码->播放,每个环节对于直播的延迟都会产生不

2017-02-09 09:30:03 539

转载 openGL ES教程

OpenGL ES 渲染管线,顶点着色器和片元着色器

2017-01-09 21:02:32 757

转载 Text Kit进阶

Text Kit是建立在Core Text框架上的,我们知道CoreText.framework是一个庞大而复杂的框架,而Text Kit在继承了Core Text强大功能的同时给开发者提供了比较友好的面向对象的API。

2017-01-09 17:13:44 230

转载 JPEG编码原理

JPEG是联合图象专家组(Joint Picture Expert Group)的英文缩写,是国际标准化组织(ISO)和CCITT联合制定的静态图象的压缩编码标准。和相同图象质量的其它常用文件格式(如GIF,TIFF,PCX)相比,JPEG是目前静态图象中压缩比最高的。我们给出具体的数据来对比一下。例图采用Windows95目录下的Clouds.bmp,原图大小为640*480,256色。用工

2016-08-23 19:20:00 9388

转载 数据库原理剖析

一提到关系型数据库,我禁不住想:有些东西被忽视了。关系型数据库无处不在,而且种类繁多,从小巧实用的 SQLite 到强大的 Teradata 。但很少有文章讲解数据库是如何工作的。你可以自己谷歌/百度一下『关系型数据库原理』,看看结果多么的稀少【译者注:百度为您找到相关结果约1,850,000个…】,而且找到的那些文章都很短。现在如果你查找最近时髦的技术(大数据、NoSQL或JavaScript

2016-08-23 16:23:33 854

转载 微信iOS SQLite源码优化实践

前言随着微信iOS客户端业务的增长,在数据库上遇到的性能瓶颈也逐渐凸显。在微信的卡顿监控系统上,数据库相关的卡顿不断上升。而在用户侧也逐渐能感知到这种卡顿,尤其是有大量群聊、联系人和消息收发的重度用户。我们在对SQLite进行优化的过程中发现,靠单纯地修改SQLite的参数配置,已经不能彻底解决问题。因此从6.3.16版本开始,我们合入了SQLite的源码,并开始进行源码层的优化。

2016-08-22 14:52:09 390

转载 iOS 给CALayer自定义属性的动画

默认情况下,CALayer 及其子类的绝大部分标准属性都可以执行动画,无论是添加一个 CAAnimation 到 Layer(显式动画),亦或是为属性指定一个动作然后修改它(隐式动画)。但有时候我们希望能同时为好几个属性添加动画,使它们看起来像是一个动画一样;或者,我们需要执行的动画不能通过使用标准 Layer 属性动画来实现。在本文中,我们将讨论如何子类化 CALayer 并添加我们自己的属性,以便比较容易地创建那些如果以其他方式实现起来会很麻烦的动画效果。

2016-07-11 12:45:02 889

转载 解析 iOS 动画原理与实现

动画,顾名思义,就是能“动”的画。人的眼睛对图像有短暂的记忆效应,所以当眼睛看到多张图片连续快速的切换时,就会被认为是一段连续播放的动画了。本文将从底层动画原理开始,然后描述计算机动画实现方式最后讲述iOS动画的实现方式。

2016-07-06 09:53:20 517

转载 iOS多线程安全与性能分析

iOS开发中保持线程同步的方式有如下几种:@synchronized、NSLock、dispatch_semaphore、NSCondition、pthread_mutex、OSSpinLock。网上查了一下,发现他们的实现机制各不相同,性能也各不一样。下面我们先分别介绍每个加锁方式的使用,再使用一个案例来对他们进行性能对比。

2016-07-04 10:04:54 837

转载 绘制像素到屏幕上

iOS图像渲染原理。 一个像素是如何绘制到屏幕上去的?有很多种方式将一些东西映射到显示屏上,他们需要调用不同的框架、许多功能和方法的结合体。这里我们大概的看一下屏幕之后发生的事情。当你想要弄清楚什么时候、怎么去查明并解决问题时,我希望这篇文章能帮助你理解哪一个 API 可以更好的帮你解决问题。

2016-07-01 09:17:19 696

转载 iOS 图形性能进阶与测试

Core Animation Pipeline第一部分主要讲解了Core Animation的工作流程和渲染过程。CoreAnimation的渲染流程可以用下图来概括:在GPU的渲染过程中,我们能看到顶点着色器与像素着色器参与到图像的处理。在objc.io中有一篇文章进一步地阐明了顶点着色器与像素着色器 (GPU 加速下的图像处理)UIBlurEff

2016-06-29 09:31:11 419

转载 iOS进阶指南试读之UI篇

子view跟随父view自动放大缩小的办法实例代码如下:- (void)viewDidLoad { [super viewDidLoad]; redView = [UIView new]; redView.frame = CGRectMake(0, 200, 200, 200); redView.backgroundColor = [UIColor redC

2016-06-28 09:21:54 546

转载 H264编码原理以及I帧B帧P帧

前言           H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解的他的理论依据是:参照一段时间内图像的统计结果表明,在相邻几幅图像画面中,一般有差别的像素只有10%以内的点,亮度差值变化不超过2%,而色度差值的变化只有1%以内。所以对于一段变化不大图像画面,我们可以先编码出一个完整的图像帧A,随后的B帧就不编码全部图像,只写入与A帧的差别,

2016-06-27 14:20:45 325

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除