3月 13

爬撞道口野长城

2016年春季来了,想去看桃花,可惜北京的三月份还太冷,没有什么花开。在同事推荐下去了撞道口野长城。撞道口村位于北京怀柔,距离北京城50多公里,一个多小时车程。去的那天,有雾霾,到村子里十一点半,吃的农家饭(人均50),爬长城整体耗时三四个小时。

继续阅读

7月 01

Mysql主从库搭建

在实际企业应用环境当中,单台mysql数据库是不足以满足日后业务需求的。譬如服务器发生故障,没有备份服务器来提供服务的话,业务就得停止。介于这种情况,我们来学习一下mysql主从复制。

使用mysql主从复制的好处有:

  1. 采用主从服务器这种架构,稳定性得以提升。如果主服务器发生故障,我们可以使用从服务器来提供服务。
  2. 在主从服务器上分开处理用户的请求,可以提升数据处理效率。
  3. 将主服务器上的数据复制到从服务器上,保护数据免受意外的损失。

继续阅读

9月 19

Android apk使用debug key重新签名

在做android黑盒自动化时(如robotium),我们的test.apk必须和dest.apk使用相同的签名,robotium才有权限驱动dest.apk自动化运行。在开发环境中,一般使用测试签名,密钥库一般是~/.android/debug.keysotre。之前一直使用google code上的resign.jar图形化运行,后来使用android-maven-plugin这个插件,直接支持重签名。现在的项目没用maven管理,需要在shell下进行签名,步骤如下:

  1. 将目标apk重命名为zip文件
     mv dest.apk dest.zip
    
  2. 解压zip文件,并删除里面的META-INF文件夹
     unzip dest.zip
     rm -rf META-INF
    
  3. 继续阅读

9月 19

Android自动化性能收集

Android 功能测试自动化框架较多,UIAutomator,Robotium,Appium等。Case执行过程中,可能希望收集手机的性能指标,包括内存、cpu、流量等。使用java+shell+bat简单实现了android手机性能收集。

简述

过程很简单:

  • 在启动自动化case前,执行收集信息的命令。

    其实就是一些adb shell命令,如下:

          adb shell top -n 1| awk '{print $3" "$10}' >> cpu.dat  
          adb shell ps | awk '{print $5" "$9}' >> mem.dat  
    
          //android sdk level 大于16  
          adb shell cat /proc/uid_stat/$uid/tcp_rcv >> $uid"_recv.dat"  
          adb shell cat /proc/uid_stat/$uid/tcp_snd >> $uid"_snd.dat"  
    
          //android sdk level 小于16   
    
    
          adb shell cat /proc/$pid/net/dev | grep wlan | awk '{print $2" "$10}' >> $pid"_net.dat"  
    
  • 继续阅读

5月 07

Java堆内存解析和垃圾回收机制

JVM(java虚拟机)的内存结构分为堆、栈、本地方法栈、方法区等。栈主要保存线程、进程等相关信息,本地方法栈用于支持native人方法,方法区主要存储类、静态变量、属性、方法等,这些信息存放在PermanetGeneration中,可以通过-XX:PermSize-XX:MaxPermSize来指定最小值和最大值。下面详细介绍一下堆内存: 继续阅读