diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/java/android/ddm/DdmHandleHello.java | 4 | ||||
-rw-r--r-- | core/java/android/os/Process.java | 14 | ||||
-rw-r--r-- | core/jni/android_util_Process.cpp | 21 |
3 files changed, 15 insertions, 24 deletions
diff --git a/core/java/android/ddm/DdmHandleHello.java b/core/java/android/ddm/DdmHandleHello.java index 842a482..220b40d 100644 --- a/core/java/android/ddm/DdmHandleHello.java +++ b/core/java/android/ddm/DdmHandleHello.java @@ -97,7 +97,9 @@ public class DdmHandleHello extends ChunkHandler { } /* - * Handle introductory packet. + * Handle introductory packet. This is called during JNI_CreateJavaVM + * before frameworks native methods are registered, so be careful not + * to call any APIs that depend on frameworks native code. */ private Chunk handleHELO(Chunk request) { if (false) diff --git a/core/java/android/os/Process.java b/core/java/android/os/Process.java index 476b4ea..ebeb9f8 100644 --- a/core/java/android/os/Process.java +++ b/core/java/android/os/Process.java @@ -27,6 +27,8 @@ import java.io.IOException; import java.io.OutputStreamWriter; import java.util.ArrayList; +import libcore.io.Libcore; + /*package*/ class ZygoteStartFailedEx extends Exception { /** * Something prevented the zygote process startup from happening normally @@ -647,13 +649,17 @@ public class Process { * Returns the identifier of this process, which can be used with * {@link #killProcess} and {@link #sendSignal}. */ - public static final native int myPid(); + public static final int myPid() { + return Libcore.os.getpid(); + } /** * Returns the identifier of the calling thread, which be used with * {@link #setThreadPriority(int, int)}. */ - public static final native int myTid(); + public static final int myTid() { + return Libcore.os.gettid(); + } /** * Returns the identifier of this process's uid. This is the kernel uid @@ -661,7 +667,9 @@ public class Process { * app-specific sandbox. It is different from {@link #myUserHandle} in that * a uid identifies a specific app sandbox in a specific user. */ - public static final native int myUid(); + public static final int myUid() { + return Libcore.os.getuid(); + } /** * Returns this process's user handle. This is the diff --git a/core/jni/android_util_Process.cpp b/core/jni/android_util_Process.cpp index 5d32328..607c429 100644 --- a/core/jni/android_util_Process.cpp +++ b/core/jni/android_util_Process.cpp @@ -94,21 +94,6 @@ static void signalExceptionForGroupError(JNIEnv* env, int err) } } -jint android_os_Process_myPid(JNIEnv* env, jobject clazz) -{ - return getpid(); -} - -jint android_os_Process_myUid(JNIEnv* env, jobject clazz) -{ - return getuid(); -} - -jint android_os_Process_myTid(JNIEnv* env, jobject clazz) -{ - return androidGetTid(); -} - jint android_os_Process_getUidForName(JNIEnv* env, jobject clazz, jstring name) { if (name == NULL) { @@ -343,8 +328,7 @@ void android_os_Process_setThreadPriority(JNIEnv* env, jobject clazz, void android_os_Process_setCallingThreadPriority(JNIEnv* env, jobject clazz, jint pri) { - jint tid = android_os_Process_myTid(env, clazz); - android_os_Process_setThreadPriority(env, clazz, tid, pri); + android_os_Process_setThreadPriority(env, clazz, androidGetTid(), pri); } jint android_os_Process_getThreadPriority(JNIEnv* env, jobject clazz, @@ -989,9 +973,6 @@ jintArray android_os_Process_getPidsForCommands(JNIEnv* env, jobject clazz, } static const JNINativeMethod methods[] = { - {"myPid", "()I", (void*)android_os_Process_myPid}, - {"myTid", "()I", (void*)android_os_Process_myTid}, - {"myUid", "()I", (void*)android_os_Process_myUid}, {"getUidForName", "(Ljava/lang/String;)I", (void*)android_os_Process_getUidForName}, {"getGidForName", "(Ljava/lang/String;)I", (void*)android_os_Process_getGidForName}, {"setThreadPriority", "(II)V", (void*)android_os_Process_setThreadPriority}, |