山东师范大学实验报告
实验课程 | Java高级程序设计 | 实验项目 | Android编程工具使用方法 |
实验时间 | 2015年9月29日 | 专业、班级 | 13级电子商务1班 |
姓 名 | 刘震 | 学 号 | 201324010125 |
教师批阅意见: 成绩 指导教师签名 | |||
实验目的和要求 1、了解Android调试工具ADB和DDMS。 2、使用Eclipse建立名为MyAndroid的工程, 包名称为android,并在运行界面显示Hello World! 3、 建立名为AndroidShouJi的Android模拟器,并运行程序。 4、 了解所建工程文件中R.java和l文件的用途。 实验仪器和环境 1、联想笔记本电脑Windows7旗舰版 2、Eclipse+ADT23.0.8+SDK24.3.4+Android6.0 实验内容 1、 Android调试工具ADB: (1)、android环境变量的配置: 配置好jdk的环境变量后,电脑安装Android SDK,接下来进行android环境变量的配置:右击“计算机”——“属性”——“高级系统设置”——“高级”——“环境变量”,打开下图的环境变量配置界面: 在系统变量这一栏里点击“新建”,变量名处填写“ANDROID”(建议此处的变量名大写),“变量值”处复制你的SDK所在目录,我的是“E:\AndroidSDK”。在Path处添加这些内容:“%ANDROID%\tools;%ANDROID%\platform-tools;”。这样可在命令行直接输入adb和android等指令,而无需一步步路由到文件目录下再打开应用。 (2)、命令行下测试adb: “开始”——搜索栏中输入“cmd”打开命令行——输入“adb”——回车,若出现以下内容则说明环境变量搭配成功。 如果输入adb后出现的是“’adb’不是内部或外部命令,也不是可运行的程序或批处理文件”则说明环境变量配置出错,请检查配置环境变量时文件名或路径名是否有误?每一个环境变量是否用“;”隔开,路径之间是否用“\”分隔开而不是“/”,并且建议输入路径名时复制粘贴而不是一个字符一个字符的输入到变量值。 (3)、eclipse androidadb调试工具简介 ADB(Android Debug Bridge)是Android SDK中的一个工具, 使用ADB可以直接操作管理Android模拟器或者真实的Andriod设备。ADB主要功能有: 1、在Android设备上运行Shell(命令行) 2、管理模拟器或设备的端口映射 3、在计算机和设备之间上传/下载文件 4、将电脑上的本地APK软件安装至Android模拟器或设备上 在使用ADB之前首先看看你的Eclipse中是否已经安装了Android SDK工具包,打开命令行输入“Android”,打开SDK Manager(注意:打开SDK Manager后不要关闭命令行界面,否则相应的应用也会关闭),如下图: 其中以下两个是一定要有的,必要的时候也应当及时更新: 另外,这个USB 驱动也是需要的,用来连接你的Android设备。 如果右侧显示“Not installed”则建议勾选它进行下载安装。 ADB是一个客户端-服务器端程序, 其中客户端是你用来操作的电脑, 服务器端是android设备。另外adb这个工具的存放位置是你的sdk根目录下的“” (4)、adb工具的使用: 首先我们打开SDK根目录下的,打开如下界面: 点击Create…新建一个虚拟机,配置可以自己选,以下是我的虚拟机配置截图: 新建完之后点击“Start…”启动虚拟机,等待一段时间后虚拟机启动完成。在虚拟机的建立过程中会出现一些例如“不到系统镜像”等问题,几乎所有问题解决的办法是打开下载对应版本Android SDK工具,再打开,后建立Android虚拟机, 问题一般都能解决。另外多提一点,Google官方的建议是永远使用最新版本的SDK。 下面是我虚拟机的截图: 虚拟机建立完是英文的,在这里我们把它设置成中文语言,方法如下: “Settings”——“Language & input”——“Language”——到“中文(简体)”点击确 认即可。可以看到已经成为中文界面。 启动虚拟机后打开cmd窗口,开始熟悉adb的一些命令: 输入“adb devices”回车显示出当前正在运行的虚拟机:以下是我自己电脑的截图:一般电脑上安卓虚拟机的“代号”都是“emulator-5554”。 输入“adb shell pm list packages”可以列出目标设备中已安装的应用程序包: 另外,还有其他一下adb常用命令: a) adb install <apk文件路径> 这个命令将指定的apk文件安装到设备上 b) adb uninstall <包名> adb uninstall -k <软件名> 如果加 -k 参数,为卸载软件但是保留配置和缓存文件. adb ample.android.jetboy c) adb shell 这个命令将登录设备的shell adb shell <command命令> 后面加<command命令>将是直接运行设备命令, 相当于执行远程命令 d) adb help 这个命令将显示帮助信息 e) adb push <本地路径> <远程路径> 从电脑上发送文件到设备 2、 DDMS的使用: (1) DDMS的启动: DDMS有两种启动方式,分别是在Eclipse中打开和双击 SDK – tools\ddms.bat 运行。以下是两种打开方式的截图:在eclipse中如果不到DDMS的选项,点击eclipse右上角的一个按钮“open perspective”弹出界面点击“DDMS”后确认即可打开该界面。 如果用ddms.bat打开,则是如下界面: 因为当前没有虚拟机或者真机链接,所以DDMS的列表是空的,下面我们启动一台虚拟机来测试DDMS的功能。 (2)、DDMS功能: 控制Android模拟器的网络速度和延迟 模拟语音和SMS短信通信 支持的网络速率:GSM、HSCSD、PRS、EDGE、MTS、DPA和全速率 支持的网络延迟:GPRS、EDGE、UMTS和无延迟 Telephony Status: 通过选项模拟语音质量以及信号连接模式。 Telephony Actions: 模拟电话接听和发送SMS到测试终端。 Location Control: 模拟地理坐标或者模拟动态的路线坐标变化并显示预设的地理标识,可以通过以下3种方式: Manual: 手动为终端发送二维经纬坐标。 GPX: 通过GPX文件导入序列动态变化地理坐标,从而模拟行进中GPS变化的数值。 KML: 通过KML文件导入独特的地理标识,并以动态形式根据变化的地理坐标显示在测试终端 DDMS对虚拟机和外接真机有同等效用。如果系统检测到它们同时运行,那么DDMS会默认指向虚拟机。之前写的启动虚拟机的方式也可以在eclipse中直接进行而无需打开目录下的。启动虚拟机后DDMS变为了这样: DDMS 的工作原理DDMS将搭建起IDE与测试终端(Emulator 或者connected device)的链接,它们应用各自独立的端口调试器的信息,DDMS可以实时监测到测试终端的连接情况。当有新的测试终端连接后,DDMS将捕捉到终端的ID,并通过adb建立调试器,从而实现发送指令到测试终端的目的。 接下来我测试的是在DDMS中与File Explorer的使用: a)、发短信:打开DDMS的Emulator Control界面 在Incoming number中输入你要发送到的目标手机号码(因为是虚拟机,所以发短信当然也只是虚拟测试的)。点击SMS(如果是打电话则应选择Voice),在输入框中输入发送的内容,点击send即可发送。 打开虚拟机的短信界面,可以看到使用DDMS发送出的短信: b)、File Explorer的使用: 打开File Explorer的界面,它的作用是上传、下载和删除Android内置存储器上的文件,显示文件和目录的名称、权限、建立时间等,不同的字母代表不同的权限。 3、 使用Eclipse新建项目: 新建Android Application Project项目“MyAndroid”,项目建好后eclipse会自动生成第一个界面,并在界面上显示Hello World!。Eclipse截图如下: 接下来在我们刚才打开的AndroidShouJi虚拟机上运行我们这个程序,运行结果如图: 4、 Android中的R.java 和l的用途: (1)、R.java /* AUTO-GENERATED FILE. DO NOT MODIFY. * * This class was automatically generated by the * aapt tool from the resource data it found. It * should not be modified by hand. */ app; public final class R { public static final class attr { } public static final class dimen { /** Default screen margins, per the Android Design guidelines. Example customization of dimensions originally defined in res/l (such as screen margins) for screens with more than 820dp of available width. This would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). */ public static final int activity_horizontal_margin=0x7f040000; public static final int activity_vertical_margin=0x7f040001; } public static final class drawable { public static final int ic_launcher=0x7f020000; } public static final class id { public static final int action_settings=0x7f080000; } public static final class layout { public static final int main=0x7f030000; } public static final class menu { public static final int main=0x7f070000; } public static final class string { public static final int action_settings=0x7f050002; public static final int app_name=0x7f050000; public static final int hello_world=0x7f050001; } public static final class style { /** Base application theme, dependent on API level. This theme is replaced by AppBaseTheme from res/l on newer devices. Theme customizations available in newer API levels can go in res/l, while customizations related to backward-compatibility can go here. Base application theme for API 11+. This theme completely replaces AppBaseTheme from res/l on API 11+ devices. API 11 theme customizations can go here. Base application theme for API 14+. This theme completely replaces AppBaseTheme from BOTH res/l and res/l on API 14+ devices. API 14 theme customizations can go here. */ public static final int AppBaseTheme=0x7f060000; /** Application theme. All customizations that are NOT specific to a particular API-level can go here. */ public static final int AppTheme=0x7f060001; } } 这是我的项目中自动生成的R文件,注释第一行明确指出“AUTO-GENERATED FILE. DO NOT MODIFY.”也就是说该文件不需要我们来编辑,是系统自动生成的配置文件。每创建一个资源或者控件,R.java中都会对其进行注册,程序调用这些资源时都是引用的该资源对应的R文件中的编号,再将其强制转型成对应的控件等。 (2)、l 与R.java文件不同,该文件是整个应用程序的配置文件,每个android组件都要在这里注册才可以使用,应用程序应该获得手机的哪些权限(例如:允许应用程序联网、允许应用程序打电话或发短信)也要在这里进行添加,另外,程序的版本信息、编译版本也应该在这里配置。以下是我的项目的l文件,里面注册了显示”Hello World!”的界面。 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="schemas.android/apk/res/android" package="app" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="23" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="android.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> 另外说明的一点,在eclipse中打开l文件还会出来一些选项卡,在这些选项卡中可以方便的添加应用程序权限等快捷操作方式,无需直接写代码。 | |||
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论