苹果公司在2011年的全球开发者大会上指出,90%的应用崩溃与内存管理有关,其中最主要的原因是错误的内存访问和保留环所引起的内存泄漏。
iOS防逆向代码混淆
上一篇文章里可以看到,砸壳(Dumpdecrypted破壳)之后的ipa包使用class-dump分析之后,App跟裸奔一样,所以需要做代码混淆来添加逆向的难度。
iOS逆向代码注入
前段时间把<<硅谷>>追完了,剧中撒旦教崇拜者Gilfoyle,当时破解了智能冰箱的固件,仔细想想,似忽不存在无法破解的软件,就好像不存在不透风的墙一样,开发人员开发,编译,链接生成一个可执行文件,Mach-O或者ELF,PE,其实本质上都是二进制文件,这当然就可以编辑,不过是在运行的时候添加了非对称加密的认证,对原始文件的一致性会进行认证。可是又有谁能保证非对称加密(RSA)的无法破解性呢?最后一季,他们的去中心化系统通过深度学习,充分发挥分布式计算的算力成功破解了最先进的加密算法!
OSSpinLock 与优先级反转
操作系统里的线程状态
iOS录音生成Wav格式问题
iPhone的音质一般,音量偏小,作为听个响系列,表现也是不置可否,这篇文章总结一下,iOS本地录音生成Wav文件格式遇到的一个问题。
iOS App签名原理
知道为什么iOS系统可以使用3年,还能保证系统的流畅度么?除了苹果定制的CPU领先业界两年的水平,软件层面,苹果通过签名机制控制了安装在iOS上的APP都是经过苹果官方允许的,这样可以规范控制App在iOS的行为。
iOS语音合成
在iOS中音频按照播放形式可以分为音效播放和音乐播放。音效主要指的是一些短音频,通常作为点缀音频,如提示音,对于这类音频不需要进行进度,循环等控制。音乐主要指的是一些较长的音频,通常是主音频,对于这类音频播放通常需要精确的控制。在iOS中播放音效一般使用AudioToolbox.framework这个框架,播放音乐一般使用AVFoundation.framework
Charles抓包
RunLoop
简介
Run loops are part of the fundamental infrastructure associated with threads. A runloop is an event processing loop that you use to schedule work and coordinate the receipt of incoming events. The purpose of a run loop is to keep your thread busy when there is work to do and put your thread to sleep when there is none.
Runloop是与线程相关联的基础架构的一部分,它用来接受循环事件和安排线程的工作,在有工作时让线程处于繁忙状态,没有事件需要处理时让线程休眠;
1 | RunLoop管理事件,让线程在没有消息时休眠以避免占用资源,由用户态切换到内核态;在消息到来时被唤醒,由内核态切换到用户态,这种机制,叫做“事件循环”机制。 |
UITableView优化
UITableView是iOS开发中的常用控件,用来加载列表数据,当数据量大或者布局过于复杂的时候有可能出现卡顿,影响用户体验。