Шта је АПИ

шта је АПИ

Тхе АПИ скраћенице видећете их више пута и два пута када читате чланке о софтверу. Али не знају сви шта је АПИ у ствари. Због тога смо то појаснили у овом чланку. Прво што треба рећи је да су они скраћеница за Апплицатион Программинг Интерфаце (Интерфејс за програмирање апликација), односно на шпанском језику, Интерфејс за програмирање апликација. А много пута ствара забуну чак и међу онима који знају нешто о програмирању.

На пример, Ардуино има сопствени АПИ за програмирање, нудећи низ функција које можете користити у Ардуино ИДЕ-у или другим окружењима за програмирање микроконтролера како би вам омогућили да креирате своје пројекте. Али ... можете ли ми рећи разлика између програмске библиотеке и АПИ-ја? Постоје ли разлике између оквира и АПИ-ја? Да ли је АПИ исти као АБИ? Много је сумњи које можда и даље стварају забуну и које ћемо сада разјаснити.

Не знам да ли то знате језици ниског нивоа, попут асемблера или АСМ-а, директно зависе од хардверске архитектуре, док се они високог нивоа апстрахирају од хардвера да би олакшали задатак програмера, али зависе од оперативног система (сисцаллс) или од одређених АПИ-ја итд. Да вам све ово не би звучало кинески, да видимо о чему се ради ...

Шта је АПИ?

А АПИ је алат којим се пружају програмери тако да им је на располагању низ функција, потпрограма и процедура или метода за ООП које се могу користити кроз постојеће библиотеке. Међу оним што АПИ нуди су функције за креирање једноставних апликација, функције повезане са АИ, са генерисањем графике, управљањем хардверским ресурсима итд.

На пример, сигурни сте да су добро познати АПИ-ји попут оног који нуди Линук путем глибц библиотеке или графике попут ОпенГЛ и Вулкан, или такође други попут ОпенЦЛ за хетерогено рачунарство, ОпенКСР за виртуелну и проширену стварност итд. Остали оперативни системи и софтвер такође укључују сопствене АПИ-је тако да други програмери могу да креирају додатке, додатке или модуле за тај систем итд.

Пример са Ардуином

Ако имате значку Ардуино и често користите Ардуино ИДЕ, или било које друго развојно окружење за Ардуино, знаћете да када креирате код користите више опција да бисте наредили свом микроконтролеру да изврши низ радњи. На пример, пинМоде () је типична функција за конфигурисање Ардуино пина, зар не?

Кад пишете пинМоде (9, ИНПУТ)На пример, наговештавате да би пин 9 плоче Ардуино требало да ради као улаз, односно микроконтролер ће чекати да информација уђе кроз тај пин да би га прочитао и извршио акцију. Али да ли сте се икада запитали како је он у стању да разуме ту заповест?

Па, Ардуино има Развојни АПИ који нам је доступан. Независне библиотеке се могу додати овом АПИ-у, као што смо видели у многим примерима на овом блогу. Као СпаркФун за одређене сензоре итд. Уз све ово, функције се могу унети у Ардуино ИДЕ и он ће правилно превести код да би га учитао у меморију микроконтролера како би га могао обрадити.

Да нисте имали овај АПИ, не бисте могли да креирате ове програме за Ардуино на тако једноставан начин, јер бисмо требали да покушамо да их направимо у коду склопа за микроконтролер АТМега328П, односно у АСМ за АВР архитектуру. А то би било много компликованије, јер бисте морали директно да користите упутства која вам нуди овај ИСА. Ако је то случај, не само да бисте морали адекватно да знате репертоар тог ИСА, већ и друге аспекте као што је број записа итд. Односно, требало би да имате ниско знање о хардверу за који радите.

По на пример, АСМ код Оно што бисте требали генерисати да би лампица трепнула у петљи било би:

<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 фрамеворк или фрамеворк је више скуп алата на располагању за помоћ у развоју датог пројекта. Фамоусворк обично поставља неке стандарде кодирања, пружа корисне компоненте итд. На пример, ЈУнит је оквир за Јаву, или Симфони / Цаке за ПХП итд.

Разлике са СДК и НДК

СДК је комплет за развој софтвера, односно комплет за развој софтвера. Прелази оно што је оквир или АПИ. Пример би могао бити Андроид Студио или иОС кЦоде итд. На пример, први, поред самог Андроид АПИ-ја, такође укључује ИДЕ или интегрисано развојно окружење за програмирање и компајлирање, библиотеке, алате итд.

Поред тога, НДК (Нативни развојни комплет) то је допуна. На пример, Андроид НДК омогућава програмерима да поново користе Ц / Ц ++ код тако што га уводе у апликације путем ЈНИ (Јава Нативе Интерфаце) ...

Разлике са библиотеком

Глибц дијаграм Википедиа

Коначно, библиотека је колекција изворног кода за вишекратну употребу то олакшава живот програмерима. На пример, унутар библиотеке Ц стдио.х постоји функција принтф за штампање текста на екрану. Да би то било могуће, потребан је изворни код који тера оперативни систем да ради овај задатак. Али пошто се то често понавља, често се користи, једноставно позивањем те библиотеке можете користити принтф без писања целог кода испочетка. Другим речима, другим речима, могу се видети као монтажни блокови.

Библиотека и АПИ могу се лако збунити, заправо, библиотеке су умотане у АПИ. Пример глибц...

Надам се да после овога имате идеју јасније о томе шта су АПИ, АБИ, фрамеворк, СДК и библиотека, поред тога што од сада могу да праве разлику између њих.


Будите први који ће коментарисати

Оставите свој коментар

Ваша емаил адреса неће бити објављена. Обавезна поља су означена са *

*

*

  1. За податке одговоран: Мигуел Ангел Гатон
  2. Сврха података: Контрола нежељене поште, управљање коментарима.
  3. Легитимација: Ваш пристанак
  4. Комуникација података: Подаци се неће преносити трећим лицима, осим по законској обавези.
  5. Похрана података: База података коју хостује Оццентус Нетворкс (ЕУ)
  6. Права: У било ком тренутку можете ограничити, опоравити и избрисати своје податке.