జావా నేటివ్ ఇంటర్‌ఫేస్ (JNI) తో ప్రారంభించడం

Getting Started With Java Native Interface



జావా నేటివ్ ఇంటర్‌ఫేస్, సంక్షిప్త JNI, జావా డెవలపర్‌లను జావాలోని ఇతర ప్రోగ్రామింగ్ భాషల నుండి కోడ్‌లు మరియు స్నిప్పెట్‌లను అమలు చేయడానికి అనుమతించే ప్రోగ్రామింగ్ ఇంటర్‌ఫేస్. ఇది అవసరమైన జావా సాఫ్ట్‌వేర్ డెవలప్‌మెంట్ కిట్ లేదా SDK తో పాటు వస్తుంది (మేము దానిని వేరే ట్యుటోరియల్‌లో కవర్ చేస్తాము).

జావా అప్లికేషన్‌లలో జావా వర్చువల్ మెషీన్‌లో దొంగిలించడానికి API కి కాల్ చేయడానికి దాని ఫీచర్ కోసం JNI కూడా గౌరవించబడుతుంది. ఇది డెవలప్‌లను స్థానిక అప్లికేషన్ కోడ్‌లోని జావా కోడ్‌ని ఇన్వాల్ చేయడానికి అనుమతిస్తుంది.







మీరు జావాతో పని చేయడానికి కొంత సమయం గడిపినట్లయితే, అనివార్యంగా మీ ముందుకు వచ్చే అనేక పనితీరు సమస్యలను మీరు ఇప్పటికే ఎదుర్కొన్నారు. మీరు ఒకే కోడ్‌ని మాతృభాషలో అమలు చేసినప్పుడు ఇది సమస్య కాదు, ఇది కంపైల్ చేసిన మోడల్‌లో చదివినప్పుడు పద్దెనిమిది రెట్లు వేగంగా పని చేస్తుంది. దానికి తోడు, మీరు ఇతర భాషలలోని స్థానిక కోడ్‌లతో కాలం చెల్లిన/అననుకూల హార్డ్‌వేర్ నిత్యకృత్యాలను కూడా ఉపయోగించవచ్చు.



ఈ ట్యుటోరియల్ జావా అప్లికేషన్ లోపల మెషిన్ C/C ++ కోడ్‌ను ఎలా ఇన్వక్ట్ చేయవచ్చో ప్రదర్శిస్తుంది.



ముందస్తు అవసరాలు

ఈ గైడ్‌తో సరిగ్గా అనుసరించడానికి మీకు కొన్ని విషయాలు అవసరం అవుతున్నాయి. వీటిలో JVM తో పాటు Java కంపైలర్ లేదా Javac.exe, అలాగే స్థానిక పద్ధతి C జెనరేటర్ (javah.exe) ఉన్నాయి. ఈ మూడూ సాఫ్ట్‌వేర్ డెవలప్‌మెంట్ కిట్‌లోకి నిర్మించబడ్డాయి, కనుక మీ దగ్గర అది ఉంటే మీరందరూ బాగున్నారు. ఈ మూడు కాకుండా, మీకు స్థానిక హెడర్ ఫైల్స్ మరియు పూర్తి లైబ్రరీ ఫైల్స్‌తో సహా JNI ని నిర్వచించే ఫైల్‌లు కూడా అవసరం.





వాస్తవానికి, సి మరియు సి ++ కోడ్‌లను అమలు చేయడం గురించి ట్యుటోరియల్‌లో, షేర్డ్ లైబ్రరీని సృష్టించడానికి మేము సి కంపైలర్‌ని కూడా ఉపయోగిస్తాము.

JNI భాగాలు

JNI ప్రధానంగా h మరియు javah అనే రెండు భాగాల ద్వారా నడపబడుతుంది. H అనేది హెడర్ ఫైల్ కాంపోనెంట్, ఇది స్థానిక కోడ్‌లను జావా కోడ్‌తో భర్తీ చేస్తుంది, అయితే జావా దీన్ని చేస్తుంది, తద్వారా ఈ ఫైల్‌ను స్వయంగా యాప్ హెడర్ ఫైల్‌లకు లోడ్ చేయవచ్చు.



జావా కోడ్ నుండి C/C ++ ని ఆహ్వానిస్తోంది

దశ 1: జావాలో కోడ్ రాయడం

కోడ్ మొదట జావాలో వ్రాయబడింది మరియు మూడు షరతులకు అనుగుణంగా ఉంటుంది. మొదట, ఇది తరువాత ప్రారంభించడానికి స్థానిక పద్ధతిలో వ్రాయబడింది. రెండవది, ఇది స్థానిక కోడ్ భాగమైన షేర్డ్ లైబ్రరీని లోడ్ చేయాలి మరియు చివరగా, ఇది స్థానిక పద్ధతులను ప్రారంభించాలి.

మరింత వివరించడానికి ఈ కోడ్‌ని ఉపయోగిద్దాం:

నోటీసు పంక్తులు 3 మరియు 6; స్థానిక పద్ధతులు చేర్చబడిన పంక్తులు ఇవి. షేర్డ్ లైబ్రరీలను లోడ్ చేసే కోడ్ 10 వ లైన్‌లో ఉంది, ఇది 12 నుండి 15 లైన్‌ల మధ్య పద్ధతిని ప్రారంభించడానికి దారితీస్తుంది.

దశ 2: జావా కోడ్‌ని బైట్‌కోడ్‌కి సంకలనం చేయడం

రెండవ దశ జావా కోడ్‌ను కంపైల్ చేయాల్సి ఉంటుంది. జావాక్ కంపైలర్ మా కోసం ఇక్కడ ఉద్యోగం చేయగలదు; కింది ఆదేశాన్ని జారీ చేయండి:

$ javac ఉదాహరణ 1.జావా

దశ 3: C/C ++ హెడర్ ఫైల్‌లను సృష్టించండి

తరువాత, మాతృభాష హెడర్ ఫైల్స్ సృష్టించాలి. ఈ హెడర్ ఫైల్‌లు స్థానిక కోడ్‌ల సంతకాలకు శక్తినిస్తాయి.

ఈ హెడర్ ఫైల్స్ జవాహ్ స్థానిక సాధనంతో సృష్టించబడతాయి, ఈ కింది ఆదేశాన్ని ఉపయోగించి SDK తో కూడిన C స్టబ్ జెనరేటర్:

జవా ఉదాహరణ 1

కింది అవుట్‌పుట్ తిరిగి రావాలి:

దశ 4: స్థానిక కోడ్ రాయడం

ఇక్కడే మేము C/C ++ కోడ్ వ్రాస్తాము. మేము దశ 1 లో చేసిన ప్రకటనలను పోలి ఉండే అన్ని సంతకాలను మీరు గమనించాలి.

కిందిది సి భాషలో అమలు చేయబడిన అమలు:

దశ 5: భాగస్వామ్య లైబ్రరీని సృష్టించండి

భాగస్వామ్య లైబ్రరీని ఏదైనా కంపైలర్‌తో సృష్టించవచ్చు. షేర్డ్ లైబ్రరీలో స్థానిక కోడ్ ఉన్నందున, మేము ఒకదాన్ని సృష్టించాలి.

దశ 6: మీ ప్రోగ్రామ్‌ను ప్రారంభించండి

ఈ దశలో కోడ్‌ని అంచనా వేయడం మరియు ప్రోగ్రామ్‌తో ఏవైనా సమస్యలను గుర్తించడం ఉంటాయి. ఇది ప్రధానంగా JVM లో కోడ్ అమలు చేయబోతున్నందున ఇది జావా రన్‌టైమ్ వాతావరణాన్ని కలిగి ఉంటుంది.

కింది ఆదేశాన్ని జారీ చేయండి:

జావా ఉదాహరణ 1

ఇది తిరిగి రావాలి:

కాబట్టి ఇది జావా నేటివ్ ఇంటర్‌ఫేస్‌ను ఉపయోగించడానికి మా చిన్న బిగినర్స్ గైడ్. ఇది మీకు సహాయకరంగా ఉందని మేము ఆశిస్తున్నాము.

జావా అప్లికేషన్‌లను, ముఖ్యంగా స్మార్ట్‌ఫోన్‌ల కోసం ఆండ్రాయిడ్ అప్లికేషన్‌లను అభివృద్ధి చేయాలనుకునే ఎవరికైనా JNI తో ఎలా పని చేయాలో నేర్చుకోవడం చాలా అవసరం.