android 打印线程信息
今天,讲讲如何打印线程的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 打印线程信息相关推荐
- Android HAL层/native C程序打印栈信息方法
在调试Android系统底层函数时,经常需要跟踪函数调用流程,特别在HAL层需要确定参数来源时.使用栈信息逆向跟踪可快速分析函数调用流程,结合使用addr2line工具.绘图工具可绘制函数关系图.本文 ...
- android jni打印log信息
今天,讲讲在jni中如何打印logxx,用来进行调试. 一.实现 1.修改Android.mk文件. 在这个配置文件中我们加入如下一行代码: LOCAL_LDLIBS += -llog 注意:这行代码 ...
- Android逆向笔记-Proguard混淆Android代码以及去打印日志信息
本笔记只记录其现象和功能,不记录具体怎么去用他. 这个Proguard全称应该是project guard,用来混淆Android代码的.如下未使用Proguard的类: 使用Proguard后: 这 ...
- 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 ...
- LINUX系统以及ANDROID 平台log信息输出级别设置 [MTK]
一.LK层: 首先,在LK中,有一个对log打印级别的控制文档,其路径一般为:vendor\mediatek\proprietary\bootable\bootloader\lk\include\de ...
- Android 获取地理位置信息 封装好了 直接用
前言:花了一个早上研究了以下android获取经纬度,然后网上的参考资料都是杂七杂八,基本上都是过去几年的,现在我用 android6.0参照别人的结果发生好多错误,我的内心几乎是崩溃的.后来,不断百 ...
- Android 打印组件,Android打印自定义文档
对于有些应用,比如绘图应用,页面布局应用和其它一些关注于图像输出的应用,创造出精美的打印页面将是它的核心功能.在这种情况下,仅仅打印一幅图片或一个HTML文档就不够了.这类应用的打印输出需要精确地控制 ...
- android 打印 demo
1.首先说一下,网络上的打印全部都是热敏打印,就是pos机的打印,而我的是有线连接打印机,所以不使用. 2.你要打印,你首先要看看你打印机是不是有打印插件,HP和三星都是有自己的的打印插件,我用的是H ...
- 聊聊Spring Boot服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控等!...
来自:https://juejin.im/post/5e2179def265da3e152d2561 前言 去年我们项目做了微服务1.0的架构转型,但是服务监控这块却没有跟上.这不,最近我就被分配了要 ...
最新文章
- 数据库的事务,隔离级别和3大范式
- linux如何用cat看一行数据库,linux的cat命令
- 组装台式电脑配置清单_攒机必备!各种价位的台式电脑配置清单!
- oracle:用户购买平台案例分析与优化
- ajax 入参为list_ajax传递参数list对象或传递数组对象到后台
- C# 委托与事件总结
- 用故事来给你讲负载均衡的原理
- 31 款轻量高效的开源 JavaScript 插件和库
- 洛谷 P2473 [SCOI2008]奖励关 解题报告
- ubuntu 12.04 安装Docker 实战
- C# 基础(十八)C# 工程自动生成app.manifest、AssemblyInfo.cs、Resources.Designer.cs、Settings.Designer.cs文件的作用
- OA系统如何助力企业行政管理?
- 企业微信中授权小程序
- android js下载地址,js点击下载跳转iOS或安卓
- 为什么使用非线性激活函数?常见的非线性激活函数及优缺点对比
- 图形界面 I: 图形界面的动画 (第三章)
- 什么是HashTable?HashMap和HashTable的区别
- Java中的值传递和地址值传递
- 不是每个音乐节都值得狂欢,抖音就不一样
- 重庆2018年度进出口总值时隔四年重返5000亿元规模
热门文章
- k8s服务网关ambassador部署
- 深入V8引擎-AST(2)
- Docker最全教程——数据库容器化之持久保存数据(十一)
- CF628D Magic Numbers (数据大+数位dp)求[a,b]中,偶数位的数字都是d,其余为数字都不是d,且能被m整除的数的个数...
- 基于Spring读写分离
- 2016/8/18 Linux常用命令 :目录、文件处理命令
- 对于《软件工程》课程的认识
- web developer tips (28):CSS class 也支持“转到定义”
- 再见,齐达内,再见,法国队
- .NET开发不可错过的25款必备工具