android常用命令,达成android自动化测试铺排与运作Shell脚本分享网赌十大信誉的平台

我的配置是linux 64, android4.2.2的sdk。
实现的细节都在代码注释里了,变量名以及echo的内容也是说明的一部分。

转载请说明出处:Android环境变量作用–命令行操作(ADB、AVD等)

android sdk
工具包括adb,android,mksdcard等工具下面我们将介绍如何使用这些工具。

主流程为:

Android环境变量配置


这些我们应该自己配置过。

  • Linux
    执行:sudo gedit /etc/profile
    然后:在/etc/profile 文件中添加如下配置:

1,下载android sdk将 android
sdk安装目录/tools目录添加到path环境变量。

1.检测是否指定端口的模拟器已经运行,若有则关闭
2.创建模拟器
3.启动模拟器
4.用ant build包,通过检查bin目录下有没有apk来确定是否成功
5.检查指定端口的模拟器是否已正常运行
6.用adb安装apk
7.启动apk的activity,让程序自己跑
8.用shell
ps循环检测程序是否已退出,若已退出,检查是否sdcard是是否已成功生成报告文件
9.若报告文件不完整,即程序被中止/崩溃,重启activity
10.检测是否超时

set java environment————————————————-

JAVA_HOME=/home/androidjp/Android/jdk/jdk1.8.0_25
export JRE_HOME=/home/androidjp/Android/jdk/jdk1.8.0_25/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

1> 启动adb  adb start-server

复制代码 代码如下:

set android environment——————————————–

2>关闭adb adb kill-server

#!/bin/bash
# by hursing 2013-10-28
#
指定port,可以不干扰其它正在运行的模拟器。根据sdk文档,port可以在5554至5584之间,最好是偶数
portNumber=5578
emulatorPID=`ps -ef | grep “emulator” | grep “port $portNumber” | awk
‘{print $2;}’`
if [ -n “$emulatorPID” ]; then
 echo “close emulator window”
 kill -9 $emulatorPID
fi

set ‘tools’ and ‘platform-tools’ are for android avd and adb logcat

export ANDROID_HOME=/home/androidjp/Android/sdk/android_sdk
export
PATH=/home/androidjp/Android/sdk/android_sdk/tools:/home/androidjp/Android/sdk/android_sdk/platform-tools:$PATH

2.查询当前设备的实例

# 创建模拟器,force选项能覆盖已存在的模拟器,即sdcard内容也抹掉。echo
no是回答不需要自定义硬件配置
echo “create avd”
emulatorName=”Test”
echo no | android create avd –name $emulatorName –force –target
android-17 –sdcard 300M –abi armeabi-v7a

set android aapt enviorment—————————————–

export AAPT_HOME=$ANDROID_HOME/build-tools/21.1.0/aapt
“`

  • Windows
    在“我的电脑”->“属性”->“高级”->“环境变量”
    中可以配置系统变量Path,加上几句,最终得到:
    Path:……; D:\Android\sdk;D:\Android\sdk\tools;D:\Android\sdk\platform-tools;

adb devices

# 启动模拟器,port选项指定tcp端口。&是另起进程执行
echo “start avd”
emulator -avd $emulatorName -port $portNumber &

命令行管理模拟器设备(AVD)


  • android list:列出机器上所有已经安装的Android版本和AVD设备
  • android list avd:列出机器上所有已经安装的AVD设备;
  • android list target:列出机器上所有已经安装的Android版本
  • android create avd:创建一个AVD设备
    格式:android create avd -n <AVD名称> -t <SDK版本号> -s
    <AVD皮肤> -p <AVD保存路径>
    如:android create avd -n 1.5 -t 3 -s HVGA
  • android delete avd:删除一个AVD设备
  • android update avd:升级一个AVD设备使其符合新的SDK环境
  • android create project:创建一个新的Android项目
  • android update project:更新一个已有的Android项目
  • android create test-project:创建一个新的Android测试项目
  • android update test-project:更新一个已有的Android测试项目

3.安装程序

# 没有证书签名,所以是debug
echo “build apk”
android update project -p .
ant debug
if [ $? -ne 0 ]; then
 echo “build failed, try again now…”
 ant clean
 ant debug
 if [ $? -ne 0 ]; then
  echo “can NOT build apk!”
  exit 5
 fi
fi
apkFile=`find ./bin/*.apk | grep -v “unaligned”`
if [ -z “$apkFile” ]; then
 echo “no apk file generated!”
 exit 7
fi

命令行启动模拟器


使用emulator.exe启动模拟器的两种方法:

  • emulator -avd <AVD名称>
  • emulator -data <镜像文件名称>
    【镜像文件一般位于AVD设备保存位置的avd文件夹目录下】

avd的默认路径(win):C:\用户\Admin.android\avd\avd名.avd

adb install apk.apk

# wait-for-device能block住脚本直到不显示offline
echo “check emulator ready…”
emulatorSerialNumber=”emulator-$portNumber”
ready=`adb devices | grep “$emulatorSerialNumber”`
if [ -z “$ready” ]; then
 echo “emulator can NOT launch.”
 exit 3
else
 ready=`adb devices | grep “$emulatorSerialNumber.*offline”`
 if [ -n “$ready” ]; then
  echo “wait-for-device”
  adb -s $emulatorSerialNumber wait-for-device
  sleep 10
 fi
fi

常用的ADB命令


ADB是一个非常强大的工具,位于SDK安装目录的platform-tools子目录下,它既可以完成模拟器文件与电脑文件的相互复制,也可以安装apk应用,甚至直接切换到Android系统中执行Linux命令。

  • adb -devices:查看当前运行的模拟器
  • adb push c:/123.doc /sdcard/:将电脑文件复制到模拟器中
  • adb push /sdcard/abc.txt c:/:将模拟器文件复制到电脑
  • adb
    shell:启动模拟器的shell窗口,此时就可以在模拟器的shell窗口中直接执行Linux命令
  • adb install [-r] [-s]
    <文件>
    :安装apk文件,其中-r表示重装该apk,-s表示将apk安装到SD卡上,默认是安装到内部存储器上
  • adb uninstall [packge]
    [-k]
    :从系统中卸载程序包,-k表示只删除该应用程序,但保留该应用程序所有的数据和缓存目录

adb install -s emulator-5554 install
apk.apk -s指定某个设备安装

#
当adb可以安装时,模拟器未必已经初始化完成,还是会失败的,所以要检测error,试3遍。
echo “install apk”
let maxTryTimes=3
while [ $maxTryTimes -gt 0 ]; do
 result=`adb -s $emulatorSerialNumber install $apkFile`  # ‘ant
installd’ can NOT specify device
 check=`echo “$result” | grep -o “Error”`
 if [ -z “$check” ]; then
  echo “successfully install apk”
  break;
 else
  echo “$result”
  echo “install failed, try again after sleeping 10 seconds”
  sleep 10
  let maxTryTimes-=1
 fi
done
if [ $maxTryTimes -eq 0 ]; then
 echo “can NOT install apk to emulator.”
 exit 4
fi

adb install -r apk.apk
重新安装程序

echo “start MainActivity”
activityName=”com.hursing.MainActivity”
packageName=`cat AndroidManifest.xml | grep -o “package=\”.*\”” |
sed ‘s/package=”//;s/”//’`
adb -s $emulatorSerialNumber shell am start -W -n
“$packageName/$activityName”

4,卸载程序

heartBeat=10
echo “waiting for test finished.check every $heartBeat seconds.”
resultFile=”/sdcard/result.txt”
successFlag=”End at “
sleep $heartBeat
let maxTimeLimit=60*10
while [ $maxTimeLimit -gt 0 ]; do
 running=`adb -s $emulatorSerialNumber shell ps | grep $packageName`
 if [ -n “$running” ]; then
  let maxTimeLimit-=$heartBeat
  echo “waiting, sleep another $heartBeat seconds…”
  sleep $heartBeat
 else
  report=`adb -s $emulatorSerialNumber shell cat “$resultFile”`
  check=`echo “$report” | grep -o “$successFlag”`
  if [ -z “$check” ]; then
   echo “app crash, run activity again…”
   adb -s $emulatorSerialNumber shell am start -W -n
“$packageName/$activityName”
  else
   echo “app exit normally”
   break
  fi
 fi
done

adb uninstall com.abdroid.apk
卸载程序,后面为程序的包名

echo “close emulator window.”
kill -9 `ps -ef | grep “emulator” | grep “port $portNumber” | awk
‘{print $2;}’`

adb uninstall -k com.android.apk
卸载程序,保存数据和缓存

if [ $maxTimeLimit -eq 0 ]; then
 echo “Test timeout!”
 echo “$report”
 exit 9
else
 echo “Test Finished!”
 echo
 echo “$report”
fi

5.运行程序

java代码里有一点要注意,如果程序崩溃,弹出了”has
stopped”对话框,那么ps还是能查到的,要自己调用

adb -s emulator-5554 shell am start -n
com.android.apk/com.android.apk.Main

复制代码 代码如下:

Main是apk的主Activity

Thread.setDefaultUncaughtExceptionHandler

6.pc与模拟器或真机交换文件

网赌十大信誉的平台,,在handler里直接System.exit(0)才行。

从真机复制到pc

您可能感兴趣的文章:

  • android开发教程之开机启动服务service示例
  • android开机自启动原理与实现案例(附源码)
  • Android中实现开机自动启动服务(service)实例
  • android
    九宫格滑动解锁开机实例源码学习
  • Android开机画面的具体修改方法
  • android开机自启动app示例分享
  • Android开机自启动程序详解
  • Android
    开机广播的使用及配置
  • android基础教程之开机启动示例
  • android应用实现开机自动启动方法
  • Android编程实现开机自动运行的方法

adb -s htc pull /sdcard/camera.jpg
picture.jpg

从pc到真机

adb -s htc push picture.jpg
/sdcard/abc.jpg

7.进入shell命令

adb -s htc shell

8.创建avd设备

android create avd -n myandroid -t

-n 设备的名称

-t android版本号

android create avd -n myandroid -t 2 -p
d:\my\avd

-p 制定模拟器路径

9,删除avd

android delete avd -n myandroid

10.查看所有android设备

android list avds

 

原文链接:

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注