2011-01-08 14 views
22

Su un separate thread Ho dimostrato la mia ignoranza dei tipi di memoria chiedendo il modo migliore per copiare un file in "memoria interna" e si è avvisato che non era una buona idea e che sarebbe meglio leggere il file in "RAM". Ora sto cercando di capire in che modo questi due tipi di memoria sono correlati e come possono essere utilizzati.Tipi di memoria Android (RAM v Memoria interna)

Capisco che "la memoria interna è percepita come il flash utilizzato per memorizzare APK, immagini ROM, ecc."

Le specifiche per il mio HTC Hero dicono che "ROM: 512 MB, RAM: 288 MB" non ha alcuna indicazione su come la RAM è suddivisa.

Sul telefono la pagina "Impostazioni" -> "SD & di memorizzazione del telefono" fa semplicemente riferimento a "Scheda SD" e "Memoria interna telefono" e per quest'ultimo mostra solo un importo per "Spazio disponibile".

Il riferimento Android per Data Storage menziona "Memoria interna". Questo è un posto dove "puoi salvare i file". La pagina menziona anche i file di database SQLite che penso possano essere memorizzati nella "Memoria interna". Tuttavia, la pagina non sembra offrire alcuna spiegazione della suddivisione della RAM tra Storage interno e un altro tipo (presumibilmente più dinamico).

Esiste qualche tipo di divisione dinamica della RAM totale (288 MB sull'eroe) in due sottodivisioni utilizzabili in modi diversi? In tal caso, dove è spiegata la documentazione di Android?

risposta

40

Capisco che "la memoria interna è percepita come il flash utilizzato per memorizzare APK, immagini ROM, ecc."

Le specifiche per il mio HTC Hero dicono che "ROM: 512 MB, RAM: 288 MB" non ha alcuna indicazione su come la RAM è suddivisa.

La RAM non è "suddivisa" su alcun tipo di base permanente. La RAM viene utilizzata eseguendo processi in base alle necessità. La cosa più importante per le app SDK è che c'è un limite superiore alla quantità di RAM che un processo può consumare: sul tuo Hero, dovrebbe essere 16 MB.

al telefono il "Impostazioni" -> "SD & memoria telefono" pagina si riferisce semplicemente a "scheda SD" e "memoria interna del telefono" e per la seconda mostra solo un importo per "Spazio disponibile".

"Memoria interna telefono" fa riferimento alla porzione di spazio flash integrato riservato ai file APK, ai database, alle preferenze e ad altri file locali.

La pagina menziona anche i file di database SQLite che penso possano essere memorizzati nella "Memoria interna".

Corretto.

Tuttavia, la pagina non sembra offrire alcuna spiegazione della suddivisione della RAM tra Memoria interna e un altro tipo (presumibilmente più dinamico).

RAM non ha nulla a che fare con la memoria interna.

C'è qualche tipo di divisione dinamica della RAM totale (288 MB sull'eroe) in due sottodivisioni utilizzabili in modi diversi?

No.


Facciamo un passo indietro di un passo.

RAM è RAM. La RAM sul telefono non è significativamente diversa dalla RAM sul desktop, sul notebook, sul netbook, ecc. Questo costrutto è rimasto relativamente stabile nel suo utilizzo negli ultimi decenni, in particolare una volta che siamo fuggiti dal mainframe. I programmi in esecuzione (OS e app per utente finale) consumano RAM, ma solo mentre sono in esecuzione. E la RAM viene cancellata da un riavvio, dai telefoni e dal desktop.

Ora, il desktop, il notebook o il netbook medio dispongono anche di un disco rigido per una maggiore capacità di archiviazione permanente rispetto alla RAM. Non esiste un termine assoluto per l'equivalente in Android: io tendo ad usare "memoria flash integrata" per questo, altri lo chiamano "memoria interna", anche se come vedrai, quest'ultimo termine è pieno di confusione. Proprio come un disco rigido, la memoria flash integrata viene utilizzata per il sistema operativo (noto anche come firmware in Android), per i programmi per gli utenti finali (ovvero i file APK in Android) e per i dati dell'utente finale (ovvero database, preferenze condivise, e altri file memorizzati dove si trova getFilesDir()).

La memoria flash di bordo è suddivisa in poche partizioni. Se sei un utente Windows, le partizioni dicono fondamentalmente "il tuo disco rigido è suddiviso in C :, E :, e F: unità". In Android, una partizione è dedicata al firmware e un'altra partizione (la "partizione dati") è dedicata ai programmi e ai dati dell'utente finale. (NOTA: la descrizione precedente non è del tutto accurata, ma le discrepanze vanno ben oltre lo scopo di questa risposta).

Quindi, con tutto questo in mente:

  • Il tuo 512 MB di ROM è la memoria flash on-board, hearkening tornare al vecchio "flash ROM" termine
  • tua "memoria interna del telefono" in imposta lo spazio disponibile nella partizione dati per le app e i dati dell'utente finale (uno dei motivi per cui non uso questo termine per fare riferimento allo storage flash integrato nel suo insieme)
  • La tua "scheda SD" è più genericamente indicato in Android come memoria esterna, che su molti dispositivi è una qualche forma di scheda SD, anche se potrebbe essere solo un'altra partizione della scheda di bordo memoria flash designata come servizio nel ruolo di memoria esterna
+1

Grazie davvero per questa risposta rapida e molto utile. Penso che una cosa che mi ha particolarmente confuso era che pensavo che la ROM ("sola lettura") non fosse scrivibile. (Se si tratta di RAM flash, devo dire che la ROM è un modo molto confuso per descriverlo!) Ho capito correttamente che la "memoria SD e telefono" mostrata nelle Impostazioni del mio telefono fa riferimento a parte della "ROM" e che le Impostazioni le pagine non forniscono informazioni sulla RAM? La gestione della RAM è stata lasciata completamente al sistema operativo ed è completamente invisibile all'utente e al programmatore? – prepbgg

+2

L'articolo di Wikipedia su "Memoria di sola lettura" dice "tipi più moderni come EPROM e flash EEPROM possono essere cancellati e riprogrammati più volte, sono ancora descritti come" memoria di sola lettura "(ROM) [citazione necessaria] perché il processo di riprogrammazione è generalmente poco frequente, relativamente lento e spesso non consente scritture di accesso casuale a posizioni di memoria individuali. " Posso capire perché ho pensato che questo * NON * sarebbe il luogo in cui sono archiviati i dati dell'utente! – prepbgg

+1

@prepbgg: "Se questa è la memoria flash, devo dire che la ROM è un modo molto confuso per descriverlo!" - Non esiste una cosa come "flash RAM" AFAIK."Ho capito correttamente che la" memoria SD e telefono "mostrata nelle impostazioni del mio telefono fa riferimento a parte della" ROM "e che le pagine delle impostazioni non forniscono informazioni sulla RAM?" -- corretta. "La gestione della RAM è stata lasciata completamente al sistema operativo ed è completamente invisibile all'utente e al programmatore?" - generalmente, si. – CommonsWare

Problemi correlati