2012-03-20 22 views

Respuesta

29

SharedUserId se utiliza para compartir los datos, procesos, etc entre dos o más aplicaciones. Se define en AndroidManifest.xml como,

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

y definir el parámetro compartida en Android.mk para esa aplicación, como,

LOCAL_CERTIFICATE: = compartieron

Espero que sea útil para usted ..

+3

¿Cómo se modifica Android.mk? No he visto ninguna referencia que nos informe sobre de qué se trata ese archivo ... –

+3

@IgorGanapolsky Android.mk es un makefile para Android NDK (C/C++). Si su aplicación usa solo Java, no tiene una. – Hartok

+3

Eso es incorrecto. Este archivo es requerido para TODAS las aplicaciones que se construirán como parte de AOSP. Incluyendo java solo. – RocketRandom

28

De forma predeterminada, Android asigna una identificación de usuario a una aplicación. Es la identificación única para su aplicación y significa que nadie, excepto el usuario con esta identificación, puede llegar a los recursos de su aplicación. No puede acceder a los datos de otra aplicación ni ejecutarla en su proceso actual. cuando, a partir de una actividad, una actividad de otra aplicación se llama android pasa el control a la nueva actividad llamada y se ejecutan en procesos totalmente diferentes.

Sin embargo, en su archivo de manifiesto, puede identificar explícitamente una identificación de usuario para su aplicación. Cuando declara la misma identificación de usuario para más de una aplicación, puede llegar a los recursos de la otra (campos de datos, vistas, etc.). Puede visualizar datos de otra aplicación o ejecutarlos en su proceso.

esta es la forma en que lo utilice: de 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

addi importante Esto significa que solo puede instalar dos aplicaciones con el mismo usuario compartido. Ambas aplicaciones están firmadas con el mismo certificado. – njzk2

+1

¿Cuántas aplicaciones pueden tener el mismo sharedUserId en un dispositivo? Si tengo cinco aplicaciones con el mismo ID de usuario en un dispositivo, ¿afectará el rendimiento de las aplicaciones ya que se ejecutan en el mismo proceso? – pyus13

+1

@ pyus13 No creo que se vean forzados a correr en el mismo proceso. Esa es solo una opción si deseas hacerlo. –

Cuestiones relacionadas