`
mmdev
  • 浏览: 12844373 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

转载自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_1.jpg

看到现在你肯定也有和我以前一样的疑问,那这个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");


}

log_2.jpg


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

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

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

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

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

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

相关推荐

Global site tag (gtag.js) - Google Analytics