अगोदर निर्देश केलेल्या बाबीसंबंधी बोलताना आपण सॉफ्टवेअर विषयी लेख वाचता तेव्हा एपीआय चे परिवर्णी शब्द आपण त्यांना एकापेक्षा जास्त वेळा पाहिले असेल. परंतु एपीआय म्हणजे काय हे प्रत्येकास माहित नाही. म्हणूनच आम्ही या लेखात स्पष्टीकरण देतो. पहिली गोष्ट म्हणजे ते म्हणजे Applicationप्लिकेशन प्रोग्रामिंग इंटरफेस, म्हणजे स्पॅनिश मध्ये अॅप्लिकेशन प्रोग्रामिंग इंटरफेस. आणि बर्याच वेळा हे ज्यांना काही प्रोग्रामिंग माहित असते त्यांच्यातही संभ्रम निर्माण होतो.
उदाहरणार्थ, आर्डूनोची स्वतःची प्रोग्रामिंग एपीआय आहे, आपण आपल्या प्रकल्प तयार करण्याची परवानगी देण्यासाठी मायक्रोकंट्रोलर प्रोग्राम करण्यासाठी आर्दूनो आयडीई किंवा इतर वातावरणात वापरू शकता असे अनेक कार्ये ऑफर करतात. पण ... तू मला सांगशील का? प्रोग्रामिंग लायब्ररी आणि एपीआय मधील फरक? फ्रेमवर्क आणि एपीआय मध्ये फरक आहे? एपीआय हे एबीआयसारखेच आहे? अशा अनेक शंका आहेत की कदाचित संभ्रम निर्माण होत आहे आणि आम्ही सध्या स्पष्टीकरण देत आहोत.
तुला माहित आहे का हे मला माहित नाही निम्न-स्तरीय भाषाअॅसेम्बलर किंवा एएसएम प्रमाणे हार्डवेअर आर्किटेक्चरवर थेट अवलंबून असते, तर प्रोग्रामरचे कार्य सुलभ करण्यासाठी उच्च-स्तरीय लोक हार्डवेअरमधून अॅबस्ट्रॅक्ट करतात, परंतु ऑपरेटिंग सिस्टम (सिस्कोल्स) किंवा विशिष्ट एपीआय इत्यादींवर अवलंबून असतात. जेणेकरुन हे सर्व चिनीसारखे वाटणार नाही, त्याबद्दल काय आहे ते पाहूया ...
एपीआय म्हणजे काय?
una API हे एक साधन आहे ज्याद्वारे विकसक प्रदान केले आहेत जेणेकरून त्यांच्याकडे विद्यमान लायब्ररीतून वापरल्या जाणार्या ओओपीसाठी कार्ये, सबरुटिन आणि प्रक्रिया किंवा पद्धतींची मालिका असेल. एपीआय ऑफर करते त्यापैकी सोपी अॅप्स तयार करण्यासाठीच्या फंक्शन, एआयशी संबंधित कार्ये, ग्राफिक्सच्या निर्मितीसह, हार्डवेअर संसाधनांचे व्यवस्थापन इ.
उदाहरणार्थ, मला खात्री आहे की आपण एपीआयसह परिचित आहात जसे की ग्लिबक लायब्ररीद्वारे लिनक्सने ऑफर केले आहे, किंवा ग्राफिक्स जसे की ओपनजीएल आणि वल्कन किंवा इतर देखील ओपन सीसीएल विषम संगणनासाठी, आभासी आणि वर्धित वास्तविकतेसाठी ओपनएक्सआर इ. इतर ऑपरेटिंग सिस्टम आणि सॉफ्टवेअरमध्ये त्यांचे स्वतःचे एपीआय देखील समाविष्ट असतात जेणेकरून इतर प्रोग्रामर त्या सिस्टमसाठी अॅडॉन, प्लगइन किंवा मॉड्यूल इत्यादी तयार करु शकतात.
अर्दूनो सह उदाहरण
आपल्याकडे बॅज असल्यास आरडिनो आणि आपण वारंवार आर्डिनो आयडीई वापरता, किंवा आर्दुइनोसाठी इतर कोणत्याही विकासाचे वातावरण, आपल्याला हे समजेल की जेव्हा आपण एखादा कोड तयार करता तेव्हा आपल्या मायक्रोकंट्रोलरला क्रियांच्या मालिकेत ऑर्डर देण्यासाठी एकाधिक पर्यायांचा वापर करता. उदाहरणार्थ, पिनमोड () अर्डिनो पिन कॉन्फिगर करण्यासाठी एक विशिष्ट कार्य आहे, बरोबर?
जेव्हा आपण लिहा पिनमोड (9, इनपुट)उदाहरणार्थ, आपण असे दर्शवित आहात की अर्डिनो बोर्डच्या पिन 9 ने इनपुट म्हणून कार्य केले पाहिजे, म्हणजेच मायक्रोकंट्रोलर त्या पिनमधून माहिती वाचण्यासाठी आणि कृती करण्यासाठी प्रतीक्षा करेल. पण तो आदेश समजून घेण्यासाठी तो सक्षम आहे याबद्दल आपण कधी विचार केला आहे का?
बरं, अर्डिनो एक आहे विकास API जो आमच्यासाठी उपलब्ध झाला आहे. आम्ही या ब्लॉगवर बर्याच उदाहरणांमध्ये पाहिल्याप्रमाणे या एपीआयमध्ये तृतीय-पक्षाच्या लायब्ररी जोडल्या जाऊ शकतात. जसे विशिष्ट सेन्सर इत्यादींसाठी स्पार्कफन इ. या सर्व गोष्टींसह, कार्ये अर्डिनो आयडीईमध्ये प्रविष्ट केली जाऊ शकतात आणि मायक्रोकंट्रोलरच्या मेमरीमध्ये लोड करण्यासाठी कोडचे योग्य भाषांतर करेल जेणेकरून ते त्यावर प्रक्रिया करू शकेल.
आपल्याकडे हे एपीआय नसल्यास आपण अर्डिनोसाठी हे प्रोग्राम इतक्या सोप्या पद्धतीने तयार करु शकले नाहीत, कारण आम्ही त्यांना एटीएमएगा 328 पी मायक्रोकंट्रोलरसाठी असेंब्ली कोडमध्ये बनविण्याचा प्रयत्न केला पाहिजे, म्हणजे, एव्हीआर आर्किटेक्चरसाठी एएसएम. आणि हे अधिक गुंतागुंतीचे असेल कारण आपल्याला या आयएसएद्वारे उपलब्ध असलेल्या सूचनांचा थेट वापर करावा लागेल. तसे असल्यास, आपल्याला केवळ त्या ISA च्या माहितीचा तपशील पुरेसा माहित नाही, परंतु नोंदणीची संख्या इत्यादी इतर बाबी देखील माहित असणे आवश्यक आहे. म्हणजेच, आपण ज्या हार्डवेअरसाठी काम करीत आहात त्याबद्दल आपल्याला निम्न-स्तरीय ज्ञान असले पाहिजे.
पोर्र उदाहरणार्थ, एएसएम कोड लूपमध्ये चमकण्यासाठी आपण एलईडीसाठी काय व्युत्पन्न करावे ते खालीलप्रमाणेः
<br data-mce-bogus="1"> .ORG 0x0000 ; the next instruction has to be written to ; address 0x0000 rjmp START ; the reset vector: jump to "main" START: ldi r16, low(RAMEND) ; set up the stack out SPL, r16 ldi r16, high(RAMEND) out SPH, r16 ldi r16, 0xFF ; load register 16 with 0xFF (all bits 1) out DDRB, r16 ; write the value in r16 (0xFF) to Data ; Direction Register B LOOP: sbi PortB, 5 ; switch off the LED rcall delay_05 cbi PortB, 5 ; wait for half a second ; switch it on rcall delay_05 ; wait for half a secon rjmp LOOP ; jump to loop DELAY_05: ; the subroutine: ldi r16, 31 ; load r16 with 31 OUTER_LOOP: ; outer loop label ldi r24, low(1021) ; load registers r24:r25 with 1021, our new ; init value ldi r25, high(1021) ; the loop label DELAY_LOOP: ; "add immediate to word": r24:r25 are ; incremented adiw r24, 1 ; if no overflow ("branch if not equal"), go ; back to "delay_loop" brne DELAY_LOOP dec r16 ; decrement r16 brne OUTER_LOOP ret ; and loop if outer loop not finished ; return from subroutine
तर सर्व सुविधांची नोंद एपीआयचे आभार. उच्च स्तरावर लेखन खालील समतुल्य कोड (बरेच लहान आणि अधिक अंतर्ज्ञानी):
<br data-mce-bogus="1"> int ledPin = 13; // LED que se encuentra en el pin 13 void setup(){ pinMode(ledPin, OUTPUT); // El p1n 13 será una salida digital } void loop(){ digitalWrite(ledPin, HIGH); // Enciende el LED delay(1000); // Pausa de 1 segundo digitalWrite(ledPin, LOW); // Apaga el LED delay(1000); // Pausa de 1 segundo
एबीआय बरोबर फरक
एबीआय ही कमी ज्ञात संज्ञा आहे, ती अ अनुप्रयोग बायनरी इंटरफेस किंवा इंग्रजी अनुप्रयोग बायनरी इंटरफेसमध्ये. या प्रकरणात, प्रोग्रामच्या मॉड्यूलमधील इंटरफेस आहे, सामान्यत: आपण ज्या आर्किटेक्चरमध्ये आहात त्यासाठी लायब्ररी किंवा मशीन भाषेच्या ऑपरेटिंग सिस्टम दरम्यान: स्पार्क, एएमडी 64, एआरएम, पीपीसी, आरआयएससी-व्ही इ.
एबीआय धन्यवाद, कार्ये कॉल करण्याचा मार्ग निश्चित केला गेला, बायनरी स्वरूप आपण ज्या मशीनसाठी संकलित करीत आहात किंवा सिस्टम कॉल, अपवाद कसे हाताळले जातात, डेटा कसा पुरविला जातो इ.
एक फ्रेमवर्क फरक
Un फ्रेमवर्क किंवा चौकट हे साधनांचा एक संच आहे दिलेल्या प्रकल्पाच्या विकासास मदत करण्यासाठी आपल्या विल्हेवाट ला. फेमवर्क सहसा काही कोडिंग मानक सेट करते, उपयुक्त घटक इ. प्रदान करते. उदाहरणार्थ, JUnit हे जावा, किंवा पीएचपीसाठी सिम्फनी / केक इ. साठी एक फ्रेमवर्क आहे.
एसडीके आणि एनडीके मधील फरक
एसडीके एक सॉफ्टवेअर डेव्हलपमेंट किट आहे, म्हणजे एक सॉफ्टवेअर डेव्हलपमेंट किट. हे फ्रेमवर्क किंवा एपीआयच्या पलीकडे जाते. अँड्रॉइड स्टुडिओ किंवा आयओएस एक्सकोड इत्यादी असू शकतात. उदाहरणार्थ, प्रथम, स्वतः Android एपीआय व्यतिरिक्त, प्रोग्रामिंग आणि कंपाईलिंग, ग्रंथालये, साधने इ. साठी आयडीई किंवा एकात्मिक विकास वातावरण देखील समाविष्ट आहे.
दुसरीकडे, एनडीके (नेटिव्ह डेव्हलपमेंट किट) हे एक पूरक आहे. उदाहरणार्थ, अँड्रॉइड एनडीके विकासकांना जेएनआय (जावा नेटिव्ह इंटरफेस) च्या माध्यमातून अनुप्रयोगांमध्ये ओळख करून सी / सी ++ कोडचा पुनर्वापर करण्याची अनुमती देते ...
लायब्ररीमधील फरक
शेवटी, लायब्ररी हे पुन्हा वापरण्यायोग्य स्त्रोत कोडचे संग्रह आहे जे प्रोग्रामरसाठी जीवन सोपे करते. उदाहरणार्थ, सी लायब्ररी मध्ये stdio.h स्क्रीनवर टेक्स्ट प्रिंट करण्यासाठी एक प्रिंटफ फंक्शन आहे. हे शक्य होण्यासाठी, स्त्रोत कोड आवश्यक आहे जो ऑपरेटिंग सिस्टमला हे कार्य करण्यास प्रवृत्त करतो. परंतु हे वारंवार वापरले जाणारे काहीतरी आहे, त्या लायब्ररीचा उपयोग करुन आपण सर्व कोड सुरवातीला न लिहीता प्रिंटफचा वापर करू शकता. दुस words्या शब्दांत, दुस words्या शब्दांत, ते प्रीकास्ट ब्लॉक म्हणून पाहिले जाऊ शकतात.
एक लायब्ररी आणि एपीआय सहज गोंधळात टाकू शकते, खरं तर, लायब्ररी एपीआय मध्ये लपेटल्या जातात. उदाहरण ग्लिब...
मी आशा करतो की यानंतर आपल्याला एक कल्पना येईल एपीआय, एबीआय, एक फ्रेमवर्क, एक एसडीके आणि एक लायब्ररी काय आहेत याव्यतिरिक्त स्पष्ट करते की आतापासून त्यांच्यात फरक करण्यास सक्षम असेल.