首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
ARM
订阅
量天尺
更多收藏集
微信扫码分享
微信
新浪微博
QQ
10篇文章 · 0订阅
iOS深思篇 | 启动时间的度量和优化
一. 简介 App的启动时间是衡量一个App性能的重要指标,或者可以说是App性能的第一印象。在这篇文章中,我们将要介绍启动时间的相关知识和打点统计。 二. 启动优化 之后测试也依照这两种启动方式进行测试。一般来说启动时间(点击图标 -> 显示Launch Screen -> …
iOS 启动优化 + 监控实践
距离上次启动优化(启动任务分级)相隔差不多2年时间了,虽然一直保持在之前的启动速度,但是每个版本排查启动增量会耗费不少时间,想做一个自动化的启动监控流程来降低这方面的时间成本,在启动监控开发中又发现部分启动可优化,于是就顺便把启动也优化了一下。 1、启动优化:在iPhone8P…
iOS开发系列之性能优化记录
本篇主要记录一下我对界面优化、时间优化和耗电优化、安装包瘦身上的一些探索。我尽量按照自己的理解来进行描述,如有不当,欢迎指正。 要了解卡顿原理,需要对帧缓冲区、垂直同步、CPU 和 GPU 几个词进行一下了解,然后综合起来,就可以得到卡顿的答案。 听起来很高大上,其实就是用来存…
从汇编看函数
中央处理器,内部主要包括寄存器、运算器、控制器。 控制器:控制硬件IO口的高低电平。 ARM64下,函数存放在x0~x7(w0~w7)这8个寄存器中,超过8个参数,就会入栈。函数返回值是放在x0寄存器中的。通用寄存器32个。 继续执行,①和②会来回执行,①->②->①->…。 …
iOS中的内嵌汇编
写一篇在iOS上使用汇编的文章的想法在脑袋里面停留了很久了,但是迟迟没有动手。虽然早前在做启动耗时优化的工作中,也做过通过拦截objc_msgSend并插入汇编指令来统计方法调用耗时的工作,但也只仅此而已。刚好最近的时间项目在做安全加固,需要写更多的汇编来提高安全性(文章内汇编…
iOS汇编教程(八)静态链接中的 Relocation - 静态库链接时是如何保证对变量的相对寻址依然正确的?
在 iOS 应用开发过程中,我们常常通过静态库方式引用一些闭源三方 SDK,在编译链接时静态库的代码段、数据段和符号表等会被拼接到 App 的主二进制中,在拼接过程中静态库内代码段与数据段的相对位置会发生改变,导致原来代码中的相对寻址不能正确指向链接后产物中的数据,这就需要在链…
iOS逆向指南:静态分析
静态分析是指对二进制包进行反编译,分析静态的代码逻辑,从而找到关键的代码所在。找到关键代码也就基本实现了逆向的目的,可以通过修改二进制对关键代码做出自定义修改,达到破解的目的。 本文内容包括:app 砸壳过程、工具和环境的坑、导出 OC 头文件、使用 hopper 和 IDA …
iOS逆向学习之九(深入研究Mach-O结构)
File Offset 表示当前__PAGEZERO段在Mach-O文件中的位置。 File Size 表示__PAGEZERO段在Mach-O文件中的大小,此处File Size为0表示在Mach-O文件中并没有__PAGEZERO段,在Mach-O文件被加载进虚拟内存中,才…
iOS逆向学习之十(arm64汇编入门)
iOS汇编语音有很多钟。常见的有8086汇编、arm汇编、x86汇编等等。 iOS的架构从最初的armv6发展到后来的armv7和armv7s,最后发展到现在的arm64,不管是armv6还是后来的armv7,以及arm64都是arm处理器的指令集。armv7和armv7s是真…
iOS汇编教程(七)ARM Exclusive - 互斥锁与读写一致性的底层实现原理
在多线程编程中,我们常常使用互斥锁来保证全局变量的线程安全,例如 pthread 中的 pthread_mutex,mach 中的 semaphore。他们通过 lock & unlock 或是 up & down 的方式来维护资源的状态,保证只有特定个数的线程能获得特定个数的…