API څه شی دی؟

API څه شی دی؟

د د API لنډیزونه تاسو به دوی یو ځل او دوه ځله لیدلي وي کله چې تاسو د سافټویر په اړه مقالې ولولئ. مګر هرڅوک نه پوهیږي چې واقعیا یو API څه دی. له همدې امله موږ دا په دې مقاله کې روښانه کوو. د ویلو لپاره لومړی شی دا دی چې دا د غوښتنلیک برنامې انٹرفیس لپاره لنډیز دی ، دا په هسپانوي کې د غوښتنلیک برنامې انٹرفیس دی. او ډیری وختونه دا حتی د هغو خلکو په مینځ کې ګډوډي رامینځته کوي څوک چې ځینې برنامه پوهیږي.

د مثال په توګه ، آرډوینو خپل برنامې API لري ، یو شمیر دندې وړاندې کوي چې تاسو یې کولی شئ په ارډینو IDE یا نورو چاپیریالونو کې د مایکرو کنټرولر برنامه کولو لپاره وکاروئ ترڅو تاسو ته اجازه درکړئ خپلې پروژې رامینځته کړئ. مګر ... ته ماته ویلای شې؟ د برنامې کتابتون او API ترمینځ توپیر؟ ایا د چوکاټ او API ترمینځ توپیر شتون لري؟ ایا یو API ورته د ABI ورته دی؟ ډیری شکونه شتون لري چې شاید د ګډوډۍ رامینځته کولو ته دوام ورکړي او دا چې موږ همدا اوس روښانه کوو.

زه نه پوهیږم که تاسو هغه پوهیږئ د ټیټې کچې ژبې، لکه راټولونکی یا ASM ، په مستقیم ډول د هارډویر جوړښت پورې اړه لري ، پداسې حال کې چې لوړې کچې د برنامه کار اسانه کولو لپاره له هارډویر څخه خلاصیږي ، مګر په عامل سیسټم (سیسټمونو) یا ځانګړو APIs ، وغيره پورې تړاو لري. نو ځکه چې دا ټول تاسو ته چینايي غږ نه کوي ، راځئ وګورو چې د دې په اړه څه ...

API څه شی دی؟

una API یوه وسیله ده چې ورسره پراختیا کونکي چمتو کیږي نو ځکه چې دوی په خپل اختیار کې د OOP لپاره دندې ، فرعي یا ډیری کړنلارې یا میتودونه لري چې د موجوده کتابتونونو له لارې کارول کیدی شي. د هغه څه په منځ کې چې API وړاندیز کوي د ساده ایپسونو رامینځته کولو لپاره د افعالاتو څخه دي ، په AI پورې اړوند فعالیتونه ، د ګرافیک نسل سره ، د هارډویر سرچینو مدیریت ، او داسې نور.

د مثال په توګه ، تاسو ډاډه یاست APIs لکه د ګلیبک کتابتون له لارې د لینکس لخوا وړاندیز شوي یو ، یا ګرافیکونه لکه اوپن جی ایل او ویلکان ، یا نور هم لکه د ازاد سی سی ایل د عضلي کمپیوټري لپاره ، د مجازی او پرمختللي حقیقت لپاره اوپن ایکس آر. نور عملیاتي سیسټمونه او سافټویر هم خپل APIs شاملوي نو نور برنامه کونکي کولی شي د دې سیسټم لپاره اډونونه ، فلګونه یا انډولونه رامینځته کړي.

د اردوینو سره مثال

که تاسو بیج ولرئ اردوینو او تاسو په مکرر ډول د اردوینو IDE کاروئ ، یا د اریډوینو لپاره کوم بل پرمختیا چاپیریال ، تاسو به پوه شئ کله چې تاسو کوډ رامینځته کړئ نو تاسو د یو شمیر اختیارونو څخه کار اخلئ ترڅو خپل مایکرو کنټرولر ته د لړۍ لړیو امر وکړئ. د مثال په توګه ، پن موډ () د اردوینو پن تنظیم کولو لپاره ځانګړی فعالیت دی ، سمه ده؟

کله چې تاسو لیکئ پن موډ (9 ، INPUT)د مثال په توګه ، تاسو په ګوته کوئ چې د ارډوینو بورډ 9 پن باید د ان پټ په توګه کار وکړي ، په دې معنی چې مایکرو کنټرولر به د دې پن له لارې د معلوماتو دننه کیدو لپاره انتظار وي ترڅو دا لوستل شي او عمل ترسره کړي. مګر ایا تاسو کله هم فکر کړی چې هغه څنګه په دې قومانده پوهیدلی شي؟

ښه ، اردوینو لري a د پراختیا API چې موږ ته چمتو شوی. د دریمې ډلې کتابتونونه پدې API کې اضافه کیدی شي لکه څنګه چې موږ پدې بلاګ کې ډیری مثالونو کې لیدلي. لکه د ځانګړو سینسرونو لپاره سپارکفنس ، وغيره. د دې ټولو سره ، دندې په اردوینو IDE کې دننه کیدی شي او دا به کوډ په سمه توګه وژباړي ترڅو دا د مایکرو کنټرولر په حافظه کې پورته کړي ترڅو دا پروسس شي.

که تاسو دا API نه لرئ ، تاسو به د دې وړ نه یاست چې د اردوینو لپاره دا برنامه په ورته ساده ډول رامینځته کړئ ، ځکه چې موږ باید هڅه وکړو چې دا د ATMega328P مایکرو کنټرولر لپاره د اسمبلی کوډ کې رامینځته کړو ، په دې کې د AVR معماري لپاره ASM. او دا به خورا پیچلي وي ، ځکه چې تاسو باید مستقیما د دې ISA لخوا موجود لارښوونې وکاروئ. که داسې وي ، نو تاسو باید نه یوازې د هغه IS په ذخیره کې په کافي اندازه پوهه ولرئ ، بلکه نور اړخونه لکه د راجسټریشنونو شمیر ، او نور. دا ، تاسو باید د هغه هارډویر په اړه چې تاسو یې لپاره کار کوئ لږ پوهه لرئ.

por مثال ، د 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 

د ABI سره توپیرونه

د API vs vs لینکس ABI

ABI لږ پیژندل شوی اصطلاح دی ، دا a د غوښتنلیک بائنری انٹرفیس ، یا په انګلیسي غوښتنلیک بائنری انٹرفیس کې. پدې حالت کې ، دا د برنامې د انډولونو ترمینځ انٹرفیس دی ، په عمومي توګه د کتابتون یا د ماشین ژبې عملیاتي سیسټم تر مینځ چې د معمار لپاره تاسو په کې یاست: SPARC ، AMD64 ، ARM ، PPC ، RISC-V ، او داسې نور.

د ABI څخه مننه ، د دندو غږولو لاره ټاکل شوې ، دوه لمبر ب .ه کوم چې کولی شي هغه ماشین باندې پوه شي چې تاسو یې مرتکب کوئ یا سیسټم زنګ وهي ، استثناات څنګه اداره کیږي ، ډاټا څنګه تیریږي ، او داسې نور

د چوکاټ سره توپیرونه

Un چوکاټ یا چوکاټ د وسیلو ډیر څه دی ستاسو په اختیار کې د ورکړل شوې پروژې پراختیا کې مرسته کول. فیم ورک عموما د کوډینګ ځینې معیارونه ټاکي ، ګټورې برخې چمتو کوي ، وغيره. د مثال په توګه ، JUnit د جاوا لپاره چوکاټ دی ، یا د PHP لپاره سیمفوني / کیک ، وغيره.

د SDK او NDK سره توپیرونه

SDK د سافټویر پرمختیا کټ دی، دا د سافټویر پرمختیا کټ دی. دا له هغه څه بهر ځي چې یو چوکاټ یا API دی. یو مثال کیدی شي د Android سټوډیو یا iOS ایکس کوډ ، او داسې نور وي. د مثال په توګه ، لومړی یو ، پخپله د Android API سربیره ، د برنامه کولو او ترتیب کولو ، کتابتونونو ، وسایلو ، او نورو لپاره IDE یا مدغم پراختیا چاپیریال هم لري.

له بلې خوا، NDK (د اصلي پرمختیا کټ) دا یو تکمیل کونکی دی د مثال په توګه ، د انډرایډ NDK پراختیا کونکو ته اجازه ورکوي د CN / C ++ کوډ بیا وکاروي د JNI (جاوا نائیټرفیس) له لارې غوښتنلیکونو ته معرفي کولو سره ...

د کتابتون سره توپیرونه

ګلیباک ډایګرام ویکیپیډیا

په پای کې، کتابتون د بیا کارونې وړ سرچینې کوډ ټولګه ده دا د برنامو لپاره ژوند اسانه کوي. د مثال په توګه ، د C کتابتون stdio.h دننه په سکرین کې د متن چاپ کولو لپاره د چاپf فعالیت شتون لري. د دې لپاره چې ممکنه وي ، د سرچینې کوډ ته اړتیا وي چې عملیاتي سیسټم دې کار ته اړ باسي. مګر څنګه چې دا یو څه ډیر تکرار دی چې په مکرر ډول کارول کیږي ، په ساده ډول د دې کتابتون په ویلو سره تاسو کولی شئ د سکریچ څخه ټول کوډ لیکلو پرته د چاپf کار واخلئ. په نورو ټکو کې ، په نورو ټکو کې ، دوی د وړاندوینې بلاکونو په توګه لیدل کیدی شي.

یو کتابتون او API کولی شي په اسانۍ سره ګډوډ شي ، په حقیقت کې ، کتابتونونه د یو API دننه پوښل شوي دي. مثال glibc...

زه امید لرم چې وروسته به تاسو یو نظر ولرئ د دې په اړه روښانه چې API ، ABI ، یو چوکاټ ، SDK او یو کتابتون څه شی دی ، او همدا اوس د دې وړتیا لري چې د دوی ترمینځ توپیر وکړي.


د مقالې مینځپانګه زموږ د اصولو سره سمون لري ایډیټیک اخلاق. د غلطۍ راپور ورکولو لپاره کلیک وکړئ دلته.

لومړی د تبصره کولو لپاره وئ

خپله نظر پرېږدئ

ستاسو د بریښنا لیک پته به خپره نه شي. اړین برخو سره په نښه شوي دي *

*

*

  1. د معلوماتو لپاره مسؤل: میګیوانجل ګاتین
  2. د معلوماتو هدف: د سپیم کنټرول ، د نظر مدیریت.
  3. قانونیت: ستاسو رضایت
  4. د معلوماتو راټولول: معلومات به د قانوني مکلفیت پرته دریمې ډلې ته نه لیږدول کیږي.
  5. د معلوماتو ذخیره: ډیټابیس د Occentus شبکې (EU) لخوا کوربه شوی
  6. حقونه: په هر وخت کې تاسو کولی شئ خپل معلومات محدود ، له سره تنظیم او حذف کړئ.