C缘网
Would you like to react to this message? Create an account in a few clicks or log in to continue.

android常见错误

向下

android常见错误 Empty android常见错误

帖子 由 eyke0519 周日 7 十月 2012 - 22:35

一般在平时工作中,基本上很多代码可以在eclipse+ndk进行调试,但如果需要用到具体的硬件设备,如媒体播放设备无法
  一般在平时工作中,基本上很多代码可以在eclipse+ndk进行调试,但如果需要用到具体的硬件设备,如媒体播放设备无法模拟的情况下,只能上硬件(盒子或手机)上进行调试。此时唯一的调试手段就是logcat产生log信息进行分析问题了。
  什么时候会有Log文件的产生 ?一般在如下几种情况会产生log文件 。
  1、程序异常退出 uncaused exception
  2、程序强制关闭 Force Closed (简称FC)
  3、程序无响应 Application No Response(简称ANR),一般主线程超过5秒么有处理就会ANR
  4、手动生成
  进入控制台输入:logcat命令即可进行输出
  第一部分
  1、分析工具介绍
  a、cat /proc/meminfo 显示基本的内存信息
  ------ MEMORY INFO (/proc/meminfo) ------
  MemTotal: 285184 kB
  MemFree: 106360 kB
  Buffers: 0 kB
  Cached: 60036 kB
  SwapCached: 0 kB
  Active: 98160 kB
  Inactive: 49100 kB
  Active(anon): 87260 kB
  Inactive(anon): 288 kB
  Active(file): 10900 kB
  Inactive(file): 48812 kB
  Unevictable: 0 kB
  Mlocked: 0 kB
  SwapTotal: 0 kB
  SwapFree: 0 kB
  Dirty: 0 kB
  Writeback: 0 kB
  AnonPages: 87240 kB
  Mapped: 26500 kB
  Shmem: 324 kB
  Slab: 13340 kB
  SReclaimable: 1672 kB
  SUnreclaim: 11668 kB
  KernelStack: 2160 kB
  PageTables: 5600 kB
  NFS_Unstable: 0 kB
  Bounce: 0 kB
  WritebackTmp: 0 kB
  CommitLimit: 142592 kB
  Committed_AS: 1065600 kB
  VmallocTotal: 417792 kB
  VmallocUsed: 137700 kB
  VmallocChunk: 254980 kB
  重点关注这下面几个值:
  MemTotal: 285184 kB //总计物理内存的大小
  MemFree: 106360 kB //可用内存有多少
  Buffers: 0 kB //磁盘缓存内存的大小
  Cached: 60036 kB
  # free
  free
  total used free shared buffers
  Mem: 285184 178884 106300 0 0
  Swap: 0 0 0
  Total: 285184 178884 106300
  在linux中有这么一种思想,内存不用白不用,求魔因此它尽可能的cache和buffer一些数据,以方便下次使用。
  但实际上这些内存也是可以立刻拿来使用的。
  所以空闲内存=free+buffers+cached=total-used
  还有几个命令可使用:
  /proc/meminfo 机器的内存使用信息
  /proc/pid/maps pid为进程号,显示当前进程所占用的虚拟地址。
  /proc/pid/statm 进程所占用的内存
  b、查看进程信息
  ------ CPU INFO (top -n 1 -d 1 -m 30 -t) ------
  能够实时显示系统中各个进程的资源占用状况,类似于 Windows 的任务管理器
  c、android提供的一些操作工具
  ------ PROCRANK (procrank) ------
  ------ PROCMEM (procmem) ------
  ------ SHOWMAP (showmap) ------
  ... 就不一一列举了,有兴趣的朋友可以去看看
  这此工具的代码位于android的 /system/extras
  d、虚拟内存的查看工具
  ------ VIRTUAL MEMORY STATS (/proc/vmstat) ------
  ------ VMALLOC INFO (/proc/vmallocinfo) ------
  2、时间信息,也是我们主要分析的信息
  格式如下:
  ------ SYSTEM LOG (logcat -b system -v time -d *:v) ------
  $:logcat -b system -v time -d *:v
  01-02 08:00:02.570 I/SystemServer( 957): Notification Manager
  01-02 08:00:02.570 I/SystemServer( 957): Device Storage Monitor
  01-02 08:00:02.580 I/SystemServer( 957): Location Manager
  01-02 08:00:02.580 I/SystemServer( 957): Search Service
  01-02 08:00:02.590 I/SystemServer( 957): DropBox Service
  01-02 08:00:02.590 I/SystemServer( 957): Wallpaper Service
  3、虚拟机信息,包括进程的,线程的跟踪信息,这是用来跟踪进程和线程具体点的好地方 。
  ------ VM TRACES JUST NOW (/data/anr/traces.txt.bugreport: 2011-01-15 16:49:02) ------
  ------ VM TRACES AT LAST ANR (/data/anr/traces.txt: 2011-01-15 16:49:02) ------
  格式如下 :
  ----- pid 1516 at 1970-01-02 08:03:07 -----
  Cmd line: com.ipanel.join.appstore
  DALVIK THREADS:
  (mutexes: tll=0 tsl=0 tscl=0 ghl=0 hwl=0 hwll=0)
  "main" prio=5 tid=1 NATIVE
  | group="main" sCount=1 dsCount=0 obj=0x4001f188 self=0xd028
  | sysTid=1516 nice=0 sched=3/0 cgrp=[fopen-error:2] handle=-1345017744
  第二部分
eyke0519
eyke0519
Admin

帖子数 : 10619
注册日期 : 08-12-15

http://eyke.1ercn.com

返回页首 向下

返回页首


 
您在这个论坛的权限:
不能在这个论坛回复主题