Qual è il requisito di sistema per lo sviluppo di ROM Android?
Originariamente inviato in Best Hardware for Custom Android ROM Development
Costruire Android dal suo codice sorgente non è per tutti. Perché? Perché richiede tonnellate di pazienza e quantità spropositate di memoria e potenza di calcolo. Sei consapevole che il repository AOSP è, a partire dall'inverno 2017, di almeno 31 GB, anche se si esegue il comando repo init con l'opzione --depth impostata a 1? E sapevate che l'output del processo di compilazione è quasi 8-9 GB? Bene, ora lo sapete. Quindi, pensate che un portatile ordinario sia in grado di gestire questo tipo di carico? Risponderemo a questa domanda un po' più tardi.
Per ora, vediamo qual è la configurazione hardware consigliata per lo sviluppo di ROM Android personalizzate. Per iniziare, avrete bisogno di circa 9-12 GB di RAM. AOSP usa la toolchain Jack per la compilazione, che è un'enorme quantità di memoria. Inoltre usa javadoc in modo estensivo, che sembra a volte consumare 10-12 GB di memoria da solo.
Ora, il problema è che Jack funziona come un server, e una volta che consuma un po' di memoria, non la rilascia abbastanza presto. Ciò significa che Jack e javadoc possono potenzialmente funzionare in parallelo a volte. Quando ciò accade, incontrerete errori di allocazione della memoria anche con 10+ GB di RAM. Potreste aggiungere più RAM, ma, secondo me, non è sempre necessario. Avete la possibilità di utilizzare i file di swap. Raccomando di avere da 6 a 8 GB di spazio di swap disponibile durante le compilazioni.
Utilizzare un normale disco rigido per lo spazio di swap va bene, ma usare un SSD è molto meglio perché la sua latenza sarebbe molto minore. Infatti, l'SSD non deve servire solo come spazio di swap. Può raddoppiare come spazio di archiviazione per la cache del compilatore, migliorando drasticamente i tempi di compilazione. Quanto può essere grande la cache del compilatore? L'ho vista crescere fino a circa 20 GB. Se sto costruendo la ROM per più dispositivi, può facilmente raggiungere anche i 50 GB.
Infine, avrete bisogno di un buon processore. Fortunatamente, i buoni processori non sono così rari. La maggior parte dei portatili ha un processore quad core, e questo è abbastanza buono.
Quindi, per riassumere, per una build fluida, veloce e senza errori, i requisiti di sistema sono:
- circa 12 GB di RAM DDR4
- circa 100 GB di spazio SSD
- un processore Intel Quad Core i7
Ci sono portatili che soddisfano questi requisiti. Certamente! Eccone alcuni che puoi trovare su Amazon:
La maggior parte di loro sono abbastanza costosi. Sì, apparentemente 500 dollari o più è quello che ti serve se vuoi diventare uno sviluppatore di ROM personalizzate a tempo pieno. Qualsiasi cosa di meno, e probabilmente finirete per passare le vostre giornate ad aspettare che la compilazione venga completata, incontrando strani errori - come "Jack server connection timed out", "communication error with Jack server" e "native memory allocation failed to allocate (X) bytes"- e talvolta eseguendo il make clobber per pulire le cose e riavviare la compilazione da zero.
C'è speranza
Non scoraggiatevi però se non avete un tale portatile. Se avete davvero la pazienza, e intendo essere pronti a tempi di compilazione di oltre 20 ore, vi assicuro che potete compilare AOSP anche solo con 4 GB di RAM, un normale disco rigido e un processore Intel i3. Io lo facevo fino a poco tempo fa. Sì, tutto quello che dovete fare è allocare circa 15 GB di spazio su disco fisso per lo swap e circa 40 GB di spazio su disco fisso per la cache. Una volta fatto questo, e avviata la compilazione, potreste ancora incontrare uno o due intoppi sotto forma di "errori di comunicazione con il server Jack". Quando succede, puoi semplicemente uccidere il server Jack e riavviare la compilazione da dove si è fermata. Durante la compilazione, potreste vedere che l'utilizzo della CPU è inferiore all'1-2% e l'utilizzo della memoria è del 99,5%, rendendo essenzialmente il vostro portatile inutilizzabile. Ma lasciate che vada avanti. Alla fine di circa 20 ore, avrete costruito con successo la vostra ROM. Ma, ovviamente, non si può fare alcuno sviluppo significativo con quel tipo di tempi di compilazione. Voglio dire, immaginate di fare un piccolo cambiamento nel codice e aspettare 6-10 ore per testarlo. Oh, sì, se non lo sapeste già, dopo una build completa, le build successive saranno molto più veloci.
Articoli simili
- Quale è più veloce, 4GB RAM con 32GB ROM o 4GB ram con 64GB ROM? La differenza di ROM è importante o si tratta solo di RAM?
- Qual è il requisito minimo di sistema per il photo editing e il video editing?
- Qual è la differenza tra una ROM Android stock e una ROM personalizzata?
- Qual è il requisito minimo di età per i tornei esports?