1 前言因为《猫科动物和企鹅在窗口外看机器人吃苹果》这出戏太美,很多公司都希望能全平台同时发布新版本app,还要能复用代码以降低开发成本。这迫使一部分已熟悉某个平台的先锋们转岗到另一个平台边学习边开发。最终有少部分人在每个战场都打拼过,从而能全盘考虑以设计出良好的可复用架构。
革命总会出新知,今天已有一些开源框架能应对同时在5大平台Mac OS X、Linux、Windows、Android、iO...
0.通用规则boost自带一套编译工具bjam,bjam本身是跨平台的,并且也要自行编译出来。在boost目录下有bootstrap.sh和bootstrap.bat两个脚本分别用来编译*nix和windows下的bjam。bootstrap脚本可以传入参数,以在编译bjam过程中生成特定的编译boost的配置。编译bjam过程中生成的project-config.jam就是默认的配置,但还可以在运...
理想状况当然是找到有管理能力且还在写代码的架构师了,然而如果有这样的人,他自己能发起项目了,你要拉上他还真难。满足一定条件就行了,别追求完美。还有比这更完美的吗?请生产这样的机器人:性格开朗(开朗≠外向),平易近人表达能力好,易于沟通交流有设计能力,有攻关能力知识范围广,跨职能团队合作顺畅在业界有一定视野或影响力,有好的人脉资源有管理能力(经验≠能力),中后期能管好团队,顺利成长为管理者没身体和家...
在UIWebView网页里要获取img标签的图片,网上的方法都是通过获取到URL然后自己再下载一遍,耗流量、耗时间、不能通过验证。
这里是利用UIWebView的stringByEvaluatingJavaScriptFromString函数,执行一段js,返回图片数据。
具体的方式有两种:...
现在很多for Mobile的H5网页内都有快速滚动和回弹的效果,看上去和原生app的效率都有得一拼。
要实现这个效果很简单,只需要加一行css代码即可:
-webkit-overflow-scrolling : touch;可用以下网页测试:
scroll
.container {...
mark一下吧,只是个人经验。
Xcode,IDE
gdb,lldb,命令行调试工具
Simulator,模拟器
Application Loader,(上传app store用)
Instruments,各种开发辅助工具,性能测试、自动化测试、内存泄露检测等
Chrome,看网页、调试网页
Safari,可以辅助调试ios模拟器的网页
TextMate,简单的文本编辑器...
官网的介绍:
The JavaScript Core framework (JavaScriptCore.framework) provides Objective-C wrapper classes for many standard
JavaScript objects. Use this framework to evaluate JavaScript code and p...
WebEvent是iOS专有的类,负责封装和携带从UIKit得到的系统事件信息,并由WebKit层的WAKResponder子类传递到WebCore的EventHandler。
UIKit层的逻辑可参考《iOS私有API(三) UIWebView下的手势识别器gestureRecognizer》,WebKit层的相关类可参考《WebCore::Widget浅探》。
开源码中WebEvent的声...
Mobile Safari是开源的Mac Safari的iOS版本,然而iOS WebKit并不完全开源,只公开了部分的WebCore和JavaScriptCore。有时需要知道iOS Safari的WebKit revision number是对应www.webkit.org上的哪个,可以这么看。
用Mobile Safari打开http://www.whatsmyuseragent....
WebView的私有API请查看《UIWebView体系结构(七)WebView》。
先上代码吧
- (void)modifyUA
{
id webView = [uiWebViewInstance valueForKeyPath:@"_internal.browserView._webView"];
[webView performSelector:@selector(set...
各种Clients会有些共性:
1.WebCore会声明抽象基类,各Controller持有基类类型的指针
2.由第三方创建Client并传递指针给Controller,Controller析构时会通知Client,Client此时删除自身。例如
void WebChromeClient::chromeDestroyed()
{
delete this;
}
3.自身脱离W...
请先阅读《iOS Safari/WebKit对DeviceOrientationEvent的实现》,本文是姐妹篇。
简单地描述一下区别,后面会更详细对比:
DeviceOrientationEvent是获取方向,得到device静止时的绝对值;
DeviceMotionEvent是获取移动速度,得到device移动时相对之前某个时间的差值比。
背景知识:
Apple官方依然只...
背景知识:
Apple官方只发现一个文档:
https://developer.apple.com/library/safari/#documentation/SafariDOMAdditions/Reference/DeviceOrientationEventClassRef/DeviceOrientationEvent/DeviceOrientationEvent.html
连个例子都没...
背景知识:
Safari Web Content Guide中关于orientationchange的文档:
http://developer.apple.com/library/ios/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html#//apple_re...
在《iOS WebCore的wak目录》中证实了iOS的WebKit是想尽可能复用Mac上的代码,所以WebView在iOS和Mac上差不多。
Mac WebView的参考文档:
https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/WebKit/Classes/WebView_Class/Referenc...
首先,这个工具是开源的。作者网站:http:///projects/class-dump/
用途:
分析库文件或可执行文件,得到Objective-C类和部分C结构体的信息。常见使用场景是得到系统SDK的私有API。头文件的例子请参考《UIWebView体系结构(六)UIWebView》
原理:
Objective-C类的信息会有字符串来对应描述,分析保存这些...
在第三节 函数表示与搜索函数 提到block函数和普通的OC函数不同。
反汇编分析前需要理解block的实现原理,故推荐先看看这几篇文章及其所引用的参考资料:
Block介绍(一)基础
Block介绍(二)内存管理与其他特性
block介绍(三)揭开神秘面纱(上)
block介绍(四)揭开神秘面纱(下)
block函数的命名与上文提到类似。函数内部定义的block会以sco...
越写越多,整理不完,也许思维导图都不是最好的承载工具了,以后再继续补充。
分辨率为2042*3917,点击查看大图:
转载请注明出处:http://blog.csdn.net/hursing...
iOS多用OC(Objective-C)编程,Mac也类似,所以IDA for Mac对OC的支持似乎强些。Windows的IDA在反汇编某些SDK库文件时会识别不出OC的函数名,而且对OC运行时的结构体也没识别出来。当然,因为我用的是6.1版的windows IDA, Mac上用的是6.4版,不知道是不是windows IDA 6.1的bug了。
总之在界面操作流程上,感觉Mac IDA是对O...
C++类的实质是个结构体。先举个例:
class TestClass
{
int m_val1;
int m_val2;
public:
int getVal1();
int getVal2();
};
int TestClass::getVal1()
{
return m_val1;
}
int TestClass::getVal2()
{...
|
|
来自: jerry_tom123 > 《博客》