![Android కోసం మాస్టరింగ్ గ్రెడిల్: గ్రేడిల్ టాస్క్లు మరియు కోట్లిన్ - అనువర్తనాలు Android కోసం మాస్టరింగ్ గ్రెడిల్: గ్రేడిల్ టాస్క్లు మరియు కోట్లిన్ - అనువర్తనాలు](https://a.23rdpta.org/apps/mastering-gradle-for-android-gradle-tasks-and-kotlin-4.png)
విషయము
- గ్రెడిల్ బిల్డ్ ఫైళ్ళను అన్వేషించడం
- 1. settings.gradle
- 2. build.gradle (ప్రాజెక్ట్ స్థాయి)
- 3. build.gradle (మాడ్యూల్ స్థాయి)
- మీ ప్రాజెక్ట్ యొక్క డిపెండెన్సీలను ప్రకటిస్తోంది: స్థానిక లైబ్రరీలు
- బిల్డ్ డిపెండెన్సీని కలుపుతోంది: రిమోట్ రిపోజిటరీలు
- రిమోట్ రిపోజిటరీకి కనెక్ట్ అవుతోంది
- రిమోట్ డిపెండెన్సీని ప్రకటిస్తోంది
- బహుళ APK లను ఉత్పత్తి చేస్తుంది: బిల్డ్ వేరియంట్లను ఎలా సృష్టించాలి
- అనుకూల గ్రాడిల్ పనిని సృష్టిస్తోంది
- గ్రెడిల్ రేపర్తో మీ ప్రాజెక్ట్ను నిర్మించడం
- ఏ ఇతర గ్రాడిల్ పనులు అందుబాటులో ఉన్నాయి?
- గ్రాడిల్ నుండి మరింత పొందడం: ప్లగిన్లను కలుపుతోంది
- ది గ్రాడిల్ కోట్లిన్ DSL
- చుట్టి వేయు
జావా, ఎక్స్ఎంఎల్ లేదా కోట్లిన్కు బదులుగా, ఈ గ్రాడిల్ బిల్డ్ ఫైల్లు గ్రూవి-ఆధారిత డొమైన్-స్పెసిఫిక్ లాంగ్వేజ్ (డిఎస్ఎల్) ను ఉపయోగిస్తాయి. మీకు గ్రూవీతో పరిచయం లేకపోతే, మేము ఈ ప్రతి గ్రెడిల్ బిల్డ్ ఫైళ్ళను పరిశీలిస్తాము, కాబట్టి ఈ వ్యాసం ముగిసే సమయానికి మీరు సాధారణ గ్రూవి కోడ్ను చదవడం మరియు వ్రాయడం సౌకర్యంగా ఉంటుంది.
కనీస మాన్యువల్ కాన్ఫిగరేషన్తో మీరు తరచుగా ఉపయోగించగల డిఫాల్ట్ సెట్టింగ్ల సమితిని అందించడం ద్వారా మీ జీవితాన్ని సులభతరం చేయడమే గ్రాడిల్ లక్ష్యంగా ఉంది - మీరు మీ ప్రాజెక్ట్ను రూపొందించడానికి సిద్ధంగా ఉన్నప్పుడు, Android స్టూడియో యొక్క “రన్” బటన్ను నొక్కండి మరియు గ్రెడిల్ బిల్డ్ ప్రాసెస్ను ప్రారంభిస్తుంది మీ కోసం.
గ్రాడిల్ యొక్క “కన్వెన్షన్ ఓవర్ కాన్ఫిగరేషన్” విధానం ఉన్నప్పటికీ, దాని డిఫాల్ట్ సెట్టింగులు మీ అవసరాలను తీర్చకపోతే, మీరు బిల్డ్ ప్రాసెస్ను అనుకూలీకరించవచ్చు, కాన్ఫిగర్ చేయవచ్చు మరియు విస్తరించవచ్చు మరియు చాలా నిర్దిష్టమైన పనులను చేయడానికి గ్రాడిల్ సెట్టింగులను సర్దుబాటు చేయవచ్చు.
గ్రాడిల్ స్క్రిప్ట్లు వాటి స్వంత ఫైల్లలో ఉన్నందున, మీ అప్లికేషన్ యొక్క సోర్స్ కోడ్ను తాకకుండా మీరు ఎప్పుడైనా మీ అప్లికేషన్ యొక్క బిల్డ్ ప్రాసెస్ను సవరించవచ్చు. ఈ ట్యుటోరియల్లో, మేము రుచులను ఉపయోగించి బిల్డ్ ప్రాసెస్ను సవరించాము, వేరియంట్లను రూపొందించండి మరియు కస్టమ్ గ్రాడిల్ టాస్క్ - అన్నీ లేకుండా ఎప్పుడైనా మా అప్లికేషన్ కోడ్ను తాకడం.
గ్రెడిల్ బిల్డ్ ఫైళ్ళను అన్వేషించడం
మీరు ప్రాజెక్ట్ను సృష్టించిన ప్రతిసారీ, ఆండ్రాయిడ్ స్టూడియో గ్రేడిల్ బిల్డ్ ఫైల్ల యొక్క అదే సేకరణను సృష్టిస్తుంది. మీరు ఇప్పటికే ఉన్న ప్రాజెక్ట్ను Android స్టూడియోలోకి దిగుమతి చేసినా, అది అవుతుంది ఇప్పటికీ ఈ ఖచ్చితమైన అదే గ్రాడిల్ ఫైల్లను సృష్టించండి మరియు వాటిని మీ ప్రాజెక్ట్కు జోడించండి.
గ్రెడిల్ మరియు గ్రూవి సింటాక్స్ గురించి మంచి అవగాహన పొందడం ప్రారంభించడానికి, ప్రతి Android యొక్క Gradle బిల్డ్ ఫైళ్ళను చూద్దాం.
1. settings.gradle
Setting.gradle ఫైల్ అంటే “చేర్చండి” కీవర్డ్ని ఉపయోగించి మీరు మీ అప్లికేషన్ యొక్క అన్ని మాడ్యూళ్ళను పేరు ద్వారా నిర్వచిస్తారు. ఉదాహరణకు, మీకు “అనువర్తనం” మరియు “సెకండ్ మాడ్యూల్” ఉన్న ప్రాజెక్ట్ ఉంటే, అప్పుడు మీ settings.gradle ఫైల్ ఇలా కనిపిస్తుంది:
వీటిలో: అనువర్తనం ,: secondmodule rootProject.name = MyProject
మీ ప్రాజెక్ట్ పరిమాణాన్ని బట్టి, ఈ ఫైల్ చాలా పొడవుగా ఉండవచ్చు.
నిర్మాణ ప్రక్రియలో, మీ ప్రాజెక్ట్ యొక్క సెట్టింగులు.గ్రాడిల్ ఫైల్లోని విషయాలను గ్రెడిల్ పరిశీలిస్తుంది మరియు నిర్మాణ ప్రక్రియలో చేర్చాల్సిన అన్ని మాడ్యూళ్ళను గుర్తిస్తుంది.
2. build.gradle (ప్రాజెక్ట్ స్థాయి)
ప్రాజెక్ట్-స్థాయి బిల్డ్.గ్రాడిల్ ఫైల్ మీ ప్రాజెక్ట్ యొక్క రూట్ డైరెక్టరీలో ఉంది మరియు వర్తించే సెట్టింగులను కలిగి ఉంటుంది అన్ని మీ గుణకాలు (గ్రాడెల్ చేత “ప్రాజెక్టులు” అని కూడా పిలుస్తారు).
మీ Android ప్రాజెక్ట్ అంతటా ప్రతి మాడ్యూల్కు వర్తించే ఏదైనా ప్లగిన్లు, రిపోజిటరీలు, డిపెండెన్సీలు మరియు కాన్ఫిగరేషన్ ఎంపికలను నిర్వచించడానికి మీరు ఈ ఫైల్ను ఉపయోగించాలి. మీరు ప్రాజెక్ట్-స్థాయి బిల్డ్.గ్రాడిల్ ఫైల్లో ఏదైనా గ్రెడిల్ పనులను నిర్వచించినట్లయితే, వ్యక్తిగత మాడ్యూళ్ల కోసం ఈ పనులను వాటి సవరణ ద్వారా భర్తీ చేయడం లేదా విస్తరించడం ఇప్పటికీ సాధ్యమేనని గమనించండి. మాడ్యూల్ స్థాయి build.gradle ఫైల్.
ఒక సాధారణ ప్రాజెక్ట్-స్థాయి బిల్డ్.గ్రాడిల్ ఫైల్ ఇలా కనిపిస్తుంది:
బిల్డ్స్క్రిప్ట్ {రిపోజిటరీలు {google () jcenter ()} డిపెండెన్సీలు {క్లాస్పాత్ com.android.tools.build:gradle:3.5.0-alpha06 // గమనిక: మీ అప్లికేషన్ డిపెండెన్సీలను ఇక్కడ ఉంచవద్దు; అవి వ్యక్తిగత మాడ్యూల్ బిల్డ్.గ్రాడిల్ ఫైళ్ళలో ఉన్నాయి}} ఆల్ప్రొజెక్ట్స్ {రిపోజిటరీలు {గూగుల్ () జెసెంటర్ ()}} టాస్క్ క్లీన్ (రకం: తొలగించు) root రూట్ప్రొజెక్ట్.బిల్డ్డిర్ తొలగించండి}
ఈ ప్రాజెక్ట్-స్థాయి బిల్డ్.గ్రాడిల్ ఫైల్ క్రింది బ్లాక్లుగా విభజించబడింది:
- Buildscript. ఇది బిల్డ్ చేయడానికి అవసరమైన సెట్టింగులను కలిగి ఉంటుంది.
- Repositories. మీ ప్రాజెక్ట్ యొక్క డిపెండెన్సీలను గుర్తించడం మరియు వాటిని మీ బిల్డ్లో అందుబాటులో ఉంచడం గ్రాడిల్ బాధ్యత. ఏదేమైనా, అన్ని డిపెండెన్సీలు ఒకే రిపోజిటరీ నుండి రావు, కాబట్టి మీ ప్రాజెక్ట్ యొక్క డిపెండెన్సీలను తిరిగి పొందడానికి, గ్రాడెల్ శోధించాల్సిన అన్ని రిపోజిటరీలను మీరు నిర్వచించాలి.
- మీద ఆధారం. ఈ విభాగం మీ ప్లగ్ఇన్ డిపెండెన్సీలను కలిగి ఉంది, అవి మీ స్థానిక కాష్లో డౌన్లోడ్ చేయబడతాయి మరియు నిల్వ చేయబడతాయి. మీరు తప్పక కాదు ఈ బ్లాక్లోని ఏదైనా మాడ్యూల్ డిపెండెన్సీలను నిర్వచించండి.
- Allprojects. ఇక్కడే మీరు అందుబాటులో ఉన్న రిపోజిటరీలను నిర్వచిస్తారు అన్ని మీ ప్రాజెక్ట్ మాడ్యూళ్ళలో.
3. build.gradle (మాడ్యూల్ స్థాయి)
ఇది మాడ్యూల్-స్థాయి బిల్డ్.గ్రాడిల్ ఫైల్, ఇది మీ ప్రాజెక్ట్ అంతటా ప్రతి మాడ్యూల్లో ఉంటుంది. మీ Android ప్రాజెక్ట్ బహుళ మాడ్యూళ్ళను కలిగి ఉంటే, అది బహుళ మాడ్యూల్-స్థాయి బిల్డ్.గ్రాడిల్ ఫైళ్ళను కూడా కలిగి ఉంటుంది.
ప్రతి మాడ్యూల్-స్థాయి బిల్డ్.గ్రాడిల్ ఫైల్లో మీ ప్రాజెక్ట్ యొక్క ప్యాకేజీ పేరు, సంస్కరణ పేరు మరియు సంస్కరణ కోడ్ మరియు ఈ ప్రత్యేకమైన మాడ్యూల్ కోసం కనీస మరియు లక్ష్య SDK ఉన్నాయి.
మాడ్యూల్-స్థాయి బిల్డ్.గ్రాడిల్ ఫైల్ దాని స్వంత ప్రత్యేకమైన నిర్మాణ సూచనలు మరియు డిపెండెన్సీలను కలిగి ఉంటుంది. ఉదాహరణకు, మీరు వేర్ OS భాగంతో ఒక అనువర్తనాన్ని సృష్టిస్తుంటే, మీ Android స్టూడియో ప్రాజెక్ట్ ప్రత్యేక స్మార్ట్ఫోన్ / టాబ్లెట్ మాడ్యూల్ మరియు వేర్ మాడ్యూల్ను కలిగి ఉంటుంది - అవి పూర్తిగా భిన్నమైన పరికరాలను లక్ష్యంగా చేసుకున్నందున, ఈ మాడ్యూల్స్ చాలా భిన్నంగా ఉంటాయి సమన్వయాలు!
ప్రాథమిక మాడ్యూల్-స్థాయి బిల్డ్.గ్రాడిల్ ఫైల్ సాధారణంగా ఇలా కనిపిస్తుంది:
ప్లగిన్ను వర్తింపజేయండి: com.android.application android {compileSdkVersion 28 defaultConfig {applicationId "com.jessicathornsby.speechtotext" minSdkVersion 23 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.run getDefaultProguardFile (proguard-android-optimize.txt), proguard-rules.pro}}} డిపెండెన్సీలు {అమలు ఫైల్ ట్రీ (dir: libs, include :) అమలు androidx.appcompat: appcompat: 1.0.2 అమలు androidx.constraintlayout: constintlayout: 1.1. 3 టెస్ట్ఇంప్లిమెంటేషన్ జునిట్: జునిట్: 4.12 androidTestImplementation androidx.test.ext: junit: 1.1.0 androidTestImplementation androidx.test.espresso: ఎస్ప్రెస్సో-కోర్: 3.1.1}
ఈ ప్రతి విభాగాన్ని నిశితంగా పరిశీలిద్దాం:
- ప్లగ్ఇన్ వర్తించండి. ఈ మాడ్యూల్ను నిర్మించడానికి అవసరమైన ప్లగిన్ల జాబితా ఇది. Android- నిర్దిష్ట నిర్మాణ ప్రక్రియను సెటప్ చేయడానికి com.android.application ప్లగ్ఇన్ అవసరం, కాబట్టి ఇది స్వయంచాలకంగా జోడించబడుతుంది.
- యాండ్రాయిడ్. మాడ్యూల్ యొక్క ప్లాట్ఫాం-నిర్దిష్ట ఎంపికలన్నింటినీ మీరు ఇక్కడ ఉంచాలి.
- compileSdkVersion. ఈ మాడ్యూల్ సంకలనం చేయబడిన API స్థాయి ఇది. మీరు ఈ విలువ కంటే ఎక్కువ API నుండి లక్షణాలను ఉపయోగించలేరు.
- buildToolsVersion. ఇది కంపైలర్ యొక్క సంస్కరణను సూచిస్తుంది. గ్రేడిల్ 3.0.0 మరియు అంతకంటే ఎక్కువ, బిల్డ్ టూల్స్ వర్షన్ ఐచ్ఛికం; మీరు బిల్డ్ టూల్స్ వెర్షన్ విలువను పేర్కొనకపోతే, ఆండ్రాయిడ్ స్టూడియో బిల్డ్ టూల్స్ యొక్క ఇటీవలి వెర్షన్కు డిఫాల్ట్ అవుతుంది.
- defaultConfig. ఇది మీ డీబగ్ మరియు విడుదల బిల్డ్లు వంటి మీ అనువర్తనం యొక్క అన్ని బిల్డ్ వెర్షన్లకు వర్తించే ఎంపికలను కలిగి ఉంటుంది.
- applicationId. ఇది మీ అప్లికేషన్ యొక్క ప్రత్యేక ఐడెంటిఫైయర్.
- minSdkVersion. ఈ పరామితి ఈ మాడ్యూల్ మద్దతిచ్చే అతి తక్కువ API స్థాయిని నిర్వచిస్తుంది.
- targetSdkVersion. ఇది మీ అప్లికేషన్కు వ్యతిరేకంగా పరీక్షించబడిన గరిష్ట API స్థాయి. ఆదర్శవంతంగా, మీరు మీ అప్లికేషన్ను సరికొత్త API ని ఉపయోగించి పరీక్షించాలి, అంటే targetSdkVersion విలువ ఎల్లప్పుడూ కంపైల్ SDK వర్షన్ విలువకు సమానంగా ఉంటుంది.
- versionCode. ఇది మీ అనువర్తన సంస్కరణకు సంఖ్యా విలువ.
- versionName. ఇది యూజర్ ఫ్రెండ్లీ స్ట్రింగ్, ఇది మీ అప్లికేషన్ వెర్షన్ను సూచిస్తుంది.
- buildTypes. అప్రమేయంగా, Android రెండు బిల్డ్ రకాలను మద్దతిస్తుంది: డీబగ్ మరియు విడుదల. మీ అప్లికేషన్ యొక్క రకం-నిర్దిష్ట సెట్టింగులను పేర్కొనడానికి మీరు “డీబగ్” మరియు “విడుదల” బ్లాక్లను ఉపయోగించవచ్చు.
- ఆధారపడటం. ఈ మాడ్యూల్ ఆధారపడిన ఏదైనా లైబ్రరీలను మీరు ఇక్కడే నిర్వచిస్తారు.
మీ ప్రాజెక్ట్ యొక్క డిపెండెన్సీలను ప్రకటిస్తోంది: స్థానిక లైబ్రరీలు
ఒకటి లేదా అంతకంటే ఎక్కువ ప్రాజెక్ట్ డిపెండెన్సీలను జోడించడం ద్వారా మీరు మీ Android ప్రాజెక్ట్లకు అదనపు కార్యాచరణను అందుబాటులో ఉంచవచ్చు. ఈ డిపెండెన్సీలు స్థానికంగా ఉండవచ్చు లేదా వాటిని రిమోట్ రిపోజిటరీలో నిల్వ చేయవచ్చు.
స్థానిక JAR ఫైల్పై ఆధారపడటాన్ని ప్రకటించడానికి, మీరు ఆ JAR ని మీ ప్రాజెక్ట్ యొక్క “లిబ్స్” డైరెక్టరీకి జోడించాలి.
ఈ ఫైల్పై ఆధారపడటాన్ని ప్రకటించడానికి మీరు మాడ్యూల్-స్థాయి బిల్డ్.గ్రాడిల్ ఫైల్ను సవరించవచ్చు. ఉదాహరణకు, ఇక్కడ మేము “మైలైబ్రరీ” JAR పై ఆధారపడటాన్ని ప్రకటిస్తున్నాము.
అమలు ఫైళ్లు (libs / mylibrary.jar)
ప్రత్యామ్నాయంగా, మీ “లిబ్స్” ఫోల్డర్లో అనేక JAR లు ఉంటే, మీ ప్రాజెక్ట్ “లిబ్స్” ఫోల్డర్లోని అన్ని ఫైల్లపై ఆధారపడి ఉంటుందని పేర్కొనడం సులభం కావచ్చు, ఉదాహరణకు:
అమలు ఫైల్ ట్రీ (dir: libs, include :)
బిల్డ్ డిపెండెన్సీని కలుపుతోంది: రిమోట్ రిపోజిటరీలు
రిమోట్ రిపోజిటరీలో లైబ్రరీ ఉన్నట్లయితే, మీరు ఈ క్రింది దశలను పూర్తి చేయాలి:
- ఈ డిపెండెన్సీ ఉన్న రిపోజిటరీని నిర్వచించండి.
- వ్యక్తిగత డిపెండెన్సీని ప్రకటించండి.
రిమోట్ రిపోజిటరీకి కనెక్ట్ అవుతోంది
మొదటి దశ, మీ ప్రాజెక్ట్ యొక్క అన్ని డిపెండెన్సీలను తిరిగి పొందడానికి, ఏ రిపోజిటరీ (లేదా రిపోజిటరీలను) తనిఖీ చేయాలో గ్రాడెల్కు చెప్పడం. ఉదాహరణకి:
రిపోజిటరీలు {google () jcenter ()}}
ఇక్కడ, “jcenter ()” పంక్తి JCenter రిపోజిటరీని గ్రెడిల్ తనిఖీ చేస్తుందని నిర్ధారిస్తుంది, ఇది బింట్రే వద్ద హోస్ట్ చేయబడిన ఉచిత, పబ్లిక్ రిపోజిటరీ.
ప్రత్యామ్నాయంగా, మీరు లేదా మీ సంస్థ వ్యక్తిగత రిపోజిటరీని నిర్వహిస్తే, మీరు ఈ రిపోజిటరీ యొక్క URL ను మీ డిపెండెన్సీ డిక్లరేషన్కు జోడించాలి. రిపోజిటరీ పాస్వర్డ్తో రక్షించబడితే, మీరు మీ లాగిన్ సమాచారాన్ని కూడా అందించాలి, ఉదాహరణకు:
repositories {mavenCentral () maven {// లక్ష్య URL ను కాన్ఫిగర్ చేయండి // url "http://repo.mycompany.com/myprivaterepo"} maven {ఆధారాలు {వినియోగదారు పేరు myUsername password myPassword} url "http://repo.mycompany.com / myprivaterepo "}
బహుళ రిపోజిటరీలలో డిపెండెన్సీ ఉంటే, ప్రతి రిపోజిటరీ వయస్సు మరియు స్టాటిక్ వెర్షన్ వంటి కారకాల ఆధారంగా గ్రాడిల్ ఈ డిపెండెన్సీ యొక్క “ఉత్తమ” సంస్కరణను ఎన్నుకుంటుంది.
రిమోట్ డిపెండెన్సీని ప్రకటిస్తోంది
తదుపరి దశ మీ మాడ్యూల్-స్థాయి బిల్డ్.గ్రాడిల్ ఫైల్లో డిపెండెన్సీని ప్రకటించడం. కిందివాటిలో దేనినైనా ఉపయోగించి మీరు ఈ సమాచారాన్ని “డిపెండెన్సీలు” బ్లాక్కు జోడిస్తారు:
- అమలు. మీరు మీ ప్రాజెక్ట్ను నిర్మించినప్పుడల్లా ఇది మీకు అవసరమైన సాధారణ డిపెండెన్సీ. "అమలు" ఆధారపడటం అంతటా ఉంటుంది అన్ని మీ నిర్మాణాలు.
- Testimplementation. ఇది మీ అప్లికేషన్ యొక్క పరీక్ష మూలాన్ని కంపైల్ చేయడానికి మరియు JVM- ఆధారిత పరీక్షలను అమలు చేయడానికి అవసరమైన డిపెండెన్సీ. మీరు డిపెండెన్సీని “టెస్టిప్లిమెంటేషన్” అని గుర్తించినప్పుడు, సాధారణ బిల్డ్ సమయంలో ఈ డిపెండెన్సీ కోసం టాస్క్లను అమలు చేయనవసరం లేదని గ్రెడిల్కు తెలుస్తుంది, ఇది నిర్మాణ సమయాన్ని తగ్గించడంలో సహాయపడుతుంది.
- Androidtestimplementation. ఇది పరికరంలో పరీక్షలను అమలు చేసేటప్పుడు అవసరమయ్యే డిపెండెన్సీ, ఉదాహరణకు ఎస్ప్రెస్సో ఫ్రేమ్వర్క్ ఒక సాధారణ “Androidtestimplementation.”
పైన పేర్కొన్న కీలకపదాలలో ఒకదాన్ని ఉపయోగించి రిమోట్ డిపెండెన్సీని మేము నిర్వచిస్తాము, తరువాత డిపెండెన్సీ సమూహం, పేరు మరియు సంస్కరణ లక్షణాలు, ఉదాహరణకు:
డిపెండెన్సీలు {ఇంప్లిమెంటేషన్ ఫైల్ ట్రీ (dir: libs, include :) అమలు androidx.appcompat: appcompat: 1.0.2 అమలు androidx.constraintlayout: constintlayout: 1.1.3 testImplementation junit: junit: 4.12 androidTestImplementation androidx.test.ext: junit: 1.1.0 androidTestImplementation androidx.test.espresso: ఎస్ప్రెస్సో-కోర్: 3.1.1}
బహుళ APK లను ఉత్పత్తి చేస్తుంది: బిల్డ్ వేరియంట్లను ఎలా సృష్టించాలి
కొన్నిసార్లు, మీరు మీ అప్లికేషన్ యొక్క బహుళ సంస్కరణలను సృష్టించవలసి ఉంటుంది. ఉదాహరణకు, మీరు ఉచిత సంస్కరణను మరియు చెల్లింపు సంస్కరణను విడుదల చేయాలనుకోవచ్చు, ఇందులో కొన్ని అదనపు లక్షణాలు ఉంటాయి.
ఇది గ్రెడిల్ మీకు సహాయపడే బిల్డ్ టాస్క్, కాబట్టి ఒకే ప్రాజెక్ట్ నుండి బహుళ APK లను సృష్టించడానికి మీరు బిల్డ్ ప్రాసెస్ను ఎలా సవరించారో చూద్దాం:
- మీ strings.xml ఫైల్ను తెరిచి, మీ అసలు అప్లికేషన్ పేరు స్ట్రింగ్ను తొలగించండి.
- తరువాత, మీరు సృష్టించదలిచిన ప్రతి ఉత్పత్తి రుచి పేర్లను నిర్వచించండి; ఈ సందర్భంలో, నేను ఉపయోగిస్తున్నాను:
- మీ AndroidManifest.xml ఫైల్ను తెరిచి, Android: label = ”@ string / app_name” ని దీనితో భర్తీ చేయండి:
android: లేబుల్ = "$ {appname}"
- మీ మాడ్యూల్-స్థాయి బిల్డ్.గ్రాడిల్ ఫైల్ను తెరిచి, కిందివాటిని “ఆండ్రాయిడ్” బ్లాక్కు జోడించండి:
ఫ్లేవర్ డైమెన్షన్స్ "మోడ్" ప్రొడక్ట్ ఫ్లేవర్స్ {ఫ్రీ {డైమెన్షన్ "మోడ్" అప్లికేషన్ఇడ్సఫిక్స్ ".ఫ్రీ" మానిఫెస్ట్ ప్లేస్హోల్డర్స్ =} పెయిడ్ {డైమెన్షన్ "మోడ్" అప్లికేషన్ఇడ్సఫిక్స్ ".పెయిడ్" మానిఫెస్ట్ ప్లేస్హోల్డర్స్ =}}}
ఇక్కడ ఏమి జరుగుతుందో విడదీయండి:
- flavorDimensions. Android ప్లగ్ఇన్ వివిధ కోణాల నుండి రుచులను కలపడం ద్వారా బిల్డ్ వేరియంట్లను సృష్టిస్తుంది. ఇక్కడ, మేము మా అనువర్తనం యొక్క “ఉచిత” మరియు “చెల్లింపు” సంస్కరణలతో కూడిన రుచి కోణాన్ని సృష్టిస్తున్నాము. పై కోడ్ ఆధారంగా, గ్రాడెల్ నాలుగు బిల్డ్ వేరియంట్లను ఉత్పత్తి చేస్తుంది: పెయిడ్డెబగ్, పెయిడ్ రిలీజ్, ఫ్రీడెబగ్ మరియు ఫ్రీ రిలీజ్.
- productFlavors. ఇది రుచుల జాబితాను మరియు వాటి సెట్టింగులను నిర్దేశిస్తుంది, పై కోడ్లో “చెల్లించినవి” మరియు “ఉచితం”.
- ఉచిత / చెల్లింపు. ఇవి మా రెండు ఉత్పత్తి రుచుల పేర్లు.
- డైమెన్షన్. మేము “డైమెన్షన్” పారామితి విలువను పేర్కొనాలి; ఈ సందర్భంలో, నేను “మోడ్” ని ఉపయోగిస్తున్నాను.
- applicationIdSuffix. మేము మా అనువర్తనం యొక్క బహుళ సంస్కరణలను సృష్టించాలనుకుంటున్నాము కాబట్టి, ప్రతి APK కి ప్రత్యేకమైన అనువర్తన ఐడెంటిఫైయర్ ఇవ్వాలి.
- manifestPlaceholders. ప్రతి ప్రాజెక్ట్ మీ ప్రాజెక్ట్ కాన్ఫిగరేషన్ గురించి ముఖ్యమైన సమాచారాన్ని కలిగి ఉన్న ఒకే మానిఫెస్ట్ ఫైల్ను కలిగి ఉంది. బహుళ నిర్మాణ వైవిధ్యాలను సృష్టించేటప్పుడు, మీరు సాధారణంగా ఈ మానిఫెస్ట్ లక్షణాలలో కొన్నింటిని నిర్మాణ సమయంలో సవరించాలనుకుంటున్నారు. ప్రతి బిల్డ్ వేరియంట్కు ప్రత్యేకమైన మానిఫెస్ట్ ఎంట్రీలను పేర్కొనడానికి మీరు గ్రాడిల్ బిల్డ్ ఫైల్లను ఉపయోగించవచ్చు, అది బిల్డ్ సమయంలో మీ మానిఫెస్ట్లో చేర్చబడుతుంది. పై కోడ్లో, గ్రెడిల్ మా అనువర్తనం యొక్క ఉచిత లేదా చెల్లింపు సంస్కరణను నిర్మిస్తున్నారా అనే దానిపై ఆధారపడి “appName” విలువను మేము సవరించాము.
అనుకూల గ్రాడిల్ పనిని సృష్టిస్తోంది
కొన్నిసార్లు మీరు గ్రాడిల్ ఉపయోగించి బిల్డ్ ప్రాసెస్ను అనుకూలీకరించాల్సి ఉంటుంది పనులు.
టాస్క్ అనేది పేరున్న చర్యల సమాహారం, ఇది బిల్డ్ చేసేటప్పుడు గ్రాడిల్ అమలు చేస్తుంది, ఉదాహరణకు జావాడోక్ను ఉత్పత్తి చేస్తుంది. గ్రెడిల్ అప్రమేయంగా చాలా పనులకు మద్దతు ఇస్తుంది, కానీ మీరు కస్టమ్ టాస్క్లను కూడా సృష్టించవచ్చు, మీరు మనస్సులో చాలా నిర్దిష్టమైన నిర్మాణ సూచనలను కలిగి ఉంటే అది ఉపయోగపడుతుంది.
ఈ విభాగంలో, మేము మా ప్రాజెక్ట్ యొక్క అన్ని బిల్డ్ వేరియంట్ల (పెయిడ్ డీబగ్, పెయిడ్ రిలీజ్, ఫ్రీడెబగ్ మరియు ఫ్రీ రిలీజ్) ద్వారా మళ్ళి, తేదీ మరియు సమయ స్టాంప్ను సృష్టించి, ఆపై ఉత్పత్తి చేసిన ప్రతి APK కి ఈ సమాచారాన్ని జోడిస్తాము.
మీ మాడ్యూల్-స్థాయి బిల్డ్.గ్రాడిల్ ఫైల్ను తెరిచి, కింది వాటిని జోడించండి:
టాస్క్ addDateAndTime () {// అన్ని అవుట్పుట్ బిల్డ్ వేరియంట్ల ద్వారా మళ్ళించండి // android.applicationVariants.all {వేరియంట్ -> // అన్ని APK ఫైళ్ళ ద్వారా మళ్ళించండి // variant.outputs.all {output -> // ఒక ఉదాహరణను సృష్టించండి ప్రస్తుత తేదీ మరియు సమయం, పేర్కొన్న ఆకృతిలో // def dateAndTime = new date (). ఫార్మాట్ ("yyyy-MM-dd: HH-mm") // ఈ సమాచారాన్ని APK యొక్క ఫైల్ పేరు // def fileName = వేరియంట్కు జోడించండి. పేరు + "_" + dateAndTime + ".apk" output.outputFileName = fileName}}}
తరువాత, మేము గ్రాడిల్కు చెప్పాలి ఎప్పుడు ఇది ఈ పనిని అమలు చేయాలి. నిర్మాణ సమయంలో, డౌన్లోడ్ చేయాల్సిన ప్రతిదాన్ని మరియు అది అమలు చేయాల్సిన అన్ని పనులను గ్రెడిల్ గుర్తిస్తుంది మరియు వాటిని డైరెక్టెడ్ ఎసిక్లిక్ గ్రాఫ్ (DAG) లో ఏర్పాటు చేస్తుంది. గ్రాడిల్ దాని DAG లో నిర్వచించిన క్రమం ప్రకారం ఈ పనులన్నింటినీ అమలు చేస్తుంది.
నా అనువర్తనం కోసం, నేను “ఎప్పుడు రెడీ” పద్ధతిని ఉపయోగించబోతున్నాను, ఇది DAG జనాభా పొందిన తర్వాత మా పనిని పిలుస్తుందని నిర్ధారిస్తుంది మరియు గ్రాడెల్ దాని పనులను ప్రారంభించడానికి సిద్ధంగా ఉంది.
మీ మాడ్యూల్-స్థాయి బిల్డ్.గ్రాడిల్ ఫైల్కు కింది వాటిని జోడించండి:
// ఈ పనిని అమలు చేయండి // gradle.taskGraph.whenReady {addDateAndTime}
మన అనుకూల పనిని చేద్దాం మరియు గ్రాడిల్ కమాండ్ ఉపయోగించి ఈ ప్రాజెక్ట్ను నిర్మించడం ద్వారా పరీక్షకు మా బిల్డ్ వేరియంట్ కోడ్.
గ్రెడిల్ రేపర్తో మీ ప్రాజెక్ట్ను నిర్మించడం
మీరు Gradle రేపర్ (“gradlew”) ను ఉపయోగించి Gradle ఆదేశాలను జారీ చేస్తారు. ఈ స్క్రిప్ట్ గ్రాడిల్ బిల్డ్ను ప్రారంభించడానికి ఇష్టపడే మార్గం, ఎందుకంటే ఇది మీ గ్రాడిల్ వెర్షన్ నుండి బిల్డ్ యొక్క అమలును స్వతంత్రంగా చేస్తుంది. గ్రేడిల్ యొక్క అదే సంస్కరణను ఇన్స్టాల్ చేయని ఇతరులతో మీరు సహకరిస్తుంటే ఈ విభజన ఉపయోగపడుతుంది.
మీ గ్రాడిల్ రేపర్ ఆదేశాలను జారీ చేసేటప్పుడు, మీరు మాకోస్తో సహా యునిక్స్ లాంటి ఆపరేటింగ్ సిస్టమ్ల కోసం “గ్రాడ్లెవ్” మరియు విండోస్ కోసం “gradlew.bat” ను ఉపయోగిస్తారు. నాకు Mac ఉంది, కాబట్టి నేను “gradlew” ఆదేశాలను ఉపయోగిస్తాను.
మీరు Android స్టూడియో లోపల నుండి Gradle ఆదేశాలను జారీ చేయవచ్చు:
- Android స్టూడియో టూల్బార్లో, “వీక్షణ> సాధనాలు విండోస్> టెర్మినల్” ఎంచుకోండి. ఇది IDE విండో దిగువన టెర్మినల్ ప్యానల్ను తెరుస్తుంది.
- కింది ఆదేశాన్ని టెర్మినల్లోకి నమోదు చేయండి:
./గ్రాడ్ బిల్డ్
Android స్టూడియో ఇలా ఉండాలి:
- మీ కీబోర్డ్లోని “ఎంటర్” కీని నొక్కండి. Gradle ఇప్పుడు మీ ప్రాజెక్ట్ను నిర్మిస్తుంది.
మీ ప్రాజెక్ట్ యొక్క అనువర్తనం / బిల్డ్ / అవుట్పుట్లు / ఎపికె డైరెక్టరీలో ఉత్పత్తి చేయబడిన అన్ని APK లను గ్రెడిల్ నిల్వ చేస్తుంది, కాబట్టి ఈ డైరెక్టరీకి నావిగేట్ చేయండి. “APK” ఫోల్డర్లో అనేక ఫోల్డర్లు మరియు సబ్ ఫోల్డర్లు ఉండాలి; మీ ప్రతి బిల్డ్ వేరియంట్ల కోసం గ్రాడెల్ ఒక APK ని ఉత్పత్తి చేసిందని మరియు ప్రతి ఫైల్కు సరైన తేదీ మరియు సమయ సమాచారం జోడించబడిందని నిర్ధారించుకోండి.
ఏ ఇతర గ్రాడిల్ పనులు అందుబాటులో ఉన్నాయి?
మీరు సృష్టించే ఏవైనా అనుకూల పనులతో పాటు, గ్రాడిల్ ముందే నిర్వచించిన పనుల జాబితాకు మద్దతు ఇస్తుంది. ఏ పనులు అందుబాటులో ఉన్నాయో చూడడానికి మీకు ఆసక్తి ఉంటే, అప్పుడు:
- Android స్టూడియో యొక్క టెర్మినల్ విండో ఇప్పటికే తెరవకపోతే తెరవండి (Android స్టూడియో టూల్ బార్ నుండి “వీక్షణ> సాధనాలు విండోస్> టెర్మినల్” ఎంచుకోవడం ద్వారా).
- కింది వాటిని టెర్మినల్లో టైప్ చేయండి:
./gradlew -q పనులు
- మీ కీబోర్డ్లోని “ఎంటర్” కీని నొక్కండి.
ఈ “పనులు” పని ఇప్పుడు నడుస్తుంది మరియు కొన్ని క్షణాల తరువాత టెర్మినల్ ఈ ప్రాజెక్ట్ కోసం అందుబాటులో ఉన్న అన్ని పనుల జాబితాను ప్రదర్శిస్తుంది, ప్రతి పని యొక్క చిన్న వివరణతో పూర్తి అవుతుంది.
గ్రాడిల్ నుండి మరింత పొందడం: ప్లగిన్లను కలుపుతోంది
ముందే ఇన్స్టాల్ చేసిన అనేక ప్లగిన్లతో నౌకలను నొక్కండి, కానీ మీరు కొత్త ప్లగిన్లను జోడించడం ద్వారా గ్రాడిల్ను మరింత విస్తరించవచ్చు. ఈ ప్లగిన్లు మీ Android ప్రాజెక్ట్లకు క్రొత్త పనులను అందుబాటులోకి తెస్తాయి, ఉదాహరణకు, జావా సోర్స్ కోడ్ను కంపైల్ చేయడానికి, యూనిట్ పరీక్షలను అమలు చేయడానికి మరియు “కంపైల్ జావా,” “కంపైల్టెక్స్ట్,” “జార్,” వంటి JAR ఫైల్ను సృష్టించడానికి మిమ్మల్ని అనుమతించే టాస్క్లను జావా ప్లగ్ఇన్ కలిగి ఉంటుంది. “జావాడోక్,” మరియు “శుభ్రంగా.”
ప్లగ్ఇన్ను వర్తింపచేయడానికి, మీ మాడ్యూల్-స్థాయి బిల్డ్.గ్రాడిల్ ఫైల్కు “వర్తించు ప్లగ్ఇన్” డిక్లరేషన్ను జోడించి, ఆ తర్వాత ప్లగిన్ పేరును జోడించండి. ఉదాహరణకు, ఇక్కడ మేము జావా ప్లగ్ఇన్ను వర్తింపజేస్తున్నాము:
ప్లగ్ఇన్ వర్తించు: జావా
ఏ ప్లగిన్లు అందుబాటులో ఉన్నాయో చూడడానికి మీకు ఆసక్తి ఉంటే, గ్రేడిల్ ప్లగిన్ల యొక్క సమగ్ర రిజిస్ట్రీని అందించే గ్రాడిల్ ప్లగిన్ శోధనను చూడండి.
ది గ్రాడిల్ కోట్లిన్ DSL
అప్రమేయంగా, మీరు గ్రూవి డిఎస్ఎల్ను ఉపయోగించి మీ గ్రాడెల్ బిల్డ్ స్క్రిప్ట్లను వ్రాస్తారు, కానీ మీరు ఆండ్రాయిడ్ అభివృద్ధి కోసం కోట్లిన్ను స్వీకరించిన చాలా మంది డెవలపర్లలో ఒకరు అయితే, మీరు బదులుగా మీ బిల్డ్ స్క్రిప్ట్లను కోట్లిన్లో రాయడానికి ఇష్టపడవచ్చు.
గ్రూవి మాదిరిగా కాకుండా, కోట్లిన్ స్థిరంగా టైప్ చేసిన ప్రోగ్రామింగ్ భాష, కాబట్టి మీరు స్విచ్ చేస్తే, మీ బిల్డ్ ఫైల్స్ Android స్టూడియో యొక్క స్వయం పూర్తి మరియు సోర్స్ కోడ్ నావిగేషన్ లక్షణాలతో అనుకూలంగా ఉంటాయి. అదనంగా, గ్రూవి నుండి కోట్లిన్కు వెళ్లడం అంటే మీరు మీ ప్రాజెక్ట్లో ఒకే ప్రోగ్రామింగ్ భాషను ఉపయోగిస్తున్నారు, ఇది అభివృద్ధిని మరింత సరళంగా చేస్తుంది - ప్రత్యేకించి మీకు గ్రూవీతో పెద్దగా పరిచయం లేకపోతే!
మీరు కోట్లిన్లో మీ బిల్డ్ లాజిక్ రాయడం ప్రారంభించాలనుకుంటే, మీరు గ్రాడిల్ కోట్లిన్ DSL ను సెటప్ చేయాలి మరియు మైగ్రేషన్ గైడ్లోని సూచనలను అనుసరించండి.
చుట్టి వేయు
ఈ వ్యాసంలో, మేము Android స్టూడియో యొక్క బిల్డ్ ఆటోమేషన్ మరియు డిపెండెన్సీ మేనేజ్మెంట్ సాధనాన్ని అన్వేషించాము. గ్రాడిల్ బిల్డ్ ప్రాసెస్ను వెలుపల ఆటోమేట్ ఎలా చేస్తుందో మరియు కస్టమ్ గ్రాడిల్ టాస్క్లను సృష్టించడం మరియు ఒకే ప్రాజెక్ట్ నుండి బహుళ బిల్డ్ వేరియంట్లను రూపొందించడం సహా మీ ప్రాజెక్ట్ యొక్క గ్రాడిల్ బిల్డ్ ఫైల్లను సవరించడం ద్వారా బిల్డ్ ప్రాసెస్ను ఎలా సవరించవచ్చో మేము పరిశీలించాము.
Android బిల్డ్ ప్రాసెస్ యొక్క ఇతర భాగాలను ఆటోమేట్ చేయడానికి మీరు గ్రాడిల్ను విస్తరించారా? దిగువ వ్యాఖ్యలలో మాకు తెలియజేయండి!