سؤال

أنا أحاول أن أشرح غير المطور الفرق بين API SDK.أريد أن أشرح لماذا التجارية بصمة بائع البرامج من المحتمل أن لا توفر SDK ، على الرغم من أنها بالتأكيد قد استخدمت واحدة.

كل بائعي الأجهزة والبرامج الموردين يمكن أن تعرض واضحة المعالم API.هذا API يسمح البرامج الأخرى أن (تكون مكتوبة) بين العمل مع الموردين الخاصة مكونات البرامج أو الأجهزة.

إذا كان شخص ما لديه المزيد من الأفكار في شرح هذا بوضوح ، وأود أن نقدر كثيرا الاقتراحات.أريد أن أؤكد على أن والهدف من ذلك هو توضيح المفاهيم غير مبرمج الذي لا يعرف المطور لغة.

على وجه التحديد في سياق جهاز استشعار بصمات الأصابع مقابل البرنامج التسجيل/التحقق هنا هو كيف حاولت أن أشرح ذلك:

إذا أنا بصمة الجهاز/الاستشعار الصانع وليس في العمل من كتابة البرامج وطرق يمكنني أن أفضل سوق بلدي المنتج:

  1. تأكد من جهازي السائقين للتثبيت على مجموعة واسعة من أنظمة التشغيل
  2. تحديد و توفير API لمطوري البرمجيات لكتابة البرامج (على سبيل المثال ، من أجل الالتحاق التحقق) "الحديث" أو استخدام بلدي الجهاز
  3. تطوير و توفير SDK (خطوة واحدة خارج API) لجعله أسهل و أسرع البرمجيات للمطورين لكتابة البرامج التي تعمل مع جهازي.تطوير البرامج قد توفر مساعد رمز المكتبات ، مرجع التطبيقات والوثائق وما إلى ذلك.
هل كانت مفيدة؟

المحلول

قطعة من كعكة:

  • API هو واجهة.انها مثل مواصفات هاتف أو نظام الأسلاك الكهربائية في منزلك.أي شيء* يمكن استخدامه طالما أنه يعرف كيف واجهة.يمكنك حتى شراء الجاهزة البرامج إلى استخدام API معينة ، كما يمكنك شراء الرف أجهزة الهاتف أو أجهزة توصيل التيار المتردد الأسلاك في المنزل الخاص بك.
  • SDK هو تنفيذ الأدوات.انها مثل مجموعة أدوات تسمح** لك لبناء شيء مخصص لربط ما يصل إلى نظام الهاتف أو الأسلاك الكهربائية.

*أي شيء يمكن استخدام API.بعض واجهات برمجة التطبيقات الأمنية الأحكام التي تتطلب مفاتيح الترخيص والمصادقة.... الخوالتي قد تحظر استخدام API في حالات معينة ، ولكن هذا فقط لأن معينة المصادقة/تصريح خطوات الفشل.أي البرامج التي تقدم حق التفويض (إذا لزم الأمر) يمكن استخدام API.

**من الناحية الفنية ، إذا API هو موثقة جيدا, أنت لا تحتاج إلى SDK لبناء البرمجيات الخاصة بك استخدام API.ولكن وجود SDK عموما يجعل العملية أسهل بكثير.

نصائح أخرى

API مثل بناء كتل من بعض الحيرة اللعبة أن الطفل يلعب مع للانضمام إلى كتل في مختلف الأشكال و بناء شيء أنها يمكن أن تفكر في.

SDK, من ناحية أخرى, هو السليم ورشة عمل حيث كل أدوات التطوير المتاحة ، بدلا من قبل على شكل كتل البناء.في ورشة عمل لديك الفعلي وأدوات أنت لا تقتصر على كتل ، وبالتالي يمكن أن تجعل الخاصة بك كتل ، أو يمكن أن تخلق شيئا من دون أي كتل لتبدأ.

الترميز دون SDK أو API مثل صنع كل شيء من الصفر دون الورشة - يجب أن تجعل حتى الأدوات الخاصة بك

لنفترض أن الشركة ج يقدم المنتج P P يتضمن البرنامج في بعض الطريق.ثم C يمكن أن توفر المكتبة/مجموعة من المكتبات إلى مطوري البرمجيات التي تدفع ف أنظمة البرمجيات.

المكتبة/المكتبات هي SDK.بل هو جزء من أنظمة P.هو مجموعة البرمجيات للمطورين لاستخدامها من أجل تعديل, تكوين, إصلاح وتحسين الخ البرنامج قطعة من P.

إذا ج يريد تقديم ع وظائف شركات أخرى/نظم يفعل ذلك مع API.

هذا هو واجهة P.طريقة الأنظمة الخارجية للتفاعل مع P.

إذا كنت تعتقد من حيث التنفيذ ، فإنها تبدو مماثلة تماما.وخاصة الآن بعد أن أصبحت شبكة الإنترنت مثل واحد كبير توزيع نظام التشغيل.

في الغرض ، على الرغم من أنها هي في الواقع تختلف تماما.

يمكنك بناء شيء مع SDK و يمكنك استخدام أو استهلاك شيء مع API.

واجهة برمجة التطبيقات هو مجموعة من إجراءات/هياكل البيانات/الطبقات التي تحدد طريقة التفاعل مع الهدف الأساسي/البرمجيات مثل OS X, Android, تطبيق إدارة المشاريع, البرمجيات الافتراضية.... الخ

في حين أدوات تطوير البرمجيات هو التفاف حول API/s وهذا يجعل المهمة سهلة للمطورين.

على سبيل المثال, Android SDK يسهل للمطورين للتفاعل مع منصة أندرويد ككل في حين أن المنصة نفسها بنيت من قبل مركب مكونات البرنامج التواصل عبر واجهات برمجة التطبيقات.

أيضا ، في بعض الأحيان تطوير البرامج مبنية على تسهيل التنمية في محدد لغة البرمجة.على سبيل المثال ، السيلينيوم ويب سائق (بنيت في جاوة) توفر واجهات برمجة التطبيقات لدفع أي متصفح أصلا ، بينما كابيبارا يمكن اعتبار SDK التي تسهل روبي للمطورين استخدام السيلينيوم ويب سائق.ومع ذلك, السيلينيوم ويب سائق أيضا SDK في حد ذاته كما أنه يجمع بين التفاعل مع مختلف المتصفح الأصلي السائقين في حزمة واحدة.

أنا لست متأكدا إن كان هناك تعريف رسمي من هذين المصطلحين.أنا أفهم API إلى مجموعة من توثيق برمجة المكتبات ودعم المصدر مثل رؤوس أو IDL الملفات.تطوير البرامج عادة ما تحتوي على واجهات برمجة التطبيقات ولكن في كثير من الأحيان في كثير من الأحيان إضافة المجمعين والأدوات والعينات إلى المزيج.

API المواصفات على كيفية القيام بشيء ما ، واجهة مثل "السكة الحديدية أربعة أقدام بعيدا و قضيب معدني 1 بوصة واسعة" الآن بعد أن كنت قد API يمكنك الآن بناء القطار الذي سوف يصلح على تلك السكة الحديدية إذا كنت تريد أن تذهب في أي مكان.API هي فقط المعلومات حول كيفية بناء التعليمات البرمجية الخاصة بك, أنها لا تفعل أي شيء.

SDK بعض الحزمة الفعلية الأدوات التي بالفعل قلقا حول المواصفات."ها هو قطار بعض الفحم و الصيانة.استخدامه للذهاب من مكان إلى مكان" مع SDK لا تقلق من التفاصيل.SDK هو الرمز الفعلي ، فإنه يمكن استخدامها من قبل نفسها أن تفعل شيئا, ولكن بطبيعة الحال, القطار لن تبدأ تلقائيا, لا يزال لديك للحصول على موصل إلى السيطرة على القطار.

تطوير البرامج أيضا الخاصة واجهات برمجة التطبيقات."إذا كنت تريد أن السلطة القطار وضع الفحم في ذلك" ، "سحب الأزرق رافعة لتحريك القطار.", "إذا كان القطار يبدأ يتصرف مضحك, استدعاء الصيانة رجل" إلخ.

API = قاموس المتاحة الكلمات ومعانيها (المطلوبة قواعد الجمع بينهما)

SDK = كلمة نظام معالجة... لمدة 2 سنة من العمر والأطفال... يكتب من أفكار

على الرغم من أنك يمكن أن تذهب إلى المدرسة وتصبح على درجة الماجستير في اللغة الخاصة بك بعد بضع سنوات ، باستخدام SDK سوف تساعدك على كتابة كل جمل ذات معنى في أي وقت من الأوقات (مسامحة من حقيقة أنه في هذا المثال ، طفل لم نصل حتى إلى تعلم أي لغة أخرى على الأقل أن تتعلم كيفية استخدام SDK.)

ماذا عن...انها مثل إذا كنت تريد تثبيت نظام المسرح المنزلي الخاص بك في المنزل.باستخدام API هو مثل الحصول على جميع الأسلاك, مسامير, أجزاء, والقطع.الاحتمالات لا حصر لها (مقيدة فقط من قطع تتلقى), لكن في بعض الأحيان الساحقة.SDK هو مثل الحصول على مجموعة.لا يزال لديك لوضعها معا ، ولكن أكثر مثل الحصول على قبل قطع قطع تعليمات ايكيا رف من صندوق مسامير.

يمكنك استخدام SDK للوصول إلى وظائف مكتبة API للسيطرة عليها.

API = واجهة برمجة التطبيقات SDK = مجموعة تطوير البرامج

وهو SDK يبدو أن مجموعة كاملة من APIs التي تسمح لك لأداء أي عمل سوف تحتاج إلى إنشاء التطبيقات.وبالإضافة إلى ذلك ، SDK قد تتضمن أدوات أخرى لتطوير لمنصة/البند هو.

وهو API من ناحية أخرى هو مجرد سلسلة متصلة من الأساليب التي قد تكون جيدة لغرض محدد.

وكمثال على ذلك ، JDK (أدوات تطوير جافا) يحتوي على API وكذلك المجمعين ، أوقات التشغيل و أدوات متنوعة أخرى.API جافا هو ببساطة كل المكتبات التي تشكل جوهر اللغة التي يمكنك العمل مع الخروج من مربع.

أمثلة من واجهات برمجة التطبيقات: جافا API ، خرائط جوجل API ، Flash Player API.

أمثلة من تطوير البرامج: جدك ، GWT ، فليكس SDK.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top