Autore Topic: Interfaccia applicativo su shared memory  (Letto 878 volte)

Offline amonra76

  • Nuovo arrivato
  • *
  • Post: 1
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    windows 7
Interfaccia applicativo su shared memory
« il: 10 Settembre 2011, 09:39:56 CEST »
0
Dovrei creare un'interfaccia in java per un certo applicativo che mi faccia leggere e scrivere sulla shared memory. E' possibile? Solo che non so da dove cominciare. C'è qualche guida o manuale da prendere come punto di riferimento?
Grazie a tutti!

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:Interfaccia applicativo su shared memory
« Risposta #1 il: 10 Settembre 2011, 10:55:29 CEST »
0
Via Java c'è già la classe pronta per utilizzare la shared memory:

MemoryFile | Android Developers
« Ultima modifica: 10 Settembre 2011, 10:57:39 CEST da iceweasel »
adb logcat | tee /tmp/logcat | grep TAG

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Interfaccia applicativo su shared memory
« Risposta #2 il: 10 Settembre 2011, 11:02:16 CEST »
0
Però da qualche parte avevo letto che MemoryFile funziona egregiamente per comunicare all'interno del solito processo, ma per qualche oscura ragione non si riusciva a comunicare tra processi (nonostante sia quella la funzione "di targa"). Boh.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

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:Interfaccia applicativo su shared memory
« Risposta #3 il: 10 Settembre 2011, 11:27:05 CEST »
0
Se non funziona tra processi perde alcune funzionalità anche se è possibile utilizzarla per leggere molto velocemente delle porzioni di file senza caricare tutto il file.

Qui ci sono i dettagli su come è implementata nel kernel di Linux la shared memory di Android attraverso i device a caratteri "/dev/ashmem":

Android Kernel Features - eLinux.org

La shared memory classica presente in tutti i sistemi operativi POSIX non è abilitata nel kernel di Linux di Android (almeno in quello ufficiale).
adb logcat | tee /tmp/logcat | grep TAG

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Interfaccia applicativo su shared memory
« Risposta #4 il: 08 Novembre 2011, 14:03:50 CET »
0
Se non funziona tra processi perde alcune funzionalità anche se è possibile utilizzarla per leggere molto velocemente delle porzioni di file senza caricare tutto il file.

Visto che l'argomento è dibattuto, ho speso qualche monuto a ritrovare le risposte.

Premesso che il wrapper dell'SDK per usare ashmem è il MemoryFile,

Citazione
MemoryFile - Class Overview
MemoryFile is a wrapper for the Linux ashmem driver.

questo è ciò che avevo trovato:

Citazione
Two MemoryFiles with the same name don't automatically map to the same area.
Currently the only way to use a MemoryFile across processes is to use hidden
APIs, which you shouldn't do.

[android-developers] Re: MemoryFile between processes
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store