今天,讲讲如何打印线程的id。

用语句:

Android.os.Process
    //获取当前进程的方法
    android.os.Process.getElapsedCpuTime():获取消耗的时间。
android.os.Process.myPid():获取该进程的ID。
android.os.Process.myTid():获取该线程的ID。
android.os.Process.myUid():获取该进程的用户ID。
    android.os.Process.supportsProcesses:判断该进程是否支持多进程。
     
    // 获取/设置线程优先级
    getThreadPriority(int tid):获取指定ID的线程的优先级。
    setThreadPriority(int priority):设置当前线程的优先级。
    setThreadPriority(int tid,int priority):设置指定ID的线程的优先级。
    
    //管理进程
    killProcess(int pid):杀死指定的进程。
    sendSignal(int pid,int singal):向指定的进程发送信号。
    
    android.os.Environment
    //获取系统环境变量
    getDataDirectory():获取当前系统中数据文件夹环境变量。
    getDownloadCacheDirectory():获取当前系统中下载缓存文件环境变量。
    getExternalStorageDirectory():获取当前系统中外部存储文件环境变量。
    getRootDirectory():获取当前系统中根文件环境变量。

---------------------------------------

实例:viewrootImp.Java中的构造函数,打印进程和线程id

public ViewRootImpl(Context context, Display display) {mContext = context;mWindowSession = WindowManagerGlobal.getWindowSession();mDisplay = display;mBasePackageName = context.getBasePackageName();mDisplayAdjustments = display.getDisplayAdjustments();mThread = Thread.currentThread();Log.d("stl","ViewRootImpl "+android.os.Process.myPid()+" Thread: "+android.os.Process.myTid()+" name "+Thread.currentThread().getName());

输出:

01-08 13:22:23.509  2373  2373 D stl     : ViewRootImpl 2373 Thread: 2373
01-08 13:22:25.929  4027  4027 D stl     : ViewRootImpl 4027 Thread: 4027
01-08 13:22:26.979  4168  4168 D stl     : ViewRootImpl 4168 Thread: 4168
01-08 13:22:27.949  3825  3825 D stl     : ViewRootImpl 3825 Thread: 3825
01-08 13:22:28.069  3825  3825 D stl     : ViewRootImpl 3825 Thread: 3825 

前面一个号是进程id,后面一个号是线程id。

另外,可以使用getThreadId() 方法一个正在运行线程的ID。

public class Main extends Object implements Runnable {private ThreadID var;public Main(ThreadID v) {this.var = v;}public void run() {try {print("var getThreadID =" + var.getThreadID());Thread.sleep(2000);print("var getThreadID =" + var.getThreadID());} catch (InterruptedException x) {}}private static void print(String msg) {String name = Thread.currentThread().getName();System.out.println(name + ": " + msg);}public static void main(String[] args) {ThreadID tid = new ThreadID();Main shared = new Main(tid);try {Thread threadA = new Thread(shared, "threadA");threadA.start();Thread.sleep(500);Thread threadB = new Thread(shared, "threadB");threadB.start();Thread.sleep(500);Thread threadC = new Thread(shared, "threadC");threadC.start();} catch (InterruptedException x) {}}
}class ThreadID extends ThreadLocal {private int nextID;public ThreadID() {nextID = 10001;}private synchronized Integer getNewID() {Integer id = new Integer(nextID);nextID++;return id;}protected Object initialValue() {print("in initialValue()");return getNewID();}public int getThreadID() {Integer id = (Integer) get();return id.intValue();}private static void print(String msg) {String name = Thread.currentThread().getName();System.out.println(name + ": " + msg);}
}

结果

上面的代码示例将产生以下结果。

threadA: in initialValue()
threadA: var getThreadID =10001
threadB: in initialValue()
threadB: var getThreadID =10002
threadC: in initialValue()
threadC: var getThreadID =10003
threadA: var getThreadID =10001
threadB: var getThreadID =10002
threadC: var getThreadID =10003

android 打印线程信息就讲完了。

就这么简单。



android 打印线程信息相关推荐

  1. Android HAL层/native C程序打印栈信息方法

    在调试Android系统底层函数时,经常需要跟踪函数调用流程,特别在HAL层需要确定参数来源时.使用栈信息逆向跟踪可快速分析函数调用流程,结合使用addr2line工具.绘图工具可绘制函数关系图.本文 ...

  2. android jni打印log信息

    今天,讲讲在jni中如何打印logxx,用来进行调试. 一.实现 1.修改Android.mk文件. 在这个配置文件中我们加入如下一行代码: LOCAL_LDLIBS += -llog 注意:这行代码 ...

  3. Android逆向笔记-Proguard混淆Android代码以及去打印日志信息

    本笔记只记录其现象和功能,不记录具体怎么去用他. 这个Proguard全称应该是project guard,用来混淆Android代码的.如下未使用Proguard的类: 使用Proguard后: 这 ...

  4. Android app:用Log方法打印调试信息 (Log.v,Log.d,Log.i,Log.w,Log.e)以及修改LogCat的颜色

    Android app:Log方法打印调试信息 (Log.v,Log.d,Log.i,Log.w,Log.e)和修改LogCat的颜色 一.包含Log类,import android.util.Log ...

  5. LINUX系统以及ANDROID 平台log信息输出级别设置 [MTK]

    一.LK层: 首先,在LK中,有一个对log打印级别的控制文档,其路径一般为:vendor\mediatek\proprietary\bootable\bootloader\lk\include\de ...

  6. Android 获取地理位置信息 封装好了 直接用

    前言:花了一个早上研究了以下android获取经纬度,然后网上的参考资料都是杂七杂八,基本上都是过去几年的,现在我用 android6.0参照别人的结果发生好多错误,我的内心几乎是崩溃的.后来,不断百 ...

  7. Android 打印组件,Android打印自定义文档

    对于有些应用,比如绘图应用,页面布局应用和其它一些关注于图像输出的应用,创造出精美的打印页面将是它的核心功能.在这种情况下,仅仅打印一幅图片或一个HTML文档就不够了.这类应用的打印输出需要精确地控制 ...

  8. android 打印 demo

    1.首先说一下,网络上的打印全部都是热敏打印,就是pos机的打印,而我的是有线连接打印机,所以不使用. 2.你要打印,你首先要看看你打印机是不是有打印插件,HP和三星都是有自己的的打印插件,我用的是H ...

  9. 聊聊Spring Boot服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控等!...

    来自:https://juejin.im/post/5e2179def265da3e152d2561 前言 去年我们项目做了微服务1.0的架构转型,但是服务监控这块却没有跟上.这不,最近我就被分配了要 ...

最新文章

  1. 数据库的事务,隔离级别和3大范式
  2. linux如何用cat看一行数据库,linux的cat命令
  3. 组装台式电脑配置清单_攒机必备!各种价位的台式电脑配置清单!
  4. oracle:用户购买平台案例分析与优化
  5. ajax 入参为list_ajax传递参数list对象或传递数组对象到后台
  6. C# 委托与事件总结
  7. 用故事来给你讲负载均衡的原理
  8. 31 款轻量高效的开源 JavaScript 插件和库
  9. 洛谷 P2473 [SCOI2008]奖励关 解题报告
  10. ubuntu 12.04 安装Docker 实战
  11. C# 基础(十八)C# 工程自动生成app.manifest、AssemblyInfo.cs、Resources.Designer.cs、Settings.Designer.cs文件的作用
  12. OA系统如何助力企业行政管理?
  13. 企业微信中授权小程序
  14. android js下载地址,js点击下载跳转iOS或安卓
  15. 为什么使用非线性激活函数?常见的非线性激活函数及优缺点对比
  16. 图形界面 I: 图形界面的动画 (第三章)
  17. 什么是HashTable?HashMap和HashTable的区别
  18. Java中的值传递和地址值传递
  19. 不是每个音乐节都值得狂欢,抖音就不一样
  20. 重庆2018年度进出口总值时隔四年重返5000亿元规模

热门文章

  1. k8s服务网关ambassador部署
  2. 深入V8引擎-AST(2)
  3. Docker最全教程——数据库容器化之持久保存数据(十一)
  4. CF628D Magic Numbers (数据大+数位dp)求[a,b]中,偶数位的数字都是d,其余为数字都不是d,且能被m整除的数的个数...
  5. 基于Spring读写分离
  6. 2016/8/18 Linux常用命令 :目录、文件处理命令
  7. 对于《软件工程》课程的认识
  8. web developer tips (28):CSS class 也支持“转到定义”
  9. 再见,齐达内,再见,法国队
  10. .NET开发不可错过的25款必备工具