إتقان Gradle لنظام Android: مهام Gradle و Kotlin

مؤلف: Lewis Jackson
تاريخ الخلق: 11 قد 2021
تاريخ التحديث: 1 تموز 2024
Anonim
Android Tutorial #10 | What is Gradle - The Complete Android Developer Course
فيديو: Android Tutorial #10 | What is Gradle - The Complete Android Developer Course

المحتوى


بدلاً من Java أو XML أو Kotlin ، تستخدم ملفات إنشاء Gradle هذه لغة المجال المحددة (DSL) المبنية على Groovy. إذا لم تكن معتادًا على Groovy ، فسوف نلقي نظرة فاحصة على كل ملف من ملفات بناء Gradle هذه ، لذا بحلول نهاية هذه المقالة ، ستكون مرتاحًا لقراءة رمز Groovy البسيط وكتابته.

يهدف Gradle إلى جعل حياتك أسهل ، من خلال توفير مجموعة من الإعدادات الافتراضية التي يمكنك استخدامها في كثير من الأحيان مع الحد الأدنى من التكوين اليدوي - عندما تكون جاهزًا لإنشاء مشروعك ، ما عليك سوى الضغط على الزر "تشغيل" في Android Studio وسيبدأ Gradle عملية الإنشاء لك.

على الرغم من نهج Gradle الخاص بـ "اصطلاح التكوين" ، إذا كانت إعداداته الافتراضية لا تلبي احتياجاتك تمامًا ، فيمكنك تخصيص عملية الإنشاء وتكوينها وتوسيعها ، وحتى تعديل إعدادات Gradle لأداء مهام محددة للغاية.

نظرًا لأن البرامج النصية Gradle مضمنة في ملفاتها الخاصة ، يمكنك تعديل عملية إنشاء التطبيق الخاص بك في أي وقت ، دون الحاجة إلى لمس رمز مصدر التطبيق الخاص بك. في هذا البرنامج التعليمي ، سنقوم بتعديل عملية الإنشاء باستخدام النكهات ، وإنشاء المتغيرات ومهمة Gradle المخصصة - كل ذلك دون أبدا لمس رمز التطبيق لدينا.


استكشاف ملفات بناء Gradle

في كل مرة تقوم فيها بإنشاء مشروع ، يقوم Android Studio بإنشاء نفس مجموعة ملفات Gradle build. حتى إذا قمت باستيراد مشروع موجود إلى Android Studio ، فسيتم ذلك ما يزال قم بإنشاء ملفات Gradle نفسها هذه ، وأضفها إلى مشروعك.

للبدء في التعرف بشكل أفضل على Gradle وبناء جملة Groovy ، دعنا نلقي نظرة فاحصة على كل ملف من ملفات بناء Gradle في Android.

1. الإعدادات

ملف settings.gradle هو المكان الذي ستحدد فيه جميع وحدات التطبيق حسب الاسم ، وذلك باستخدام الكلمة الأساسية "include". على سبيل المثال ، إذا كان لديك مشروع يتكون من "تطبيق" و "secondModule" ، فسيظهر ملف الإعدادات الخاص بك.

تشمل: التطبيق ،: secondmodule rootProject.name = MyProject

بناءً على حجم مشروعك ، قد يكون هذا الملف أطول بكثير.

أثناء عملية الإنشاء ، سيقوم Gradle بفحص محتويات إعدادات ملفك في المشروع. ملف التعريف وتحديد جميع الوحدات التي يحتاجها لتضمينها في عملية الإنشاء.

2. build.gradle (مستوى المشروع)

يوجد ملف build.gradle على مستوى المشروع في الدليل الجذر للمشروع الخاص بك ويحتوي على الإعدادات التي سيتم تطبيقها الكل الوحدات الخاصة بك (يشار إليها أيضًا باسم "مشاريع" بواسطة Gradle).


يجب عليك استخدام هذا الملف لتحديد أي مكونات إضافية ومستودعات وتبعيات وخيارات التكوين التي تنطبق على كل وحدة نمطية خلال مشروع Android الخاص بك. لاحظ أنه إذا قمت بتحديد أي مهام Gradle داخل ملف build.gradle على مستوى المشروع ، فلا يزال من الممكن تخطي أو تمديد هذه المهام للوحدات النمطية الفردية ، عن طريق تحرير المطابق لها على مستوى الوحدة النمطية ملف build.gradle.

سيبدو ملف build.gradle النموذجي على مستوى المشروع شيئًا مثل هذا:

buildscript {repositories {google () jcenter ()} تبعيات {classpath com.android.tools.build:gradle:3.5.0-alpha06 // ملاحظة: لا تضع تبعيات تطبيقك هنا ؛ ينتمون // في ملفات build.gradle الخاصة بالوحدة النمطية}} allprojects {repositories {google () jcenter ()}} تنظيف المهمة (النوع: حذف) {delete rootProject.buildDir}

ينقسم ملف build.gradle هذا على مستوى المشروع إلى الكتل التالية:

  • Buildscript. يحتوي هذا على الإعدادات المطلوبة لتنفيذ الإنشاء.
  • مستودعات. Gradle مسؤول عن تحديد تبعيات مشروعك وإتاحتها في بنيتك. ومع ذلك ، لا تأتي جميع التبعيات من نفس المستودع ، لذلك ستحتاج إلى تحديد جميع المستودعات التي ينبغي على Gradle البحث فيها ، لاسترداد تبعيات مشروعك.
  • التبعيات. يحتوي هذا القسم على تبعيات البرنامج المساعد ، والتي يتم تنزيلها وتخزينها في ذاكرة التخزين المؤقت المحلية. يجب ليس تحديد أي تبعيات وحدة داخل هذه الكتلة.
  • Allprojects. هذا هو المكان الذي ستحدد فيه المستودعات التي يجب أن تكون متاحة لها الكل من وحدات مشروعك.

3. build.gradle (مستوى الوحدة)

هذا هو ملف build.gradle على مستوى الوحدة النمطية ، وهو موجود في كل وحدة نمطية خلال مشروعك. إذا كان مشروع Android الخاص بك يتكون من وحدات متعددة ، فسيتكون أيضًا من عدة ملفات بناء على مستوى الوحدة النمطية.

يحتوي كل ملف build.gradle على مستوى الوحدة النمطية على اسم حزمة المشروع الخاص بك واسم الإصدار ورمز الإصدار ، بالإضافة إلى الحد الأدنى والهدف من SDK لهذه الوحدة المعينة.

يمكن أن يحتوي ملف build.gradle على مستوى الوحدة النمطية أيضًا على مجموعة فريدة من إرشادات البناء والتبعيات. على سبيل المثال ، إذا كنت تقوم بإنشاء تطبيق مع مكون Wear OS ، فإن مشروع Android Studio سيتألف من وحدة هاتف ذكي / لوحي منفصلة ووحدة ارتداء - نظرًا لأنهما يستهدفان أجهزة مختلفة تمامًا ، فهذه الوحدات النمطية ذات اختلاف كبير تبعيات!

سيبدو ملف build.gradle الأساسي على مستوى الوحدة النمطية شيئًا مثل هذا:

طبق المكوّن الإضافي: com.android.application android {compileSdkVersion 28 defaultConfig {applicationId "com.jessicathornsby.speechtotext" minSdkVersion 23 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner" getDefaultProguardFile (proguard-android-optimize.txt)، proguard-rules.pro}}} التبعيات {application fileTree (dir: libs، include:) implementation androidx.appcompat: appcompat: 1.0.2 application androidx.constraintlayout: constraintlayout: 1.1. 3 اختبارالتنفيذ: junit: 4.12 androidTestImplementation androidx.test.ext: junit: 1.1.0 androidTestImplementation androidx.test.espresso: espresso-core: 3.1.1}

دعونا نلقي نظرة فاحصة على كل قسم من هذه الأقسام:

  • تطبيق البرنامج المساعد. هذه قائمة بالمكونات الإضافية المطلوبة لإنشاء هذه الوحدة. يعد المكون الإضافي com.android.application ضروريًا لإعداد عملية الإنشاء الخاصة بنظام Android ، بحيث تتم إضافة هذا تلقائيًا.
  • ذكري المظهر. هذا هو المكان الذي يجب أن تضع فيه جميع الخيارات الخاصة بالنظام الأساسي للوحدة النمطية.
  • compileSdkVersion. هذا هو مستوى واجهة برمجة التطبيقات التي يتم تصنيف هذه الوحدة بها. لا يمكنك استخدام ميزات من API أعلى من هذه القيمة.
  • buildToolsVersion. يشير هذا إلى إصدار المترجم. في الإصدار 3.0.0 والإصدارات الأحدث ، buildToolsVersion اختياري ؛ إذا لم تحدد قيمة buildToolsVersion ، فسيعمل Android Studio افتراضيًا على أحدث إصدار من أدوات البناء.
  • defaultConfig. يحتوي هذا على الخيارات التي سيتم تطبيقها على جميع إصدارات الإنشاء الخاصة بالتطبيق ، مثل تصحيحات الإصدار وتصحيح الأخطاء.
  • رقم الاستمارة. هذا هو المعرف الفريد لتطبيقك.
  • إصدار minSdk. تحدد هذه المعلمة أدنى مستوى API الذي تدعمه هذه الوحدة.
  • targetSdkVersion. هذا هو الحد الأقصى لمستوى واجهة برمجة التطبيقات الذي تم اختبار تطبيقك عليه. من الناحية المثالية ، يجب عليك اختبار التطبيق الخاص بك باستخدام أحدث API ، مما يعني أن قيمة targetSdkVersion ستكون دائمًا مساوية لقيمة compileSdkVersion.
  • كود الإصدار. هذه قيمة رقمية لإصدار التطبيق الخاص بك.
  • اسم الإصدار. هذه سلسلة سهلة الاستخدام ، والتي تمثل إصدار التطبيق الخاص بك.
  • buildTypes. بشكل افتراضي ، يدعم Android نوعين من الإنشاءات: التصحيح والإصدار. يمكنك استخدام الكتل "debug" و "release" لتحديد الإعدادات الخاصة بنوع التطبيق.
  • تبعيات. هذا هو المكان الذي ستحدد فيه أي مكتبات تعتمد عليها هذه الوحدة.

الإعلان عن تبعيات مشروعك: المكتبات المحلية

يمكنك توفير وظائف إضافية لمشاريع Android ، وذلك بإضافة واحدة أو أكثر من تبعيات المشروع. يمكن أن تكون هذه التبعيات محلية ، أو يمكن تخزينها في مستودع بعيد.

للإعلان عن الاعتماد على ملف JAR محلي ، ستحتاج إلى إضافة هذا JAR إلى دليل "libs" في مشروعك.

يمكنك بعد ذلك تعديل ملف build.gradle على مستوى الوحدة النمطية لإعلان تبعية هذا الملف. على سبيل المثال ، نعلن هنا اعتمادًا على JAR "mylibrary".

ملفات التنفيذ (libs / mylibrary.jar)

بدلاً من ذلك ، إذا احتوى مجلد "libs" على العديد من JARs ، فقد يكون من الأسهل ببساطة توضيح أن مشروعك يعتمد على جميع الملفات الموجودة داخل مجلد "libs" ، على سبيل المثال:

fileTree التنفيذ (dir: libs ، وتشمل:)

إضافة تبعية بناء: مستودعات عن بعد

إذا كانت المكتبة موجودة في مستودع تخزين بعيد ، فستحتاج إلى إكمال الخطوات التالية:

  • حدد المستودع الذي توجد به هذه التبعية.
  • أعلن التبعية الفردية.

الاتصال بمستودع بعيد

الخطوة الأولى ، هي إخبار Gradle عن المستودع (أو المستودعات) الذي يحتاج إلى التحقق منه ، لاسترداد جميع تبعيات مشروعك. فمثلا:

مستودعات {google () jcenter ()}}

هنا ، يضمن خط "jcenter ()" أن يتحقق Gradle من مستودع JCenter ، وهو مستودع عام مجاني يتم استضافته في bintray.

بدلاً من ذلك ، إذا احتفظت أنت أو مؤسستك بمستودع شخصي ، فعليك إضافة عنوان URL الخاص بهذا المستودع إلى إعلان التبعية الخاص بك. إذا كان المستودع محميًا بكلمة مرور ، فستحتاج أيضًا إلى تقديم معلومات تسجيل الدخول الخاصة بك ، على سبيل المثال:

مستودعات {mavenCentral () maven {// قم بتكوين عنوان URL المستهدف // url "http://repo.mycompany.com/myprivaterepo"} maven {بيانات اعتماد {اسم المستخدم myUsername password myPassword} url "http://repo.mycompany.com / myprivaterepo "}

إذا كانت التبعية موجودة في مستودعات متعددة ، فسيحدد Gradle الإصدار "الأفضل" من هذه التبعية ، استنادًا إلى عوامل مثل عمر كل مستودع والنسخة الثابتة.

إعلان التبعية عن بعد

الخطوة التالية هي إعلان التبعية في ملف build.gradle على مستوى الوحدة النمطية. يمكنك إضافة هذه المعلومات إلى كتلة "التبعيات" ، باستخدام أي مما يلي:

  • التنفيذ. هذه هي التبعية الطبيعية التي تحتاجها عندما تبني مشروعك. ستكون تبعية "التنفيذ" موجودة الكل يبني الخاص بك.
  • Testimplementation. هذه تبعية مطلوبة لتجميع مصدر اختبار التطبيق الخاص بك وإجراء الاختبارات المستندة إلى JVM. عندما تحدد علامة تبعية على أنها "Testimplementation" ، ستعرف Gradle أنه لا يتعين عليها تشغيل مهام لهذه التبعية أثناء إنشاء عادي ، مما قد يساعد في تقليل وقت البناء.
  • Androidtestimplementation. هذه تبعية مطلوبة عند إجراء الاختبارات على جهاز ما ، على سبيل المثال ، إطار عمل Espresso هو "Androidtestimplementation" شائع.

نحدد التبعية عن بُعد ، باستخدام إحدى الكلمات الرئيسية أعلاه ، متبوعة بسمات مجموعة الاسم والنسخة والنسخة ، على سبيل المثال:

التبعيات {application fileTree (dir: libs ، include:) ، androidx.appcompat: appcompat: 1.0.2 androidTestImplementation androidx.test.espresso: espresso-core: 3.1.1}

توليد ملفات APK متعددة: كيفية إنشاء متغيرات بناء

في بعض الأحيان ، قد تحتاج إلى إنشاء إصدارات متعددة من التطبيق الخاص بك. على سبيل المثال ، قد ترغب في إصدار نسخة مجانية وإصدار مدفوع ، يتضمن بعض الميزات الإضافية.

هذه مهمة بناء يمكن أن يساعدك Gradle بها ، لذلك دعونا ننظر في كيفية تعديل عملية الإنشاء لإنشاء ملفات APK متعددة من مشروع واحد:

  • افتح ملف strings.xml وحذف سلسلة اسم التطبيق الأصلي.
  • بعد ذلك ، حدد أسماء كل نكهة منتج ترغب في إنشائها ؛ في هذه الحالة ، أنا أستخدم:

تطبيقي المجاني تطبيقي المدفوع

  • افتح ملف AndroidManifest.xml واستبدل android: label = ”@ string / app_name” بـ:

الروبوت: التسمية = "$ {APPNAME}"

  • افتح ملف build.gradle على مستوى الوحدة النمطية وأضف التالي إلى كتلة "android":

النكهة الأبعاد "الوضع" productFlavors {free {البعد "mode" mode "applicationIdSuffix" .free "manifestPlaceholder =} مدفوع {البعد" mode "applicationIdSuffix" .paid "manifestPlaceholder =}}}

لنفصل ما يحدث هنا:

  • flavorDimensions. يخلق المكون الإضافي لنظام Android أشكالًا مختلفة من خلال الجمع بين النكهات من أبعاد مختلفة. هنا ، نقوم بإنشاء بعد نكهة يتكون من إصدارات "مجانية" و "مدفوعة" من تطبيقنا. استنادًا إلى الرمز أعلاه ، ستنشئ Gradle أربعة أشكال بناء: المدفوعة Debug و PayRelease و freeDebug و freeRelease.
  • productFlavors. يحدد هذا قائمة النكهات وإعداداتها ، والتي في الكود أعلاه "مدفوعة" و "مجانية".
  • مجاني / مدفوع هذه هي أسماء لدينا نكهات المنتج اثنين.
  • البعد. نحتاج إلى تحديد قيمة معلمة "البعد" ؛ في هذه الحالة ، أنا أستخدم "الوضع".
  • applicationIdSuffix. نظرًا لأننا نريد إنشاء إصدارات متعددة من تطبيقنا ، فإننا نحتاج إلى منح كل تطبيق معرفًا فريدًا للتطبيق.
  • manifestPlaceholders. يحتوي كل مشروع على ملف بيان واحد يحتوي على معلومات مهمة حول تهيئة مشروعك. عند إنشاء أشكال بناء متعددة ، ستحتاج عادةً إلى تعديل بعض خصائص البيان هذه في وقت البناء. يمكنك استخدام ملفات إنشاء Gradle لتحديد إدخالات Manifest الفريدة لكل متغير بناء ، والتي سيتم إدراجها بعد ذلك في Manifest في وقت الإنشاء. في الشفرة أعلاه ، نقوم بتعديل قيمة "appName" حسب ما إذا كان Gradle يبني الإصدار المجاني أو المدفوع من تطبيقنا.

إنشاء مهمة Gradle مخصصة

في بعض الأحيان قد تحتاج إلى تخصيص عملية الإنشاء ، باستخدام Gradle مهام.

المهمة عبارة عن مجموعة مسماة من الإجراءات التي سيتم تنفيذها بواسطة Gradle أثناء تنفيذها للبناء ، على سبيل المثال إنشاء Javadoc. يدعم Gradle الكثير من المهام بشكل افتراضي ، ولكن يمكنك أيضًا إنشاء مهام مخصصة ، والتي يمكن أن تكون مفيدة إذا كان لديك مجموعة محددة للغاية من إرشادات البناء في الاعتبار.

في هذا القسم ، سننشئ مهمة Gradle مخصصة ستعمل على التكرار من خلال جميع متغيرات الإنشاء الخاصة بمشروعنا (المدفوعة Debug و PayRelease و freeDebug و freeRelease) ، وإنشاء تاريخ وختم زمني ، ثم إلحاق هذه المعلومات بكل ملف APK تم إنشاؤه.

افتح ملف build.gradle على مستوى الوحدة النمطية وأضف ما يلي:

مهمة addDateAndTime () {// Iterate خلال جميع متغيرات بناء المخرجات // android.applicationVariants.all {variant -> // Iterate عبر جميع ملفات APK // variant.outputs.all {output -> // إنشاء مثيل لـ التاريخ والوقت الحاليان ، بالتنسيق المحدد // def dateAndTime = new Date (). format ("yyyy-MM-dd: HH-mm") // إلحاق هذه المعلومات إلى اسم ملف APK الخاص بـ // def fileName = variant. اسم + "_" + dateAndTime + ".apk" output.outputFileName = fileName}}}

بعد ذلك ، نحن بحاجة إلى إخبار Gradle متى يجب أن تنفذ هذه المهمة. أثناء الإنشاء ، تحدد Gradle كل ما تحتاجه للتنزيل وكل المهام التي يتعين تنفيذها ، وترتيبها في رسم مباشر Acyclic Graph (DAG). سيقوم Gradle بعد ذلك بتنفيذ كل هذه المهام ، وفقًا للترتيب المحدد في DAG الخاص به.

بالنسبة للتطبيق الخاص بي ، سأستخدم طريقة "whenReady" ، والتي تضمن استدعاء مهمتنا بمجرد ملء DAG ، ويكون Gradle جاهزًا لبدء تنفيذ مهامه.

أضف ما يلي إلى ملف build.gradle على مستوى الوحدة النمطية:

// تنفيذ هذه المهمة // gradle.taskGraph.whenReady {addDateAndTime}

دعونا نضع مهمتنا المخصصة و لدينا رمز بناء متغير للاختبار ، من خلال بناء هذا المشروع باستخدام أمر Gradle.

بناء المشروع الخاص بك مع المجمع Gradle

يمكنك إصدار أوامر Gradle باستخدام مجمّع Gradle ("gradlew"). هذا البرنامج النصي هو الطريقة المفضلة لبدء إنشاء Gradle ، حيث يجعل تنفيذ الإنشاء مستقلًا عن إصدار Gradle الخاص بك. يمكن أن يكون هذا الفصل مفيدًا إذا كنت تتعاون مع آخرين قد لا يكون لديهم بالضرورة نفس الإصدار من Gradle مثبتًا.

عند إصدار أوامر مجمّع Gradle ، ستستخدم "gradlew" لأنظمة التشغيل المشابهة لـ Unix ، بما في ذلك macOS و "gradlew.bat" لنظام التشغيل Windows. لديّ جهاز Mac ، لذا سأستخدم أوامر "gradlew".

يمكنك إصدار أوامر Gradle من داخل Android Studio:

  • في شريط أدوات Android Studio ، حدد "عرض> أدوات Windows> المحطة الطرفية." هذا يفتح لوحة طرفية أسفل نافذة IDE.
  • أدخل الأمر التالي في المحطة الطرفية:

./gradlew بناء

يجب أن يبدو Android Studio بشيء من هذا القبيل:

  • اضغط على مفتاح "Enter" بلوحة المفاتيح. سوف Gradle الآن بناء المشروع الخاص بك.

يخزن Gradle جميع ملفات APK التي تم إنشاؤها في دليل التطبيق / build / outputs / apk لمشروعك ، لذا انتقل إلى هذا الدليل. يجب أن يحتوي مجلد "APK" على العديد من المجلدات والمجلدات الفرعية ؛ تأكد من قيام Gradle بإنشاء ملف APK لكل من متغيرات البناء الخاصة بك ، وأنه قد تمت إضافة معلومات التاريخ والوقت الصحيحة إلى كل ملف.

ما هي مهام Gradle الأخرى المتاحة؟

بالإضافة إلى أي مهام مخصصة قد تنشئها ، يدعم Gradle قائمة بالمهام المحددة مسبقًا خارج نطاق الصندوق. إذا كنت مهتمًا برؤية المهام المتاحة بالضبط ، فقم بما يلي:

  • افتح نافذة Android Studio الطرفية ، إذا لم تكن مفتوحة بالفعل (عن طريق تحديد "View> Tools Windows> Terminal" من شريط أدوات Android Studio).
  • اكتب ما يلي في المحطة الطرفية:

./gradlew - المهام

  • اضغط على مفتاح "Enter" بلوحة المفاتيح.

سيتم الآن تشغيل مهمة "المهام" هذه ، وبعد لحظات قليلة ستعرض المحطة الطرفية قائمة بجميع المهام المتاحة لهذا المشروع ، مع استكمال وصف قصير لكل مهمة.

الحصول على المزيد من Gradle: إضافة مكونات إضافية

يأتي Gradle مزودًا بعدد من الإضافات المثبتة مسبقًا ، لكن يمكنك تمديد Gradle بإضافة إضافات جديدة. تتيح هذه المكونات الإضافية مهام جديدة لمشاريع Android الخاصة بك ، على سبيل المثال ، يتضمن المكون الإضافي Java المهام التي تتيح لك ترجمة شفرة مصدر Java ، وتشغيل اختبارات الوحدات وإنشاء ملف JAR ، مثل "compileJava" ، و "compileText" ، و "jar" ، "javadoc" و "نظيف".

لتطبيق مكون إضافي ، أضف إعلان "تطبيق المكون الإضافي" إلى ملف build.gradle على مستوى الوحدة ، متبوعًا باسم المكون الإضافي. على سبيل المثال ، نطبق هنا مكون Java الإضافي:

تطبيق البرنامج المساعد: جافا

إذا كنت مهتمًا برؤية المكونات الإضافية المتاحة ، فقم بالبحث في Gradle Plugin search ، والذي يوفر سجلًا شاملاً لمكونات Gradle الإضافية.

The Gradle Kotlin DSL

بشكل افتراضي ، ستقوم بكتابة نصوص بناء Gradle الخاصة بك باستخدام Groovy DSL ، ولكن إذا كنت أحد المطورين العديدين الذين اعتمدوا تطوير Kotlin لتطوير Android ، فقد تفضل كتابة النصوص البرمجية للبناء في Kotlin بدلاً من ذلك.

على عكس Groovy ، فإن Kotlin هي لغة برمجة مكتوبة بشكل ثابت ، لذلك إذا قمت بالتبديل ، فسوف تكون ملفات البناء الخاصة بك متوافقة مع الإكمال التلقائي لـ Android Studio وميزات التنقل في التعليمات البرمجية المصدر. بالإضافة إلى ذلك ، يعني الانتقال من Groovy إلى Kotlin أنك ستستخدم نفس لغة البرمجة في مشروعك ، مما قد يجعل عملية التطوير أكثر وضوحًا - خاصة إذا لم تكن معتادًا على Groovy!

إذا كنت ترغب في البدء في كتابة منطق الإنشاء في Kotlin ، فستحتاج إلى إعداد Gradle Kotlin DSL واتباع الإرشادات الموجودة في دليل الترحيل.

تغليف

في هذه المقالة ، استكشفنا أداة التشغيل الآلي للبناء وإدارة التبعية في Android Studio. لقد درسنا كيف تقوم Gradle بأتمتة عملية الإنشاء خارج الصندوق ، وكيف يمكنك تعديل عملية الإنشاء من خلال تحرير ملفات Gradle build الخاصة بمشروعك ، بما في ذلك إنشاء مهام Gradle مخصصة ، وإنشاء متغيرات بناء متعددة من مشروع واحد.

هل قمت بتمديد Gradle لأتمتة أجزاء أخرى من عملية إنشاء Android؟ اسمحوا لنا أن نعرف في التعليقات أدناه!

أصبح نظام Android 10 متاحًا منذ أغسطس ، ولكن يبدو أن النظام الأساسي لا يزال يحتفظ بميزات أقل شهرة. واحدة من هذه الميزات هي ما يسمى قواعد القواعد ، واكتشفت لأول مرة من قبل XDA في وقت سابق من هذا العام....

أصبح التواصل مع العائلة والأصدقاء أسهل وأسرع بفضل هواتفنا الذكية التي تعمل بنظام Android. ومع ذلك ، ليس كل الأشخاص الذين يمكنهم الاتصال بنا عبر هواتفنا المحمولة هم أشخاص نحبهم ونعتز بهم. البعض من مرسل...

المشاركات الطازجة