qual è l'uso di MemoryFile in android

Voglio scrivere alcuni byte a una memory condivisa. Questo è fatto nella mia applicazione1. Dalla mia altra applicazione: application2 voglio accedere a quella memory condivisa per leggere i byte scritti. A questo scopo ho provato a utilizzare la class MemoryFile di android. Sono bloccato come come fare riferimento alla stessa memory di shard tra due diverse applicazioni. Sono anche confuso se MemoryFile viene utilizzato per lo stesso scopo o less. http://developer.android.com/reference/android/os/MemoryFile.html questo collegamento che ho trovato riguardo all'argomento. Grazie in anticipo. Krishna

  • MPAndroidChart: Creazione di un grafico chiuso (grafico a linee circolari)
  • Gyroscope incluso in getOrientation?
  • Riproduzione di video di youtube su phonegap
  • Gli annunci pubblicitari e gli annunci interstitial di Admob non vengono caricati sull'attività del lancio
  • Come includere i file di dati con l'APK dell'applicazione?
  • Android Studio non si avvia con il dispositivo connesso
  • Avvertenze con Proguard (con librerie esterne)
  • Utilizza retrofit per scaricare il file image
  • come mantenere le tabs visibili su each attività
  • Quali sono i vantaggi e gli svantaggi dell'utilizzo di Phonegap e Titanium?
  • Leggi i contenuti di un URL in Android
  • android rendendo il layout scorrevole quando la tastiera soft apre, ma non lo sposta verso l'alto
  • 3 Solutions collect form web for “qual è l'uso di MemoryFile in android”

    Se si desidera utilizzare un process cross-process con MemoryFile è ansible utilizzare il seguente metodo fugly :

     import android.os.MemoryFile; import android.os.ParcelFileDescriptor; import java.io.FileDescriptor; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class MemoryFileUtil { private static final Method sMethodGetParcelFileDescriptor; private static final Method sMethodGetFileDescriptor; static { sMethodGetParcelFileDescriptor = get("getParcelFileDescriptor"); sMethodGetFileDescriptor = get("getFileDescriptor"); } public static ParcelFileDescriptor getParcelFileDescriptor(MemoryFile file) { try { return (ParcelFileDescriptor) sMethodGetParcelFileDescriptor.invoke(file); } catch (IllegalAccessException e) { throw new RuntimeException(e); } catch (InvocationTargetException e) { throw new RuntimeException(e); } } public static FileDescriptor getFileDescriptor(MemoryFile file) { try { return (FileDescriptor) sMethodGetFileDescriptor.invoke(file); } catch (IllegalAccessException e) { throw new RuntimeException(e); } catch (InvocationTargetException e) { throw new RuntimeException(e); } } private static Method get(String name) { try { return MemoryFile.class.getDeclaredMethod(name); } catch (NoSuchMethodException e) { throw new RuntimeException(e); } } } 

    Quello che dovresti esaminare è il #getParcelFileDescriptor(MemoryFile) che puoi restituire da un'implementazione di ContentProvider#openFile(Uri, String) .

    Sospetto che i file di memory non dispongano del metodo getParcelFileDescriptor. Quando ho commentato questi methods correlati a getParcelFileDescriptor e usiamo getFileDescriptor. Ha funzionato bene.

     import java.io.FileDescriptor; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import android.os.MemoryFile; /** * Invoke hidden methods using reflection * */ public class MemoryFileUtil { private static final Method sMethodGetFileDescriptor; static { sMethodGetFileDescriptor = get("getFileDescriptor"); } public static FileDescriptor getFileDescriptor(MemoryFile file) { try { return (FileDescriptor) sMethodGetFileDescriptor.invoke(file); } catch (IllegalAccessException e) { throw new RuntimeException(e); } catch (InvocationTargetException e) { throw new RuntimeException(e); } } private static Method get(String name) { try { return MemoryFile.class.getDeclaredMethod(name); } catch (NoSuchMethodException e) { throw new RuntimeException(e); } } } 

    E ha creato il descrittore di file dal file di memory.

     FileDescriptor fd = MemoryFileUtil.getFileDescriptor(memFile); 

    MemoryFile può essere utilizzato per mappare la memory fisica. Il descrittore dei file di risultato (fd) può essere passato al client (lato della condivisione della memory). Il client può mappare lo stesso fd nativo nella stessa regione di memory. La memory può quindi essere condivisa utilizzando il fd nativo, che può essere mappato allo strato java utilizzando InputStream.

    Per ulteriori informazioni, fare riferimento a questo link:
    Condividere la memory usando l'asema.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.