این صفحه تنظیمات مفید برنامه را در فایل 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 مراجعه کنید.