مهاجرت به AndroidX در اندروید استودیو

خانه » آموزش های کاربردی » مهاجرت به AndroidX در اندروید استودیو
مهاجرت به AndroidX در اندروید استودیو در این جلسه از سری مباحث آموزش برنامه نویسی اندروید ابتدا به معرفی AndroidX پرداخته، سپس نحوه مهاجرت از کتابخانه‌های پشتیبانی (Support Library) به AndroidX را بررسی می‌کنیم.
AndroidX چیست؟ به نام خدا. به زبان ساده، AndroidX نسل جدید و بهینه شده‌ی پکیج کتابخانه‌های Support اندروید است. تیم توسعه اندروید در گذشته، کتابخانه‌های ضروری موردنیاز جهت ساخت و توسعه برنامه‌های اندرویدی را در قالب لایبرری‌های Support منتشر می‌کرد.
کتابخانه Appcompat را مثال می‌زنم. در گذشته بعد از ساخت پروژه در اندروید استودیو این لایبرری به صورت زیر در فایل build.gradle سطح app پروژه قرار می‌گرفت:
implementation 'com.android.support:appcompat-v7' اما در حال حاضر نحوه نامگذاری این کتابخانه تغییر کرده و به اینصورت به پروژه اضافه شده:
implementation 'androidx.appcompat:appcompat' ازین پس نامگذاری کتابخانه‌های پشتیبانی همگی با پیشوند androidx.* آغاز می‌شود. شاید دل..

خانه » آموزش های کاربردی » مهاجرت به AndroidX در اندروید استودیو

مهاجرت به AndroidX در اندروید استودیو

در این جلسه از سری مباحث آموزش برنامه نویسی اندروید ابتدا به معرفی AndroidX پرداخته، سپس نحوه مهاجرت از کتابخانه‌های پشتیبانی (Support Library) به AndroidX را بررسی می‌کنیم.

AndroidX چیست؟

به نام خدا. به زبان ساده، AndroidX نسل جدید و بهینه شده‌ی پکیج کتابخانه‌های Support اندروید است. تیم توسعه اندروید در گذشته، کتابخانه‌های ضروری موردنیاز جهت ساخت و توسعه برنامه‌های اندرویدی را در قالب لایبرری‌های Support منتشر می‌کرد.
کتابخانه Appcompat را مثال می‌زنم. در گذشته بعد از ساخت پروژه در اندروید استودیو این لایبرری به صورت زیر در فایل build.gradle سطح app پروژه قرار می‌گرفت:

  implementation 'com.android.support:appcompat-v7'  

اما در حال حاضر نحوه نامگذاری این کتابخانه تغییر کرده و به اینصورت به پروژه اضافه شده:

  implementation 'androidx.appcompat:appcompat'  

ازین پس نامگذاری کتابخانه‌های پشتیبانی همگی با پیشوند androidx.* آغاز می‌شود. شاید دلیل اصلی معرفی AndroidX، همین تغییر نام و یا به عبارتی برندسازی مجدد تیم توسعه اندروید برای کتابخانه‌ها باشد تا نحوه نامگذاری پکیج‌ها منسجم و یکپارچه بوده و کمتر باعث سردرگمی برنامه نویسان اندرویدی شود. البته این تغییرات محدود به تغییر نحوه نامگذاری نبوده و تعدادی از باگ‌های موجود در نسخه‌های قدیم نیز رفع گردیده است.
همچنین تیم توسعه اندروید از Jetpack برای توسعه، تست و ریلیز (انتشار) کتابخانه‌های AndroidX استفاده می‌کند که باعث شده کتابخانه‌ها نسبت به قبل بهینه‌تر بوده و حجم کمتری داشته باشند.

Jetpack چیست؟

Jetpack یا جِت پَک، به مجموعه‌ای از کتابخانه‌ها، ابزار و راهنمایی‌ها گفته می‌شود که به جهت تسهیل در ساخت اپلیکیشن‌های اندرویدی طراحی و منتشر شده‌اند.

Jetpack اندروید

به طور کلی، Jetpack و پکیج کتابخانه‌های آن یعنی AndroidX به جهت بهبود تجربه توسعه دهندگان اندرویدی و جمع آوری ابزار و امکانات ضروری و مفید در یک قالب مشترک ارائه شده‌اند.

آیا مهاجرت از Support Library به AndroidX ضروری است؟

در حال حاضر شاید ضرورتی در این مهاجرت دیده نشود. کماکان امکان استفاده از کتابخانه‌های Support وجود دارد؛ البته با محدودیت‌هایی که در ادامه به آنها اشاره می‌کنم. با اینحال بهتر است هرچه سریعتر خودمان را با نسخه جدید وفق دهیم. از چند نسخه قبل از نسخه ۳٫۵ اندروید استودیو، هنگام ساخت پروژه جدید، استفاده از AndroidX اختیاری بود اما در نسخه ۳٫۵ این گزینه به صورت پیش فرض فعال بوده و امکان تغییر آن وجود ندارد:

androidx در برنامه نویسی اندروید

غیرفعال بودن گزینه Use androidx.* artifacts به عنوان یادواری برای توسعه دهندگان بوده و قطعا در نسخه‌های آتی، به کلی حذف خواهد شد.
اگر قصد ساخت پروژه جدیدی دارید نیاز به انجام کار خاصی نیست. کتابخانه جدید Appcompat در پروژه قرار دارد و هنگام اضافه کردن سایر کتابخانه‌های Support نیز پکیج‌های androidx در لیست نمایش داده میشود.
ولی برای بروزرسانی پروژه‌های قدیمی، هم به صورت دستی و هم با استفاده از قابلیتی که ویژه همین امر در اندروید استودیو تعبیه شده می‌توان اقدام کرد.

تذکر: قبل از انجام هرگونه تغییری در پروژه حتما یک نسخه بکاپ از آن تهیه کنید تا در صورتی که در حین مهاجرت با مشکلی مواجه شدید، سورس اصلی پروژه را در اختیار داشته باشید.

۱: بروزرسانی دستی

برای مهاجرت به androidx به شیوه‌ی دستی احتمالا زمان زیادی را باید صرف کنیم. بعد از اصلاح نام کتابخانه‌ها در build.gradle باید import های موجود در اکتیویتی‌ها نیز اصلاح شود. به عنوان مثال:

  import android.support.v7.app.AppCompatActivity;  

باید با:

  import androidx.appcompat.app.AppCompatActivity;  

جایگزین شود. همچنین این اصلاحات باید در تگ‌های لایه xml نیز صورت پذیرد.
برای مثال:

  <android.support.constraint.ConstraintLayout>  

با

  <androidx.constraintlayout.widget.ConstraintLayout>  

جایگزین خواهد شد. علاوه بر آن باید دو خط زیر نیز به gradle.properties اضافه شود تا androidx فعال گردد. شیوه دستی برای مهاجرت به androidx توصیه نمی‌شود.

  android.useAndroidX=true  android.enableJetifier=true  

خط اول یعنی useAndroidX تعیین می‌کند پلاگین اندروید از androidx بجای support استفاده نماید.
در خط بعد، پلاگین اندروید توسطenableJetifier به صورت خودکار با بازنویسی باینری (binary) کتابخانه‌های شخص ثالث (کتابخانه‌هایی که توسط افراد و تیم‌های غیر از تیم توسعه اندروید منتشر می‌شوند) آنها را برای استفاده از androidx مهیا می‌کند.

نکته: برای استفاده از androidx ورژن اندروید استودیو باید حداقل ۳٫۲ باشد. هرچند همواره استفاده از آخرین نسخه پایدار (stable) اندروید استودیو توصیه می‌شود. همچنین API (compileSdkVersion و targetSdkVersion) نیز باید ۲۸ و به بالا باشد. ضمن اینکه از API 29 و به بعد فقط استفاده از androidx امکان‌پذیر است.

۲: بروزرسانی خودکار توسط گزینه Migrate to AndroidX

از Android Studio 3.2 به بعد امکانی فراهم شده که پروژه‌های قبلی را بتوان به صورت خودکار و بدون نیاز به ویرایش دستی به پروژه‌ای بر پایه پکیج‌های androidx تبدیل کرد. برای استفاده از این قابلیت بعد از باز کردن پروژه در محیط اندروید استودیو، در منوی Refactor گزینه Migrate to AndroidX را انتخاب کنید:

مهاجرت به AndroidX در اندروید استودیو

با انتخاب این گزینه یک پیغام قبل از آغاز فرآیند نمایش داده می‌شود:

بکاپ گرفتن از پروژه اندرویدی قبل از مهاجرت به androidx

در این پیغام توصیه شده قبل از شروع عملیات یک نسخه پشتیبان (backup) از پروژه تهیه شود که به راحتی می‌توان پوشه مربوط به پروژه را در جایی دیگر کپی کرد. همچنین خود اندروید استودیو گزینه ای با عنوان Backup project as Zip file به انتهای این پنجره اضافه کرده که در صورت تایید، یک بکاپ به صورت خودکار و با فرمت zip ایجاد می‌شود.
در ادامه گفته شده با توجه به کتابخانه‌ها و پلاگین‌هایی که در پروژه بکار رفته ممکن است لازم باشد برخی از ارورها را به صورت دستی رفع کنیم. روی گزینه Migrate کلیک می‌کنم تا عملیات آغاز شود.
ابتدا محل قرارگیری بکاپ پروژه را تعیین می‌کنم:

تعیین محل بکاپ گیری پروژه قبل از تبدیل به androidx

اندروید استودیو جزئیاتی از تغییرات پروژه برای مهاجرت به androidx را نشان می‌دهد که با کلیک روی Do refactor تایید و عملیات اجرا می‌شود:

دکمه Do refactor جهت آغاز تبدیل پروژه اندروید به androidx

تبدیل پروژه قدیمی اندروید به androidx بدون خطا

بدون هیچگونه خطایی تبدیل انجام شد. البته این یک پروژه بسیار ساده و سبک بود. در پروژه‌های سنگین که از کتابخانه‌های متعددی استفاده شده احتمال بروز خطا و نیاز به اصلاح دستی بالا می‌رود. اگر خطا مربوط به ورژن گریدل بود آموزش ایمپورت کردن پروژه در اندروید استودیو را مطالعه کنید.

نکته: ممکن است هنوز هم تعدادی از کتابخانه‌های سوم شخصی که در پروژه‌های خود استفاده کرده‌اید یا در سورس‌های موجود در اینترنت بکار رفته‌اند، هنوز با androidx سازگار نبوده و نیاز به بروزرسانی توسط توسعه دهندگان آنها باشد.

مطالعه‌ی بیشتر:

https://developer.android.com/jetpack
https://developer.android.com/jetpack/androidx

دانلود نسخه PDF این آموزش
تعداد صفحات : ۹
حجم : ۱ مگابایت
قیمت : رایگان
دانلود رایگان با حجم ۱ مگابایت لینک کمکی این مطلب چقدر برایتان مفید بود؟ لطفا امتیاز دهید 4.8 / 5 ( 5 رای ) آموزش رایگان, آموزش های کاربردی

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

سوربات پتاسیم استئارات منیزیم بنزوات سدیم منتول وانیل مونوسدیم گلوتامات صمغ عربی استئاریک اسید پودر تالک پرلیت خاک رنگبر روغن آرگان روغن جوجوبا تیو سولفات سدیم کراتین کتراک اسید تانیک پکتین کاراگینان پودر کاکائو

کتراک

صمغ عربی

مونو سدیم گلوتامات

اسید استیک

کربومر

کافور

خاک دیاتومه

کربن فعال

سیلیکون دی اکساید

آویسل

آنتی اکسیدان TBHQ

گلوتن ذرت

لانولین

روغن کندش

کافور

گلوتن

روغن فندوق

لاکتات کلسیم

منیزیم استئارات

روغن آووکادو

روغن درخت چای

روغن براهمی

روغن نارگیل

کتراک

سوربات پتاسیم

روغن بادام

شی باتر

ایزوتیازولین

روغن خراطین

روغن جوجوبا

مالتودکسترین

روغن آرگان

فوماریک اسید

خاک دیاتومه

پروپیونات کلسیم