关闭

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

前言本文翻译自Assembly Register Calling Convention Tutorial 序言通过本教程,你会可以看到CPU使用的寄存器,并探索和修改传递给函数调用的参数。还将学习常见的苹果计算机架构以及如何在函数中使用寄存器。这就是所谓架构的调用约定。 了解汇编是如何工作的,以及特定架构调用约定是如何工作是一项极其重要的技能。它可以让你在没有源码的情况下,观察和修改传递给函数的参数...
阅读(2638) 评论(7)

分离静态库架构

先来看一段 MakeFile 脚本:OUT = libkugouplayer_VIPER3DRender.aOBJS = \ ../../Limiter.cpp \ ../../ViPER3DEffect.cpp \ ../../../AudioEffect.cpp INCLUDE = -I../../../ \ -I....
阅读(279) 评论(0)

ARC 下 C++/OC 混编计数器的问题

ARC 模式下,object-C 编写的代码的内存管理都交给了自动引用计数器了,不用我们自己再去操心内存的管理,但使用 Core Foundation 框架或者是和 C++ 混编时,代码的内存还是需要我们自己去管理的,这时候就需要注意了!Core Foundation 主要是由不透明类型(opaque type),即 C 结构体组成,语言层面并不支持继承和多态,而 Core Foundation能够...
阅读(183) 评论(0)

拷贝头文件shell

简单的拷贝头文件的话其实一个命令就可以搞定了find ./ -type f -not -name "*.h" -delete然后 copy 到你想要的地方,但这样做得不够完全,会出现一些空的目录,而且每次都要手动去敲命令,还是觉得挺麻烦的。所以还是写一个脚本执行好点,如上图,想要的 copy 的是 include 里面的头文件。脚本如下:#!/bin/bash header_path=$SRCROO...
阅读(280) 评论(0)

AVAudioSessionInterruptionNotification not called

问题描述: 监听了系统的打断事件,在来电的时候有收到系统打断的 AVAudioSessionInterruptionTypeBegan 通知,却没有收到 AVAudioSessionInterruptionTypeEnd 通知。 [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:n...
阅读(1434) 评论(0)

重定向 NSLog 输出到文件

问题: 在 iOS 的开发过程中总是离不开 Debug,调试的时候都是依靠 XCode log 输出来追踪确定问题。 但如果离开了 XCode 的时候仍然想看到日志的输出,比如在调试 App 与硬件的交互的时候,这时候应该怎么办? 解决思路: 方法一: 第一反应是,写个类似于 NSLog 的输出函数,把想要的查看的信息输出到 view 上就好了。但很快就否决了,原因有2个: 每...
阅读(663) 评论(0)

iOS 编译包含 bitcode 的 opencore-amr-iOS 静态库

下载 opencore-amr-iOS 源码。修改 build_ios_xcode6.sh 脚本,以下加粗的部分为修改的内容。#!/bin/sh ### Modified from http://blog.csdn.net/favormm/article/details/6772097 set -xe DEVELOPER=`xcode-select -print-path` DEST=`pwd...
阅读(2195) 评论(0)

iOS 编译包含 bitcode 的 x264 静态库

1、首先下载 x264 的源码  git clone git://git.videolan.org/x264.git # cd x264 2、编译脚本在这里。 3、将编译脚本下载下来,打开 build-x264.sh ,在所有的 CFLAGS="... -fembed-bitcode" 后面加上 -fembed-bitcode ;然后将 build-x264.sh 放在和 x264...
阅读(862) 评论(0)

iOS 编译包含 bitcode 的 fdk-aac 静态库(包含 arm64)

不多说了,这里是编译脚本。下载下来这个编译脚本后,修改一下 CFLAGS 选项,添加 -fembed-bitcode ,如下: 细心的话,你设置一下 XCode 的 bitCode 选项的 enable 为 YES 的话,在 sourcetree 里查看批文件的修改也可看到其实修改到的也是这一行。 有几点要注意的: 1、它这个脚本使用的是 0.1.3 的 fdk-aac ,最新版的在这里...
阅读(1691) 评论(0)

谈谈 WebSocket

对于一些例如 IM、金融、股价、视频会议等这样一些应用来说,所需要的不过是高实时、低延时。 针对于这一需求,现在有哪些比较好的可选方案呢?目前比较流行的是 socket 和 websocket。 Socket 首先,Socket 其实并不是一个协议。它工作在 OSI 模型会话层(第5层),是为了方便大家直接使用更底层协议(一般是 TCP 或 UDP )而存在的一个抽象层。Socke...
阅读(1860) 评论(0)

漫谈 iOS Crash 收集框架

为了能够第一时间发现程序问题,应用程序需要实现自己的崩溃日志收集服务,成熟的开源项目很多,如 KSCrash,plcrashreporter,CrashKit 等。追求方便省心,对于保密性要求不高的程序来说,也可以选择各种一条龙 Crash 统计产品,如 Crashlytics,Hockeyapp ,友盟,Bugly 等等。 是否集成越多的 Crash 日志收集服务就...
阅读(867) 评论(0)

调节音量时隐藏系统提示框(Hide device volume HUD when adjust the volume)

有这样一个需求,在特定页面调节系统音量的时候需要隐藏系统的音量 HUD 提示框。首先想到的是肯定是找控制系统音量的那个类,查找一下有没有对应的接口提供,过了一下 MPMusicPlayerController 并没有找到我需要的接口。又 Google 了一下,找到了设置音量的类 MPVolumeView ,根据 stackoverflow 上的答案,说是这样设置 MPVolumeView *...
阅读(2597) 评论(0)

Swift编程的15个技巧

转载链接:http://geek.csdn.net/news/detail/58593 自2014年9月1.0版发布后,Savvy的应用开发团队就开始在iOS项目中实验并使用Swift。不过由于Swift相对还很新,当时大多项目仍在使用Objective-C;自从2015年9月Swift 2.0版本发布以来,我们已经开始改用Swift来编译新的项目了。实际上在2016年1月,我们大多数的...
阅读(1221) 评论(0)

实现一个TODO宏

文章转自 sunnyxx 的博客:http://blog.sunnyxx.com/2015/03/01/todo-macro/ 实现一个TODO宏 实现一个能产生warning的TODO宏,用于在代码里做备忘,效果: 下面一步步来实现这个宏。 Let’s do it 手动让编译器报警(报错)可以用以下几个方法: 1 2 3...
阅读(635) 评论(0)

iOS 保持界面流畅的技巧

文章转自:http://blog.ibireme.com/2015/11/12/smooth_user_interfaces_for_ios/ 这篇文章会非常详细的分析 iOS 界面构建中的各种性能问题以及对应的解决思路,同时给出一个开源的微博列表实现,通过实际的代码展示如何构建流畅的交互。 Index 演示项目 屏幕显示图像的原理 卡顿产生的原因和解决方案 CPU 资源消...
阅读(6107) 评论(1)
326条 共22页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:1212255次
    • 积分:12193
    • 等级:
    • 排名:第1220名
    • 原创:169篇
    • 转载:153篇
    • 译文:4篇
    • 评论:109条