آموزش جاوا و اندروید

یادداشت های یک برنامه نویس معمولی

آموزش جاوا و اندروید

یادداشت های یک برنامه نویس معمولی

طبقه بندی موضوعی

تفاوت plugin و dependency در اندروید استودیو

شنبه, ۲۵ آبان ۱۴۰۴، ۰۵:۳۱ ب.ظ

Plugin:  به خود Gradle / build system قابلیت اضافه می‌کنه
Dependency: یه کتابخونه‌ی کد یه که خود اپلیکیشن ازش استفاده می‌کنه

اول بفهمیم Gradle خودش چیه
تو پروژه Android، Gradle همون «سیستم ساختن پروژه»ـست (build system):

  • کدهای .kt و .java رو کامپایل می‌کنه
  • resourceها رو جمع می‌کنه (layout, drawable, string, …)
  • ازشون APK / AAB می‌سازه
  • تست‌ها رو اجرا می‌کنه، lint، shrink، obfuscate و…

یعنی: وقتی روی Run یا Build می‌زنی:  پشت‌صحنه Gradle داره کار می‌کنه.
حالا ما می‌خوایم به این Gradle بگیم:
پروژه من Android appـه زبانش Kotlinه از Compose استفاده می‌کنه و در خود app هم از یک سری کتابخونه مثل Retrofit, Room, … استفاده می‌کنم.
این‌جاست که Plugin و Dependency وارد می‌شن؛ ولی نقش‌شون فرق داره.



Plugin دقیقا چیه؟
افزونه برای Gradle یعنی یه تیکه کد که روی خود Gradle اجرا می‌شه، نه روی گوشی کاربر.
کارش اینه که:

  • به Gradle یاد بده این پروژه از چه نوعیه

         مثلا: Android Application؟ Android Library؟ Java Library؟

  • به Gradle قابلیت‌های جدید اضافه کنه

    taskهای جدید: assembleDebug, bundleRelease, lint, test …

         بلوک‌های DSL جدید: android {}, kotlinOptions {}, composeOptions {}

 

 

1. com.android.application

 

 

  • به Gradle می‌گه:
    این پروژه یک Android Application هست، نه یک Java ساده.

  • بعد از این پلاگین، تازه می‌تونی بنویسی:

    android { compileSdk = 35 ... }                                                                                 
     

 

         به Gradle می‌گه:

  • برای این پروژه، باید Kotlin رو هم کامپایل کنی.

  • compiler Kotlin رو به chain build اضافه می‌کنه.

نکته مهم:
کد Plugin هیچ‌وقت داخل APK کاربر نمی‌ره.
فقط موقع build، روی سیستم توسعه‌دهنده/CI اجرا می‌شه.




Dependency .3

 

  • موقع compile کد تو دیده می‌شن

  • کلاس‌هاشون وارد APK / AAB می‌شن

  • وقتی اپ روی گوشی کاربر اجرا می‌شه، این کتابخونه‌ها هم اونجا هستن




     

 

خلاصه‌ی کوتاه

  • Plugin

    • روی Gradle اجرا می‌شه

    • فرایند build رو تعریف و مدیریت می‌کنه

    • توی APK نمی‌ره

  • Dependency

    • توی کد اپ استفاده می‌شه

    • توی APK بسته‌بندی می‌شه

    • روی گوشی کاربر اجرا می‌شه

هر وقت شک کردی، از خودت بپرس:
«این چیزیه که موقع build لازمه، یا چیزی که داخل اپ و روی گوشی اجرا می‌شه؟»

  • اگه جواب: «موقع build» → احتمالاً Plugin

  • اگه جواب: «داخل اپ» → قطعاً Dependency

موافقین ۰ مخالفین ۰ ۰۴/۰۸/۲۵
میم دال

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی