朝元的博客


  • 首页

  • 归档

给 Objective-C 中的 Protocol 加上默认的实现

发表于 2017-08-24

0x01 Abstract Class

Java、C++ 等 OOP 语言有一个抽象类的概念,即一个类实现了部分方法,另一部分的方法必须由继承它的子类来实现。Objective-C 在设计上没有这个概念,转而提供了用途类似的 协议,除了不能给方法加默认实现以外,与抽象类的用法大体相同。但是在实际项目中,让一个协议实现一些共通的方法还是很有必要的,比如很多类都遵守了某一个协议,而这个协议中某一个方法的实现大体上都一样的时候,在每一个子类内部都 copy 一份同样的代码就不太合适了。

阅读全文 »

谈谈 iOS 中图片的解压缩

发表于 2017-08-23

对于大多数 iOS 应用来说,图片往往是最占用手机内存的资源之一,同时也是不可或缺的组成部分。将一张图片从磁盘中加载出来,并最终显示到屏幕上,中间其实经过了一系列复杂的处理过程,其中就包括了对图片的解压缩。

阅读全文 »

iOS日志查看

发表于 2017-07-30

查看 iOS 设备System Log方法

  1. syslogd to /var/log/syslog (Cydia安装,已不适用)
  2. idevicesyslog (github开源,有些问题)
  3. Xcode -> Deveices -> Deice -> 左下角三角形按钮
  4. socat (越狱设备上查看)
阅读全文 »

H.264 的 NAL 单元及码流结构

发表于 2017-07-16

NAL 简介

NAL 全称 Network Abstract Layer, 即网络抽象层。在H.264/AVC 视频编码标准中,整个系统框架被分为了两个层面:视频编码层面(VCL)和网络抽象层面(NAL),其中,前者负责有效表示视频数据的内容,而后者负责格式化数据并提供头信息,以保证数据适合各种信道和存储介质上的传输。NAL 单元是 NAL 的基本语法结构,它包含一个字节的头信息和一系列来自 VCL 的称为原始字节序列荷载(RBSP)的字节流。

阅读全文 »

iOS高级调试&逆向技术-汇编寄存器调用

发表于 2017-07-12

前言

本文翻译自Assembly Register Calling Convention Tutorial

阅读全文 »

数据结构 - 树

发表于 2017-07-05

树的定义

树是n(n>=0)个结点的有限集。n=0 时称为空树。

阅读全文 »

常用排序算法

发表于 2017-05-31

选择排序

阅读全文 »

队列

发表于 2017-04-01

队列是一种先进先出(First In First Out)的线性表,简称 FIFO 。允许插入的一端称为队尾,允许删除的一端称为队头。

阅读全文 »

DTS、PTS 解惑

发表于 2017-04-01

I、P、B 帧

要搞懂 DTS 和 PTS ,首先要先了解一下 I、P、B 帧。

  • I 帧 : 帧内编码帧 又称intra picture,I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图象。I帧可以看成是一个图像经过压缩后的产物。可独立解码。
  • P 帧 : 前向预测编码帧 又称predictive-frame,P 帧图像只采用前向时间预测,可以提高压缩效率和图像质量。
  • B 帧 : 双向预测内插编码帧 又称bi-directional interpolated prediction frame,可以大大提高压缩倍数。
阅读全文 »

使用fishhook hook NSLog 函数

发表于 2017-02-24

使用的是 facebook 的 fishhook 进行 C 函数的 hook 的。

阅读全文 »
123…5
朝元

朝元

42 日志
10 分类
24 标签
© 2019 朝元
由 Hexo 强力驱动
主题 - NexT.Mist