Android Studio 3.1 (مارس 2018)
اندروید استودیو 3.1.0 یک نسخه اصلی است که شامل انواع ویژگی ها و بهبودهای جدید است.
3.1.4 (اوت 2018)
این بهروزرسانی اندروید استودیو 3.1 شامل تغییرات و اصلاحات زیر است:
- کوتلین همراه اکنون نسخه 1.2.50 است.
- پروژههای جدید با
kotlin-stdlib-jdk* artifacts
ایجاد میشوند، نه با مصنوعاتkotlin-stdlib-jre*
که منسوخ شدهاند. - تجزیه R8 قوانین ProGuard بهبود یافته است.
- اشکالات زیر رفع شده است:
- تلاش برای اجرای کلاس Kotlin Main با یک خطا انجام نشد:
"Error: Could not find or load main class..."
- R8 در حین انجام بهینه سازی های خاص وارد یک حلقه بی نهایت شد.
- با استفاده از دستور Rerun Fail Tests در پنجره Run گاهی اوقات به اشتباه پیغام «هیچ آزمایشی یافت نشد» را برمیگرداند.
- D8 موارد
invoke-virtual
را به درستی مدیریت نکرده است، و باعث خرابی باVerifyError
شد:invoke-super/virtual can't be used on private method
- کامپایلر Data Binding به نسخه قدیمی
com.android.tools:annotations
بستگی داشت. کامپایلر اکنون در صورت موجود بودن از حاشیه نویسی ابزارها از پروژه پایه استفاده می کند. - Android Studio در هنگام انتقال قطعه هنگام استفاده از پروفایلرها از کار افتاد.
- هنگام اشکالزدایی یک طرحبندی با کادر متنی، اشکالزدا از کار افتاد.
- D8 نتوانست برخی از فایل های ZIP را با کاراکترهای خاص بخواند.
3.1.3 (ژوئن 2018)
این به روز رسانی اندروید استودیو 3.1 شامل رفع اشکالات زیر است:
- نشت حافظه باعث شد که Android Studio پس از استفاده از Layout Editor کند شود و پاسخگو نباشد. این به روز رسانی شامل رفع بسیاری از این مشکلات است. ما قصد داریم به زودی به روز رسانی دیگری را برای رفع نشت حافظه اضافی منتشر کنیم.
- برخی از برنامه های ساخته شده با D8 در برخی از تبلت های Verizon Ellipsis خراب شدند.
- نصب برنامههای ساخته شده با D8 با خطای
INSTALL_FAILED_DEXOPT
در دستگاههای دارای Android نسخه 5.0 یا 5.1 (سطح API 21 یا 22) انجام نشد. - برخی از برنامههایی که از کتابخانه OkHttp استفاده میکردند و با D8 ساخته شده بودند، در دستگاههای دارای Android 4.4 (سطح API 19) از کار افتادند.
- Android Studio گاهی اوقات با یک
ProcessCanceledException
در هنگام شروع اولیه کلاس برایcom.intellij.psi.jsp.JspElementType
شروع نمی شود.
3.1.2 (آوریل 2018)
این به روز رسانی اندروید استودیو 3.1 شامل رفع اشکالات زیر است:
- در برخی موارد، Android Studio به طور نامحدود در هنگام خروج آویزان شد.
وقتی Instant Run فعال شد، ساختهای پیکربندی شده با مجموعههای منبع با پیام زیر شکست خوردند:
"The SourceSet name is not recognized by the Android Gradle Plugin."
- هنگامی که Instant Run فعال شد، بیلدهای پروژه های جدید Kotlin با اجرای دستور Run شکست خوردند.
- در حین ویرایش فایل
build.gradle
، گاهی اوقات تاخیر قابل توجهی بین تایپ یک کاراکتر و نمایش کاراکتر روی صفحه وجود داشت. خرابی های ساخت در حین dexing در برخی از پروژه ها با تعداد زیاد ماژول ها یا وابستگی های خارجی با پیام خطای زیر رخ داده است:
"RejectedExecutionException: Thread limit exceeded replacing blocked worker"
- محاسبه فهرست DEX اصلی D8 برخی فراخوانهای بازتابی را در نظر نمیگرفت.
این بهروزرسانی همچنین شامل تغییراتی میشود که در برخی از سناریوها، اجرای بررسیهای لینت از Gradle را بسیار سریعتر میکند.
3.1.1 (آوریل 2018)
این به روز رسانی اندروید استودیو 3.1 شامل رفع اشکالات زیر است:
در برخی موارد، هنگامی که یک پروژه ایجاد شده در Android Studio 3.0 برای اولین بار در Android Studio 3.1 باز شد، وظیفه Gradle-aware Make از ناحیه قبل از راه اندازی در Run/Debug Configurations حذف شد. نتیجه این بود که وقتی روی دکمه Run یا Debug کلیک میشد، پروژهها ساخته نمیشدند، که به نوبه خود باعث شکستهایی مانند استقرار APKهای نادرست و خرابی در هنگام استفاده از Instant Run شد.
برای حل این مشکل، Android Studio 3.1.1 وظیفه Gradle-aware Make را به پیکربندی اجرا برای پروژه هایی که این ورودی را ندارند اضافه می کند. این تغییر پس از اولین همگام سازی Gradle هنگام بارگیری پروژه انجام می شود.
- در صورت فعال بودن نمایه سازی پیشرفته، هنگام اشکال زدایی یک طرح بندی با کادر متنی، اشکال زدا از کار افتاد.
- بعد از اینکه روی Build Variants کلیک کردید، Android Studio مسدود شد.
- فایلهای AAR (بایگانی اندروید) دو بار، یک بار در طول فرآیند همگامسازی Gradle و یک بار در طول فرآیند ساخت Gradle استخراج شدند.
- عناصری در برخی از رسمپذیرهای برداری وارد شده از فایلهای SVG وجود نداشتند.
- هشدار در مورد منسوخ شدن پیکربندی وابستگی
compile
با راهنمایی بهتر در موردimplementation
و پیکربندی هایapi
به روز شده است. برای جزئیات مهاجرت از استفاده از پیکربندیcompile
، به مستندات پیکربندیهای وابستگی جدید مراجعه کنید.
کدگذاری/IDE
IntelliJ 2017.3.3
هسته Android Studio IDE با پیشرفت هایی از IntelliJ IDEA تا نسخه 2017.3.3 به روز شده است. بهبودها شامل تجزیه و تحلیل جریان کنترل بهتر برای مجموعه ها و رشته ها، استنتاج پوچ پذیری بهبود یافته، رفع سریع جدید و موارد دیگر است.
برای جزئیات، به یادداشتهای انتشار JetBrains برای IntelliJ IDEA نسخههای 2017.2 و 2017.3 ، و همچنین یادداشتهای انتشار JetBrains برای بهروزرسانیهای رفع اشکال مراجعه کنید.
بهبود ویرایش SQL با Room
هنگامی که از کتابخانه پایگاه داده اتاق استفاده می کنید، می توانید از چندین پیشرفت در ویرایش SQL استفاده کنید:
- تکمیل کد در یک
Query
جداول SQL (موجودات)، ستونها، پارامترهای پرس و جو، نامهای مستعار، اتصالات، زیرپرس و جوها و بندهای WITH را درک میکند. - برجسته کردن نحو SQL اکنون کار می کند.
- میتوانید روی نام جدول در SQL کلیک راست کرده و نام آن را تغییر دهید، که همچنین کد جاوا یا کاتلین مربوطه را بازنویسی میکند (از جمله، به عنوان مثال، نوع برگشتی پرس و جو). تغییر نام در جهت دیگر نیز کار می کند، بنابراین تغییر نام یک کلاس یا فیلد جاوا، کد SQL مربوطه را بازنویسی می کند.
- موارد استفاده SQL هنگام استفاده از Find usages نشان داده می شود (راست کلیک کرده و Find usages را از منوی زمینه انتخاب کنید).
- برای پیمایش به اعلان موجودیت SQL در کد جاوا یا کاتلین، میتوانید Control (Command در Mac) را در حالی که روی آن موجود کلیک میکنید نگه دارید.
برای اطلاعات در مورد استفاده از SQL با اتاق، به ذخیره داده ها در پایگاه داده محلی با استفاده از اتاق مراجعه کنید.
به روز رسانی برای اتصال داده ها
این بهروزرسانی شامل چندین بهبود برای اتصال دادهها است:
اکنون می توانید از یک شی
LiveData
به عنوان یک فیلد قابل مشاهده در عبارات اتصال داده استفاده کنید. کلاسViewDataBinding
اکنون شامل یک متدsetLifecycle()
جدید است که برای مشاهده اشیاءLiveData
از آن استفاده می کنید.کلاس
ObservableField
اکنون می تواند سایر اشیاءObservable
را در سازنده خود بپذیرد.می توانید پیش نمایش یک کامپایلر افزایشی جدید برای کلاس های اتصال داده خود را مشاهده کنید. برای جزئیات این کامپایلر جدید و دستورالعملهای فعال کردن آن، به Data Binding Compiler V2 مراجعه کنید.
از مزایای کامپایلر جدید می توان به موارد زیر اشاره کرد:
- کلاس های
ViewBinding
توسط افزونه اندروید برای Gradle قبل از کامپایلر جاوا تولید می شوند. - کتابخانهها کلاسهای اتصال تولید شده خود را هنگام کامپایل شدن برنامه حفظ میکنند، نه اینکه هر بار دوباره تولید شوند. این می تواند عملکرد پروژه های چند ماژول را تا حد زیادی بهبود بخشد.
- کلاس های
کامپایلر و Gradle
D8 کامپایلر پیش فرض DEX است
کامپایلر D8 اکنون به طور پیش فرض برای تولید بایت کد DEX استفاده می شود.
این کامپایلر جدید DEX چندین مزیت از جمله موارد زیر را به همراه دارد:
- دکسینگ سریعتر
- مصرف حافظه کمتر
- تولید کد بهبود یافته (تخصیص ثبت بهتر، جداول رشته های هوشمندتر)
- تجربه بهتر اشکال زدایی هنگام عبور از کد
برای دریافت این مزایا، نیازی به تغییر در کد یا گردش کار توسعه خود ندارید، مگر اینکه قبلاً کامپایلر D8 را به صورت دستی غیرفعال کرده باشید.
اگر android.enableD8
در gradle.properties
خود روی false
قرار دهید، یا آن پرچم را حذف کنید یا آن را روی true
تنظیم کنید:
android.enableD8=true
برای جزئیات، به کامپایلر جدید DEX مراجعه کنید.
قندزدایی افزایشی
برای پروژههایی که از ویژگیهای زبان جاوا 8 استفاده میکنند، قندزدایی تدریجی بهطور پیشفرض فعال است که میتواند زمان ساخت را بهبود بخشد.
شکر زدایی، قند نحوی را به شکلی تبدیل می کند که کامپایلر بتواند کارآمدتر پردازش کند.
می توانید با مشخص کردن موارد زیر در فایل gradle.properties
پروژه خود، قندزدایی افزایشی را غیرفعال کنید:
android.enableIncrementalDesugaring=false
پنجره خروجی ساده شده
کنسول Gradle با پنجره Build که دارای تب های Sync و Build است جایگزین شده است.
برای جزئیات در مورد نحوه استفاده از پنجره ساخت ساده و جدید، به نظارت بر فرآیند ساخت مراجعه کنید.
به روز رسانی دسته ای و همزمانی نمایه سازی
همگام سازی Gradle و فرآیندهای نمایه سازی IDE اکنون بسیار کارآمدتر هستند و زمان تلف شده در بسیاری از عملیات نمایه سازی اضافی را کاهش می دهند.
C++ و LLDB
ما در مراحل کدنویسی، همگامسازی، ساختن و اشکالزدایی توسعه C++ بهبودهای زیادی در کیفیت و عملکرد ایجاد کردهایم. بهبودها شامل موارد زیر است:
اگر با پروژه های بزرگ ++C کار می کنید، باید متوجه پیشرفت قابل توجهی در کاهش زمان صرف شده برای ساخت نمادها شوید. زمان همگام سازی نیز برای پروژه های بزرگ بسیار کاهش می یابد.
عملکرد هنگام ساخت و همگام سازی با CMake از طریق استفاده مجدد تهاجمی تر از نتایج ذخیره شده بهبود یافته است.
افزودن فرمتکنندهها ("چاپگرهای زیبا") برای ساختارهای داده ++C بیشتر، خواندن خروجی LLDB را آسانتر میکند.
LLDB اکنون فقط با Android 4.1 (سطح API 16) و بالاتر کار می کند.
توجه: اشکال زدایی بومی با Android Studio نسخه 3.0 یا بالاتر در ویندوز 32 بیتی کار نمی کند. اگر از ویندوز 32 بیتی استفاده می کنید و نیاز به اشکال زدایی کدهای بومی دارید، از Android Studio 2.3 استفاده کنید.
کاتلین
کاتلین به نسخه 1.2.30 ارتقا یافت
Android Studio 3.1 شامل Kotlin نسخه 1.2.30 است.
کد کاتلین اکنون با بررسی خط فرمان تجزیه و تحلیل می شود
اجرای lint از خط فرمان اکنون کلاس های Kotlin شما را تجزیه و تحلیل می کند.
برای هر پروژه ای که می خواهید لینت را روی آن اجرا کنید، مخزن Maven Google باید در فایل build.gradle
سطح بالا گنجانده شود. مخزن Maven قبلاً برای پروژه های ایجاد شده در Android Studio نسخه 3.0 و بالاتر گنجانده شده است.
ابزارهای عملکرد
نمونه فرآیندهای C++ بومی با CPU Profiler
CPU Profiler اکنون شامل یک پیکربندی پیشفرض برای ثبت ردپای نمونهبرداری شده از رشتههای اصلی برنامه شما است. میتوانید از این پیکربندی با استقرار برنامهتان بر روی دستگاهی با Android 8.0 (سطح API 26) یا بالاتر و سپس انتخاب Sampled (Native) از منوی کشویی تنظیمات ضبط نمایهگر CPU استفاده کنید. پس از آن، یک ردیابی را همانطور که به طور معمول انجام می دهید، ضبط و بررسی کنید .
میتوانید تنظیمات پیشفرض مانند فاصله نمونهگیری را با ایجاد یک پیکربندی ضبط تغییر دهید.
برای بازگشت به ردیابی رشته های جاوا، پیکربندی نمونه (جاوا) یا ابزاری (جاوا) را انتخاب کنید.
ردیابی های CPU، نتایج تخصیص حافظه، و heap dumps را فیلتر کنید
CPU Profiler و Memory Profiler شامل یک ویژگی جستجو است که به شما امکان می دهد نتایج حاصل از ضبط ردیابی روش، تخصیص حافظه یا heap dump را فیلتر کنید.
برای جستجو، روی فیلتر کلیک کنید در گوشه سمت راست بالای صفحه، درخواست خود را تایپ کرده و Enter را فشار دهید.
نکته: همچنین می توانید با فشار دادن Control + F (Command + F در مک) قسمت جستجو را باز کنید.
در برگه نمودار شعله CPU Profiler، پشتههای فراخوانی که شامل روشهای مربوط به عبارت جستجوی شما هستند برجسته شده و به سمت چپ نمودار منتقل میشوند.
برای اطلاعات بیشتر در مورد فیلتر کردن بر اساس روش، کلاس، یا نام بسته، به ضبط و بررسی ردپای روش مراجعه کنید.
تب درخواست در Network Profiler
نمایهگر شبکه اکنون شامل یک برگه درخواست است که جزئیات درخواستهای شبکه را در طول جدول زمانی انتخاب شده ارائه میکند. در نسخه های قبلی، Network Profiler فقط اطلاعاتی در مورد پاسخ های شبکه ارائه می کرد.
نمایش موضوع در نمایه شبکه
پس از انتخاب بخشی از جدول زمانی در Network Profiler ، میتوانید یکی از برگههای زیر را انتخاب کنید تا جزئیات بیشتری در مورد فعالیت شبکه در آن بازه زمانی مشاهده کنید:
- نمای اتصال : اطلاعاتی مشابه نسخههای قبلی Android Studio ارائه میکند—فایلهایی را فهرست میکند که در طول بخش انتخابی جدول زمانی در تمام رشتههای CPU برنامه شما ارسال یا دریافت شدهاند. برای هر درخواست، می توانید اندازه، نوع، وضعیت و مدت زمان ارسال را بررسی کنید.
- نمای موضوع : فعالیت شبکه هر یک از رشته های CPU برنامه شما را نمایش می دهد. این نما به شما امکان می دهد بررسی کنید که کدام یک از رشته های برنامه شما مسئول هر درخواست شبکه هستند.
بازرس چیدمان
Layout Inspector ویژگیهای جدیدی از جمله برخی عملکردهایی که قبلاً توسط Hierarchy Viewer و ابزار Pixel Perfect منسوخ شده ارائه شده بود، به دست آورد:
- دکمه های زوم و میانبرهای صفحه کلید برای پیمایش و بازرسی طرح بندی ها
- پوشش شبکه مرجع
- امکان بارگذاری یک تصویر مرجع و استفاده از آن به عنوان یک پوشش (مفید برای مقایسه طرح خود با یک ماکت رابط کاربری)
- پیشنمایش زیردرخت را برای جداسازی یک نما در یک طرحبندی پیچیده ارائه دهید
ویرایشگر چیدمان
پالت در ویرایشگر طرحبندی پیشرفتهای زیادی دریافت کرده است:
- سازماندهی مجدد دستهها برای نماها و طرحبندیها.
- دسته بندی مشترک جدید برای نماها و طرح بندی ها که می توانید با دستور Favorite به آن اضافه کنید.
- جستجوی بهبود یافته برای نماها و طرحبندیها .
- دستورات جدید برای باز کردن اسناد برای یک نمای خاص یا عنصر چیدمان.
میتوانید از دستور جدید Convert view در درخت Component یا ویرایشگر طراحی برای تبدیل نما یا طرحبندی به نوع دیگری از نما یا چیدمان استفاده کنید.
اکنون می توانید به راحتی با استفاده از ایجاد یک اتصال جدید، محدودیت هایی را برای موارد نزدیک نمای انتخاب شده ایجاد کنید دکمه های موجود در بازرس view در بالای پنجره Attributes .
Run و Instant Run
رفتار گزینه استفاده از همان انتخاب برای راهاندازیهای آینده در گفتگوی انتخاب هدف استقرار سازگارتر شده است. اگر گزینه Use same selection فعال باشد، کادر گفتگوی Select Deployment target تنها اولین باری که از دستور Run استفاده می کنید باز می شود تا زمانی که دستگاه انتخاب شده دیگر متصل نباشد.
هنگام هدف قرار دادن دستگاهی که دارای Android 8.0 (سطح API 26) یا بالاتر است، Instant Run میتواند بدون ایجاد راهاندازی مجدد برنامه، تغییرات را در منابع اعمال کند. این امکان پذیر است زیرا منابع در یک APK تقسیم شده قرار دارند.
شبیه ساز
برای جزئیات جدید و تغییرات در شبیه ساز از Android Studio 3.0، به یادداشت های انتشار شبیه ساز Android از نسخه 27.0.2 تا نسخه 27.1.12 مراجعه کنید.
پیشرفت های عمده شامل موارد زیر است:
- عکس های فوری بوت سریع برای ذخیره حالت شبیه ساز و شروع سریع تر، با قابلیت استفاده از دستور Save now برای ذخیره حالت شروع سفارشی.
- صفحه نمایش شبیه ساز بدون پنجره
- تصاویر سیستم برای Android 8.0 (سطح API 26)، Android 8.1 (سطح API 27) و پیشنمایش برنامهنویس Android P.
بهبود رابط کاربری و تجربه کاربر
نکات ابزار بیشتر، میانبرهای صفحه کلید، و پیام های مفید
ما در بسیاری از مکانها در سراسر Android Studio نکات ابزار و پوششهای پیام مفید را اضافه کردهایم.
برای دیدن میانبرهای صفحه کلید برای بسیاری از دستورات، فقط نشانگر ماوس را روی یک دکمه نگه دارید تا راهنمای ابزار ظاهر شود.
ابزارها > منوی Android حذف شد
منوی Tools > Android حذف شده است. دستوراتی که قبلاً در این منو قرار داشتند منتقل شده اند.
- بسیاری از دستورات مستقیماً به منوی Tools منتقل شدند.
- دستور Sync project with gradle files به منوی File منتقل شد.
- دستور Device Monitor حذف شده است، همانطور که در زیر توضیح داده شده است.
مانیتور دستگاه از خط فرمان در دسترس است
در Android Studio 3.1، Device Monitor نقش کمتری نسبت به قبل دارد. در بسیاری از موارد، قابلیت های موجود از طریق Device Monitor اکنون با ابزارهای جدید و بهبود یافته ارائه می شود.
برای دستورالعملهای فراخوانی Device Monitor از خط فرمان و جزئیات ابزارهای موجود از طریق Device Monitor به مستندات Device Monitor مراجعه کنید.