Android-HelloWorld解读
一 Android启动过程简介
大体的过程是:Zygote守护进程->vm虚拟机->应用程序app(没有main函数)
1 PackageManageService类识别manifest文件
2 manifest文件去找到主Activity类,然后加载这个Activity,
3 启动主Activity内的onCreate方法
4 在onCreate内调用setContentView去绑定layout界面
二 eclipse启动Android程序过程
编译classes.dex文件->打包apk文件->启动选择设备(真机还是虚拟机)->上传apk文件->安装apk文件->启动主Activity
三 Log
1 Log是系统产生的日志,分析问题的重要文件
按照优先级查看log,程序出错,看红色的log
log分类:
verbose(V)详细模式
debug(D)调试模式
info(I)信息模式,普通模式
warn(W)警告模式
error(E)出错模式
2 Log产生的时候:
程序异常退出,uncaused exception
程序强制关闭, Force Close 简称(FC)
程序无响应, Application No Response 简称(ANR)
何时产生ANR?
界面操作等待的响应时间超过5秒
handleMessage回调函数中执行超过10秒
3 Log产生的位置及查找
在根目录下的data/Log
查找分析log文件一般查找关键字fatal
4 Log的文件格式
系统基本信息,包括内存,CPU,进程队列,虚拟内存,垃圾回收等
MEMORY INFO(/proc/meminfo)
CPU INFO
PROCRANK
VIRTUAL MEMORY STATS(/proc/vmstat)
VMALLOC INFO(/proc/vmallocinfo)
事件信息,也是我们主要分析的信息
VMALLOC INFO(/proc/vmallocinfo)
EVENT INFO(/proc/vmalloc info)
虚拟机信息,包括进程,线程,可以跟踪进程和线程
VM TRACES JUST NOW(/data/anr/traces.txt)
5 手机出厂的两种模式
development 开发者模式(含root权限)
user模式(不含有root)