zoukankan      html  css  js  c++  java
  • Android 开发 知晓各种id信息 获取线程ID、activityID、内核ID

            /**
             * Returns the identifier of this process's user.
             * 返回此进程的用户的标识符。
             */
            Log.e(TAG, "Process.myUid() = " + android.os.Process.myTid());
    
            /**
             * Returns the identifier of this process, which can be used with
             * killProcess and sendSignal.
             * 返回此进程的标识符,可用于进程和发送信号。
             */
            Log.e(TAG, "Process.myPid() = " + android.os.Process.myPid());
    
            /**
             * Returns the identifier of the calling thread, which be used with
             * setThreadPriority(int, int).
             * 返回调用线程的标识符,该标识符与StTeRead优先级(int,int)。
             */
            Log.e(TAG, "Process.myTid() = " + android.os.Process.myTid());
    
            /**
             * Returns the thread's identifier. The ID is a positive long generated
             * on thread creation, is unique to the thread, and doesn't change
             * during the lifetime of the thread; the ID may be reused after the
             * thread has been terminated.
             * 返回线程的标识符。ID是正长生成的关于线程创建,对于线程是唯一的,并且不会改变。
             * 在线程的生存期内,ID可以在线程已被终止。
             */
    
            //返回当前线程的id
            Log.e(TAG, "Thread.currentThread().getId() = "
                    + Thread.currentThread().getId());
            //返回主线程的id
            Log.e(TAG, "getMainLooper().getThread().getId() = "
                    + getMainLooper().getThread().getId());
    
            //返回当前应用的主线程id
            Log.e(TAG,
                            "((getApplication().getMainLooper()).getThread()).getId() = "
                                    + ((getApplication().getMainLooper()).getThread())
                                    .getId());
    
            /**
             * Return the identifier of the task this activity is in. This
             * identifier will remain the same for the lifetime of the activity.
             * 返回此活动正在执行的任务的标识符。这个标识符对于活动的生存期将保持不变。
             */
            //返回activity任务栈的id
            Log.e(TAG, "getTaskId() = " + getTaskId());
    
            /**
             * The kernel user-ID that has been assigned to this application;
             * currently this is not a unique ID (multiple applications can have the
             * same uid).
             * 已分配给该应用程序的内核用户ID;这不是一个唯一的ID(多个应用程序可以有相同的UID)。
             */
            Log.e(TAG, "getApplicationInfo().uid = " + getApplicationInfo().uid);
    
            /**
             * The name of the process this application should run in. From the
             * "process" attribute or, if not set, the same as packageName.
             * 此应用程序应运行的进程的名称。从“进程”属性,或如果没有设置,与PACKAGEName相同。
             */
            Log.e(TAG, "getApplicationInfo().processName = "
                    + getApplicationInfo().processName);
    
            /**
             * 得到当前activity的信息
             */
            Log.e(TAG, "Activity.toString:"+this.toString());
            
    
            new Thread(new Runnable() {
    
                @Override
                public void run() {
                    //返回当前线程的id
                    // TODO Auto-generated method stub
                    Log.e(TAG, "Thread.currentThread().getId() = "
                            + Thread.currentThread().getId());
                }
            }).start();
     

    结果:

    2018-08-28 15:00:42.887 29813-29813/com.example.user.demo E/EventBusDemoActivity: Process.myUid() = 29813
    2018-08-28 15:00:42.887 29813-29813/com.example.user.demo E/EventBusDemoActivity: Process.myPid() = 29813
    2018-08-28 15:00:42.887 29813-29813/com.example.user.demo E/EventBusDemoActivity: Process.myTid() = 29813
    2018-08-28 15:00:42.888 29813-29813/com.example.user.demo E/EventBusDemoActivity: Thread.currentThread().getId() = 1
    2018-08-28 15:00:42.888 29813-29813/com.example.user.demo E/EventBusDemoActivity: getMainLooper().getThread().getId() = 1
    2018-08-28 15:00:42.888 29813-29813/com.example.user.demo E/EventBusDemoActivity: ((getApplication().getMainLooper()).getThread()).getId() = 1
    2018-08-28 15:00:42.888 29813-29813/com.example.user.demo E/EventBusDemoActivity: getTaskId() = 113
    2018-08-28 15:00:42.888 29813-29813/com.example.user.demo E/EventBusDemoActivity: getApplicationInfo().uid = 10085
    2018-08-28 15:00:42.888 29813-29813/com.example.user.demo E/EventBusDemoActivity: getApplicationInfo().processName = com.example.user.demo
    2018-08-28 15:00:42.888 29813-29813/com.example.user.demo E/EventBusDemoActivity: Activity.toString:com.example.user.demo.EventBusDemoActivity$1@d500b7a
    2018-08-28 15:00:42.888 29813-29832/com.example.user.demo E/EventBusDemoActivity: Thread.currentThread().getId() = 885
  • 相关阅读:
    emacs配置emacs-clang-complete-async
    emacs之配置自动安装脚本
    vim之YCM配置
    vim之vundle
    emacs之配置php
    kettle的日志
    kettle的报错解决机制
    kettle优化
    将BAT文件注册为服务的方法
    使用powerdesinger逆向生成表结构
  • 原文地址:https://www.cnblogs.com/guanxinjing/p/9708579.html
Copyright © 2011-2022 走看看