આ જ્યારે તમે સ softwareફ્ટવેર વિશે લેખો વાંચશો ત્યારે તમે તેને એકથી વધુ વાર જોશો અને એપીઆઈ સંજ્ronા. પરંતુ દરેક વ્યક્તિ જાણતું નથી કે ખરેખર એપીઆઈ શું છે. તેથી જ અમે તેને આ લેખમાં સ્પષ્ટતા કરીએ છીએ. કહેવાની પ્રથમ વાત એ છે કે તેઓ એપ્લિકેશન પ્રોગ્રામિંગ ઇંટરફેસનું ટૂંકું નામ છે, એટલે કે, સ્પેનિશમાં, એપ્લિકેશન પ્રોગ્રામિંગ ઇંટરફેસ. અને ઘણી વખત તે કેટલાક પ્રોગ્રામિંગને જાણતા લોકોમાં પણ મૂંઝવણ પેદા કરે છે.
ઉદાહરણ તરીકે, અરડિનો પાસે પોતાનો પ્રોગ્રામિંગ API છે, તમે તમારા પ્રોજેક્ટ્સ બનાવવા માટે પરવાનગી આપવા માટે માઇક્રોકન્ટ્રોલરને પ્રોગ્રામ કરવા માટે ઘણા કાર્યોનો ઉપયોગ કરી શકો છો જેનો ઉપયોગ તમે આર્ડિનો આઇડીઇ અથવા અન્ય વાતાવરણમાં કરી શકો છો. પરંતુ ... તમે મને કહો છો? પ્રોગ્રામિંગ લાઇબ્રેરી અને એક API વચ્ચેનો તફાવત? શું કોઈ ફ્રેમવર્ક અને એપીઆઇ વચ્ચે તફાવત છે? શું એપીઆઈ એબીઆઇ જેવી જ છે? એવી ઘણી શંકાઓ છે કે જે કદાચ મૂંઝવણ ઉત્પન્ન કરવાનું ચાલુ રાખે છે અને અમે હમણાં જ સ્પષ્ટતા કરીશું.
મને ખબર નથી કે તમે તે જાણો છો નિમ્ન-સ્તરની ભાષાઓએસેમ્બલર અથવા એએસએમની જેમ, હાર્ડવેર આર્કિટેક્ચર પર સીધો આધાર રાખે છે, જ્યારે પ્રોગ્રામરના કાર્યને સરળ બનાવવા માટે ઉચ્ચ-સ્તરના લોકો હાર્ડવેરથી અમૂર્ત કરે છે, પરંતુ operatingપરેટિંગ સિસ્ટમ (સિસ્કોલ્સ) અથવા ચોક્કસ API, વગેરે પર આધારિત છે. જેથી આ બધું ચાઇનીઝ જેવું ન લાગે, ચાલો જોઈએ તે શું છે ...
એક API શું છે?
ઉના API એ એક સાધન છે કે જેની સાથે વિકાસકર્તાઓ પ્રદાન કરવામાં આવે છે જેથી તેઓના કાર્યમાં શ્રેણીબદ્ધ કાર્યો, સબરોટાઇન્સ અને પ્રક્રિયાઓ અથવા OOP માટેની પદ્ધતિઓ છે જેનો ઉપયોગ હાલની લાઇબ્રેરીઓ દ્વારા કરી શકાય છે. એપીઆઈ offersફર કરે છે તે પૈકી, સરળ એપ્લિકેશનો બનાવવા માટેનાં કાર્યો, એઆઈથી સંબંધિત કાર્યો, ગ્રાફિક્સના ઉત્પાદન સાથે, હાર્ડવેર સંસાધનોનું સંચાલન, વગેરે.
ઉદાહરણ તરીકે, મને ખાતરી છે કે તમે એપીઆઇથી પરિચિત છો જેમ કે ગ્લિબીક લાઇબ્રેરી દ્વારા લિનક્સ દ્વારા આપવામાં આવતી, અથવા ગ્રાફિક્સ જેવા ઓપનજીએલ અને વલ્કન, અથવા અન્ય લોકો પણ ઓપનસીએલને પસંદ કરે છે વિજાતીય કમ્પ્યુટિંગ માટે, વર્ચુઅલ અને વૃદ્ધિ પામતી વાસ્તવિકતા માટે ઓપનએક્સઆર, વગેરે. અન્ય operatingપરેટિંગ સિસ્ટમ્સ અને સ softwareફ્ટવેરમાં પણ તેમના પોતાના એપીઆઇ શામેલ છે જેથી અન્ય પ્રોગ્રામરો તે સિસ્ટમ માટે એડન્સ, પ્લગઈનો અથવા મોડ્યુલો વગેરે બનાવી શકે.
અરુડોનો સાથેનું ઉદાહરણ
જો તમારી પાસે બેજ છે અરડિનો અને તમે વારંવાર અરડિનો આઇડીઇનો ઉપયોગ કરો છો, અથવા અરડિનો માટેનું કોઈ અન્ય વિકાસ વાતાવરણ, તમે જાણતા હશો કે જ્યારે તમે કોઈ કોડ બનાવો છો ત્યારે તમે તમારા માઇક્રોકન્ટ્રોલરને ક્રમમાં શ્રેણીબદ્ધ કરવા માટે ઓર્ડર આપવા માટે ઘણા વિકલ્પોનો ઉપયોગ કરો છો. ઉદાહરણ તરીકે, પિનમોડ () એ અર્ડિનો પિનને ગોઠવવાનું એક વિશિષ્ટ ફંક્શન છે, ખરું?
જ્યારે તમે લખો પિનમોડ (9, ઇનપુટ)ઉદાહરણ તરીકે, તમે સૂચવી રહ્યા છો કે અરડિનો બોર્ડના પિન 9 એ ઇનપુટ તરીકે કામ કરવું જોઈએ, એટલે કે, માઇક્રોકન્ટ્રોલર તે વાંચવા અને ક્રિયા કરવા માટે તે પિન દ્વારા દાખલ થતી માહિતીની રાહ જોશે. પરંતુ શું તમે ક્યારેય વિચાર્યું છે કે તે આદેશ કેવી રીતે સમજી શકશે?
સારું, અરડિનો પાસે એક છે વિકાસ એપીઆઇ જે અમને ઉપલબ્ધ કરાઈ છે. આ બ્લોગ પર તૃતીય-પક્ષ પુસ્તકાલયો ઉમેરી શકાય છે કારણ કે આપણે આ બ્લોગ પર ઘણા ઉદાહરણોમાં જોયું છે. ચોક્કસ સેન્સર માટે સ્પાર્કફન જેવા, વગેરે. આ બધા સાથે, કાર્યોને અરડિનો આઇડીઇમાં દાખલ કરી શકાય છે અને તે કોડને માઇક્રોકન્ટ્રોલરની મેમરીમાં લોડ કરવા યોગ્ય રીતે અનુવાદિત કરશે જેથી તે તેની પ્રક્રિયા કરી શકે.
જો તમારી પાસે આ API ન હોય, તો તમે આર્દોનો માટે આ પ્રોગ્રામ્સ એટલી સરળ રીતે બનાવી શકશો નહીં, કેમ કે આપણે તેમને એટીએમએગા 328 પી માઇક્રોકન્ટ્રોલર માટે એસેમ્બલી કોડમાં બનાવવાનો પ્રયાસ કરવો જોઈએ, એટલે કે, AVR આર્કીટેક્ચર માટે ASM. અને તે વધુ જટિલ હશે, કારણ કે તમારે આ આઇએસએ દ્વારા ઉપલબ્ધ સૂચનાઓનો સીધો ઉપયોગ કરવો પડશે. જો એમ હોય તો, તમારે ફક્ત તે ISA નો સંગ્રહ પૂરતો જ જાણવાનો રહેશે નહીં, પરંતુ નોંધણીઓની સંખ્યા, વગેરે જેવા અન્ય પાસાં પણ જાણવાની જરૂર છે. એટલે કે, તમે જે હાર્ડવેર માટે કામ કરી રહ્યા છો તેના વિશે તમારી પાસે નીચા-સ્તરનું જ્ shouldાન હોવું જોઈએ.
પોર ઉદાહરણ તરીકે, ASM કોડ લૂપમાં ઝબકવા માટે તમારે એલઇડી બનાવવા માટે શું બનાવવું જોઈએ તે આ હશે:
<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
જ્યારે સુવિધા માટે કુલ API નો આભાર, ઉચ્ચ કક્ષાએ નીચેના સમકક્ષ કોડ લખવું (વધુ ટૂંકા અને વધુ સાહજિક):
<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
એબીઆઇ સાથે તફાવત
એબીઆઇ એ ઓછી જાણીતી શબ્દ છે, તે એ એપ્લિકેશન દ્વિસંગી ઇંટરફેસ, અથવા અંગ્રેજી એપ્લિકેશન દ્વિસંગી ઇંટરફેસ. આ કિસ્સામાં, તે કોઈ પ્રોગ્રામના મોડ્યુલો વચ્ચેનો ઇન્ટરફેસ છે, સામાન્ય રીતે પુસ્તકાલય અથવા આર્કિટેક્ચર માટેની મશીન લેંગ્વેજ operatingપરેટિંગ સિસ્ટમની વચ્ચે કે જેમાં તમે છો: સ્પાર્ક, એએમડી 64, એઆરએમ, પીપીસી, આરઆઈએસસી-વી, વગેરે.
એબીઆઇને આભાર, કાર્યોને ક callલ કરવાની રીત નક્કી કરવામાં આવી છે, દ્વિસંગી બંધારણ તમે જે મશીન માટે કમ્પાઇલ કરી રહ્યાં છો અથવા સિસ્ટમ ક callsલ્સ, અપવાદોને કેવી રીતે નિયંત્રિત કરવામાં આવે છે, ડેટા કેવી રીતે પસાર થાય છે, વગેરે.
એક ફ્રેમવર્ક સાથેના તફાવતો
Un માળખું અથવા માળખું એ સાધનોનો વધુ એક સમૂહ છે આપેલ પ્રોજેક્ટના વિકાસમાં મદદ કરવા તમારા નિકાલ પર. ખ્યાતિ સામાન્ય રીતે કેટલાક કોડિંગ ધોરણો સુયોજિત કરે છે, ઉપયોગી ઘટકો વગેરે પ્રદાન કરે છે. ઉદાહરણ તરીકે, JUnit જાવા માટેનું માળખું છે, અથવા PHP માટે સિમ્ફની / કેક, વગેરે.
એસડીકે અને એનડીકે સાથેના તફાવતો
એસડીકે એક સ Softwareફ્ટવેર ડેવલપમેન્ટ કીટ છે, એટલે કે, સ softwareફ્ટવેર ડેવલપમેન્ટ કીટ. તે એક માળખું અથવા API શું છે તેની બહાર જાય છે. એક ઉદાહરણ, Android સ્ટુડિયો અથવા iOS xCode, વગેરે હોઈ શકે છે. ઉદાહરણ તરીકે, પ્રથમ, એંડ્રોઇડ એપીઆઈ ઉપરાંત, તેમાં પ્રોગ્રામિંગ અને કમ્પાઇલિંગ, લાઇબ્રેરીઓ, સાધનો વગેરે માટે IDE અથવા સંકલિત વિકાસ પર્યાવરણ શામેલ છે.
બીજી તરફ, એનડીકે (મૂળ વિકાસ કિટ) તે એક પૂરક છે. ઉદાહરણ તરીકે, એન્ડ્રોઇડ એનડીકે વિકાસકર્તાઓને જેએનઆઈ (જાવા નેટીવ ઇંટરફેસ) દ્વારા એપ્લિકેશનમાં દાખલ કરીને સી / સી ++ કોડનો ફરીથી ઉપયોગ કરવાની મંજૂરી આપે છે ...
પુસ્તકાલય સાથેના તફાવતો
છેલ્લે, લાઇબ્રેરી એ ફરીથી વાપરી શકાય તેવા સ્રોત કોડનો સંગ્રહ છે જે પ્રોગ્રામરો માટે જીવનને સરળ બનાવે છે. ઉદાહરણ તરીકે, સી લાઇબ્રેરી stdio.h ની અંદર સ્ક્રીન પર ટેક્સ્ટ છાપવા માટે એક પ્રિન્ટફ ફંક્શન છે. આ શક્ય બનવા માટે, સ્રોત કોડ આવશ્યક છે જે theપરેટિંગ સિસ્ટમને આ કાર્ય કરવા માટે બનાવે છે. પરંતુ તે ખૂબ વારંવાર આવતું કંઈક છે જેનો વારંવાર ઉપયોગ કરવામાં આવે છે, ફક્ત તે લાઇબ્રેરીનો ઉપયોગ કરીને તમે શરૂઆતથી તમામ કોડ લખ્યા વગર પ્રિન્ટફનો ઉપયોગ કરી શકો છો. અન્ય શબ્દોમાં, અન્ય શબ્દોમાં, તેઓ પ્રીકાસ્ટ બ્લ preક્સ તરીકે જોઇ શકાય છે.
લાઇબ્રેરી અને એક API સરળતાથી મૂંઝવણમાં મૂકે છે, હકીકતમાં, લાઇબ્રેરીઓ એક API માં આવરિત છે. ઉદાહરણ ગ્લિબસી...
હું આશા રાખું છું કે આ પછી તમને કોઈ ખ્યાલ આવે એપીઆઈ, એબીઆઈ, એક માળખું, એક એસડીકે અને લાઇબ્રેરી શું છે તે વિશે સ્પષ્ટતા ઉપરાંત, હવેથી તેમની વચ્ચે તફાવત કરી શકશે.