2013-03-12 17 views
16

Io con qualche membro del team di sviluppare un'applicazione Android che raccoglie dati sul campo da cellulare.Come ottenere il requisito hardware minimo per l'applicazione Android

Ora questa applicazione è in fase di produzione. Quindi le persone comuni useranno questa applicazione. Abbiamo anche bisogno di creare una Documentazione che spieghi tutte le cose presenti nella mia applicazione Android e qual è il requisito hardware minimo per eseguire questa applicazione senza errori.

Ora come so qual è il requisito hardware minimo.

In sostanza nella mia applicazione su di quattro TextField, Tre Spinner, Date, EditText e due ImageView.

Quindi, come faccio a sapere qual è il requisito di memoria minimo per eseguire questa applicazione.

Ho provato questa applicazione in uno dei dispositivi mobili in cui quasi tutta la memoria è utilizzata da qualche altra applicazione. Lì la mia applicazione non è in grado di acquisire foto. E quando rimuovo alcune applicazioni, la mia applicazione funziona correttamente.

Ecco perché voglio sapere qual è il requisito minimo di memoria per eseguire la mia applicazione.

+0

L'app utilizza la fotocamera? –

+0

ya questa applicazione utilizza la fotocamera. Servizio di rete, database SQLite, GPS via satellite e dal fornitore di servizi .... –

risposta

2

Sembra che garantito che qualsiasi processo in Android avrà almeno 16 MB di memoria, la maggior parte dei dispositivi moderni consentono mucchio crescere fino a 24 + MB

si prega di vedere la descrizione di http://developer.android.com/reference/android/app/ActivityManager.html#getMemoryClass()

gestione della memoria tutto il il lato OS, e ci sono priorità per processi e thread descritti in http://developer.android.com/guide/components/processes-and-threads.html#Lifecycle

quindi, se la tua app è in primo piano, molto probabilmente hai abbastanza risorse per gestire l'immagine dalla fotocamera.

quale API utilizzate per acquisire l'immagine?

2

Il modo migliore per scoprire se l'app verrà eseguita su determinati hardware, è testare su tale hardware. Chiedi ai tuoi amici se hanno vecchi telefoni Android in giro e testa la tua app su di loro.

Nel peggiore dei casi, rendere più dispositivi virtuali Android con memoria variabile. Attenzione però, l'emulatore di Android è deludentemente lento, anche con l'accelerazione hardware.

2

Come dice @veon, è possibile effettuare alcune stime. Tuttavia, sarà sempre un po 'imprevedibile perché vuoi sapere quanto userà in contesti diversi e avrai bisogno che gli utenti sappiano l'uso di altre app sui loro telefoni.

A quanto ho capito, ciò che è necessario principalmente fornire è una documentazione chiara. Potrebbe essere molto più facile (per voi e per tutti) di documentare come segue:

Questa applicazione funziona su tutti i più recenti telefoni Android standard di (versione androide XXX e superiore). Tuttavia, se altre applicazioni sono in esecuzione , in particolare quelle in memoria sono in esecuzione, è possibile che le prestazioni di siano influenzate. Se si riscontrano problemi di prestazioni, , rimuovere le altre applicazioni che sono pesanti in memoria e processi. Se hai bisogno di aiuto per determinarlo, ti preghiamo di usare un'applicazione come ZDbox per aiutarti.

Per riferimento, non ho collegamenti a ZDbox, lo sto solo usando come esempio.

10

Requisiti minimi dipenderanno, e saranno per lo più comprendere il test e la documentazione dei seguenti punti:

  1. livello di API: Versione minima Android supportati, il suo lo più conosciuto da parte dello sviluppatore. Ci sono stati molti cambiamenti importanti tra le API in Android. le librerie di supporto v4 e v7-compat aiutano molto, ma non coprono tutti gli aspetti.

  2. Capacità dispositivo: annota tutte le funzioni utilizzate dall'app. (come ha touch screen, ha fotocamera, accelerometro, connettività di rete, ecc). Fortunatamente, puoi dichiararlo in App manifest (uses-feature) e Play Store filtrerà i dispositivi non supportati.

  3. RAM: Usare DDMS/Android Studio per vedere l'utilizzo della memoria in tempo reale, su emulatore e su un dispositivo reale. Prova ad usare tanto quanto ram che puoi usare, attivando varie funzioni dell'app, continuando a farlo funzionare per lunghi intervalli di tempo. Prendi l'utilizzo minimo e massimo come stima. Anche gli strumenti DDMS come TraceView ecc consentono di vedere le assegnazioni degli oggetti su heap, thread e metodi di profilazione. Esegui Monkey Tool per lunghi periodi di tempo per sottolineare l'app.

  4. Velocità CPU: SE l'applicazione fa di calcolo intensivo, la conversione dei dati, ecc, si potrebbe desiderare di programmare alcuni registri di data e ora in tale codice informatico. Assicurati di impostare la velocità della CPU in modo tale che qualsiasi elaborazione debba essere eseguita, venga completata in un tempo sufficiente, senza che il dispositivo si ritardi troppo. Anche in caso di rendering visuale, (giochi) una buona frequenza dei fotogrammi è il fattore principale. In questo caso è possibile confrontare i dispositivi reali per i frame rate e scegliere i chipset di fascia alta. Puoi anche consigliare utenti per dispositivi multi-core.

  5. CPU/GPU Compatibilità: Un altro dettaglio importante è che se un App ha il codice C/C++, che il codice potrebbe non funzionare su alcuni dei tipi di CPU (MIPS, ARM o x86). Lo stesso vale per le app che utilizzano le versioni OpenGL ES e le estensioni disponibili. I dispositivi hanno un diverso chip-set grafico/cpu.

  6. Disk: Stimare la dimensione delle app dopo l'installazione, Si noti che il requisito minimo disco per App è lo spazio necessario per memorizzare l'applicazione stessa, in modo che possa, almeno dall'inizio, e non include le cache, database o il contenuto dell'utente creato durante l'utilizzo.

  7. Dimensioni schermo: Sebbene sia sempre consigliabile un'interfaccia utente reattiva e flessibile, l'app potrebbe essere utilizzabile solo con determinate dimensioni dello schermo. Quindi, le dimensioni dello schermo compatibili possono essere prese in considerazione.

  8. Quello che non si può controllare: Ricorda che hai alcun controllo su ciò altro Apps utente potrebbe funzionare, così, la sua cassetta di sicurezza a dichiarare che la vostra applicazione richiede questo molto gratuito ram sul dispositivo, e supponendo lo scenario migliore, dichiarare che il dispositivo ha almeno una ram installata. Ad esempio, hai notato che l'app impiega 200 mb quando è esaurita, quindi il requisito sarebbe solo di 512mb + dispositivi. Inoltre, non è possibile controllare la dimensione della sd-card che l'utente avrà, quindi l'App dovrebbe comunicare immediatamente all'utente che non può funzionare quando il disco è pieno.

Infine, un buon test è ciò che trasforma le stime in veri e propri punti di riferimento. Ed è meglio basare i requisiti sui benchmark invece sulle sole stime.

UPDATE:

C'è qualche API o classe da Android che danno le informazioni che cosa è il requisito minimo di memoria a seconda di come possa campi Sono utilizzare nella mia richiesta e che il permesso che sto prendendo in prestito il telefono cellulare .

  1. API non può prevedere con precisione di esecuzione. Ci sono molti if e else nel codice, oltre all'input dell'utente, non è possibile prevedere quale percorso esatto seguirà la creazione e l'esecuzione dell'oggetto. È possibile monitorare esternamente il runtime utilizzando strumenti come DDMS.

  2. A differenza di Apple, Android è un sistema aperto, le possibilità dell'hardware del dispositivo, che i produttori sono liberi di scegliere, sono enormi. Aggiungete a ciò le personalizzazioni che fanno nella ROM del loro dispositivo. Nessuna API comune terrà traccia di tutto ciò. Basta attenersi a API Android e specifiche standard, evitare l'utilizzo di API nascosto ecc

+0

Penso che questa sia una buona risposta tra tutte le altre. Ma qui ho bisogno di esplorare tutte le informazioni riguardanti la mia applicazione provando ancora e ancora su diversi dispositivi e sull'emulatore. C'è qualche API o classe di Android che fornisce le informazioni quale è il requisito minimo di memoria a seconda di come i campi che sto usando nella mia applicazione e quale sia il permesso che sto prendendo nel telefono cellulare. –

+0

@VinitVikash risposta aggiornata. –

1

Ecco perché voglio sapere che cosa è il requisito minimo di memoria per eseguire la mia applicazione.

Utilizzare lo strumento di monitoraggio da little eye labs. Controlla il consumo energetico/il consumo di memoria/il consumo di CPU/l'attività di rete della tua app tra other things. Puoi download per una prova di 30 giorni. Questo dovrebbe darti un'idea chiara delle risorse che la tua app consuma. Devo dire però che di solito le app non vengono rilasciate con una serie di requisiti hardware. Tieni la memoria/l'uso della batteria sotto controllo e dovresti stare bene.

Per quanto riguarda la memoria insufficiente, ciò si verifica quando si visualizzano le immagini riprese dalla fotocamera o la stessa fotocamera abbassa l'app? Stai rilasciando risorse detenute dalla fotocamera? Date un'occhiata a questa domanda - Android camera out of memory exception

+0

Questa risposta contiene un collegamento morto. –

3

domanda si dovrebbe chiedere la vostra auto

1. Quali sono i miei requisiti di memoria? Hai bisogno di molta memoria (non fisica è in heap) per elaborare i dati o è minimo? Ora un giorno la maggior parte dei dispositivi viene fornita con 64 MB di heap, ma questo varia da produttori a produttori. Anche per lo stesso livello API è diverso.Trova il tuo minimo e poi assicurati di avere quella quantità di memoria disponibile.

Per monitorare la memoria si sta consumando al momento del check runtime this

per scoprire la quantità di memoria heap disponibile al momento del check dispositivo corrente this e this.

Ricorda che Android non è come Windows e ogni app inizia con la stessa quantità di memoria heap ed è costante per ogni app su quel dispositivo. Ciò significa che le app non possono crescere oltre questa memoria disponibile. È possibile richiedere memoria aggiuntiva con questo tag in manifest android:largeHeap="true" ma questa funzione non è disponibile per la versione del sistema operativo precedente alla 3.0.

Ho provato questa applicazione in uno dei dispositivi mobili in cui quasi tutta la memoria è utilizzata da qualche altra applicazione. Lì la mia applicazione non è in grado di acquisire foto. E quando rimuovo alcune applicazioni, la mia applicazione funziona correttamente.

Sopra ipotesi è piuttosto confusa, perché, quando la vostra applicazione in esecuzione Android mettere tutti dall'altra parte app che significa che la vostra applicazione avrà memoria definita da voi Mucchio dimensioni, e se OS pensato che aveva bisogno di più memoria o non è riuscito a allocare più ucciderebbe quei processi. Android dà alta priorità all'attività attualmente in esecuzione. Quindi, se stai interagendo con un'app, è altamente improbabile che abbia meno memoria della dimensione dell'heap. potrebbero avere qualche motivo diverso per avere problemi con altre app.

2. Quali sono i miei requisiti API? Se si utilizza un'API speciale che non è disponibile per le API precedenti e il livello, si hanno due opzioni o si dice che l'app semplicemente non supporta tale versione dell'API o si può eseguire il porting di quella specifica funzionalità.

3. Quali sono i miei requisiti hardware? Chiediti se stai utilizzando software o hardware speciali, se quello speciale è disponibile per tutti i dispositivi o no? Esempio, NFC, bluetooth.

4. Quali sono i miei requisiti di visualizzazione? Questa app è solo per dispositivi mobili o sia per dispositivi mobili che per tablet? Che dire di quei 7 pollici che cadono tra tablet e cellulare.

5. Quali sono i miei requisiti di localizzazione? Questa app si basa su qualsiasi set di caratteri speciali? Cosa succede se un determinato dispositivo non ha quei caratteri.

E, FYI quantità di oggetto che hai menzionato che non dovrebbe occupare più di pochi MB. Ma attento quando si lavora con bitmap. Read this

Problemi correlati