Waa maxay API

waa maxay API

ka Gaabinta API waxaad arki doontaa iyaga in kabadan hal jeer iyo labo jeer markaad aqrinaysid maqaalada ku saabsan softiweerka. Laakiin qof kastaa ma garanayo waxa dhabta ah ee API yahay. Taasi waa sababta aan ugu caddeynay qodobkaan. Waxa ugu horeeya ee la leeyahay waa inay yihiin soo gaabinta ah Barnaamjika Barnaamjika Codsiga, taas oo ah, Isbaanishka, Barnaamijka Barnaamjika Codsiga. Marar badanna waxay abuurtaa jahwareer xitaa kuwa wax ka yaqaana barnaamijyada.

Tusaale ahaan, Arduino waxay leedahay barnaamijkeeda u gaarka ah API, oo bixiya howlo dhowr ah oo aad ku isticmaali karto Arduino IDE ama deegaanno kale si aad ugu barnaamijka microcontroller-ka si ay kuu oggolaato inaad mashaariicdaada abuurto. Laakiin ... ma ii sheegi kartaa farqiga u dhexeeya maktabadda barnaamijyada iyo API? Ma jiraan farqi u dhexeeya qaab-dhismeedka iyo API? API ma la mid yahay ABI? Waxaa jira shakiyo badan oo laga yaabo inay sii wadaan abuurista jahwareer iyo inaan hada cadeynayno.

Ma ogi haddii aad taas ogtahay luqadaha heerka hoose, sida isku-duwaha ama ASM, waxay si toos ah ugu tiirsan yihiin qaab dhismeedka qalabka dhismaha, halka kuwa heerka sare ah ay ka soo baxayaan qalabka kombiyuutarka si loo fududeeyo howsha barnaamijka, laakiin waxay ku xiran yihiin nidaamka qalliinka (syscalls) ama API-yada qaarkood, iwm Marka si waxaas oo dhami aysan kuuguula muuqan sidii Shiineys, aan aragno waxay ku saabsan tahay ...

Waa maxay API?

Una API waa aalad lagu soo bandhigo horumariyayaal si markaa ay iyagu gacanta ugu hayaan shaqooyin taxane ah, hoosaadyo hoosaadyo iyo habab ama qaabab OOP loo adeegsan karo maktabadaha jira. Waxa ka mid ah waxa ay bixiso 'API' waxay ka timaaddaa shaqooyinka si loo abuuro barnaamijyo fudud, shaqooyin la xiriira AI, oo leh jiil muuqaallo ah, maaraynta agabyada qalabka, iwm.

Tusaale ahaan, waxaad hubaa inaad si fiican u garaneyso API-yada sida midka ay Linux ku bixiso maktabadda glibc, ama sawirada sida OpenGL iyo Vulkan, ama waliba kuwa kale sida OpenCL loogu talagalay xisaabinta kaladuwan, OpenXR ee xaqiiqda dalwaddii iyo kororka, iwm. Nidaamyada kale ee hawlgalka iyo softiweerka sidoo kale waxaa ku jira API-kooda gaarka ah si barnaamijyada kale ay ugu abuuri karaan addons, plugins ama modules nidaamkaas, iwm.

Tusaale ahaan Arduino

Haddaad calaamad leedahay Arduino adiguna waxaad badanaa u isticmaashaa Arduino IDE, ama jawi kale oo horumarineed oo loogu talagalay Arduino, waxaad ogaan doontaa in markii aad sameysato koodh aad adeegsato fursado badan si aad ugu amarto microcontroller-kaaga inuu sameeyo tallaabooyin taxane ah. Tusaale ahaan, pinMode () waa shaqo caadi ah oo lagu hagaajiyo pin-ka Arduino, sax?

Markaad qorto pinMode (9, Gelinta)Tusaale ahaan, waxaad muujineysaa in pin 9 ee guddiga Arduino ay tahay inuu u shaqeeyo sidii kaalin ahaan, taasi waa, microcontroller wuxuu sugi doonaa macluumaadka inuu ka soo galo biinkaas si uu u aqriyo una sameeyo ficil. Laakiin miyaad weligaa isweydiisay sida uu u fahmi karo amarkaas?

Hagaag, Arduino wuxuu leeyahay a Horumarinta API oo naloo diyaariyay. Maktabadaha dhinac saddexaad ayaa lagu dari karaa API-ka sida aan ku aragnay tusaalooyin badan oo ku saabsan balooggan. Sida SparkFun ee dareemayaasha qaarkood, iwm. Waxaas oo dhan, shaqooyinka waxaa lagu qori karaa Arduino IDE waxayna u turjumi doontaa koodhka si sax ah si loogu rakibo xusuusta microcontroller si ay u socodsiiso.

Haddii aadan haysan API-gaan, uma abuuri kareysid barnaamijyadan Arduino qaab sidan u fudud, maadaama aan isku dayeyno inaan ku sameysano koodhka isku-xidhka microMtM ee ATMega328P, taasi waa, ASM qaab dhismeedka AVR. Taasina way ka sii dhib badnaan lahayd, maadaama aad u baahan tahay inaad si toos ah u adeegsato tilmaamaha ay heli karto ISA. Hadday sidaas tahay, uma baahnid oo keliya inaad si ku filan u ogaato jadwalka ISA, laakiin sidoo kale dhinacyo kale sida tirada diiwaangelinta, iwm. Taasi waa, waa inaad aqoon hoose u leedahay qalabka aad u shaqeyso.

by tusaale ahaan, ASM code Waxa aad u abuureysid si ay u iftiimiso LED-ka wareegga wareegga wuxuu noqon karaa:

<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

Iyadoo mahadsanid API dhismayaasha guud ahaan, qoraal heer sare ah lambarradan soo socda ee u dhigma (aad uga gaaban oo dareen badan):

<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 

Kaladuwanaanshaha ABI

API vs Linux ABI

ABI waa erey si yar loo yaqaan, waa a Codsiga Labada Waji, ama Afka Ingiriisiga Labada Waji. Xaaladdan oo kale, waa is-dhexgal u dhexeeya qaybaha barnaamijka, guud ahaan u dhexeeya maktabadda ama nidaamka hawlgalka luuqadda mashiinka ee naqshadaha aad ku sugan tahay: SPARC, AMD64, ARM, PPC, RISC-V, iwm.

Waad ku mahadsan tahay ABI, habka loogu yeero shaqooyinka ayaa la go'aamiyey, qaabka binary kaas oo fahmi kara mashiinka aad ururinayso ama nidaamka wicitaanada, sida ka reeban loo maareeyo, sida loo gudbiyo xogta, iwm.

Kala duwanaanshaha qaab dhismeedka

Un qaabdhismeedka ama qaabdhismeedku waa inbadan oo qalab ah gacantaada si aad uga caawiso horumarinta mashruuc la siiyay. Caannimada ayaa sida caadiga ah dejisa qaar ka mid ah heerarka sireed, waxay bixisaa qaybo waxtar leh, iwm. Tusaale ahaan, JUnit waa qaab-dhismeedka Java, ama Symfony / Cake for PHP, iwm.

Kala duwanaanshaha SDK iyo NDK

SDK waa xirmo horumarinta Software-ka, taasi waa, xirmo horumarinta softiweer. Waxay ka gudubtaa waxa u ah qaab ama API. Tusaale wuxuu noqon karaa Android Studio ama iOS xCode, iwm. Tusaale ahaan, midka hore, marka lagu daro Android API laftiisa, sidoo kale waxaa ku jira IDE ama jawi horumarineed oo isku dhafan oo loogu talagalay barnaamijyada iyo ururinta, maktabadaha, qalabka, iwm.

Dhinaca kale, NDK (Xidhmada Horumarinta Dhalashada) waa dhammaystir. Tusaale ahaan, Android NDK waxay u oggolaaneysaa horumariyayaashu inay dib u isticmaalaan koodhka C / C ++ iyagoo u soo bandhigaya barnaamijyada iyada oo loo marayo JNI (Java Native Interface) ...

Kala duwanaanshaha maktabadda

Jaantus Glibc Wikipedia

Ugu dambeyntii maktabaddu waa uruurinta koodhka ilaha dib loo isticmaali karo taasi waxay u sahlaysaa nolosha barnaamijyada. Tusaale ahaan, gudaha maktabadda C stdio.h waxaa jira daabacaad shaqo oo lagu daabaco qoraalka shaashadda. Si tan ay u suurta gasho, waxaa loo baahan yahay lambar koodh oo ka dhigaya nidaamka qalliinka howshaan. Laakiin maadaama ay tahay wax aad u soo noqnoqda oo badanaa la isticmaalo, si fudud adoo u yeeraya maktabaddaas waad isticmaali kartaa daabacaadda adigoon qorin dhammaan lambarka koodhka. Si kale haddii loo dhigo, si kale haddii loo dhigo, waxaa loo arki karaa inay yihiin baloogyo horay loo sii qorsheeyay.

Maktabad iyo API ayaa si fudud lagu wareeri karaa, dhab ahaan, maktabadaha ayaa lagu duubay gudaha API. Tusaale shaki...

Waxaan rajeynayaa in tan ka dib aad fikir hayso cad oo ku saabsan waxa API, ABI, qaab-dhismeedka, SDK iyo maktabadu yihiin, marka lagu daro inay awoodaan inay kala-saaraan wixii hadda ka dambeeya.


Noqo kuwa ugu horreeya ee faallo bixiya

Ka tag faalladaada

cinwaanka email aan la daabacin doonaa. Beeraha loo baahan yahay waxaa lagu calaamadeeyay la *

*

*

  1. Masuul ka ah xogta: Miguel Ángel Gatón
  2. Ujeedada xogta: Xakamaynta SPAM, maaraynta faallooyinka.
  3. Sharci: Oggolaanshahaaga
  4. Isgaarsiinta xogta: Xogta looma gudbin doono dhinacyada saddexaad marka laga reebo waajibaadka sharciga ah.
  5. Kaydinta xogta: Macluumaadka ay martigelisay Shabakadaha Occentus (EU)
  6. Xuquuqda: Waqti kasta oo aad xadidi karto, soo ceshan karto oo tirtiri karto macluumaadkaaga.