android 多线程 js,android中的jstack,见见线程都在干嘛
android中的jstack,看看线程都在干嘛
之前做java开发的时候,遇到进程卡住的情况都会用jstack来打印一个进程里的线程活动情况。到了安卓开发,发现没有这个命令了,很不习惯。
google了一下,发现还是有办法的。
% adb shell ps | grep android.calendar
u0_a6 2596 127 912804 48296 ffffffff b6f62c10 S com.google.android.calendar
2596就是进程ID
% adb shell kill -3 2596
成功的话logcat里可以看到下面这样的输出:
引用
I/dalvikvm( 2596): Wrote stack traces to '/data/anr/traces.txt'
如果没有/data/anr 可能会失败。需要手动建一个目录
用adb把文件拉下来
引用
% adb pull /data/anr/traces.txt .
线程DUMP是以附加的形式打到 traces.txt上面的。所以要根据PID来确认。
这个对于 排查程序无响应很有帮助。
参考:http://stackoverflow.com/questions/13589074/how-to-make-java-thread-dump-in-android
打印出来的文件大致如下:
引用
----- pid 155 at 2013-12-11 20:38:16 -----
Cmd line: system_server
DALVIK THREADS:
(mutexes: tll=0 tsl=0 tscl=0 ghl=0)
"main" prio=5 tid=1 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x40a3d460 self=0x12800
| sysTid=155 nice=0 sched=0/0 cgrp=default handle=1074083080
| schedstat=( 296672000 85598000 170 ) utm=19 stm=10 core=0
at com.android.server.SystemServer.init1(Native Method)
at com.android.server.SystemServer.main(SystemServer.java:1103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
at dalvik.system.NativeStart.main(Native Method)
"DhcpStateMachine" prio=5 tid=66 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x411a3b30 self=0x18dfa0
| sysTid=443 nice=0 sched=0/0 cgrp=default handle=1660872
| schedstat=( 3046000 48091000 54 ) utm=0 stm=0 core=0
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:118)
at android.os.Looper.loop(Looper.java:118)
at android.os.HandlerThread.run(HandlerThread.java:60)
android 多线程 js,android中的jstack,见见线程都在干嘛相关推荐
- android 多线程 js,JS多线程(web work)
JS多线程 JS多线程不允许操作DOM 1. 引用Concurrent Thread.js库 用法:Concurrent.Thread.Create(function(){};) 2. Web Wor ...
- Android多线程优劣,Android 开发中用到的几个多线程解析
在开发工程中线程可以帮助我们提高运行速度,Android开发中我知道的线程有四个一个是老生长谈的Thread,第二个是asyncTask,第三个:TimetTask,第四个是Looper,四个多线程各 ...
- android 多线程 崩溃,Android异常崩溃捕获
Android系统碎片化造成应用程序崩溃严重,在模拟器上运行良好的程序安装到某款手机上说不定就会出现崩溃的现象.而且,往往都是程序发布之后在用户端出现了崩溃现象.所以在程序发布出去之后,如果出现了崩溃 ...
- android 多线程 加锁,android 多线程 — 从一个小例子再次品位多线程
今天回味 volatile 时看到了别人的一个 Demo: class VolatileDemo() { var flag: Boolean = false fun read() { while (! ...
- android 多线程封装,Android 线程池的封装
GlobalThreadPools.java: /** * 全局使用的线程池 */ public class GlobalThreadPools { private static String TAG ...
- android native.js,Android Native与JS通信互调
写在最前: 看Android最新技术总结,关注公众号: 最近因为App与H5交互逻辑太乱,所以抽空梳理了下:对目前App与H5的各种交互通信做个总结,自取适合自己的交互方式. 一.H5调用原生的nat ...
- android 多线程封装,Android线程池封装库
目录介绍 1.遇到的问题和需求 1.1 遇到的问题有哪些 1.2 遇到的需求 1.3 多线程通过实现Runnable弊端 1.4 为什么要用线程池 2.封装库具有的功能 2.1 常用的功能 3.封装库 ...
- [Java][Android] 多线程同步-主线程等待全部子线程完毕案例
有时候我们会遇到这种问题:做一个大的事情能够被分解为做一系列相似的小的事情,而小的事情无非就是參数上有可能不同样而已! 此时,假设不使用线程,我们势必会浪费许多的时间来完毕整个大的事情.而使用线程的话 ...
- android多线程文章,Android 多线程处理之多线程用法大集合
类型:服务器区大小:21KB语言:中文 评分:6.6 标签: 立即下载 第 4 页 全部源码 全部源码: 1 package com.bvin.exec; 2 3 import java.io.IOE ...
最新文章
- 10.无重复字符的最长子串---使用滑动窗口方法和哈希表来解决
- 说说“偏差处理”那点事
- PHP、Python 竟上榜最慢的现代编程语言
- 最小生成树模板总结--PrimKruskal
- 基于JSP/SERVLET的省心物流管理
- Ubuntu系统下添加程序启动器
- 【Python】Cookie 和 Session
- mysql startupitem_MySQL数据库之Mac上安装MySQL过程分享
- iOS上传头像, 相册权限,相册权限,拍照上传,相册选择图片,拍照页面语言设置,保存到相册...
- Qt中字符串之间的转换
- IDEA出现Module ** must not contain source root **. The root already belongs to module **这类错误的解决方法
- Spring JdbcTemplate 与 事务管理
- NetBeans启动firstcup错误
- win10微软图标点击无反应_双击电脑桌面图标没反应,win10双击图标没反应
- 男人一生的四菜一汤(转载)
- 谨慎使用达梦manger工具
- 修了一天的kali外置网卡,重装了n遍系统后..
- 人工智能领域中的一个重要方向:自然语言处理
- POS机刷卡跨行交易的清算方式
- Pragmatic Programmer