Android Studio 3.5 Canary ამატებს "Apply Changes", Instant Run ჩანაცვლებას

Android Studio 3.5 წარმოგიდგენთ Apply Changes-ს, პოპულარული აპლიკაციის განვითარების ხელსაწყოს Instant Run ფუნქციის მემკვიდრეს.

Android Studio 3.5 (ამჟამად Canary-სა და Dev-ის არხებზე) ახლა გთავაზობთ ახალ გზას თქვენი აპში კოდის ცვლილებების დასაყენებლად და მათი ეფექტის დანახვისას აპის გადატვირთვის გარეშე. უბრალოდ "გამოიყენე ცვლილებები", ის არის "მყისიერი გაშვების" ფუნქციის მემკვიდრე წინა ვერსიებში. Android Studio.

Google-ის ანდროიდის დეველოპერების ბლოგი ამბობს შემდეგი ცვლილებების გამოყენების შესახებ:

Apply Changes გაძლევთ საშუალებას შეიყვანოთ კოდისა და რესურსების ცვლილებები თქვენს გაშვებულ აპში თქვენი აპის გადატვირთვის გარეშე და, ზოგიერთ შემთხვევაში, მიმდინარე აქტივობის გადატვირთვის გარეშე. Apply Changes ცვლის Instant Run-ს სრულიად ახალი მიდგომით კონსტრუქციის ოპტიმიზაციისთვის. იმის ნაცვლად, რომ გადაწეროთ თქვენი APK-ის ბაიტიკოდი აგების დროს, Apply Changes ხელახლა განსაზღვრავს კლასებს ფრენის დროს, Android 8.0 (API დონე 26) ან უფრო მაღალ ვერსიებში მხარდაჭერილი გაშვების დროის ინსტრუმენტაციის გამოყენებით.

გარდა ამისა, Android Studio ახლა მოგთხოვთ გადაწყვიტოთ გადატვირთოთ თუ არა თქვენი აპი ან აქტივობა, როდესაც აღმოაჩენს, რომ ცვლილებები არ არის თავსებადი Apply Changes-თან. ეს დამატებითი კონტროლი მოგცემთ უფრო თანმიმდევრულ და პროგნოზირებად გამოცდილებას Instant Run-ის ქცევასთან შედარებით.

ბლოგის პოსტი აგრძელებს ახალი ფუნქციონირების შეზღუდვების ჩამონათვალს. მაგალითად, მოწყობილობა, რომელზეც ამოწმებთ თქვენს აპს, სულ მცირე, უნდა იყოს გაშვებული Android 8.0 Oreo (API დონე 26) და არის გარკვეული კოდის ცვლილებები, რომლებიც კვლავ მოითხოვს თქვენი აპის გადატვირთვას. როგორც "მყისიერი გაშვების შემთხვევაში", "ცვლილებების გამოყენება" აიძულებს თქვენს აპს გადატვირთოს, თუ:

  • კლასის, მეთოდის ან ველის დამატება ან წაშლა
  • მანიფესტის შეცვლა
  • მეთოდის ხელმოწერების შეცვლა
  • მეთოდების ან კლასების მოდიფიკატორების შეცვლა
  • კლასების სახელების გადარქმევა
  • კლასის მემკვიდრეობის შეცვლა
  • რესურსის დამატება ან წაშლა

„ცნობილი საკითხების“ ქვეშ, ბლოგ-პოსტში ნათქვამია, რომ მას შემდეგ, რაც Google-მა თავდაპირველად პრიორიტეტად მიიჩნია სტაბილურობა, ვიდრე შესრულება ამ ახალ ფუნქციაში, „ცვლილებების გამოყენება“ ზოგჯერ გაშვებული იქნება. უფრო ნელა, ვიდრე მისი წინამორბედი ფუნქცია "მყისიერი გაშვება". ასევე, x86_x64 ემულატორის სურათები არ არის მხარდაჭერილი და გამართვის მიზნით, მხოლოდ Android Pie (API დონე 28) არის მხარი დაუჭირა. შეზღუდვებისა და ცნობილი საკითხების სრული სია შეგიძლიათ იხილოთ წყაროს ქვემოთ მოცემულ ბმულზე.

„ცვლილებების გამოყენებასა“ და „მყისიერ გაშვებას“ შორის განსხვავების უფრო დეტალური აღწერისთვის, ამის შესახებ Google-ის თანამშრომელმა Android Studio-ს გუნდში განაცხადა. Reddit:

ის აკეთებს რაღაც ძალიან, ძალიან განსხვავებულს. Instant Run-მა ძალიან სპეციფიკური გავლენა მოახდინა build-ზე, ინსტრუმენტირება მოახდინა თითოეული თქვენი კლასების კომპილაციის დროს, რათა მოამზადოს ისინი სამუშაო დროის განმავლობაში კლასის ახალი ვერსიით ჩანაცვლებისთვის. ის ასევე ყოფს თქვენს APK-ს რამდენიმე APK-ად, რათა ხელახლა ატვირთოს თქვენი აპლიკაცია თანდათანობით.

Apply Changes-ს არაფერი მოსწონს. თქვენი APK იგივეა, მიუხედავად იმისა, იყენებთ ცვლილებების გამოყენებას თუ არა. ამის ნაცვლად, ის ეყრდნობა ART VM-ის ახალი გაშვების ინსტრუმენტაციის შესაძლებლობებს კლასების დინამიური გადატვირთვისა და აპლიკაციის მუშაობის დროს მათი ჩანაცვლებისთვის. ამიტომ ის მოითხოვს Android-ის ბევრად უფრო ახალ ვერსიებს.

მოსალოდნელია, რომ „ცვლილებების გამოყენება“ საბოლოოდ ჩაანაცვლებს „მყისიერ გაშვებას“ ბეტა და სტაბილურ არხებში, რადგან Google აუმჯობესებს მის შესრულებასა და სტაბილურობას.


წყარო: Android Developers Blog