zoukankan      html  css  js  c++  java
  • iOS静态库和动态库的区别

    一、什么是库?

    库是共享程序代码的方式,一般分为静态库和动态库。

    静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。

    动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存。

    二、形式

    静态库形式: .a和.framework

    动态库形式:.dylib和.framework

    其中,系统的.framework是动态库,我们自己建立的.framework是静态库。

    .a是一个纯二进制文件,.framework中除了有二进制文件之外还有资源文件。

    .a文件不能直接使用,至少要有.h文件配合,.framework文件可以直接使用。

    .a + .h + sourceFile = .framework。

    建议用.framework.

    三, 为什么要使用静态库?

    方便共享代码,便于合理使用。

    实现iOS程序的模块化。可以把固定的业务模块化成静态库。

    和别人分享你的代码库,但不想让别人看到你代码的实现。

    开发第三方sdk的需要。

    四,限制

    苹果官方不允许用户自己的动态库上线 

    最简单的区别,动态库 所有app共用一份,静态库每个app一份
    之所以苹果不让有动态库是有考虑的,比如很多app都用了友盟,如果友盟是个动态哭,那在这些app中通过友盟动态库实现数据共享 甚至隐私窃取将成为可能。 

  • 相关阅读:
    STM32F103 rtthread工程构建
    Alios-Things的学习与使用(1)
    AM335X用RGB888连接LCD如何以16位色彩模式显示图片
    为什么要网页模块化?
    前端应该了解的颜色的寓意
    iOS 8安装教程图解
    windows8开发-关于wp7应用迁移到win8 metro风格
    短小强悍的JavaScript异步调用库
    Linux启动过程分析
    小技能——markdown
  • 原文地址:https://www.cnblogs.com/developer-qin/p/5691087.html
Copyright © 2011-2022 走看看