转载自http://www.eoeandroid.com/thread-75701-1-1.html

如何理解、使用Android LogCat以及通过Money进行压力测试

把近几天理解的Log 和大家分享。

在android的学习中,无意间发现了Log是个好东西,网络上也看了相关Sundy的Log分析教程,也写得非常不错,膜拜一下。回归主题:

首先我们要知道LogCat窗口在哪里,一般在DDMS中可以看到,如果没有出现也没有关系,通过“Windown > Show View > LogCat”也能找到相应的窗口,出现之后我们看到了下面图片的提示, Log中有五种类型(Verbose,Debug,Info,Warn,Error),verbose英文字义为“唠叨”,也就是告诉我们程序应该怎么做,Debug 调试不用说了,Info 阐述相应的程序信息,Warn 对程序提出警告,Error 程序出错;看到下面的箭头同时也告诉我们它们的也是有相应的等级权重的,由左到右权重依次增加。


看到现在你肯定也有和我以前一样的疑问,那这个log 会是在什么情况下产生呢?产生后我们又应该如何进行处理?
Log 文件产生一般通常有两种情况
1、程序强制关闭或者异常退出的情况,也就是Force Closed (简称:FC)
2、程序无响应的情况,Application No Response (简称:ANR)
顺便提到,ANR产生一般主要由于界面操作过程中,线程响应超过5S,或者是HandleMessage回调函数执行过程中超过10S;
产生log 的位置在手机目录data/log,AVD不会产生Log文件。

在此,我做了一个小小的例子,代码很简单:

private Button button;


/** Called when the activity is first created. */


@Override


public
void onCreate(Bundle savedInstanceState) {


super.onCreate(savedInstanceState);


setContentView(R.layout.main);


this.button = (Button)findViewById(R.id.button_01);


this.button.setOnClickListener(new OnClickListener() {


@Override


public
void onClick(View v) {


// TODO Auto-generated method stub


Log.i("laical", "U click in button");


Toast.makeText(getApplicationContext(), "Button Click 事件", Toast.LENGTH_SHORT)


.show();


Log.v("LaicalNetWork", "Verbose");


Log.d("LaicalNetWork", "Debug");


Log.i("LaicalNetWork", "Info");


Log.w("LaicalNetWork", "Warn");


Log.e("LaicalNetWork","Error");


}


});


}


@Override


protected
void onStart() {


// TODO Auto-generated method stub


super.onStart();


Log.i("StartLog", "Strat log");


}



点击Button,然后我们查看相应的Log记录:


Time 表示具体日志记录时间,中间的字幕是log 的类型,pid则是它的线程编号,tag为这个log记录的标题,message 则是相应的信息。
这里我们也可以看到tag,msg


通过这个Log文件记录,如果程序出现ANR或者FC ,找到log,查找“ANR ”(注意加上空格)或“Fatal”,我们就可以很方便的知道我们的程序具体错误在什么地方,然后定位到相应的代码,听起是不是很方便o(∩_∩)o? 下来赶紧Try下

其次,我们的应用程序总算是写好了,不管你是开发web应用也好,还是Mobile应用,发布的时候总要测试人员进行压力测试通过后,才发布应用让用户使用,对吧?下面就Monkey就登场了,需要用到“adb”,下面通过一个应用来测试下具体的流程。
第一步,cmd 进入“ adbshell”,进入avd 的根目录后,“ls ”看到了一个data的目录,里面就是我们要安装程序的


第二步,找到所有安装应用程序的包,其中里面就有你要测试的包的名称

-p 表示指向的包名,-v 表示要测试的次数,
当然你如果熟悉了Monkey的话,直接“adb -d shell monkey -p your.package.name -v 6000”也是可以的。
接下来所发生的事情省略N个字…….(温馨提示:查看模拟器和log文件,如出现ANR事件,与本人无关,哈哈)人非圣贤,孰能无过,对吧?

差不多了吧,Log目前也只是介绍了个大概,如果有哪些我理解得不对的地方,一定要告诉我,互相交流学习,进步嘛o(∩_∩)o…

更多相关文章

  1. 基于 Android(安卓)NDK 进行 OpenGL ES开发
  2. Android(安卓)Frame动画demo
  3. android wifi 无线调试
  4. android 本地数据库
  5. Android第一步
  6. 第三方程序调用Android(安卓)Telephony 接口机制
  7. Android(安卓)MediaPlayer使用注意
  8. Android(安卓)简单项目
  9. 开发人员应该了解的 Android(安卓)常用术语

随机推荐

  1. Android(安卓)2D绘图总结
  2. Android文件递归遍历
  3. android 不使用布局文件,完全由代码控制布
  4. EditText对行光标默认第一行问题
  5. Android应用程序启动过程源代码分析(2)
  6. android 图片设置圆角
  7. Android(安卓)ExpandableListView 带有Ch
  8. android控件相对布局
  9. android 倒计时
  10. Android中简单的音乐播放器