Skip to main content

استفاده از سیستم dependencies و کار با منابع یا libraries پشتیبانی

Use dependencies and support libraries

در این درس سیستم dependencies در محیط توسعه اندروید استودیو بررسی شده است و در ادامه نحوه نصب Support Repository و همچنین نحوه کار با کتابخانه‌های متن باز و نحوه افزودن library dependency مورد بررسی قرار گرفته است. در پایان منابع موجود برای دانلود Maven repository پیشنهاد شده است.

لینک کمکی (official link) – آشنایی با dependencies، Support Repository، library dependency و Maven repository در اندروید استودیو

سیستم dependency اندروید استودیو

سیستم dependency یا وابستگی اندروید استودیو بر اساس معماری شناخته شده‌ای به نام Maven است. یک Maven repository یا مخزن Maven یک کتابخانه از مجموعه‌ای کتابخانه است، جایی که توسعه دهنده میتواند کتابخانه‌هایی اضافه و یا دانلود کند. در فایل build.gradle این پروژه که آنرا باز کردم، اندروید استودیو در بلاک dependencies چند خط کد دارد که مربوط به کتابخانه‌های پشتیبان میشوند. کتابخانه appcompat ویژگیهایی در اختیار شما میگذارد که میتوانید آنها را به برنامه اضافه کنید که قابل اجرا روی همه دستگاه‌های با API level 7 باشد. و کتابخانه design شامل اجزایی مثل، action button، که به شما اجازه میدهد یک حالت نمایشی جذاب را در برنامه ایجاد کنید.

نصب Support Repository در اندروید استودیو

به علاوه برای استفاده از این ویژگیها، باید چیزی با نام Support Repository را نصب داشته باشید.
این کار در Android SDK Manager انجام میشود.
من الان آنرا نصب شده دارم، چون اگر نداشتم برنامه درست کار نمیکرد.
ولی میتوانید Support Repository را با کلیک روی تب SDK Tools در SDK Manager، خب در این لیست Support Repository را میبینید.
مطمئن شوید که نسخه‌ای را نصب کردید که حداقل، نسخه‌ای است که در فایل بیلد هست را پشتیبانی میکند. اینجا برای من نسخه 30.0 نصب شده، و در قسمت build tools version میبینید که نسخه 23.0 موجود است، پس مشخص است که میشود از آن استفاده کرد. و اینجا نحوه فراخوانی آنرا میبینید. در طول عمل کامپایل، فرآیند بیلد ما یا همان build process به این راهنماها مراجعه میکند، و دنبال شناسه‌های منحصربفرد برای کتابخانه‌هایی که شما میخواهید استفاده کنید و نسخه‌های دلخواه شما میگردد. آن اینکار را با توجه به ایندکسی که شامل SDK نصبی شما میشود انجام میدهد، و اگر این کتابخانه‌ها را پیدا کرد آنها را از مخزن یا repository فراخونی میکند. ولی اگر پیدا نکرد، میتوانید کتابخانه مربوطه را از مخزن کتابخانه‌ها، جایی که فایل نصبی اندروید استودیو وجود دارد بیاورید. و خیلی راحت اینکار را وقتی که کتابخانه‌ها در SDK نیستند انجام بدهید.

کتابخانه‌های متن باز در Android Studio

چند تا کتابخانه متن باز موجود است که بصورت باورنکردنی برای توسعه دهنده‌ها خیلی محبوب و پرکاربرد هستند. مثلاً میخواهم با کتابخانه GSON برای فرمت داده کار کنم، و دوست دارم از کتابخانه GSON گوگل استفاده کنم.
برای اینکه از این کتابخانه استفاده کنم، از مسیر file به دیالوگ project structure میروم.
بعد روی ماژول app کلیک میکنم، و بعد روی تب Dependencies کلیک میکنم.
توجه کنید که چهار خط اینجا است، و اینها با آن چهار خطی که در بلاک dependencies در فایل gradle.build بودند مچ میشوند.

نحوه افزودن library dependency

خب؛ روی دکمه پلاس کلیک میکنم چون میخواهم یک library dependency اضافه کنم.
اینجا یک لیستی از همه dependency های شناخته شده وجود دارد. می‌آیم پایین و GSON را پیدا میکنم.
میبینیم که یک کتابخانه‌ای اینجا است با نام Picasso؛ که برای کار کردن با تصاویر استفاده میشود، و okhttp که برای توسعه معماری درخواست از راه دور استفاده میشود. با استفاده از این کتابخانه میتوانید request های http را ارسال کنید.
خب؛ من روی GSON کلیک میکنم و اوکی را میزنم.
و میبینیم که اینجا اضافه شد.
روی اوکی کلیک میکنم.
و میبیینم که یک راهنما کامپایل جدید به فایل بیلد اضافه شده.
حالا برای تست آن به کلاس Main Activity میروم، و چند تا کد اینجا در متد on Create اضافه میکنم.
من نام یک کلاس را که عضوی از کتابخانه GSON است تایپ میکنم.
اسم آن GSON است. و اندروید استودیو این کلاس و پیکیج آنرا میتواند ببیند. چون من این اطلاعات را به فایل بیلد اضافه کردم، کافی است کتابخانه را به مسیر کلاس اضافه کنم و به اندروید استودیو اجازه بدهم نام کلاس و ساختارهای آنرا دنبال کند، بنابراین میتواند قابلیتهایی را بصورت خودکار مهیا کند.
خب؛ من الان یک خط کد نوشتم که یک نمونه از آن کلاس را بسازد، و هیچ اروری هم نمیبینیم.
به پنجره Projects ام میروم و نگاهی به ویو Problems میندازیم. میگوید چیزی برای نمایش وجود ندارد، و هیچ مشکلی در کد وجود ندارد.
به قسمت ایمپورتها میروم و آنها را باز میکنم، میبینیم که یک ایمپورت جدید برای این کلاس در خط 12 اضافه شده.
به طور کلی درست آن این است که نباید بروید یک فایل JAR یا یک کتابخانه جاوا بیاورید به فولدرهای پروژه اضافه کنید و با این کتابخانه‌ها یا فایلهای JAR اضافه شده کار کنید، بلکه شما براحتی میتوانید کتابخانه و نسخه که میخواهید را در dependencies در فایل build. Gradle لیست کنید و همه آن کارها برای شما انجام میشود.

منابع Maven repository

درآخر، من کمی راجب به اینکه این فایلها از کجا می‌آیند برای شما میگویم.
من به ویوی اندروید برمیگردم، و فایل build. Gradle مربوط به project را باز میکنم.
توجه کنید اینجا در خط چهارم تا ششم یک لیستی از repositoryها است.
این لیستی از repositoryهای Maven است که فرآیند بیلد یا build process میتواند برای رفتن به کتابخانه‌های درخواست شده استفاده کند.
اگر کلید کامند یا کنترل را فشار بدهم و روی این متد با نام jcenter بروم، میبینید که در واقع آن یک متد جاوا است.
کمی که دقت کنیم، میبینیم که مشخصاً این متد برمیگردد به یک نمونه از کلاسی با نام Maven ArtifactRepository.
و در واقع، آن نشان دهنده یک مرجع از یک وبسایت است. و این همان وبسایتی است که توسعه دهنده‌ها میتوانند کتابخانه‌های خود را اینجا آپلود کنند و آنها را ثبت کنند و دیگر توسعه دهنده‌ها میتوانند پکیج Maven با شناسه‌های مخصوص خود را استفاده کنند و در طول فرآیند بیلد کتابخانه‌ها را دانلود کنند.
من در سرچ باکس این سایت کلیک میکنم و gson را تایپ میکنم و اینتر را میزنم.
و کتابخانه gson را اینجا میبینم.
و همینطور میتوانم از اینجا آنرا دریافت کنم.
البته باید بگویم این تنها Maven repository که وجود دارد نیست. در واقع یک Maven repository اورجینال وجود دارد، Maven مرکزی، و من به search.maven.org میروم و دوباره gson تایپ میکنم و میبینیم که کتابخانه GSON اینجا هم در دسترس است. در یک پروژه اندروید استودیو جدید، اول از همه در وبسایت Bintray دنبال متد jcenter برای repositoryهایی که در لیست dependencies درخواست شدند بروید.
اگر کمی بیشتر راجب به چگونگی کار کردن dependencies بدانید، میتوانید repositoryهای خود را به این لیست اضافه کنید و قابلیتهای سیستم بیلد گریدل را گسترش بدهید.

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

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

دوره ها
درس ها
طهاکو من
0