[转载] C++知识体系总结:语言核心与代码工程
[转载] C++知识体系总结:语言核心与代码工程
写在前面
✧ C++的主战场
都2023年了,还在说C++,难道不应该多讲讲golang/rust/python吗?其他公司我不知道,但在至少在腾讯内,如果能把C++代码写好,仍然有不错的饭碗,比如游戏/微信后台等。
C++在行业里的主战场,有网友做了一个图,可以看看:
[转载] 我给 iOS 系统打了个补丁——修复 iOS 16 系统键盘重大 Crash
我给 iOS 系统打了个补丁——修复 iOS 16 系统键盘重大 Crash
🙋🏻♀️ 编者按:本文作者是蚂蚁集团客户端工程师巴乐,通过逆向分析发现了 iOS 16 系统键盘存在重大 Bug,可能导致使用到键盘的业务场景出现严重 Crash。 在支付宝 App 近期版本 10.5.16.6000 上,巴乐用汇编重新实现了一套 iOS 16 系统键盘 tryLock 方法后,问题得到完全修复,该版本上的对应 Crash 已降到 0。本文记录了该问题解决的完整过程,包括问题发现、分析、修复以及验证,欢迎查阅与交流~
iPhone/iPad苹果设备型号对应常用名称列表
[转载] 美团 iOS 工程 zsource 命令背后的那些事儿
[转载] 美团 iOS 工程 zsource 命令背后的那些事儿
zsource 命令是什么?
美团App在2015年就已经基于CocoaPods完成了组件化的工作。在组件化的改造过程中,为了能够加速整体工程的构建速度,我们对需要集成进美团App的组件进行了二进制化,同时提供一个叫做cocoapods-binary 的 CocoaPods 插件来支持本地工程使用二进制。因此,美团App的开发者在集成开发时,除了自己正在开发的组件,其他的组件都以二进制的形式存在。
[转载] iOS热修复,看这里就够了
[转载] iOS热修复,看这里就够了
背景
对于 app store的审核周期不确定性,可长到2星期,短到1天。假如线上的应用出现了一些bug,甚至是致命的崩溃,这时候假如按照苹果的套路乖乖重新发布一个版本,然后静静等待看似漫无期限的审核周期,最终结果就是:用户大量流失。因此,对于一些线上的bug,需要有及时修复的能力,这就是所谓的热修复(hotfix)。
随着迭代频繁或者次数的增多,应用出现功能异常或不可用的情况也会随之增多。这时候又有什么方法可以快速解决线上的问题呢?
第一、在一开始功能设计的时候就设计降级方案,但随之开发成本和测试成本都会双倍增加;
第二、每个功能加上开关配置,这样治标不治本,当开关关掉的时候,就意味着用户无法使用该功能。
这时候热修复就是解决这种问题的最佳之选,既能修复问题,又能让用户无感知,两全其美。iOS热修复技术从最初的webView到最近的SOT,技术的发展越来越快,新技术已经到来:
[转载] Fairplay DRM与混淆实现的研究
[转载] Fairplay DRM与混淆实现的研究
研究Fairplay DRM(Digital Rights Management,即数字版权保护)最关键的两点是授权和加密。但长久以来,关于App DRM的研究却很少,而就是在这样的前提下,Fairplay DRM又为iOS App的安全研究叠加了一层”阻碍”。我们通过分析混淆系统的设计和实现过程中的问题,克服调试跟踪的障碍,设计了多种静态和动态的对抗方案;同时通过大量的逆向工程,填补了安全研究人员对macOS系统机制中,关于Fairplay这一部分的认知空白。
[转载] 深入理解Objective-C:方法缓存
[转载] 深入理解Objective-C:方法缓存
摘要
只要用到Objective-C,我们每天都会跟方法调用打交道。我们都知道Objective-C的方法决议是动态的,但是在底层一个方法究竟是怎么找到的,方法缓存又是怎么运作的却鲜为人知。本文主要从源码角度探究了Objective-C在runtime层的方法决议(Method resolving)过程和方法缓存(Method cache)的实现。
简介
本文系学习Objective-C的runtime源码时整理所成,主要剖析了Objective-C在runtime层的方法决议过程和方法缓存,内容包括:
从消息决议说起
缓存为谁而生
追本溯源,何为方法缓存
缓存和散列
十万个为什么
缓存 - 性能优化的万金油?
优化,永无止境
[转载] 美团点评移动网络优化实践
[转载] 美团点评移动网络优化实践
为何要做网络优化
网络优化对于App产品的用户体验至关重要,与公司的运营和营收息息相关。这里列举两个公开的数据:
在做网络优化前,我们首先要为网络通信质量设立一个标尺。
在美团点评,监控团队开发了基于端到端的客户端监控平台。这里要先解释一下”端到端”的含义:是指请求从客户端发出到服务端响应返回的整个过程。它区别于后台服务监控,是一种从用户角度观察到的真实体验监控。
[转载] AST 获取和分析:Clang And Tree-sitter
[转载] AST 获取和分析:Clang And Tree-sitter
前言
本文不仅介绍了如何使用各类 AST 分析工具,还简单分析了各类工具的工作原理,大家可以按需阅读。其中基于 Clang 的 AST 分析工具的工作原理结合源码一起食用效果更佳。文章主要围绕下面几个方向展开:
初探 AST
基于 Clang 获取分析 AST
基于 Tree-sitter 获取分析 AST
总结