Чем sdk отличается от framework

Обновлено: 05.07.2024

Я хочу несколько примеров. Я всегда путаюсь, поэтому с некоторыми примерами я мог бы понять это лучше.

также: является ли Eclipse API или IDE?

An IDE - интегрированная среда разработки-текстовый редактор suped-up с дополнительной поддержкой разработки (например, конструкторов форм, редакторов ресурсов и т. д.), компиляции и отладки приложений. e.g Eclipse, Visual Studio.

A библиотека - это кусок кода, который вы можете вызвать из своего собственного кода, чтобы помочь вам делать вещи быстрее/легче. Например, библиотека обработки растровых изображений предоставляет средства для загрузки и управления растровым изображением снимки, избавляя вас от необходимости писать весь код самостоятельно. Как правило, библиотека предлагает только одну область функциональности (обработка изображений или работа с zip-файлами)

An API (интерфейс прикладного программирования) - это термин, означающий функции/методы в библиотеке, которые вы можете вызвать, чтобы попросить его сделать что-то для вас-интерфейс к библиотеке.

An SDK (software development kit) - это библиотека или группа библиотек (часто с дополнительные средства приложения, файлы с данными и пример кода), что поможет вам в разработке кода, который использует конкретной системы (например, расширение код для использования функций операционной системы (Windows SDK), то чертеж 3D-графики по определенной системе (в DirectX SDK) для написания надстройки для расширения возможностей других приложений (офис СДК), или писать код, чтобы сделать устройство как Arduino или мобильный телефон делай, что хочешь). SDK по-прежнему будет иметь один фокус.

A набор инструментов как SDK-это группа инструментов (и часто библиотек кода), которые можно использовать для облегчения доступа к устройству или системе. Хотя, возможно, больше внимания уделяется предоставлению инструментов и приложений, чем просто библиотекам кода.

A framework - это большая библиотека или группа библиотек, которая предоставляет множество услуг (а не, возможно, только одну сфокусированную способность, как большинство библиотек/SDK). Например, .NET предоставляет платформу приложений - это упрощает использование большинства (если нет все) из разрозненных сервисов, которые вам нужны (например, Windows, графика, печать, связь и т. д.), Чтобы написать широкий спектр приложений - поэтому одна "библиотека" обеспечивает поддержку почти всего, что вам нужно сделать. Часто фреймворк предоставляет полную базу, на которой вы создаете свой собственный код, а не приложение, которое использует библиотечный код для выполнения части своей работы.

есть, конечно, много примеров в дикой природе, которые не будут точно соответствовать этим описаниям хотя.

Аналогия С Автомобилем

enter image description here

IDE: MS Office программирования. Здесь вы вводите свой код, а также некоторые дополнительные функции, чтобы сделать вас более счастливым программистом. (например,В Eclipse, В NetBeans). кузов автомобиля: это то, что вы действительно касаетесь, видите и работаете.

библиотека: библиотека представляет собой набор функций, часто сгруппированных в несколько программных файлов, но упакованных в один архивный файл. Этот содержит программы, созданные другими людьми, так что вам не придется изобретать колесо. (например,С JUnit.банку, log4j.jar). Библиотека обычно играет ключевую роль, но делает всю свою работу за кулисами, у нее нет GUI. двигатель автомобиля.

API: документация издателя библиотеки. это, как вы должны использовать мою библиотеку. (например,API для настройки log4j, junit API). пользователь автомобиля руководство-да, автомобили тоже приходят с одним!

наборы

Что такое комплект? Это совокупность множества связанных элементов, которые работают вместе, чтобы предоставить конкретную услугу. Когда кто-то говорит, аптечку, вы получаете все необходимое для ЧП: пластыри, аспирин, бинты и антисептик, и т. д.

enter image description here

SDK: Макдональдс Хэппи Мил. У вас есть все, что вам нужно (и не нужно) аккуратно упаковано: main конечно, напиток, десерт и бонусная игрушка. SDK-это набор различных программных компонентов, собранных в пакет, так что они "готовы к действию" прямо из коробки. Он часто включает в себя несколько библиотек и can, но может не обязательно включать Плагины, документацию API, даже саму IDE. (например, комплект для разработки iOS).

набор инструментов: графический интерфейс. ГРАФИЧЕСКИЙ ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ. ГРАФИЧЕСКИЙ ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ. Когда вы слышите "инструментарий" в контексте программирования, он часто ссылается на набор библиотек, предназначенных для разработки GUI. Поскольку наборы инструментов ориентированы на пользовательский интерфейс, они часто поставляются с плагинами (или автономными IDE), которые предоставляют утилиты рисования экрана. (например,GWT)

рамки: хотя это не распространенное понятие, фреймворк можно рассматривать как набор. Он также имеет библиотеку (или коллекцию библиотек, которые работают вместе), которая обеспечивает определенную структуру кодирования и шаблон (таким образом, слово,рамки). (например, Весна Framework)

Рассмотрим Разработку Android:

IDE: Eclipse etc..

библиотека: android.приложение.Библиотека действий (класс со всем кодом)

API: интерфейс в основном все функции с ведьмой мы называем

SDK: Android SDK предоставляет вам библиотеки API и инструменты разработчика, необходимые для создания, тестирования и отладки приложений для Android (- - - - инструменты-DDMS, эмулятор - - - - платформы-версии ОС Android, - - - - инструменты платформы-ADB, - - - - API docs)

ToolKit: может быть ADT Bundle

Framework: большая библиотека, но больше ориентированная на архитектуру

SDK представляет к набору разработки программного обеспечения, и IDE представляет к интегрированной среде разработки. IDE-это программное обеспечение или программа, используемая для записи, компиляции, запуска и отладки, например Xcode. SDK является базовым ядром IDE, включает в себя все библиотеки платформы, к которым приложение должно получить доступ. Он более прост, чем IDE, потому что обычно не имеет графических инструментов.

IDE Даже ваш блокнот-это IDE. Каждая программа вам написать/скомпилировать код с-это IDE.

библиотека Куча кода, который упрощает функции/методы для быстрого использования.

API Программный интерфейс для функций / конфигурации, с которыми вы работаете, его использование часто документируется.

SDK Дополнительно и/или для целей разработки / тестирования.

набор инструментов Крошечные приложения для быстрого использования, часто GUIs.

GUI Приложения с графическим интерфейсом, не требует знания программирования в отличие от API.

рамки Куча API/огромная библиотека / фрагменты, завернутые в пространство имен/или инкапсулированные из внешней области для компактной обработки без конфликтов с другим кодом.

MVC Шаблон дизайна, разделенный в моделях, представлениях и контроллерах для огромных приложения. Они не зависят друг от друга и могут быть изменены/улучшены/заменены без необходимости заботиться о другом коде.

Автомобиль (Модель)
объекта представленный.
Пример в нем: HTML-форма.

Камера (Вид)
что-то, что может видеть объект(автомобиль).
Пример в нем: браузер, который отображает веб-сайт с формой.

Драйвер (Контроллер)
кто-то, кто водит машину.
Пример в нем: функции, которые обрабатывают данные формы, которые передаются.

фрагментов Небольшие коды только нескольких строк, может быть, даже не полный, но стоит для быстрой доли.

Плагины Эксклюзивные функции для определенных фреймворков / API / библиотек только.

дополнения Дополнительные модули или услуги для конкретных ГИС.

Так в чём на самом деле разница между фрэймворком, библиотекой и API? Есть мнение, что всё это близкие понятия, везде есть классы и методы которые можно встроить в клиентский код. И всё же, похоже есть существенные отличия?

110k 24 24 золотых знака 98 98 серебряных знаков 262 262 бронзовых знака


2,727 3 3 золотых знака 21 21 серебряный знак 37 37 бронзовых знаков Метафорически — библиотека — это часть приложения. Фрэймворк — это скелет, API – внешние части указанного приложения. Фрэймворк, ко всему прочему, в отличии от API использует инверсию управления.

Начнём с API. Это самый простой вариант: возможность для приложения обратиться к коду вне этого приложения. Это набор функциональности для того, чтобы заставить внешнюю для программы сущность сделать свою работу.

Пример из реальной жизни: у вас есть в квартире водопровод, а API — телефон сантехника, который этот водопровод может починить, если надо.

Теперь, библиотека — это готовый к использованию набор кода, который бежит в контексте приложения, и точно так же выполняет свою работу. То есть библиотека становится при подключении частью приложения. Разница между библиотекой и API может быть довольно тонкой: например, WinAPI предоставляет функциональность, которая в общем-то иногда происходит и в рамках процесса. Тем не менее, это считается обращением к внешней для приложения платформе.

Пример из реальной жизни: вы сами не сколачиваете шкаф, а покупаете домой готовый, ставите в свою квартиру и пользуетесь им. Шкаф — ваша подключаемая библиотека.

Ну и фреймворк — его функции, в отличие от библиотеки, не вызываются вами, а наоборот, ваш код вызывается из него. Фреймворк можно представить себе в виде полуфабриката приложения, к которому вы дописываете нужную функциональность сами.

Пример из реальной жизни: вы покупаете почти готовую квартиру, а мебель, обои и шкафы добавляете сами. Квартира — ваш фреймворк, она уже почти готова. Вы не можете так просто переделать число комнат или превратить её в корабль, вместо этого вы только добавляете внутреннюю функциональность: паркетный пол, махровый халат в ванной и кота.

Так в чем же разница? Является ли это в первую очередь маркетинговой игрой семантики или существуют реальные различия в том, как разработчики должны взаимодействовать с программным обеспечением (и наоборот, как разработчики могут ожидать, что программное обеспечение будет вести себя)? Ожидается ли, что один будет на более высоком или низком уровне, чем другой, и т. Д.?

РЕДАКТИРОВАТЬ: Этот вопрос относится к SDK и фреймворкам в целом, а не только к двум, упомянутым выше.

Таким образом, вы можете разработать Framework, состоящий исключительно из библиотек, но если вы назовете его SDK, вы должны будете предложить что-то для поддержки разработки.

Я просто скопирую из Википедии:

Библиотека - это набор подпрограмм или классов, используемых для разработки программного обеспечения. Библиотеки содержат код и данные, которые предоставляют услуги независимым программам. Это позволяет совместно использовать код и данные и изменять их по модульному принципу.

Программная среда в компьютерном программировании - это абстракция, в которой общий код, обеспечивающий общие функциональные возможности, может выборочно переопределяться или специализироваться пользовательским кодом, обеспечивающим определенные функциональные возможности. Фреймворки аналогичны программным библиотекам в том, что они представляют собой повторно используемые абстракции кода, заключенного в четко определенный API. Однако, в отличие от библиотек, общий поток управления программой определяется не самим вызывающим, а структурой. Эта инверсия управления является отличительной чертой программных платформ.

Набор для разработки программного обеспечения (SDK или «devkit») обычно представляет собой набор инструментов для разработки, который позволяет разработчику программного обеспечения создавать приложения для определенного пакета программного обеспечения, структуры программного обеспечения, аппаратной платформы, компьютерной системы, игровой консоли, операционной системы. или аналогичная платформа. Это может быть что-то такое же простое, как интерфейс прикладного программирования в виде некоторых файлов для взаимодействия с конкретным языком программирования или сложное аппаратное обеспечение для связи с определенной встроенной системой. Общие инструменты включают средства отладки и другие утилиты, часто представленные в IDE. SDK также часто включают в себя пример кода и сопроводительные технические примечания или другую сопроводительную документацию, чтобы помочь прояснить моменты из основного справочного материала.

В двух словах, разница в следующем:

  • Вы вызываете функции SDK.
  • Платформа вызывает ваши функции.

SDK - это как набор инструментов с множеством инструментов, и вы выбираете, какие из них использовать и как. У вас есть контроль, но и много решений. Это довольно низкий уровень.

Фреймворк принимает множество решений за вас, поэтому вам не нужно изобретать велосипед; Это скорее подход "заполнить пробелы". Меньше свободы, но вы экономите много времени и, возможно, избегаете некоторых ошибок.

Я был ведущим в Zend Framework в своей версии 1.0. Мы часто получали комментарии о том, что это не «фреймворк» в том смысле, в котором ожидали разработчики - они сказали, что это скорее библиотека классов.

Они ожидали, что инфраструктура больше похожа на набор классов, которые должны использоваться вместе, чтобы они работали. Фреймворк также может включать в себя набор соглашений о кодировании, которые помогут вам организовать ваш код определенным образом. Также фреймворк может налагать соглашения об именах для ваших классов и объектов базы данных. И, наконец, инструменты для генерации кода.

Zend Framework был разработан для слабой связи, поэтому вы можете использовать любой из классов, если хотите. Это наложило несколько соглашений на ваш код или вашу базу данных. И мы собирались разработать генераторы кода, но еще не реализовали их.

Но я все еще чувствовал, что Zend Framework квалифицируется как фреймворк, а не как SDK, еще одним способом: фреймворк расширяемый . Он спроектирован как набор объектно-ориентированных базовых классов, и предполагается, что разработчики либо extend этих классов, либо пишут простые плагины в классах, чтобы добавить функциональность.

Традиционный SDK не расширяемый . Вы просто вызываете методы API в предоставленных классах, они делают то, что делают, и вы работаете с результатом. Любая настройка заключается в том, как вы используете API и как вы используете результаты.

Microsoft SDK может использоваться разработчиком для создания своих программ. Конечным пользователям обычно это не нужно.

Библиотека классов предоставляет классы, которые обычно используют одну и ту же грубую область применения (математика, рендеринг), но предназначены для использования в основном независимо друг от друга.

Фреймворк предоставляет классы, которые вместе образуют основу для приложения, которое вы только расширяете и уточняете.

SDK содержит все, что вам нужно для использования технологии, для которой предоставляется SDK. Он часто содержит документацию, примеры и инструменты наряду с реальным базовым контентом, который может быть каркасом, библиотекой классов или даже чем-то совершенно другим.

В одном сравнении вы могли бы сказать:
Библиотека -> Framework -> SDK
Framework состоит из нескольких библиотек, а также некоторых инструментов (компиляторов и т. Д.) И не ориентирован на конкретную платформу. Для платформы может быть разработано несколько платформ, каждая из которых предназначена для разных целей. SDK предлагает вам фреймворки и все остальное, что вам нужно для разработки программного обеспечения для конкретной платформы.

в чем разница между этими двумя терминами, заранее спасибо за любые хорошие упрощения и хорошие примеры.

фреймворк-это группа классов, интерфейсов и другого предварительно скомпилированного кода, на основе которого или с помощью которого могут быть построены приложения.

API является публичным лицом фреймворка. Хорошо разработанная платформа предоставляет только те классы, интерфейсы и т. д., которые необходимы для использования платформы. Код, поддерживающий работу фреймворка, но не необходимый пользователям фреймворка, хранится внутри сборок/DLL фреймворка. Это держит лицо рамки мало и поощряет "яму успеха", или качество рамки, которая делает его простым, чтобы сделать правильную вещь.

однако, этот класс зависит от около 200 методов в рамках

API-это интерфейс для (набора) компонентов, инкапсулирующих функциональность. Например, API GoogleMaps, API DirectX или OpenGL.

фреймворк-это скорее набор инструментов, компонентов, направленных на то, чтобы помочь разработчику разработать свой проект в заданном фрейме. Фреймворк обычно устанавливает некоторые стандарты кодирования, предоставляет полезные компоненты . Например, Symfony / Cake-это фреймворки веб-приложений PHP. JUnit-это платформа для модульных тестов на Java, .

фреймворки часто могут связывать / предоставлять унифицированный интерфейс некоторым API.

некоторые API могут быть встроены с помощью фреймворка.

  1. API - интерфейс прикладного программирования - > контракт, которому вы должны подчиняться при использовании API библиотеки
  2. библиотека-набор классов / модулей, которые решают определенную проблему -> имеет API
  3. база - "большой" набор библиотек с набором правил о том, как их использовать

поскольку каждая библиотека имеет API, нет смысла приводить примеры.

популярной библиотекой Java для time является Джода времени.

A популярный Java framework является весенние рамки.

вы должны подчиняться многим правилам, чтобы хорошо использовать весну. Вам не нужно подчиняться многим правилам, чтобы использовать время Джоды.

API-это что-то код есть, что-то есть. в рамках и API, но это не сам API.

API предварительно встроены из SDK (или из которого вы можете включить). Фреймворки-это загружаемые пучки, в которых могут использоваться открытые функции таких пучков. Вы можете получить функции expose этих фреймворков, используя указатель на функции.

функции из базы:

Framework используется для разработки приложения, то есть MVC, MEF. Как модель, на которой вы строите, почти основа для определенного набора функций, которые вы можете захотеть в своем приложении.

API предназначен для взаимодействия между приложениями, ваше приложение будет использовать API Facebook для взаимодействия с Facebook.

надеюсь, это немного более ясно.

Java API просто означает . Интерфейс прикладного программирования, в котором все функции описывают продукт или программное обеспечение.

Java Framework означает незавершенный проект или код. Он обеспечивает архитектуру для создания проекта . Framework имеет собственные классы и методы и т. д..

API-это просто библиотека, построенная с определенным языком, который разработчики могут использовать для создания приложений. Фреймворки-это набор библиотек, как и API, однако синтаксисы могут отличаться от исходного языка. Таким образом, разработчик может писать другой синтаксис PHP, например, при использовании Symphony.

основное или основное отличие beteen framework и API заключается в том, что framework позволяет разработчику подключаться к жизненному циклу объектов через механизм методов обратного вызова жизненного цикла, тогда как API этого не делает, API предназначен только для выполнения функциональности.

другой способ визуализировать это: (справедливо для любого языка программирования)

любой(!) "часть программного обеспечения, которая предназначена для использования другой частью программного обеспечения" по определению должны имеют некоторый " интерфейс прикладной программы (API)", который представляет собой" ручки, переключатели и циферблаты", которые, как ожидается, будет использовать (и разрешено) другое программное обеспечение. Все внутренние детали реализации не видны и не могут быть достигнутый.

"фреймворки" – это инструменты, которые предназначены для того, чтобы людям было легче писать конкретный, общий тип приложения, например веб-страницу. Фреймворк реализует " то, что каждый такое приложение должно быть в состоянии сделать" , и делает это одним, хорошо проверенным способом", именно так, что вы (автор приложения) не должен."Вместо того, чтобы избыточно писать" ту же самую старую вещь, еще раз и беспокоиться о том, вы сделали это правильно: "вы просто используете то, что фреймворк уже сделал для вас.

Actum Ne Agas: Не Делайте То, Что Уже Сделано.

Читайте также: