ماژول برنامه را پیکربندی کنید

این صفحه تنظیمات مفید برنامه را در فایل build.gradle.kts در سطح ماژول توضیح می دهد. علاوه بر ارائه یک نمای کلی از ویژگی های مهم تنظیم شده در فایل build.gradle.kts ، یاد بگیرید که چگونه:

  • شناسه برنامه را برای پیکربندی های مختلف ساخت تغییر دهید.
  • به طور ایمن فضای نام را مستقل از شناسه برنامه تنظیم کنید.

شناسه برنامه را تنظیم کنید

هر برنامه Android یک شناسه برنامه منحصر به فرد دارد که شبیه نام بسته جاوا یا Kotlin است، مانند com.example.myapp . این شناسه برنامه شما را در دستگاه و در فروشگاه Google Play به طور منحصربه‌فرد شناسایی می‌کند.

شناسه برنامه شما با ویژگی applicationId در فایل build.gradle.kts ماژول شما، همانطور که در اینجا نشان داده شده است، تعریف می شود. با جایگزین کردن com.example.myapp با شناسه برنامه، مقدار applicationId را به‌روزرسانی کنید:

کاتلین

android {
    defaultConfig {
        applicationId = "com.example.myapp"
        minSdk = 15
        targetSdk = 24
        versionCode = 1
        versionName = "1.0"
    }
    ...
}

شیار

android {
    defaultConfig {
        applicationId "com.example.myapp"
        minSdkVersion 15
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
    }
    ...
}

اگرچه شناسه برنامه مانند یک نام بسته سنتی Kotlin یا Java به نظر می رسد، قوانین نامگذاری برای شناسه برنامه کمی محدودتر است:

  • باید حداقل دو بخش (یک یا چند نقطه) داشته باشد.
  • هر بخش باید با یک حرف شروع شود.
  • همه کاراکترها باید حروف عددی یا زیرخط [a-zA-Z0-9_] باشند.

هنگامی که یک پروژه جدید در Android Studio ایجاد می کنید ، applicationId به طور خودکار نام بسته ای که در حین راه اندازی انتخاب کرده اید اختصاص می یابد. از آن به بعد می‌توانید از نظر فنی این دو ویژگی را به‌طور مستقل تغییر دهید، اما توصیه نمی‌شود.

توصیه می شود هنگام تنظیم شناسه برنامه موارد زیر را انجام دهید:

  • شناسه برنامه را همانند فضای نام نگه دارید. تمایز بین این دو ویژگی ممکن است کمی گیج کننده باشد، اما اگر آنها را یکسان نگه دارید، جای نگرانی ندارید.
  • پس از انتشار برنامه، شناسه برنامه را تغییر ندهید. اگر آن را تغییر دهید، فروشگاه Google Play آپلود بعدی را به عنوان یک برنامه جدید در نظر می گیرد.
  • شناسه برنامه را به صراحت تعریف کنید. اگر شناسه برنامه به طور صریح با استفاده از ویژگی applicationId تعریف نشده باشد، به طور خودکار همان مقدار فضای نام را می گیرد. این بدان معنی است که تغییر فضای نام، شناسه برنامه را تغییر می دهد، که معمولاً آن چیزی نیست که شما می خواهید.

شناسه برنامه را برای آزمایش تغییر دهید

به‌طور پیش‌فرض، ابزارهای ساخت، با استفاده از شناسه برنامه برای نوع ساخت معین که با .test ضمیمه شده است، یک شناسه برنامه را به APK تست ابزار دقیق شما اعمال می‌کنند. برای مثال، یک APK آزمایشی برای نوع ساخت com.example.myapp .free دارای شناسه برنامه com.example.myapp .free.test است.

اگرچه لازم نیست، می‌توانید شناسه برنامه را با تعریف ویژگی testApplicationId در بلوک defaultConfig یا productFlavor تغییر دهید.

فضای نام را تنظیم کنید

هر ماژول اندروید دارای یک فضای نام است که به عنوان نام بسته Kotlin یا Java برای کلاس های R و BuildConfig تولید شده آن استفاده می شود.

فضای نام شما با ویژگی namespace در فایل build.gradle.kts ماژول شما تعریف می شود، همانطور که در قطعه کد زیر نشان داده شده است. namespace ابتدا روی نام بسته ای که هنگام ایجاد پروژه خود انتخاب می کنید تنظیم می شود.

کاتلین

android {
    namespace = "com.example.myapp"
    ...
}

شیار

android {
    namespace "com.example.myapp"
    ...
}

در حالی که برنامه خود را در بسته برنامه نهایی (APK) می‌سازید، ابزارهای ساخت اندروید از فضای نام به عنوان فضای نام کلاس R تولید شده برنامه شما استفاده می‌کنند که برای دسترسی به منابع برنامه شما استفاده می‌شود. به عنوان مثال، در فایل ساخت قبلی، کلاس R در com.example.myapp .R ایجاد شده است.

نامی که برای ویژگی namespace فایل build.gradle.kts تنظیم می‌کنید باید همیشه با نام بسته پایه پروژه شما مطابقت داشته باشد، جایی که فعالیت‌ها و سایر کدهای برنامه را در آن نگه می‌دارید. شما می توانید بسته های فرعی دیگری در پروژه خود داشته باشید، اما آن فایل ها باید کلاس R را با استفاده از فضای نام از ویژگی namespace وارد کنند.

برای گردش کار ساده‌تر، فضای نام خود را همان‌طور که به‌طور پیش‌فرض هستند، همانند شناسه برنامه‌تان نگه دارید.

فضای نام را تغییر دهید

در بیشتر موارد، باید فضای نام و شناسه برنامه را همانطور که به صورت پیش فرض هستند، ثابت نگه دارید. با این حال، اگر در حال سازماندهی مجدد کد خود هستید یا برای جلوگیری از برخورد فضای نام، ممکن است نیاز به تغییر فضای نام داشته باشید.

در این موارد، با به‌روزرسانی ویژگی namespace در فایل build.gradle.kts ماژول، مستقل از شناسه برنامه، فضای نام را تغییر دهید. قبل از انجام این کار، مطمئن شوید که شناسه برنامه شما به صراحت تعریف شده است، به طوری که تغییر فضای نام نیز باعث تغییر شناسه برنامه نمی شود. برای اطلاعات بیشتر در مورد اینکه چگونه فضای نام می تواند بر شناسه برنامه تأثیر بگذارد، به تنظیم شناسه برنامه مراجعه کنید.

اگر نام‌های مختلفی برای namespace و Gradle applicationId دارید، ابزارهای ساخت شناسه برنامه را در فایل مانیفست نهایی برنامه‌تان در انتهای ساخت کپی می‌کنند. بنابراین اگر فایل AndroidManifest.xml خود را بعد از ساخت بررسی کنید، ویژگی package روی شناسه برنامه تنظیم می شود. ویژگی package مانیفست ادغام شده جایی است که فروشگاه Google Play و پلتفرم اندروید در واقع به دنبال شناسایی برنامه شما هستند.

فضای نام را برای آزمایش تغییر دهید

فضای نام پیش‌فرض برای مجموعه‌های androidTest و test منبع، فضای نام اصلی است که .test در پایان اضافه شده است. برای مثال، اگر ویژگی namespace در فایل build.gradle com.example.myapp باشد، فضای نام آزمایشی به طور پیش‌فرض روی com.example.myapp .test تنظیم می‌شود. برای تغییر فضای نام برای آزمایش، از ویژگی testNamespace استفاده کنید، همانطور که در قطعه کد زیر نشان داده شده است:

کاتلین

android {
    namespace = "com.example.myapp"
    testNamespace = "com.example.mytestapp"
    ...
}

شیار

android {
    namespace "com.example.myapp"
    testNamespace "com.example.mytestapp"
    ...
}

احتیاط: testNamespace و namespace را روی یک مقدار تنظیم نکنید، در غیر این صورت برخورد فضای نام رخ می دهد.

برای کسب اطلاعات بیشتر درباره آزمایش، به تست برنامه‌ها در Android مراجعه کنید.