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

4 篇文章 0 订阅
1 篇文章 0 订阅
把近几天理解的Log 和大家分享。
  在android的学习中,无意间发现了Log是个好东西,网络上也看了相关Sundy的Log分析教程 < http://www.eoeandroid.com/forum-viewthread-tid-55761-highlight-sundy.html>,也写得非常不错,膜拜一下。回归主题:
  首先我们要知道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文件。
  在此,我做了一个小小的例子,代码很简单:


  View Code
  1  private Button button;
  2
  3     /** Called when the activity is first created. */
  4     @Override
  5     public void onCreate(Bundle savedInstanceState) {
  6         super.onCreate(savedInstanceState);
  7         setContentView(R.layout.main);
  8         this.button = (Button)findViewById(R.id.button_01);
  9         this.button.setOnClickListener(new OnClickListener() {
  10
  11             @Override
  12             public void onClick(View v) {
  13                 // TODO Auto-generated method stub
  14                  Log.i("laical", "U click in button");
  15                 Toast.makeText(getApplicationContext(), "Button Click 事件", Toast.LENGTH_SHORT)
  16                         .show();
  17
  18                 Log.v("LaicalNetWork", "Verbose");
  19                 Log.d("LaicalNetWork", "Debug");
  20                 Log.i("LaicalNetWork", "Info");
  21                 Log.w("LaicalNetWork", "Warn");
  22                 Log.e("LaicalNetWork","Error");
  23             }
  24         });
  25     }
  26     @Override
  27     protected void onStart() {
  28         // TODO Auto-generated method stub
  29          super.onStart();
  30         Log.i("StartLog", "Strat log");
  31     }
  点击Button,然后我们查看相应的Log记录:


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


  通过这个Log文件记录,如果程序出现ANR或者FC ,找到log,查找“ANR ”(注意加上空格)或“Fatal”,我们就可以很方便的知道我们的程序具体错误在什么地方,然后定位到相应的代码,听起是不是很方便o(∩_∩)o? 下来赶紧Try下
  其次,我们的应用程序总算是写好了,不管你是开发web应用也好,还是Mobile应用,发布的时候总要测试人员进行压力测试通过后,才发布应用让用户使用,对吧?下面就Monkey就登场了,需要用到“adb”,下面通过一个应用来测试下具体的流程。
  第一步,cmd 进入“ adb shell”,进入avd 的根目录后,“ls ”看到了一个data的目录,里面就是我们要安装程序的


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


  -p 表示指向的包名,-v 表示要测试的次数,
  当然你如果熟悉了Monkey的话,直接“adb -d shell monkey -p your.package.name -v 6000”也是可以的。
  接下来所发生的事情省略N个字…….(温馨提示:查看模拟器和log文件,如出现ANR事件,与本人无关,哈哈),人非圣贤,孰能无过,对吧?
  差不多了吧,Log目前也只是介绍了个大概,如果有哪些我理解得不对的地方,一定要告诉我,互相交流学习,进步嘛o(∩_∩)o…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值