2012-03-20 12 views

risposta

29

SharedUserId viene utilizzato per condividere i dati, processi, ecc tra due o più applicazioni. Essa è definita in AndroidManifest.xml come,

manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    android:sharedUserId="android.uid.shared" 
android:sharedUserLabel="@string/sharedUserLabel" 

e definire il parametro condiviso in Android.mk per tale applicazione, come,

LOCAL_CERTIFICATE: = condivisi

Spero che sia utile per voi ..

+3

Come si modifica Android.mk? Non ho visto alcun riferimento ad esso informandoci su cosa sia quel file ... –

+3

@IgorGanapolsky Android.mk è un makefile per Android NDK (C/C++). Se la tua app utilizza solo Java, non ne hai uno. – Hartok

+3

Che non è corretto. Questo file è richiesto per TUTTE le applicazioni che devono essere costruite come parte di AOSP. Compresi solo quelli di Java. – RocketRandom

28

Per impostazione predefinita, Android assegna un ID utente a un'applicazione. È l'ID univoco per la tua applicazione e significa che nessuno, tranne l'utente con questo ID, può raggiungere le risorse dell'applicazione. Non è possibile accedere ai dati di un'altra applicazione o eseguirla nel processo corrente. quando, da un'attività, viene chiamata un'attività di un'altra applicazione, Android passa il controllo alla nuova attività chiamata e viene eseguito in processi completamente diversi.

Tuttavia, nel file manifest, è possibile identificare esplicitamente un ID utente per la propria applicazione. Quando dichiari lo stesso ID utente per più di un'applicazione, possono raggiungere le rispettive risorse (campi dati, viste, ecc.). È possibile visualizzare i dati da un'altra applicazione o eseguirli nel processo.

questo è come lo si utilizza: da http://developer.android.com/guide/topics/manifest/manifest-element.html

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="string" 
    android:sharedUserId="string" 
    android:sharedUserLabel="string resource" 
    android:versionCode="integer" 
    android:versionName="string" 
    android:installLocation=["auto" | "internalOnly" | "preferExternal"] > 
    . . .</manifest> 
+32

un addi importante è che è possibile installare solo due applicazioni con lo stesso shareduserid sia che entrambe le applicazioni siano state firmate con lo stesso certificato. – njzk2

+1

Quante applicazioni possono avere lo stesso sharedUserId in un dispositivo? Se sto avendo cinque applicazioni con lo stesso ID utente in un dispositivo, influirà sulle prestazioni delle applicazioni mentre sono in esecuzione nello stesso processo? – pyus13

+1

@ pyus13 Non credo che siano obbligati a eseguire nello stesso processo. Questa è solo un'opzione se desideri farlo. –

Problemi correlati