Autore Topic: Scrivere nello sfondo dell'app la memoria libera prima e dopo ram boost  (Letto 1079 volte)

Offline punticci

  • Utente junior
  • **
  • Post: 78
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    nexus 4
Giorno a tutti, ho creato una banalissima app che mi lancia un comando UNIX per la cancellazione della cache inutilizzata e liberare memoria RAM (quello che fa RAM booster praticamente) Allora, premetto che di Android ancora ne so veramente poco a livello di programmazione quindi non picchiatemi xD. Ho creato anche un toast che al click del bottone che mi esegue l'operazione mi fa vedere quanta memoria ho libera. Ok e fin qui ci siamo.. Vorrei però poter fare in modo di visualizzare, ad esempio scritta sullo sfondo dell'app, la memoria libera prima e dopo aver premuto il pulsante. esattamente come ram booster. Come potrei fare a livello pratico? Un'altra cosa, io come detto in precedenza utilizzo comandi UNIX (dato che ci lavoro) e questo è il comando che utilizzo :
Codice: [Seleziona]
echo 3 > /proc/sys/vm/drop_caches. Questo ha bisogno dei diritti di root quindi prima devo dargli un bel "su" e poi tutto funziona come deve. Ok perfetto ma mi chiedo, c'è un comando altrernativo e senza bisogno di root? Anche in java non necessariamente UNIX. Grazie.

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Scrivere nello sfondo dell'app la memoria libera prima e dopo ram boost
« Risposta #1 il: 16 Maggio 2013, 13:09:43 CEST »
0
Solo root può eseguire quel comando con successo, sia dalla riga di comando, sia da un eventuale programma in Java o in C o in C++, la protezione è a livello di sistema operativo non del API.

In Java API di Android mette a disposizione una classe per poter eseguire i comandi da shell:

Runtime | Android Developers

anche se quel comando è più facile in Java aprire il file e scrivere il carattere '3'.
adb logcat | tee /tmp/logcat | grep TAG

Offline punticci

  • Utente junior
  • **
  • Post: 78
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    nexus 4
Re:Scrivere nello sfondo dell\'app la memoria libera prima e dopo ram boost
« Risposta #2 il: 16 Maggio 2013, 14:49:10 CEST »
0
Solo root può eseguire quel comando con successo, sia dalla riga di comando, sia da un eventuale programma in Java o in C o in C++, la protezione è a livello di sistema operativo non del API.

In Java API di Android mette a disposizione una classe per poter eseguire i comandi da shell:

Runtime | Android Developers

anche se quel comando è più facile in Java aprire il file e scrivere il carattere '3'.
Sisi infatti a me l'app funziona alla grande :) però ho i miei dubbi se "faccia bene" ad android poichè forzare il drop della cache penso non sia il massimo.. Però vabbè essendo la mia prima app vedere che funziona qualcosa è soddisfacente xD. Per caso sai come posso scrivere, in java, quanta ram libera ho? Intendo su sfondo, non un toast.  Si fa dal main.xml? o basta tipo un system.out.println? non so se hai capito cosa intendo

Post unito: 16 Maggio 2013, 15:13:26 CEST
Ti parlo ti una stringa tipo. Cioè, nell'xml si scrive tipo <string name="ciao">Ciao!</string> però se in mezzo voglio inserirci del codice java tipo per visualizzare la memoria come faccio?...Scusa veramente ma essendo all'inizio c'è talmente tanta roba che non ci capisco più nulla xD
« Ultima modifica: 16 Maggio 2013, 15:20:30 CEST da punticci »

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Scrivere nello sfondo dell'app la memoria libera prima e dopo ram boost
« Risposta #3 il: 16 Maggio 2013, 17:22:39 CEST »
0
Da come scrivi conosci molto poco Android e come si programma. Il mio consiglio è sempre imparare per gradi, si parte dal più semplice "Hello World" e poi si aumenta di poco la difficoltà.

Ignoro l'utilità di fare un drop della memoria, mai fatto e credo che non lo farò mai. In Java puoi leggere la massima memoria libera con lo stesso oggetto indicato prima:

Runtime | Android Developers

Dimenticati della "System.out.println" non si usa, esiste solo per retro-compatibilità con le API di Oracle, se si usa significa che si conosce poco API di Android. Per scrivere nella console di sistema di usa l'oggetto "Log":

Log | Android Developers

Se vuoi proprio scrive nel background devi programmare un "Live Wallpaper", cosa non facile per un principiante. Di solito sotto Android per queste cose di usano i "Widget", anche questi non sono facili da scrivere e non basta modificare un semplice file XML ma serve tanto codice Java.
adb logcat | tee /tmp/logcat | grep TAG

Offline punticci

  • Utente junior
  • **
  • Post: 78
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    nexus 4
Re:Scrivere nello sfondo dell'app la memoria libera prima e dopo ram boost
« Risposta #4 il: 16 Maggio 2013, 17:43:47 CEST »
0
Da come scrivi conosci molto poco Android e come si programma. Il mio consiglio è sempre imparare per gradi, si parte dal più semplice "Hello World" e poi si aumenta di poco la difficoltà.

Ignoro l'utilità di fare un drop della memoria, mai fatto e credo che non lo farò mai. In Java puoi leggere la massima memoria libera con lo stesso oggetto indicato prima:

Runtime | Android Developers

Dimenticati della "System.out.println" non si usa, esiste solo per retro-compatibilità con le API di Oracle, se si usa significa che si conosce poco API di Android. Per scrivere nella console di sistema di usa l'oggetto "Log":

Log | Android Developers

Se vuoi proprio scrive nel background devi programmare un "Live Wallpaper", cosa non facile per un principiante. Di solito sotto Android per queste cose di usano i "Widget", anche questi non sono facili da scrivere e non basta modificare un semplice file XML ma serve tanto codice Java.
Intanto ti ringrazio per la pazienza e la risposta.comunque si scusa mi sento ignorante e parecchio anche :-) devo studiarci su un po' ;-)

Inviato dal mio Nexus 4