2012-03-20 32 views

Trả lời

29

SharedUserId được sử dụng để chia sẻ dữ liệu, xử lý vv giữa hai hay nhiều ứng dụng. Nó được định nghĩa trong AndroidManifest.xml như,

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

và xác định các tham số được chia sẻ trong Android.mk cho ứng dụng đó, như,

LOCAL_CERTIFICATE: = chia sẻ

Hy vọng nó hữu ích cho bạn ..

+3

Bạn sửa đổi Android.mk bằng cách nào? Tôi đã không thấy bất kỳ tài liệu tham khảo để nó thông báo cho chúng tôi về những gì tập tin đó là tất cả về ... –

+3

@IgorGanapolsky Android.mk là một makefile cho NDK của Android (C/C++). Nếu ứng dụng của bạn chỉ sử dụng Java, bạn không có. – Hartok

+3

Điều đó không đúng. Tệp này là bắt buộc đối với TẤT CẢ các ứng dụng sẽ được xây dựng như một phần của AOSP. Bao gồm cả chỉ java. – RocketRandom

28

Theo mặc định, Android gán id người dùng cho một ứng dụng. Đây là id duy nhất cho ứng dụng của bạn và có nghĩa là không ai ngoại trừ người dùng có id này có thể tiếp cận tài nguyên của ứng dụng của bạn. Bạn không thể truy cập dữ liệu của một ứng dụng khác hoặc chạy nó trong tiến trình hiện tại của bạn. khi, từ một hoạt động, một hoạt động của một ứng dụng khác được gọi là android chuyển quyền kiểm soát đến hoạt động mới được gọi và chúng chạy trong các quy trình hoàn toàn khác nhau.

Tuy nhiên, trong tệp kê khai, bạn có thể xác định rõ ràng id người dùng cho ứng dụng của mình. Khi bạn khai báo cùng một id người dùng cho nhiều ứng dụng, chúng có thể tiếp cận các tài nguyên của nhau (trường dữ liệu, dạng xem, v.v.). Bạn có thể hiển thị dữ liệu từ một ứng dụng khác hoặc chạy nó trong tiến trình của bạn.

đây là cách bạn sử dụng nó: từ 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

một addi quan trọng tion là bạn chỉ có thể cài đặt hai ứng dụng với cùng một shareduserid là cả hai ứng dụng được ký với cùng một chứng chỉ. – njzk2

+1

Có bao nhiêu ứng dụng có thể có cùng sharedUserId trong một thiết bị? Nếu tôi đang có năm ứng dụng với cùng một userId trong một thiết bị thì nó sẽ ảnh hưởng đến hiệu năng của ứng dụng khi chúng đang chạy trong cùng một tiến trình? – pyus13

+1

@ pyus13 Tôi không tin rằng họ buộc phải chạy trong cùng một quá trình. Đó chỉ là một lựa chọn nếu bạn muốn làm như vậy. –

Các vấn đề liên quan