TLDR: Dalvik non era bravo con l'allocazione della memoria e Enum
utilizza più memoria di int
. Android Lollipop ha sostituito Dalvik con ART che non presenta gli stessi limiti. Pertanto questa raccomandazione non è più pertinente.
La lunga risposta:
Wow! 8 anni, 5 risposte e molti commenti dopo il vero motivo non viene ancora affrontato.
Nei giorni pre-lollipop per Android, Dalvik era il processo utilizzato dalla VM. Dato che una piccola quantità di memoria era disponibile per le applicazioni da utilizzare durante quel periodo, Dalvik aveva molti vincoli di memoria. Per l'allocazione della memoria Dalvik ha dovuto camminare sul mucchio e trovare spazio. Anche l'heap si frammenterebbe nel tempo. Dalvik non poteva deframmentare, quindi si sarebbe allocato nel tempo e alla fine sarebbe rimasto senza spazio.
Evita le enumerazioni in cui hai solo bisogno di Ints
viene dai giorni di Dalvik perché Enum
è molto più grande di un int
e l'allocazione di memoria era molto costosa.
Avanti veloce oggi, Dalvik è stato sostituito da ART. ART è uscito in KitKat ed è predefinito da Lollipop.
ART è stato creato da zero non per ottimizzare la memoria ma per ottimizzare le prestazioni. È inoltre ottimizzato per allocazioni e raccolte. Il motivo è che la memoria è riservata ai grandi oggetti. Invece di mettere tutto nello stesso mucchio, e quindi dover trovare spazio per oggetti di grandi dimensioni in mezzo a tutti quelli piccoli, ART mette tutti gli oggetti di grandi dimensioni e le bitmap in un mucchio separato. E poi i piccoli oggetti vanno nell'heap separato. Inoltre può deframmentare.
Dopo ART, se usi Enum
Android, non ti interessa e questo è il motivo per cui la raccomandazione è sparita ora.
Questo viene da Chet Haase su Google. Consiglio di trovare il suo discorso sull'I / O di Google e di guardare l'intero video. Contiene molte informazioni utili e approfondimenti su Android.