Briser les mythes sur les performances d'Android

Découvrez quels mythes sur les performances d'Android ont résisté à la référence

En prévision du début du cours "Développeur Android. Basique", nous invitons tout le monde à regarder une leçon ouverte sur le thème "Tests unitaires sous Android".



Nous partageons Ă©galement la traduction de documents utiles.






Au fil des ans, il y a eu de nombreux mythes sur les performances d'Android. Bien que certains mythes puissent sembler amusants ou amusants, aller sur la mauvaise voie lors de la création d'applications Android efficaces est exactement le contraire du plaisir.





MythBusters ( ). , . : , , , , . : , , . , !





1: Kotlin , Java

Google Drive Java Kotlin. 16 000 170 , 40 . , , .





, Kotlin .





, . , 2%, .





, 25%. , .





Kotlin: , R8, Kotlin.





2:

public . , getFoo , :





public class ToyClass {
   public int foo;
   public int getFoo() { return foo; }
}
ToyClass tc = new ToyClass();
      
      



public tc.foo, .





Jetpack Benchmark Pixel 3 Android 10. . - , , .





?





, , . , Android (ART) . , , JIT AOT, . , Kotlin — tc.foo — . , , ART : .





Kotlin public, . private — , . .





3: - ,

-, API, , .





, . API map-reduce.





ArrayList<ToyClass> array = build();
int sum = array.stream().map(tc -> tc.foo).reduce(0, (a, b) -> a + b);
      
      



, .





-.





ToyClassToInteger toyClassToInteger = new ToyClassToInteger();
SumOp sumOp = new SumOp();
int sum = array.stream().map(toyClassToInteger).reduce(0, sumOp);
      
      







: - toyClassToInteger, , - sum.





, , , : , , .





? Jetpack Benchmark Pixel 3 Android 10 .





, , .





, .





, : , .





4: — ,

Android . , .





. . , Android 10 Gen-CC. , Android 11.





, H2, 170%, , Google Sheets, — 68%.





, , ?





, , , , , . , , , , . - :





Pool<A> pool[] = new Pool<>[50];
void foo() {
   A a = pool.acquire();
   …
   pool.release(a);
}
      
      



, , .





, : , , .





Pixel 2 XL Android 10, . , , .





:





:





, . , , .





, , , , . , - , . , , , , .





, ? . , , . -, , :





  • .





  • , .









.





, , — , .





5: —

, (debuggable), , , , . , . , .





, . .





, , . 50% . , 100% . , , , .. , , .





, , .





. , , . , , , .





1: Multidex: ?

APK- . dex - . Multidex — , , .





, - ? , dex-? - , , dex- dex .





dex- , . dex-. dex- , .





, .





dex- . : . , dex- , .





  APK ?





, APK, . , , dex-, dex- .





, dex-. . , R8 D8. dex-, . , dex-, , startup- . , dex- , , .





2:

JIT-, ART, , , . , /JIT-, , , . , ART, Google. , ART JIT-. , .





, :





  • , , , .





  • , , , Android 5 .





  • .





, .





, — R8. , , Android App Bundle Play Feature Delivery. , , .





Android, , . , , .





, , . , Android Studio , . , , Perfetto Systrace. , , , .





Jetpack Benchmark , . , , , . , : .





Java Oracle / .






"Android Developer. Basic".









"Unit- Android".












All Articles