Sobes.tech
Middle+

თუ თქვენ გეცოდინებათ, რომ ძველი პროექტის ფარგლებში აპლიკაციის დაწყების დრო გრძელია, რა გააკეთებდით?

sobes.tech AI

პასუხი AI-სგან

Android Studio (CPU Profiler, Startup Profiler) გამოყენებით პროფილირება გავაკეთე, რათა გამოვავლინო ბლოკირების წერტილები, CPU-ის დატვირთვა დავალეულიყავი, ქსელის, დისკის და ნაკადების ბლოკირების საკითხები შევისწავლო.

ოპტიმიზაციისთვის ვიყენებ შემდეგ მიდგომებს:

  • დაგვიანებული ინიციალიზაცია: არასაჭირო დავალებების გადატანა დაწყების შემდეგ ან მოთხოვნის მიხედვით.
  • მონაცემთა ბაზასთან მუშაობის ოპტიმიზაცია: ინდექსირება, სარეკლამო ოპტიმიზაცია, მონაცემების გადატანა.
  • ხედვის ჰიერქარის ზომის შემცირება: <include>, <merge>, ConstraintLayout გამოყენება.
  • ფონის ნაკადებისა და ასინქრონული ოპერაციების ოპტიმიზაცია: WorkManager, კორუტინები, სიცოცხლის ციკლის მართვა.
  • APK-ის ზომის შემცირება: არასაჭირო რესურსების წაშლა, გრაფიკის ოპტიმიზაცია, ProGuard/R8.
  • მონაცემების ქეშირება: ქსელის მოთხოვნები, მძიმე გამოთვლები.
  • მთავარი ნაკადის ბლოკირების ანალიზი და გამოსწორება.

სამუშაო განმეორებით განხორციელდება: ზომა, ოპტიმიზაცია, ახალი ზომა. განსაკუთრებული ყურადღება მიექცევა მთავარ ნაკადს და დავალებებს, რომლებიც შესრულდება Application.onCreate() და პირველ Activity.onCreate()-ში.