اندروید استودیو ۳.۴ (آوریل ۲۰۱۹)

اندروید استودیو ۳.۴ یک نسخه اصلی است که شامل مجموعه‌ای از ویژگی‌ها و بهبودهای جدید می‌شود.

۳.۴.۲ (ژوئیه ۲۰۱۹)

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

۳.۴.۱ (مه ۲۰۱۹)

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

۳.۴.۰ مشکلات شناخته‌شده

  • هنگام استقرار برنامه شما در دستگاهی که اندروید Q بتا را اجرا می‌کند، پروفایلینگ غیرفعال است.

  • هنگام استفاده از کتابخانه اتصال داده، ممکن است LiveDataListener.onChanged() با NPE از کار بیفتد. راه حلی برای این مشکل در اندروید استودیو ۳.۴.۱ ارائه خواهد شد و در حال حاضر در آخرین نسخه پیش‌نمایش اندروید استودیو ۳.۵ موجود است. (به شماره ۱۲۲۰۶۶۷۸۸ مراجعه کنید)

اینتلی‌جی آیدیا ۲۰۱۸.۳.۴

محیط توسعه یکپارچه (IDE) اندروید استودیو (Android Studio) با بهبودهایی از IntelliJ IDEA تا نسخه 2018.3.4 به‌روزرسانی شده است.

به‌روزرسانی‌های افزونه‌ی اندروید Gradle نسخه ۳.۴.۰

برای اطلاعات بیشتر در مورد ویژگی‌های جدید افزونه Android Gradle نسخه ۳.۴.۰، به یادداشت‌های انتشار آن مراجعه کنید.

پنجره ساختار پروژه جدید

پنجره جدید ساختار پروژه (PSD) به‌روزرسانی وابستگی‌ها و پیکربندی جنبه‌های مختلف پروژه شما، مانند ماژول‌ها، انواع ساخت، امضای پیکربندی‌ها و متغیرهای ساخت را آسان‌تر می‌کند.

می‌توانید PSD را با انتخاب File > Project Structure از نوار منو باز کنید. همچنین می‌توانید PSD را با فشار دادن Ctrl+Shift+Alt+S در ویندوز و لینوکس یا Command+; (نقطه ویرگول) در macOS باز کنید. می‌توانید توضیحات برخی از بخش‌های جدید و به‌روز شده PSD را در زیر بیابید.

متغیرها

بخش متغیرهای جدید PSD به شما امکان می‌دهد متغیرهای ساخت را ایجاد و مدیریت کنید، مانند متغیرهایی که برای ثابت نگه داشتن شماره نسخه وابستگی‌ها در سراسر پروژه شما استفاده می‌شوند.

  • متغیرهای ساختی که از قبل در اسکریپت‌های ساخت Gradle پروژه شما وجود دارند را به سرعت مشاهده و ویرایش کنید.
  • متغیرهای ساخت جدید را در سطح پروژه یا ماژول مستقیماً از PSD اضافه کنید.

توجه: اگر فایل‌های پیکربندی ساخت موجود شما مقادیر را از طریق اسکریپت‌های پیچیده Groovy اختصاص می‌دهند، ممکن است نتوانید آن مقادیر را از طریق PSD ویرایش کنید. علاوه بر این، نمی‌توانید فایل‌های ساخت نوشته شده در Kotlin را با استفاده از PSD ویرایش کنید.

ماژول‌ها

ویژگی‌هایی را که برای همه نسخه‌های ساخت در یک ماژول موجود اعمال می‌شوند، پیکربندی کنید یا ماژول‌های جدیدی را از بخش ماژول‌ها به پروژه خود اضافه کنید. به عنوان مثال، در اینجا می‌توانید ویژگی‌های defaultConfig را پیکربندی کنید یا پیکربندی‌های امضا را مدیریت کنید.

وابستگی‌ها

با دنبال کردن مراحل زیر، هر وابستگی را در نمودار وابستگی پروژه خود، همانطور که توسط Gradle در حین همگام‌سازی پروژه حل شده است، بررسی و تجسم کنید:

  1. در پنل سمت چپ PSD، گزینه Dependencies را انتخاب کنید.
  2. در پنل ماژول‌ها ، ماژولی را که می‌خواهید وابستگی‌های حل‌شده‌ی آن را بررسی کنید، انتخاب کنید.
  3. در سمت راست PSD، پنل Resolved Dependencies را که در زیر نشان داده شده است، باز کنید.

همچنین می‌توانید با انتخاب یک ماژول از بخش وابستگی‌های PSD، کلیک بر روی دکمه (+) در بخش وابستگی‌های اعلام‌شده و انتخاب نوع وابستگی که می‌خواهید اضافه کنید، به سرعت وابستگی‌ها را جستجو و به پروژه خود اضافه کنید.

بسته به نوع وابستگی که انتخاب می‌کنید، باید پنجره‌ای مشابه پنجره زیر ببینید که به شما کمک می‌کند وابستگی را به ماژول اضافه کنید.

ساخت انواع

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

پیشنهادات

به‌روزرسانی‌های پیشنهادی برای وابستگی‌های پروژه و متغیرهای ساخت را در بخش پیشنهادات ، مطابق شکل زیر، مشاهده کنید.

مدیر منابع جدید

Resource Manager یک پنجره ابزار جدید برای وارد کردن، ایجاد، مدیریت و استفاده از منابع در برنامه شما است. می‌توانید با انتخاب View > Tool Windows > Resource Manager از نوار منو، پنجره ابزار را باز کنید. Resource Manager به شما امکان می‌دهد موارد زیر را انجام دهید:

  • منابع را تجسم کنید: می‌توانید پیش‌نمایشی از drawableها، رنگ‌ها و طرح‌بندی‌ها را مشاهده کنید تا به سرعت منابع مورد نیاز خود را پیدا کنید.
  • وارد کردن دسته‌ای: می‌توانید چندین فایل قابل ترسیم را به طور همزمان با کشیدن و رها کردن آنها به پنجره ابزار Resource Manager یا با استفاده از ویزارد Import drawables وارد کنید. برای دسترسی به ویزارد، دکمه (+) را در گوشه بالا سمت چپ پنجره ابزار انتخاب کنید و سپس Import Drawables را از منوی کشویی انتخاب کنید.
  • تبدیل SVGها به اشیاء VectorDrawable : می‌توانید از ویزارد Import Drawables برای تبدیل تصاویر SVG خود به اشیاء VectorDrawable استفاده کنید.
  • کشیدن و رها کردن فایل‌ها: از پنجره ابزار Resource Manager ، می‌توانید فایل‌های ترسیمی (drawables) را هم به نمای طراحی و هم به نمای XML ویرایشگر طرح‌بندی (Layout Editor) بکشید و رها کنید.
  • مشاهده نسخه‌های جایگزین: اکنون می‌توانید نسخه‌های جایگزین منابع خود را با دوبار کلیک کردن روی یک منبع در پنجره ابزار مشاهده کنید. این نما نسخه‌های مختلفی را که ایجاد کرده‌اید و توصیف‌کننده‌هایی که در آنها گنجانده شده است، نشان می‌دهد.
  • نماهای کاشی و لیستی: می‌توانید نمای درون پنجره ابزار را تغییر دهید تا منابع خود را در چیدمان‌های مختلف تجسم کنید.

برای کسب اطلاعات بیشتر، راهنمای نحوه مدیریت منابع برنامه را مطالعه کنید.

بررسی شناسه‌های ساخت هنگام پروفایلینگ و اشکال‌زدایی APKها

وقتی فایل‌های نماد اشکال‌زدایی را برای کتابخانه‌های مشترک .so درون APK خود ارائه می‌دهید، اندروید استودیو تأیید می‌کند که شناسه ساخت فایل‌های نماد ارائه شده با شناسه ساخت کتابخانه‌های .so درون APK مطابقت دارد.

اگر کتابخانه‌های بومی را در APK خود با شناسه ساخت (build ID) بسازید، اندروید استودیو بررسی می‌کند که آیا شناسه ساخت در فایل‌های نماد شما با شناسه ساخت در کتابخانه‌های بومی شما مطابقت دارد یا خیر و در صورت عدم تطابق، فایل‌های نماد را رد می‌کند. اگر با شناسه ساخت (build ID) نساخته‌اید، ارائه فایل‌های نماد نادرست ممکن است باعث ایجاد مشکل در اشکال‌زدایی شود.

R8 به طور پیش‌فرض فعال است

R8 فرآیندهای desugaring، shrinking، obfuscating، optimization و dexing را در یک مرحله ادغام می‌کند - که منجر به بهبود قابل توجه عملکرد ساخت می‌شود. R8 در افزونه Android Gradle نسخه 3.3.0 معرفی شد و اکنون به طور پیش‌فرض برای پروژه‌های برنامه و کتابخانه اندروید که از افزونه 3.4.0 و بالاتر استفاده می‌کنند، فعال است.

تصویر زیر یک نمای کلی از فرآیند کامپایل قبل از معرفی R8 را ارائه می‌دهد.

قبل از R8، ProGuard مرحله کامپایل متفاوتی از dexing و desugaring بود.

اکنون، با R8، عملیات desugaring، shrinking، obfuscating، optimization و dexing (D8) همگی در یک مرحله انجام می‌شوند، همانطور که در زیر نشان داده شده است.

با R8، desugaring، shrinking، obfuscating، optimization و dexing همگی در یک مرحله کامپایل انجام می‌شوند.

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

اگر در استفاده از R8 با مشکل مواجه شدید، سوالات متداول سازگاری با R8 را بخوانید تا ببینید آیا راه حلی برای مشکل شما وجود دارد یا خیر. اگر راه حلی مستند نشده است، لطفاً یک اشکال را گزارش دهید . می‌توانید با اضافه کردن یکی از خطوط زیر به فایل gradle.properties پروژه خود، R8 را غیرفعال کنید:

    # Disables R8 for Android Library modules only.
    android.enableR8.libraries = false
    # Disables R8 for all modules.
    android.enableR8 = false
    
  

نکته: برای یک نوع ساخت مشخص، اگر useProguard در فایل build.gradle ماژول برنامه خود روی false تنظیم کنید، افزونه Android Gradle از R8 برای کوچک کردن کد برنامه شما برای آن نوع ساخت استفاده می‌کند، صرف نظر از اینکه R8 را در فایل gradle.properties پروژه خود غیرفعال کرده باشید یا خیر.

تمام انواع آرگومان‌های پشتیبانی‌شده توسط کامپوننت ناوبری (Navigation) اکنون در ویرایشگر ناوبری (Navigation Editor) نیز پشتیبانی می‌شوند. برای اطلاعات بیشتر در مورد انواع پشتیبانی‌شده، به بخش «انتقال داده‌ها بین مقاصد» (Pass data between destinations) مراجعه کنید.

بهبودهای ویرایشگر طرح‌بندی {:#layout-editor}

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

  • بخش جدید «ویژگی‌های اعلام‌شده» (Declared Attributes) ویژگی‌هایی را که فایل طرح‌بندی مشخص می‌کند، فهرست می‌کند و به شما امکان می‌دهد به سرعت ویژگی‌های جدید را اضافه کنید.
  • پنجره ویژگی‌ها (Attributes) اکنون در کنار هر ویژگی، نشانگرهایی را نیز نمایش می‌دهد که وقتی مقدار ویژگی، ارجاع به منبع باشد، پررنگ و در غیر این صورت خالی هستند.
  • ویژگی‌هایی که دارای خطا یا هشدار هستند، اکنون هایلایت شده‌اند. هایلایت‌های قرمز نشان‌دهنده خطاها هستند (برای مثال، وقتی از مقادیر نامعتبر در طرح‌بندی استفاده می‌کنید) و هایلایت‌های نارنجی نشان‌دهنده هشدارها هستند (برای مثال، وقتی از مقادیر کدگذاری‌شده استفاده می‌کنید).

اقدام جدید برای وارد کردن سریع وابستگی‌ها

اگر شروع به استفاده از کلاس‌های Jetpack و Firebase خاصی در کد خود کنید، یک اقدام intent جدید پیشنهاد می‌دهد که وابستگی کتابخانه Gradle مورد نیاز را به پروژه خود اضافه کنید، البته اگر قبلاً این کار را نکرده باشید. برای مثال، اگر بدون وارد کردن وابستگی android.arch.work:work-runtime مورد نیاز، به کلاس WorkManager ارجاع دهید، یک اقدام intent به شما امکان می‌دهد این کار را به راحتی و با یک کلیک انجام دهید، همانطور که در زیر نشان داده شده است.

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