随笔分类 - iOS
iOS 工作,学习,问题总结
摘要:## 集成FFmpeg 主要分为量大块,按需将相关的库导入到工程中,补充缺失的头文件 ## 编译FFmpeg 以iOS为例 需要指定平台,Xcode信息,root sdk路径,编译工具链,支持的arch,输出路径,等参数.这里推荐一份完成的脚本,如果自己编译碰到问题可以参考这个脚本[FFmpeg-i
阅读全文
摘要:在iOS平台上,AVFoundation.framework共同完成了一系列的任务,包括捕捉、处理、合成、控制、导入和导出视听媒体。 Topics Media Assets, Playback, and Editing:: 媒体资源获取,播放,编辑功能 获取并检查媒体资产 排队播放媒体资源并自定义播
阅读全文
摘要:保护app的管理数据的安全性,控制app的访问权限,提供丰富的数据加密,证书创建相关的API. 概述 使用Security.framework保护信息,建立信任,控制软件的访问。总的来说,安全服务支持这些目标: - 建立用户身份(身份验证),然后有选择地授予对资源的访问权(授权) - 加密数据,包括
阅读全文
摘要:官方文档 音频是iOS、tvOS和watchOS中的托管服务。系统通过使用音频会话在应用程序、应用程序间和设备级别管理音频行为,它属于一个单独的服务,由操作系统进行调度和管理,音频进程的异常中断并不会导致app的crash. 音频会话的结构如下: 上图中AudioSession作为app和操作系统的
阅读全文
摘要:官方文档 蓝牙4.0参考文档 使用蓝牙低能耗和BR/EDR(“经典”)设备进行通信。 核心蓝牙框架为你的应用程序提供了与支持蓝牙的低能耗(LE)和基本速率/增强数据速率(BR/EDR)无线技术进行通信所需的类。 不要对核心蓝牙框架的任何类进行子类化。不支持重写这些类,并导致未定义的行为。 在macO
阅读全文
摘要:官方文档 关于CoreAnimation CoreAnimation是 iOS和OS X的图形渲染的基础框架,它将大部分的图形绘制工作直接交给图形硬件来处理,图形硬件会加速图形渲染,具有更高的图形渲染能力,转移CPU的压力. 它在系统框架层次中的位置如下: 实际开发中,大都使用UIKit基本能满足动
阅读全文
摘要:官方文档 ViewController的角色 视图控制器是应用程序内部的基础结构,每个应用程序App都必须至少有一个ViewController,把它拆分出来是View + Controller,分为视图和控制2个部分, 它提供了用户界面,以及提供用户界面与底层数据之间的交互,同时也可以在控制器中直
阅读全文
摘要:Mach-O是一种可执行文件,在Mac电脑上有很多不同的可执行文件,如打包的shell脚本,通c或者c++编译生成的可执行文件,还有一些是通过开发工具,如XCode创建出来的,对于不带附件信息的可以执行文件(如bundle,info.plist)直接点击就能运行,因为这部分执行文件是基于Comman
阅读全文
摘要:参考地址: https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/OSX_Technology_Overview/About/About.html#//apple_ref/doc/uid/TP40001
阅读全文
摘要:原文链接: (https://www.rightpoint.com/rplabs/switch-method-dispatch-table)[https://www.rightpoint.com/rplabs/switch-method-dispatch-table] 函数表派发 每个类当读维持一个
阅读全文
摘要:提高app的定制化程度,为app提供了更多个功能支持 统一的调度,常用的独立的功能以更轻量级的扩展实现,方便系统管理和调度 系统某些特殊不开放的功能定制化,如自定义键盘 运行原理 在其它App中通过UIActivityViewController可以对应注册到系统的扩展应用 扩展引用唤起后会开启一个
阅读全文
摘要:App业务逻辑处理,活动,结果通知 吸引用户眼球,提高用户留存度 特殊场景的数据交互处理,如后台通知 通知分类 远程通知 Alert通知 活动介绍 支持声音(资源,) 支持多媒体,依赖扩展提供,文本,可翻译 支持锁屏便捷的Action处理,需要注册分类 支持角标,app启动图片设置 静默通知(支持后
阅读全文
摘要:源码地址: https://opensource.apple.com/tarballs/CF/官方文档介绍: https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/Multithreading/RunLoopManagement/RunLoopManagement.html#//apple_ref/do...
阅读全文
摘要:Jetsam管理的一种crash机制,通过Signal无法捕捉到Jetsam,iOS不支持交换空间,无RAM和DISK之间的映射,这是因为移动端大多数设备均为闪存。 Jetsam crash日志 rpages代表页的大小, pageSize" : 16384,为当前设备页框的大小4KB 通过 rpa
阅读全文
摘要:dynamic load: 动态加载.它主要是用的实现库之间的动态链接,库不用被直接编译到可以执行文件中,而是在执行的时候才会去link,达到动态加载的效果.共享动态库就是利用这个原理进行的。 如下通过otool -L 可执行文件可以看到它包含了如下信息,其中@rpath/xxx和/usr/lib/
阅读全文
摘要:万能解决方案:清理Xcode缓存,重启Xcode(一般发生在切换不同scheme运行时出现此类错误)清理模拟器缓存重新配对手机(如dyld_shared_cache_extract_dylibs failed)修改Xcode的development target大于等于手机版本(如Failed to start remote service on device.)
阅读全文
摘要:什么是未定义的行为编译器和未定义的行为之间的关系未定义行为导致的安全问题检查未定义行为的工具介绍Swift相比OC更安全一些什么是程序的未定义行为?在 ISO C++14 Standard未定义成为标准的行为,有些错误的行为没有多加检测和控制即语法检查不到的错误,语法正确,运行起来却会有错误比如除数未0,数组越界,数值类型溢出,空指针访问异常,更改字符串的字面量这些都是我们在项目中经常会碰到的.详...
阅读全文
摘要:size: 文件Section信息查看otool: obj砸壳xcrun: 执行本地开发工具,如simctlatos: address to symbol,符号化解析相关clang: 编译codesign: 打包签名用env: 系统环境变量设置,构建打包时用file: 文件类型查看,dwarfdump: 符号化日志文件分析用gcc: 编译工具,与clang作用类似ld: 链接库,如-all_lo...
阅读全文
摘要:(lldb) helpDebugger commands: apropos -- List debugger commands related to a word or subject. breakpoint -- Commands for operating on breakpoints (see 'help b' for ...
阅读全文
摘要:LLVM是编译器的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序编译时间,链接时间,运行时间,以及空闲时间,对开发这保持开放,并兼容已有的脚本(来自百度百科),它的全称是Low Level Virtual MachineLLVM的优势以下来自机翻LLVM使用具有严格定义语义的简单低级语言。它包括C和C++前端。Java、Scheme和其他语言的前端正在开发中。它包括一个积极的优化器,...
阅读全文

浙公网安备 33010602011771号