Android Studio 3.4 (آوریل 2019)

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

3.4.2 (ژوئیه 2019)

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

3.4.1 (مه 2019)

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

3.4.0 مسائل شناخته شده

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

  • هنگام استفاده از Data Binding Library، LiveDataListener.onChanged() ممکن است با NPE شکست بخورد. یک راه حل برای این مشکل در Android Studio 3.4.1 گنجانده شده است و در حال حاضر در آخرین نسخه پیش نمایش Android Studio 3.5 موجود است. (به شماره 122066788 مراجعه کنید)

IntelliJ IDEA 2018.3.4

هسته Android Studio IDE با پیشرفت هایی از IntelliJ IDEA تا نسخه 2018.3.4 به روز شده است.

به روز رسانی پلاگین Android Gradle 3.4.0

برای اطلاعات در مورد جدیدترین افزونه Android Gradle 3.4.0، به یادداشت‌های انتشار آن مراجعه کنید.

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

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

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

متغیرها

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

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

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

ماژول ها

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

وابستگی ها

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

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

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

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

ساخت انواع

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

پیشنهادات

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

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

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

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

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

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

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

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

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

R8 شکر زدایی، کوچک کردن، مبهم کردن، بهینه‌سازی و پاک‌سازی را در یک مرحله ادغام می‌کند – که منجر به بهبود قابل توجه عملکرد ساخت می‌شود. R8 در پلاگین Android Gradle 3.3.0 معرفی شد و اکنون به طور پیش فرض برای پروژه های برنامه و کتابخانه اندروید با استفاده از افزونه 3.4.0 و بالاتر فعال است.

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

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

در حال حاضر، با R8، قندزدایی، کوچک کردن، مبهم کردن، بهینه سازی، و dexing (D8) همه در یک مرحله تکمیل می شوند، همانطور که در زیر نشان داده شده است.

با R8، قندزدایی، کوچک کردن، مبهم کردن، بهینه‌سازی و dexing همگی در یک مرحله کامپایل انجام می‌شوند.

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

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

    # 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 فایل gradle.properties

همه انواع آرگومان های پشتیبانی شده توسط مؤلفه Navigation اکنون در ویرایشگر ناوبری پشتیبانی می شوند. برای اطلاعات بیشتر در مورد انواع پشتیبانی شده، به انتقال داده بین مقصدها مراجعه کنید.

بهبودهای ویرایشگر چیدمان {:#layout-editor}

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

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

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

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

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