اندروید استودیو ۳.۱ (مارس ۲۰۱۸)

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

۳.۱.۴ (آگوست ۲۰۱۸)

این به‌روزرسانی برای اندروید استودیو ۳.۱ شامل تغییرات و اصلاحات زیر است:

  • کاتلینِ همراهِ نرم‌افزار اکنون نسخه ۱.۲.۵۰ است.
  • پروژه‌های جدید به جای استفاده از kotlin-stdlib-jdk* artifacts که منسوخ شده‌اند، با مصنوعات kotlin-stdlib-jre* ایجاد می‌شوند.
  • تجزیه و تحلیل R8 از قوانین ProGuard بهبود یافته است.
  • اشکالات زیر برطرف شده‌اند:
    • تلاش برای اجرای کلاس اصلی کاتلین با خطای "Error: Could not find or load main class..." شکست خورد.
    • R8 هنگام انجام بهینه‌سازی‌های خاص، وارد یک حلقه بی‌نهایت شد.
    • استفاده از دستور Rerun failed tests در پنجره Run گاهی اوقات به اشتباه پیام "هیچ آزمایشی پیدا نشد" را برمی‌گرداند.
    • D8 به درستی نمونه‌های invoke-virtual را مدیریت نکرد و باعث خرابی با VerifyError شد: invoke-super/virtual can't be used on private method
    • کامپایلر Data Binding به نسخه قدیمی com.android.tools:annotations وابسته بود. اکنون کامپایلر در صورت وجود، از tools annotations پروژه پایه استفاده می‌کند.
    • اندروید استودیو هنگام استفاده از پروفایلرها، در حین انتقال قطعه‌ها از کار افتاد.
    • هنگام اشکال‌زدایی طرح‌بندی با کادر متن، اشکال‌زدا از کار افتاد.
    • D8 نتوانست برخی از فایل‌های ZIP حاوی کاراکترهای خاص را بخواند.

۳.۱.۳ (ژوئن ۲۰۱۸)

این به‌روزرسانی برای اندروید استودیو ۳.۱ شامل رفع اشکالات زیر است:

  • کمبود حافظه باعث می‌شد اندروید استودیو پس از استفاده از ویرایشگر طرح‌بندی، کند و بی‌پاسخ شود. این به‌روزرسانی شامل رفع اکثر این مشکلات است. ما قصد داریم به‌زودی به‌روزرسانی دیگری را برای رفع کمبودهای حافظه بیشتر منتشر کنیم.
  • برخی از برنامه‌های ساخته شده با D8 روی برخی از تبلت‌های Verizon Ellipsis از کار می‌افتادند.
  • نصب برنامه‌های ساخته شده با D8 با خطای INSTALL_FAILED_DEXOPT در دستگاه‌هایی که اندروید ۵.۰ یا ۵.۱ (سطح API ۲۱ یا ۲۲) دارند، ناموفق بود.
  • برخی از برنامه‌هایی که از کتابخانه OkHttp استفاده می‌کردند و با D8 ساخته شده بودند، در دستگاه‌هایی که اندروید ۴.۴ (سطح API ۱۹) داشتند، از کار افتادند.
  • اندروید استودیو گاهی اوقات با خطای ProcessCanceledException در هنگام مقداردهی اولیه کلاس برای com.intellij.psi.jsp.JspElementType اجرا نمی‌شد.

۳.۱.۲ (آوریل ۲۰۱۸)

این به‌روزرسانی برای اندروید استودیو ۳.۱ شامل رفع اشکالات زیر است:

  • در برخی موارد، اندروید استودیو هنگام خروج به طور نامحدود هنگ می‌کرد.
  • هنگام فعال کردن Instant Run، نسخه‌های پیکربندی‌شده با مجموعه‌های منبع با پیام زیر مواجه شدند:

    "The SourceSet name is not recognized by the Android Gradle Plugin."

  • وقتی Instant Run فعال بود، ساخت پروژه‌های جدید کاتلین با اجرای دستور Run با شکست مواجه می‌شد.
  • در حین ویرایش فایل build.gradle ، گاهی اوقات بین تایپ یک کاراکتر و ظاهر شدن کاراکتر روی صفحه، تأخیر قابل توجهی وجود داشت.
  • در برخی از پروژه‌هایی که تعداد زیادی ماژول یا وابستگی خارجی دارند، هنگام dexing، خرابی‌های ساخت رخ داده است که پیام خطای زیر را نشان می‌دهد:

    "RejectedExecutionException: Thread limit exceeded replacing blocked worker"

  • محاسبه فهرست اصلی DEX در D8، برخی از فراخوانی‌های انعکاسی را در نظر نگرفته بود.

این به‌روزرسانی همچنین شامل تغییراتی است که در برخی سناریوها، اجرای بررسی‌های lint از Gradle را بسیار سریع‌تر می‌کند.

۳.۱.۱ (آوریل ۲۰۱۸)

این به‌روزرسانی برای اندروید استودیو ۳.۱ شامل رفع اشکالات زیر است:

  • در برخی موارد، وقتی پروژه‌ای که در اندروید استودیو ۳.۰ ایجاد شده بود برای اولین بار در اندروید استودیو ۳.۱ باز می‌شد، وظیفه Gradle-aware Make از قسمت Before launch در Run/Debug Configurations حذف می‌شد. نتیجه این بود که پروژه‌ها با کلیک بر روی دکمه Run یا Debug ساخته نمی‌شدند، که به نوبه خود باعث بروز مشکلاتی مانند استقرار APK های نادرست و خرابی هنگام استفاده از Instant Run می‌شد.

    برای حل این مشکل، اندروید استودیو ۳.۱.۱ وظیفه Gradle-aware Make را برای پروژه‌هایی که این ورودی را ندارند، به پیکربندی اجرا اضافه می‌کند. این تغییر پس از اولین همگام‌سازی Gradle هنگام بارگذاری پروژه رخ می‌دهد.

  • در صورت فعال بودن پروفایل پیشرفته، هنگام اشکال‌زدایی طرح‌بندی با کادر متنی، اشکال‌زدا از کار افتاد.
  • اندروید استودیو بعد از اینکه روی «ساخت انواع» کلیک کردید، هنگ کرد.
  • فایل‌های AAR (بایگانی اندروید) دو بار استخراج شدند، یک بار در طول فرآیند همگام‌سازی Gradle و یک بار در طول فرآیند ساخت Gradle.
  • عناصری از برخی از فایل‌های برداری قابل ترسیم که از فایل‌های SVG وارد شده‌اند، وجود ندارند.
  • هشدار مربوط به منسوخ شدن پیکربندی وابستگی compile با راهنمایی بهتر در مورد implementation و پیکربندی‌های api به‌روزرسانی شده است. برای جزئیات مهاجرت از استفاده از پیکربندی compile ، به مستندات مربوط به پیکربندی‌های وابستگی جدید مراجعه کنید.

کدنویسی/IDE

اینتلی‌جی ۲۰۱۷.۳.۳

هسته اصلی محیط توسعه نرم‌افزار اندروید استودیو (Android Studio IDE) با بهبودهایی از IntelliJ IDEA تا نسخه 2017.3.3 به‌روزرسانی شده است. این بهبودها شامل تحلیل بهتر جریان کنترل برای مجموعه‌ها و رشته‌ها، استنتاج بهبود یافته در مورد nullability، رفع اشکالات سریع جدید و موارد دیگر می‌شود.

برای جزئیات بیشتر، به یادداشت‌های انتشار JetBrains برای نسخه‌های IntelliJ IDEA 2017.2 و 2017.3 و همچنین یادداشت‌های انتشار JetBrains برای به‌روزرسانی‌های رفع اشکال مراجعه کنید.

بهبود ویرایش SQL با Room

وقتی از کتابخانه پایگاه داده Room استفاده می‌کنید، می‌توانید از چندین بهبود در ویرایش SQL بهره‌مند شوید:

  • تکمیل کد درون یک Query ، جداول (موجودیت‌ها)، ستون‌ها، پارامترهای کوئری، نام‌های مستعار، joinها، subqueryها و عبارات WITH در SQL را درک می‌کند.
  • هایلایت کردن سینتکس SQL حالا کار می‌کند.
  • شما می‌توانید روی نام یک جدول در SQL کلیک راست کرده و نام آن را تغییر دهید، که این کار کد جاوا یا کاتلین مربوطه را نیز بازنویسی می‌کند (از جمله، برای مثال، نوع بازگشتی کوئری). تغییر نام در جهت دیگر نیز کار می‌کند، بنابراین تغییر نام یک کلاس یا فیلد جاوا، کد SQL مربوطه را نیز بازنویسی می‌کند.
  • کاربردهای SQL هنگام استفاده از «یافتن کاربردها» نشان داده می‌شوند (کلیک راست کرده و «یافتن کاربردها» را از منوی زمینه انتخاب کنید).
  • برای رفتن به اعلان یک موجودیت SQL در کد جاوا یا کاتلین، می‌توانید هنگام کلیک کردن روی موجودیت، کلید Control (در مک کلید Command) را نگه دارید.

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

به‌روزرسانی‌های اتصال داده‌ها

این به‌روزرسانی شامل چندین بهبود در اتصال داده‌ها است:

  • اکنون می‌توانید از یک شیء LiveData به عنوان یک فیلد قابل مشاهده در عبارات اتصال داده استفاده کنید. کلاس ViewDataBinding اکنون شامل یک متد جدید setLifecycle() است که برای مشاهده اشیاء LiveData از آن استفاده می‌کنید.

  • کلاس ObservableField اکنون می‌تواند اشیاء Observable دیگری را در سازنده خود بپذیرد.

  • شما می‌توانید پیش‌نمایشی از یک کامپایلر افزایشی جدید برای کلاس‌های اتصال داده خود را مشاهده کنید. برای جزئیات این کامپایلر جدید و دستورالعمل‌های فعال‌سازی آن، به کامپایلر اتصال داده نسخه ۲ مراجعه کنید.

    از مزایای کامپایلر جدید می‌توان به موارد زیر اشاره کرد:

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

کامپایلر و گریدل

D8 کامپایلر پیش‌فرض DEX است.

کامپایلر D8 اکنون به طور پیش‌فرض برای تولید بایت‌کد DEX استفاده می‌شود.

این کامپایلر جدید DEX مزایای متعددی از جمله موارد زیر را به همراه دارد:

  • دکس کردن سریع‌تر
  • استفاده کمتر از حافظه
  • تولید کد بهبود یافته (تخصیص بهتر رجیستر، جداول رشته‌ای هوشمندتر)
  • تجربه اشکال‌زدایی بهتر هنگام بررسی گام به گام کد

برای بهره‌مندی از این مزایا، نیازی به ایجاد هیچ تغییری در کد یا گردش کار توسعه خود ندارید، مگر اینکه قبلاً کامپایلر D8 را به صورت دستی غیرفعال کرده باشید.

اگر android.enableD8 در gradle.properties روی false تنظیم کرده‌اید، یا آن flag را حذف کنید یا آن را روی true تنظیم کنید:

        android.enableD8=true
      

برای جزئیات بیشتر، به کامپایلر جدید DEX مراجعه کنید.

قندزدایی تدریجی

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

Desugaring، قند نحوی را به شکلی تبدیل می‌کند که کامپایلر بتواند آن را با کارایی بیشتری پردازش کند.

شما می‌توانید desugaring افزایشی را با مشخص کردن موارد زیر در فایل gradle.properties پروژه خود غیرفعال کنید:

        android.enableIncrementalDesugaring=false
      

پنجره خروجی ساده شده

کنسول Gradle با پنجره Build جایگزین شده است که دارای تب‌های Sync و Build است.

برای جزئیات بیشتر در مورد نحوه استفاده از پنجره جدید و ساده‌شده Build ، به بخش Monitor the build process مراجعه کنید.

به‌روزرسانی‌های دسته‌ای و همزمانی نمایه‌سازی

فرآیندهای همگام‌سازی Gradle و نمایه‌سازی IDE اکنون بسیار کارآمدتر شده‌اند و زمان تلف‌شده در بسیاری از عملیات نمایه‌سازی تکراری را کاهش می‌دهند.

سی پلاس پلاس و ال ال دی بی

ما در مراحل کدنویسی، همگام‌سازی، ساخت و اشکال‌زدایی توسعه ++C، بهبودهای کیفی و عملکردی زیادی ایجاد کرده‌ایم. این بهبودها شامل موارد زیر است:

  • اگر با پروژه‌های بزرگ ++C کار می‌کنید، باید متوجه بهبود قابل توجهی در کاهش زمان صرف شده برای ساخت نمادها شوید. زمان همگام‌سازی نیز برای پروژه‌های بزرگ بسیار کاهش یافته است.

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

  • افزودن قالب‌دهنده‌ها ("چاپگرهای زیبا") برای ساختارهای داده بیشتر C++، خواندن خروجی LLDB را آسان‌تر می‌کند.

  • LLDB اکنون فقط با اندروید ۴.۱ (سطح API ۱۶) و بالاتر کار می‌کند.

توجه: اشکال‌زدایی بومی با اندروید استودیو ۳.۰ یا بالاتر روی ویندوز ۳۲ بیتی کار نمی‌کند. اگر از ویندوز ۳۲ بیتی استفاده می‌کنید و نیاز به اشکال‌زدایی کد بومی دارید، از اندروید استودیو ۲.۳ استفاده کنید.

کاتلین

کاتلین به نسخه ۱.۲.۳۰ ارتقا یافت

اندروید استودیو ۳.۱ شامل کاتلین نسخه ۱.۲.۳۰ است.

کد کاتلین اکنون با بررسی خط فرمان lint تجزیه و تحلیل می‌شود.

اجرای lint از خط فرمان اکنون کلاس‌های کاتلین شما را تجزیه و تحلیل می‌کند.

برای هر پروژه‌ای که می‌خواهید lint را روی آن اجرا کنید، مخزن Maven گوگل باید در فایل build.gradle سطح بالا گنجانده شود. مخزن Maven برای پروژه‌های ایجاد شده در اندروید استودیو ۳.۰ و بالاتر از قبل گنجانده شده است.

ابزارهای عملکرد

نمونه‌برداری از فرآیندهای بومی C++ با CPU Profiler

اکنون CPU Profiler شامل یک پیکربندی پیش‌فرض برای ثبت ردپاهای نمونه‌برداری‌شده از نخ‌های بومی برنامه شما است. می‌توانید با استقرار برنامه خود در دستگاهی که اندروید ۸.۰ (سطح API ۲۶) یا بالاتر را اجرا می‌کند و سپس انتخاب Sampled (Native) از منوی کشویی تنظیمات ضبط CPU Profiler، از این پیکربندی استفاده کنید. پس از آن، یک ردپا را طبق معمول ثبت و بررسی کنید .

شما می‌توانید با ایجاد یک پیکربندی ضبط، تنظیمات پیش‌فرض، مانند فاصله نمونه‌برداری را تغییر دهید.

برای بازگشت به ردیابی رشته‌های جاوا، یکی از پیکربندی‌های Sampled (Java) یا Instrumented (Java) را انتخاب کنید.

فیلتر کردن ردپاهای CPU، نتایج تخصیص حافظه و داده‌های هیپ

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

برای جستجو، روی «فیلتر» کلیک کنید در گوشه سمت راست بالای صفحه، عبارت مورد نظر خود را تایپ کنید و Enter را فشار دهید.

نکته: همچنین می‌توانید با فشار دادن کلیدهای Control + F (در مک Command + F) فیلد جستجو را باز کنید.

در تب Flame Chart در CPU Profiler، پشته‌های فراخوانی که شامل متدهای مرتبط با عبارت جستجوی شما هستند، هایلایت شده و به سمت چپ نمودار منتقل می‌شوند.

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

برگه درخواست در Network Profiler

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

نمای رشته در Network Profiler

پس از انتخاب بخشی از جدول زمانی در Network Profiler ، می‌توانید یکی از برگه‌های زیر را برای مشاهده جزئیات بیشتر در مورد فعالیت شبکه در آن بازه زمانی انتخاب کنید:

  • نمای اتصال : همان اطلاعات نسخه‌های قبلی اندروید استودیو را ارائه می‌دهد - فایل‌هایی را که در طول بخش انتخاب‌شده از جدول زمانی در تمام رشته‌های CPU برنامه شما ارسال یا دریافت شده‌اند، فهرست می‌کند. برای هر درخواست، می‌توانید اندازه، نوع، وضعیت و مدت زمان انتقال را بررسی کنید.
  • نمای رشته (Thread View ): فعالیت شبکه هر یک از رشته‌های CPU برنامه شما را نمایش می‌دهد. این نما به شما امکان می‌دهد تا بررسی کنید که کدام یک از رشته‌های برنامه شما مسئول هر درخواست شبکه هستند.

بازرس طرح‌بندی

ابزار Layout Inspector ویژگی‌های جدیدی به دست آورده است، از جمله برخی از قابلیت‌هایی که قبلاً توسط ابزارهای منسوخ‌شده‌ی Hierarchy Viewer و Pixel Perfect ارائه می‌شدند:

  • دکمه‌های بزرگنمایی و میانبرهای صفحه کلید برای پیمایش و بررسی طرح‌بندی‌ها
  • پوشش شبکه مرجع
  • امکان بارگذاری یک تصویر مرجع و استفاده از آن به عنوان یک لایه (برای مقایسه طرح خود با یک ماکت رابط کاربری مفید است)
  • پیش‌نمایش زیرشاخه را برای جداسازی یک نما در یک طرح‌بندی پیچیده ارائه دهید

ویرایشگر طرح‌بندی

پالت در ویرایشگر طرح‌بندی پیشرفت‌های زیادی داشته است:

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

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

دویدن و دویدن فوری

رفتار گزینه « استفاده از همان انتخاب برای راه‌اندازی‌های آینده » در پنجره محاوره‌ای «انتخاب هدف استقرار» (Select deployment target) منسجم‌تر شده است. اگر گزینه « استفاده از همان انتخاب» فعال باشد، پنجره محاوره‌ای «انتخاب هدف استقرار» فقط اولین باری که از دستور Run استفاده می‌کنید باز می‌شود تا زمانی که دستگاه انتخاب شده دیگر متصل نباشد.

وقتی دستگاهی با اندروید ۸.۰ (سطح API ۲۶) یا بالاتر را هدف قرار می‌دهید، Instant Run می‌تواند تغییرات را بدون نیاز به راه‌اندازی مجدد برنامه، در منابع اعمال کند. این امر به این دلیل امکان‌پذیر است که منابع در یک APK تقسیم‌شده قرار دارند.

شبیه‌ساز

برای جزئیات بیشتر در مورد موارد جدید و تغییرات در شبیه‌ساز از زمان انتشار اندروید استودیو ۳.۰، به یادداشت‌های انتشار شبیه‌ساز اندروید از نسخه ۲۷.۰.۲ تا نسخه ۲۷.۱.۱۲ مراجعه کنید.

پیشرفت‌های عمده شامل موارد زیر است:

  • اسنپ‌شات‌های بوت سریع برای ذخیره وضعیت شبیه‌ساز و شروع سریع‌تر، با قابلیت استفاده از دستور Save now برای ذخیره یک وضعیت شروع سفارشی.
  • صفحه شبیه‌ساز بدون پنجره.
  • ایمیج‌های سیستم برای اندروید ۸.۰ (سطح API ۲۶)، اندروید ۸.۱ (سطح API ۲۷) و پیش‌نمایش توسعه‌دهندگان اندروید P.

بهبود رابط کاربری و تجربه کاربری

نکات راهنمای بیشتر، میانبرهای صفحه کلید و پیام‌های مفید

ما در بسیاری از قسمت‌های اندروید استودیو، راهنماهای ابزار و پوشش‌های پیام مفید اضافه کرده‌ایم.

برای دیدن میانبرهای صفحه کلید برای بسیاری از دستورات، کافیست نشانگر ماوس را روی یک دکمه نگه دارید تا راهنمای ابزار ظاهر شود.

ابزارها > منوی اندروید حذف شد

منوی Tools > Android حذف شده است. دستوراتی که قبلاً در این منو بودند، منتقل شده‌اند.

  • بسیاری از دستورات مستقیماً به زیر منوی ابزارها منتقل شدند.
  • دستور همگام‌سازی پروژه با فایل‌های gradle به منوی File منتقل شد.
  • دستور Device Monitor همانطور که در زیر توضیح داده شده است، حذف شده است.

مانیتور دستگاه از خط فرمان در دسترس است

در اندروید استودیو ۳.۱، بخش مانیتور دستگاه (Device Monitor) نقش کمتری نسبت به قبل ایفا می‌کند. در بسیاری از موارد، قابلیت‌های موجود از طریق مانیتور دستگاه (Device Monitor) اکنون توسط ابزارهای جدید و بهبود یافته ارائه می‌شوند.

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