通过CMD命令行创建和使用Android 模拟器 AVD

进行Android APP测试时,若手持android手机设备稀少的情况下,我们可以通过创建Android模拟器AVD来代替模拟android手机设备,本文就具体介绍如何创建和使用AVD。

       1、创建AVD
        每个AVD模拟一套虚拟设备来运行Android应用程序。无论是在Eclipse下或者命令行下创建新的avd,系统会在系统默认文件路径下自动创建一个.android 文件夹,所创建的有关avd的配置信息则被保存在该.android目录下,如:
       C:\Documents and Settings\Administrator\.android
3.jpg2.jpg


       1)命令行方式创建AVD
       进入Android SDK目录下的tools子目录(如:D:\Android\sdk\tools)
       运行:
       android create avd -n SERVYOU -t 2
      
4.jpg

       在创建avd文件得第二步,控制台提示“是否自定义自己得设备”,默认选项是"no",如果输入 "y",接下来可以一步步根据提示,定制自己得模拟器性能参数。
5.jpg

       这里t代表target目标平台的Target ID,我们可以使用android list targets来查看这里t的可选参数。
如Target ID=2 对应的android 2.3.3系统平台
6.jpg

我们也可以查看刚刚创建的avd是否已存在,可用命令android list avd查看
8.jpg

上方,只是简单的创建一个avd模拟器,当然我们可以定制模拟器的特定性能参数:
7.jpg
选项:
-t --target 新的AVD 的Target ID(必须)
-c --sdcard 指向一个共享的SD 存储卡的路径或是为新的AVD 定制的新SD 存储卡的容量大小
-p --path 新AVD 将被创建的位置路径
-n --name 新AVD 的名称(必须)
-f --force 强制创建(覆盖已存在的AVD)
-s --skin 新AVD 的皮肤


举例如下:
将建一个名叫GPhone 的AVD,Target ID=6、SD 存储卡容量52M、路径C:\AVD\、皮肤QVGA
创建一个新的AVD:android create avd -n GPhone -t 6 -c 52M -p C:\AVD\ -s QVGA



       2)开发工具创建AVD
      在Eclipse中。选择Windows > Android SDK and AVD Manager。
   在帖子android测试开发环境搭建中有描述过,请查看此贴。




       2、创建SDcard镜像文件,模拟真实手机设备中的SDcard
       进入Android SDK目录下的tools子目录,运行
       mksdcard -l sdcard 512M  D:\Android\sdk\tools\sdcard.img
       这样就创建了一个512M的SD卡镜像文件:查看D盘,D盘的tools目录下会有一个sdcard.img 文件。
10.jpg



       3、命令行下运行AVD时加载sdcard
       进入Android SDK目录下的tools子目录,运行
       emulator -avd SERVYOU -sdcard sdcard.img
注意:此处-sdcard 后跟镜像路径,因为我当前正好是在镜像当前路径,所以路径前缀省略了
11.JPG
输入命令后,可直接启动SERVYOU模拟器,如图
9.jpg
       如果不想每次都加-sdcard $sdcard_path,有两个办法:
       解决办法一:可以把sdcard.img 复制到C:\Documents and Settings\Administrator\.android\avd\下对应的AVD目录下。
       解决办法二:修改配置文件,C:\Documents and Settings\Administrator\.android\avd\AVD_NAME.avd\,打开config.ini,加入以下行:sdcard.path=你的SD卡路径。



       4、AVD路径设置
       前面提到,不管用Eclipse还是从命令行创建Android Emulator时,相应的文件是被放置到 “C:\Documents and Settings\Administrator\.android“ 下面。如果想改变AVD的路径设置,也有2个办法:
       解决办法一:
       新添加一个环境变量,名字为 "ANDROID_SDK_HOME”,然后把变量值改为你想将".android”文件夹(AVD信息)所放置的位置
       解决办法二:
       修改配置文件中的路径,比如我的AVD名称是MyAVD, 打开C:\Documents and Settings\Administrator\.android\avd目录中的文件MyAVD.ini文件,找到
       target=android-5path
             =C:\Documents and Settings\Administrator\.android\avd\MyAVD.avd
       修改其路径即可。


       遇到ERROR: unknown virtual device name 这样的问题一般是由于AVD文件路径引用错误造成的。

      5、查看当前运行的模拟器/手机设备

运行adb devices,可能查看到当前连接的模拟器和设备
12.jpg


      6、通过命令安装APK到模拟器/真机
运行 adb install APK_Path
13.jpg
14.jpg

     7、通过命令卸载模拟器APK (真机若要通过命令卸载,需要有root权限)
第一种用命令uninstall
运行 adb uninstall APK_Package_name,如上图‘移动电子税务局’的包名为cn.com.servyou.xj
则运行adb uninstall cn.com.servyou.xj
16.jpg

第二种进入模拟器操作系统,通过lunix命令删除(不过此方法会造成APK清理不干净,有残余数据)

adb shell (进入模拟器自带的操作系统)

cd data/app (切换到apk的安装目录)

       rm ***.apk (用Eclipse切换到DDMS的File Explorer中查看,data/app下)
17.jpg




如运行rm cn.com.servyou.xj-1.apk,则可删除‘移动电子税务局’APK包
此时再次运行ls,cn.com.servyou.xj-1.apk包名没有了

18.jpg

第三种,可以再模拟器/真机上直接删除,无需命令,非常简单
进入Setting -> Applications -> Manage applications -> 移动电子税务局 -> Uninstall,就可以直接删除了
19.jpg

转载于:https://www.cnblogs.com/ccxniit2004/p/3926935.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/420653.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker安装-环境阿里OS7安装

docker安装-环境阿里OS7安装 官网地址 第一步 curl -fsSL https://get.docker.com -o get-docker.sh第二步 sh get-docker.sh第三步-- 开启docker systemctl start docker第四步–查看docker版本 docker version欧克

mvc框架异常处理机制

目录1.mvc 框架提供的SimpleMappingExceptionResolver2. 继承HandlerExceptionResolver类,根据controller抛出的异常,进行对应的业务操作项目地址https://github.com/sevenyoungairye/spring-mvc-exception1.mvc 框架提供的SimpleMappingExceptionResolv…

前端学习(1188):事件绑定

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><!-- v-cloak用法 -->&…

hibernate基于单表curd

目录1. hibernate框架2. 配置文件实体mapper和hibernate.cfg.xml3. 操作单表增删改查1. hibernate框架 数据持久层的框架 功能定位:专门用来访问数据库,对数据库进行增删改查操作 Hibernate是一个ORM框架 MyBatis MyBatisPlus、JPA&#xff08;springdata jpa&#xff09; O…

前端学习(1189):事件基本使用

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><!-- v-cloak用法 -->&…

Selenium - IWebDriver 控制scroll bar到底部

有时候我们需要控制页面滚动条上的滚动条&#xff0c;但滚动条并非页面上的元素&#xff0c;这个时候就需要借助js是来进行操作。一般用到操作滚动条的会两个场景&#xff1a; 注册时的法律条文需要阅读&#xff0c;判断用户是否阅读的标准是&#xff1a;滚动条是否拉到最下方。…

Angular常用命令行和指令

命令行: 命令行含义简写ng new 包名生成项目包ng n 包名ng serve启动项目, 端口号4200ng sng serve --open启动项目 并 在默认浏览器自动打开ng s -ong generate component 组件名生成组件ng g c 组件名ng generate directive 指令名生成指令ng g d 指令名ng generate pipe 管…

前端学习(1190):事件修饰符

传统方式 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><!-- v-cloak用…

mybatis --入门 单表增删改查-curd

目录1. mybatis 环境搭建2. 实体类映射文件配置&#xff08;写sql&#xff09;3. mybatis核心配置文件 &#xff08;环境配置&#xff09;4. 测试mybatis document https://mybatis.org/mybatis-3/zh/ mybatis in github https://github.com/mybatis/mybatis-3 1. mybatis 环…

ios开发之.pch文件的使用

案例&#xff1a;开源中国iOS客户端 当我们新建一个工程的时候&#xff0c;在Supporting FIles文件下会看到一个以 -Prefix.pch结尾文件的文件&#xff0c;pch全称是“precompiled header”&#xff0c;也就是预编译头文件&#xff0c;该文件里存放的工程中一些不常被修…

循环给对象创建属性名和属性值

4.7号笔记&#xff1a; ​ ① 循环给对象创建属性名和属性值&#xff1a; data.forEach(item > {item.identity identity;})console.log(data);

CWnd与HWND的区别与转换

一、区别HWND是句柄&#xff0c;CWnd是MFC窗体类,CWnd中包含HWND句柄成员对象是m_hWnd.HWND是Windows系统中对所有窗口的一种标识&#xff0c;即窗口句柄。这是一个SDK概念。 CWnd是MFC类库中所有窗口类的基类。微软在MFC中将所有窗口的通用操作都封装到了这个类中&#xff0…

字符串截取后两位,字符串转成数组,再转换位字符串

4.11号笔记 字符串去掉所有空格&#xff0c;转成数组&#xff0c;再转成字符串 var str 你好&#xff01; 世界 * * var arr str.replace(/\s/g, "").split("");//去掉所有空格并转成数组arr.splice(-2, 2); // 从最后面截取两位str arr.join(&q…

mybatis dao实现 || 接口代理方式实现

目录1、mybatis环境搭建2、mybatis dao接口实现3、动态代理方式&#xff0c;只实现Mapper接口mybatis入门单表操作demo mybatis dao层实现1. 实现dao层接口 2. 接口代理方式实现dao代理开发要求&#xff1a;​ Mapper接口开发方法只需要编写Mapper接口&#xff08;相当于dao接…

lvs-dr模式原理详解和可能存在的“假负载均衡”

原文地址&#xff1a; http://blog.csdn.net/lengzijian/article/details/8089661 lvs-dr模式原理 转载注明出处&#xff1a;http://blog.csdn.net/lengzijian/article/details/8089661 先附上一张原理图&#xff1a; 为了更清晰的表述lvs-dr原理&#xff0c;我们用tcpdump工具…

rem.js常用代码

rem.js (function flexible(window, document) {var docEl document.documentElement;var dpr window.devicePixelRatio || 1;// adjust body font size// 设置 em 默认字体所对应的大小function setBodyFontSize() {if (document.body) {document.body.style.fontSize 12 …

mybatis3 类型别名

目录问题描述解决方案方案二&#xff0c;直接扫描包问题描述 <!-- 插入操作 需要user参数 --><insert id"insertUser" parameterType"cn.bitqian.entity.User">insert into users1 values (#{userId}, #{userName}, #{userPassword})</inse…

vue-获取某个组件渲染的Dom根元素

function getComponentRootDom(comp, props){const vm new Vue({render: h > h(comp, {props})})vm.$mount();return vm.$el;}

动态sql (sql-if,sql-foreach)

目录1. UserMapper接口1. sql-if2. sql-foreach3. 多条件查询和根据多个id查询测试say sth.. 每当我回顾以前写jdbc分页&#xff0c;多条件查询时&#xff0c;我那是有多痛苦。 特别是当我拼接条件时&#xff0c;对象.getName 又是判断null&#xff0c;又是判断空字符串的。 还…

把一张合成图分拆出各个小图

反编译一个程序&#xff0c;看到一张合成图&#xff0c;想分拆出里面的每个小图&#xff0c;知道了各个图的坐标大小后&#xff0c;写了一个小方法&#xff0c;希望对大家有用哈 package com.bitimage;import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStr…