一句话笔记(11)

一句话笔记,某段时间内遇到或看到的某个可记录的点。 2016-9-30

  • iOS10 中的openURL
  • 启动优化小点
  • .framewok & .a , .thd & .dylib,动态库 & 静态库
1、iOS10 中的openURL
[[UIApplication sharedApplication] openURL:URL options:@{} completionHandler:nil];

异步执行 open 操作,主线程执行回调。

// Option for openURL:options:CompletionHandler: only open URL if it is a valid universal link with an application configured to open it
// If there is no application configured, or the user disabled using it to open the link, completion handler called with NO

UIKIT_EXTERN NSString *const 
UIApplicationOpenURLOptionUniversalLinksOnly NS_AVAILABLE_IOS(10_0);

UIApplicationOpenURLOptionUniversalLinksOnly,其对应的Value为布尔值,默认为False.如该Key对应的ValueTrue,那么打开所传入的Universal Link时,只允许通过这个Link所代表的iOS应用跳转的方式打开这个链接,否则就会返回successfalse,也就是说只有安装了Link所对应的App的情况下才能打开这个Universal Link,而不是通过启动Safari方式打开这个Link的代表的网站。

[application openURL:URL options:@{UIApplicationOpenURLOptionUniversalLinksOnly : @YES} completionHandler:nil];

源自: iOS10新变化之废弃的openURL

2、启动优化小点

如果我们想知道程序启动的时间,则可以在工程的scheme中添加环境变量DYLD_PRINT_STATISTICS,DYLD_PRINT_STATISTICS + 1。这样在调试时,可以在控制台打印出程序启动过程中各个阶段所消耗的时间。

DYLD_PRINT_STATISTICS

而且在iOS 10中,对输出的内容做了简化,如上图所示,简单易懂。这样,我们就可以有针对性去优化我们的启动流程。

源自: WWDC之优化App启动速度

3、 .framewok & .a , .thd & .dylib, 动态库 & 静态库
  • .framewok & .a

  • .a是一个纯二进制文件,不能直接拿来使用,需要配合头文件、资源文件一起使用。在 iOS 中是作为静态库的文件名后缀。

  • .framework中除了有二进制文件之外还有资源文件,可以拿来直接使用。

  • 关系: 可以这样理解:.framework = .a + .h + bundle

  • .thd & .dylib

    • .dylib:是动态库的文件的后缀名。
    • .tbd: 是苹果压缩 iOS 系统和应用大小的一个产物。其实就是一个文本文件(It is just a text file.),描述了需要链接的动态库的信息。目的是为了减少app 的下载大小 。
  • 动态库 & 静态库

  • 静态库: 在链接的时候,完整地拷贝至可执行文件中。(在编译的时候会被直接拷贝一份,复制到目标程序里。)

    • 静态库的好处:编译完成之后,库文件实际上就没有作用了。
      目标程序没有外部依赖,直接就可以运行。
    • 静态库的缺点:就是会使用目标程序的体积增大。
  • 动态库: 在链接的时候,由系统动态加载到内存,供程序调用。(等到程序运行时,动态库才会被真正加载进来)

    • 动态库的优点:不需要拷贝到目标程序中,不会影响目标程序的体积,而且同一份库可以被多个程序使用。也可以让我们随时对库进行替换,而不需要重新编译代码。
    • 动态库的缺点:动态载入会带来一部分性能损失,使用动态库也会使得程序依赖于外部环境。

源自: iOS 开发中的『库』(一)

另外 sunnyiOS 开发中的『库』(一)的一些纠正,个人有些地方是不懂的,先收藏着。
sunny 的纠正.jpg

然后接着再看看 iOS 开发中的『库』(二), 理解貌似有点进步啦。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 静态库与动态库的区别 首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别...
    吃瓜群众呀阅读 14,151评论 3 42
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,386评论 19 139
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,204评论 4 61
  • 上学时突然被老师点名回答问题,为了不让全班人笑话,我们就硬着头皮开始答;有些人长得好看,走在路上会被某电视台记者...
    可燃冰coins阅读 1,072评论 0 0
  • 昨晚12点休息,有些晚,因为到家的时候,已经8点了,写完日志,弄弄淘宝,就已经接近12点了,媳妇和儿子早就睡了。养...
    魏巍日记阅读 1,397评论 0 1