ماژول های ویژگی به شما این امکان را می دهند که ویژگی ها و منابع خاصی را از ماژول پایه برنامه خود جدا کرده و در بسته نرم افزاری خود قرار دهید. سپس میتوانید گزینههای تحویل را سفارشی کنید تا کنترل کنید دستگاههای دارای Android 5.0 (سطح API 21) یا بالاتر، چه زمانی و چگونه ویژگیهای برنامه شما را دانلود کنند.
به خاطر داشته باشید، این نوع ماژولارسازی به تلاش بیشتری نیاز دارد و احتمالاً کدهای موجود برنامه شما را تغییر میدهد، بنابراین به دقت در نظر بگیرید که کدام یک از ویژگیهای برنامه شما از در دسترس قرار گرفتن کاربران در صورت تقاضا بیشترین سود را خواهد داشت.
اگر میخواهید به تدریج ویژگیهای برنامه را در طول زمان مدولار کنید، بدون تغییر رفتار برنامه یا سفارشی کردن گزینههای تحویل پیشرفته، میتوانید این کار را با ایجاد ماژولهای ویژگی که برای تحویل در زمان نصب پیکربندی شدهاند انجام دهید. یعنی میتوانید یک ویژگی را بهعنوان ماژول ویژگی مدولار کنید، اما گزینههای پیشرفته را فعال نکنید تا زمانی که کاربر برنامه شما را نصب میکند، این ویژگی در دسترس باشد.
علاوه بر این، ماژول های ویژگی که برای تحویل در زمان نصب پیکربندی شده اند، این گزینه را دارند که در صورت عدم نیاز، بعداً حذف نصب شوند. برای آن، آنها باید به عنوان قابل جابجایی تنظیم شوند.
این بخش نحوه ایجاد یک ماژول ویژگی برای تحویل در زمان نصب را توضیح می دهد. قبل از شروع، مطمئن شوید که از Android Studio نسخه 3.5 یا بالاتر و Android Gradle Plugin نسخه 3.5.0 یا بالاتر استفاده می کنید.
یک ماژول جدید برای تحویل در زمان نصب پیکربندی کنید
ساده ترین راه برای ایجاد یک ماژول ویژگی جدید استفاده از Android Studio 3.5 یا بالاتر است. از آنجایی که ماژول های ویژگی وابستگی ذاتی به ماژول برنامه پایه دارند، می توانید آنها را فقط به پروژه های برنامه موجود اضافه کنید.
برای افزودن یک ماژول ویژگی به پروژه برنامه خود با استفاده از Android Studio، به صورت زیر عمل کنید:
- اگر قبلاً این کار را نکرده اید، پروژه برنامه خود را در IDE باز کنید.
- File > New > New Module را از نوار منو انتخاب کنید.
- در گفتگوی Create New Module ، Dynamic Feature Module را انتخاب کرده و روی Next کلیک کنید.
- در بخش پیکربندی ماژول جدید ، موارد زیر را تکمیل کنید:
- ماژول برنامه کاربردی پایه را برای پروژه برنامه خود از منوی کشویی انتخاب کنید.
- نام ماژول را مشخص کنید. IDE از این نام برای شناسایی ماژول به عنوان یک پروژه فرعی Gradle در فایل تنظیمات Gradle شما استفاده می کند. هنگامی که بسته برنامه خود را می سازید، Gradle از آخرین عنصر نام پروژه فرعی برای تزریق ویژگی
<manifest split>
در مانیفست ماژول ویژگی استفاده می کند. - نام بسته ماژول را مشخص کنید. به طور پیشفرض، اندروید استودیو نام بستهای را پیشنهاد میکند که نام بسته ریشه ماژول پایه و نام ماژولی را که در مرحله قبل مشخص کردهاید ترکیب میکند.
- حداقل سطح API را که می خواهید ماژول از آن پشتیبانی کند، انتخاب کنید. این مقدار باید با ماژول پایه مطابقت داشته باشد.
- روی Next کلیک کنید.
در قسمت گزینه های دانلود ماژول موارد زیر را تکمیل کنید:
عنوان ماژول را با حداکثر 50 کاراکتر مشخص کنید. ماژول پایه برنامه شما باید عنوان ماژول را به عنوان منبع رشته ای داشته باشد که می توانید آن را ترجمه کنید. هنگام ایجاد ماژول با استفاده از Android Studio، IDE منبع رشته را به ماژول پایه برای شما اضافه می کند و ورودی زیر را در مانیفست ماژول ویژگی تزریق می کند:
<dist:module ... dist:title="@string/feature_title"> </dist:module>
در منوی کشویی زیر Install-time inclusion ، Include module at the install-time را انتخاب کنید. Android Studio موارد زیر را در مانیفست ماژول تزریق می کند تا انتخاب شما را منعکس کند:
<dist:module ... > <dist:delivery> <dist:install-time /> </dist:delivery> </dist:module>
اگر میخواهید یاد بگیرید که چگونه یک ماژول ویژگی ایجاد کنید که بتوانید پس از نصب برنامه دانلود کنید، پیکربندی تحویل درخواستی را بخوانید.
اگر میخواهید این ماژول برای دستگاههای دارای Android 4.4 (سطح API 20) و پایینتر در دسترس باشد و در چند APK گنجانده شود، کادر کنار Fusing را علامت بزنید. این بدان معناست که میتوانید آن را از دستگاههایی که از دانلود و نصب فایلهای APK تقسیمشده پشتیبانی نمیکنند حذف کنید. Android Studio موارد زیر را در مانیفست ماژول تزریق می کند تا انتخاب شما را منعکس کند:
<dist:module ...> <dist:fusing dist:include="true | false" /> </dist:module>
روی Finish کلیک کنید.
پس از اتمام ساخت ماژول اندروید استودیو، محتویات آن را خودتان از پنجره Project بررسی کنید ( مشاهده > ابزار ویندوز > پروژه را از نوار منو انتخاب کنید). کد، منابع و سازمان پیشفرض باید مشابه ماژول برنامه استاندارد باشد.
ماژول زمان نصب را قابل جابجایی کنید
ممکن است ایجاد ماژولهای ویژگی برای تحویل در زمان نصب مفید باشد که در صورت عدم نیاز، این گزینه را دارند که بعداً حذف نصب شوند. برای مثال، برای کاهش اندازه نصبشده برنامهتان، میتوانید محتوایی را که برای آموزش یا نصب نیاز است مدولار کنید و پس از اینکه کاربر برای استفاده از برنامه شما تنظیم شد ، ماژول ویژگی را با استفاده از Play Core API حذف نصب کنید .
ماژول های زمان نصب به طور پیش فرض قابل جابجایی نیستند. برای علامتگذاری یک ماژول بهعنوان قابل جابجایی و اجازه حذف نصب، تگ removable
را اضافه کنید و مقدار آن را روی true
تنظیم کنید:
<dist:module ... >
<dist:delivery>
<dist:install-time>
<dist:removable dist:value="true"/>
</dist:install-time>
</dist:delivery>
</dist:module>