移动设备交互应用 实验一 熟悉Android编程开发环境

一、实验目的与内容:

目的:掌握面向Android编程的开发环境搭建。学习、掌握Android程序编写基本步骤,例如,Android Studio平台编写简单的一个 HelloWorld程序,掌握编译、运行等基本步骤和操作。
内容要求:
1、 搭建开发环境(基本要求,60分):
(在自己电脑上)下载安装和配置Android Studio开发环境,并熟悉该开发环境中的常用操作,并 New -> New Project ->Base Activity一个项目,而且能运行成功。请在报告中给出搭建环境成功的截图和简要文字说明,简述自己所了解掌握的常用操作。
2、 新建的程序项目解析(提升要求,40分)
通过查阅相关资料,尝试对前面新建的Base Activity项目进行详细的解析,包括代码的结构、每一部分的功能、每行代码表示的意义等。总体要求是越完整越好,越详尽越好。

注意:

  1. 实验报告中需要有实验结果的截屏图像。

二、实验过程和代码与结果

1.开发环境的搭建 实验过程及结果

首先打开安装包
在这里插入图片描述
点击“Next”按钮进入下一阶段:
在这里插入图片描述

注意此处要全部勾选,即需要勾选上虚拟机,然后继续点击“Next”进入下一步:
在这里插入图片描述
此处为服务协议,需点击“I Agree”并进行下一阶段开始安装
在这里插入图片描述
等待一段时间后,安装完成
在这里插入图片描述
此处勾选“Start Android Studio”并点击“Finish”完成安装并进入“Android Studio”
在这里插入图片描述
安装完成后打开页面如下:
在这里插入图片描述
第一次进入后,选择下载虚拟机
在这里插入图片描述
等待安装完成之后进入“Android Studio”
进入后开发环境即搭建完成,可以顺利创建新项目。
在这里插入图片描述

2. 自己建立的Base Activity程序的解析过程

①建立新Project,并重名为“HelloWorld”
在这里插入图片描述
②在虚拟机运行模式中选择“Phone and Tablet”
在这里插入图片描述
③在模板中选择“Basic”
在这里插入图片描述
④最后输入工程名字,完成创建
在这里插入图片描述
⑤创建完成后点击“Finish”进入项目,并点击“RUN”按钮进行运行,即可启用虚拟机
在这里插入图片描述

3.相关文件作用:

(1).gradle和.idea
这两个目录下放置的都是Android Studio编译运行时自动生成的一些文件。
(2).app
项目中的代码、相关资源等内容几乎都是放置在这个目录下的,后续开发工作也基本围绕这个目录展开。
(3).build
这个目录的内容与他的名字一样主要包含了一些在编译时自动生成的文件。
(4). gradle
这个目录下包含了gradle wrapper的配置文件,使用gradle wrapper的方式不需要提前将gradle下载好,而是会自动根据本地的缓存情况决定是否需要联网下载gradle。 Android Studio默认没有启用gradle wrapper的方式,如果需要打开,可以点击Android Studio导航栏→File-Settings→Build,Execution,Deployment→Gradle,进行配置更改。
(5).gitignore
这个文件是用来将指定的目录或文件排除在版本控制之外的。
(6).build.gradle
这是项目全局的gradle构建脚本,一般情况下这个文件中的内容是不需要修改的。
(7).gradle.properties
这个文件是全局的gradle配置文件,在这里配置的属性将会影响到项目中所有的gradle编译脚本。
(8).gradlew和gradlew.bat
这两个文件是用来在命令行界面中执行gradle命令的,其中gradlew是在Linux或Mac系统中使用的,gradlew.bat是在Windows系统中使用的。
(9)Hello World.iml
iml文件是所有IntelliJ IDEA项目都会自动生成的一个文件(由于Android Studio是基于IntelliJ IDEA开发的),这个文件仅仅用于标识这是一个IntelliJ IDEA项目。
(10).local .properties
这个文件用于指定本机中的Android SDK路径,通常内容都是系统自动生成的,一般情况下不需要修改。除非你本机中的Android SDK位置发生了变化,那么就将这个文件中的路径改成新的位置即可。
(11). settings.gradle
这个文件用于指定项目中所有引入的模块。由于HelloWorld项目中就只有一个app模块,因此该文件中也就只引人了app这一个模块。通常情况下模块的设置都是自动完成的,一般不需要手动去修改。

App目录下文件:
(1)build
这个目录和外层的build目录类似,主要也是包含了一些在编译时自动生成的文件。
(2)libs
如果你的项目中使用到了第三方jar包,此时就需要把这些jar包都放在libs目录下,放在这个目录下的jar包都会被自动添加到构建路径里去。
(3)androidTest
此处是用来编写Android Test测试用例的,可以对项目进行一些自动化测试。
(4)java
Java目录主要用于存放我们所有Java代码的地方,展开该目录,你将看到刚创建的Hello World Activity文件就在里面。
(5)res
这个目录存放项目中使用到的所有图片、布局、字符串等资源。这个目录下还有很多子目录,图片放在drawable目录下,布局放在layout目录下,字符串放在values目录下,这样的分配会让整个工程看起来很有条理性。
(6)AndroidManifest.xml
这里面包括整个Android项目的配置文件,用户在程序中定义的所有组件都在这个文件里注册,另外还可以在这个文件中给应用程序添加权限声明。
(7)test
此处是用来编写Unit Test测试用例的,这是对项目进行自动化测试的另一种方式。
(8)gitignore
这个文件用于将app模块内的指定的目录或文件排除在版本控制之外,作用和外层的.gitignore文件类似。
(9)app.iml
IntelliJ IDEA项目自动生成的文件,同上9。
(10)build.gradle
这是app模块的gradle构建脚本,这个文件中会指定很多项目构建相关的配置。
(11)proguard-rules.pro
这个文件用于指定项目代码的混淆规则,当代码开发完成后打成安装包文件,如果不希望代码被别人破解,通常会将代码进行混淆,从而让破解者难以阅读。

4.运行源代码分析

在这里插入图片描述
首先我们可以看到,HelloWorldActivity是继承自AppCompatActivity的,这是一种向下兼容的Activity,可以将Activity在各个系统版本中增加的特性和功能最低兼容到Android 2.2系统。Activity是Android系统提供的一个活动基类,我们项目中所有的活动都必须继承它或者它的子类才能拥有活动的特性(AppCompatActivity 是 Activity 的子类)。然后可以看到HelloWorldActivity中有一个onCreate()方法,这个方法是一个活动被创建时必定要执行的方法,其中只有两行代码,并且没有Hello World!的字样。
那么运行时显示的Hello World!是在哪里定义的呢?其实Android程序的设计讲究逻辑和视图分离,因此是不推荐在活动中直接编写界面的,更加通用的一种做法是,在布局文件中编写界面,然后在活动中引入进来。可以看到,在onCreate()方法的第二行调用了 setContentView()方法,就是这个方法给当前的活动引人了一个hello_world_layout布局,那Hello World!一定就是在这里定义的了!我们快打开这个文件看一看。
布局文件都是定义在res/layout目录下的,当你展开layout目录,你会看到hello_world_layout.xml这个文件。打开该文件并切换到Text视图,代码如下所示:
在这里插入图片描述
源代码中包含一个TextView,这是Android 系统提供的一个控件,用于在布局中显示文字的。然后可以在TextView中看到了Hello World!的字样,这说明“Hello World!”原来就是通过android:text="Hello world!"这句代码定义的。

5.常见问题

看到QQ群内有些同学有版本兼容性发生的报错问题,我通过自己电脑调试和查阅资料研究了一晚上,得到了具有广泛适用性的解决办法。
在这里插入图片描述
分析错误原因:
1.当你在用别的电脑上的android studio编写一个项目时,然后copy下来,又在自己电脑上的android studio 上导入该项目时会报错(两台电脑上安装的android studio版本不一样)

2.自己的android studio SDK平台工具的版本太低,然后在不了解项目构建文件(build.gradle文件)的前提下,点开了SDK Manger更新了项目构建工具(SDK Build-Tools)的版本

对应解决办法:

  1. 点开SDK Manager图标,然后点击Updates就可以看到了
    在这里插入图片描述
    这里我的 sdk 工具版本就是26.1.1了

  2. 清楚了自己的sdk 工具版本后,接下来我们继续查看版本,接下来是看sdk 构建工具(sdk Build-Tools)的版本,还是在sdk manager上操作,这次选中 Android SDK后,再在右边选中SDK Tools(只看打勾选项就行)
    在这里插入图片描述
    此处必须满足Android SDK Build-Tools (就是我前面一直提到的sdk 构建工具)版本是与SDK Tools版本相匹配,否则会发生错误或导致报错。

  3. 点开项目构建文件Gradle Scripts,再继续点击build.gradle(Module:app)ps:有两个名字相同的,选第二个,看下面代码的注释行就可以了。

apply plugin: 'com.android.application'
 
android {
    compileSdkVersion 27                // 使用版本27的SDK编译
    buildToolsVersion "27.0.0"          // 构建工具版本号为27.0.0  对应上图的SDK Build-tools27
    defaultConfig {
        applicationId "com.example.haha.myapplication"
        minSdkVersion 19
        targetSdkVersion 27             
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:27.+'     
 
//上面一行是远程依赖声明,这里我们着重来看appcompat-v7:27+
    testCompile 'junit:junit:4.12'
}

我们来分析下appcompat-v7:27.+

上面我们查到我们的sdk工具版本是26,这里的远程依赖包的版本是27,那么我们只需要将把版本减低到和sdk工具版本相同就可以解决啦!

apply plugin: 'com.android.application'
 
android {
    compileSdkVersion 26         //修改
    buildToolsVersion "27.0.0"
    defaultConfig {
        applicationId "com.example.haha.myapplication"
        minSdkVersion 19
        targetSdkVersion 26        //修改
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:26+'  //修改
    testCompile 'junit:junit:4.12'
}


修改完以上内容后,点击 SYNC进行同步即可解决问题。
完成这一些的修改后问题解决,因为当你创建一个新的项目时,有gradle去帮你完成构建项目工作,那它自然是按你的最高sdk构建工具版本去构建项目,所以就会出现这样的问题。

三、实验总结

(此处写你的过程,比如遇到的错误,以及解决方法,你的所想、所得)

通过本实验的学习。我成功的搭建了Android的开发环境,为以后Android项目的运行打下了基础。此外我也建立了自己的第一个Android Hello World项目,顺利的在Android模拟器上显示出了“Hello World”。此外由于Android的大部分操作是基于Java完成的,需要对Java语言有一定的基础,通过业余时间自学了Java对Android的编写起到了促进作用。
此外,由于Android与Java的不同,在Android的编写中,务必要熟悉每个文件的作用,这在本实验报告中有详细的体现。
我也通过QQ群,发现了其他同学在搭建开发环境中所存在的问题,通过联系该同学,并进行上网查阅资料,帮助该同学解决问题的同时也加深了自己对Android开发平台的了解和认识。

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 该资料是《Android高级编程》的源代码 对应的书籍资料见: Android高级编程 基本信息 原书名: Professional Android Application Development 原出版社: Wrox 作者: (英)Reto Meier 译者: 王鹏杰 霍建同 出版社:清华大学出版社 ISBN:9787302228448 上架时间:2010-7-1 出版日期:2010 年6月 开本:16开 页码:398 版次:1-1 内容简介   android提供一个开放的开发环境,为针对移动设备编写创新应用程序带来了激动人心的新机遇。作为使用androidsdk构建这些应用程序的实用指南书籍,《android高级编程》从始至终穿插了一系列示例项目,每个项目都引入android的新功能和新技术,以助您达到最圆满的学习效果。书中介绍android的所有基本功能,并通过简明扼要的示例引导您使用高级功能。    《android高级编程》首先简要介绍android软件栈,接着陈述为手机创建稳定可靠、赏心悦目的应用程序的基本原理。通过学习,您可以打下牢固的理论根基,了解使用当前android 1.0 sdk编写定制移动程序所需的知识,还能灵活快捷地运用未来的增强功能构建最前沿的解决方案。    主要内容    ◆android移动开发的最佳实践    ◆简要介绍活动、intent、清单和资源    ◆如何使用布局和定制view创建用户界面    ◆存储和共享应用程序数据的技术    ◆如何创建基于地图的应用程序,如何使用gps和地理编码位置等基于位置的服务    ◆如何创建和使用后台服务及notification    ◆使用加速计、指南针和摄像头硬件    ◆与电话和网络硬件相关的所有内容,如电话api、sms和网络管理等    ◆高级开发主题,包括安全、ipc以及一些高级图形和用户界面技术    读者对象    本书面向希望在android手机平台上创建应用程序的所有人员。不管是经验丰富的移动开发人员,还是初出茅庐的新手,都能从本书提供的宝贵信息中获益。 作译者   Reto Meier出生于澳大利西南的珀斯市,现居伦敦。 Reto是一位经验丰富的软件开发人员,拥有逾10年的GUI程序架构、设计和开发经验。他在涉足IT行业前曾从事过海洋石油和天然气开发以及金融工作。 Reto始终不渝地追求掌握新技术,从2007年Android发布之初Reto就迷恋上了此项技术。他利用业余时间研究包括WPF在内的多种开发平台以及Google的各种开发工具。 详情请访问Reto的个人网站RadioactiveYak,网址是http://blog.radioactiveyak.com。 目录 封面 -14 封底 -13 扉页 -12 版权 -11 作者简介 -10 前言 -9 目录 -4 第1章 Android简介 1 1.1 一些背景信息 2 1.1.1 不远的过去 2 1.1.2 未来的前景 2 1.2 对Android的误解 3 1.3 开放的移动开发平台 3 1.4 自带的Android应用程序 4 1.5 Android SDK功能 5 1.5.1 对包括摄像头、GPS和加速计在内的硬件的访问 5 1.5.2 自带的Google地图、地理编码和基于位置的服务 6 1.5.3 后台服务 6 1.5.4 SQLite 数据存储和检索数据库 6 1.5.5 共享数据和应用程序间通信 7 1.5.6 使用Google Talk的P2P服务 7 1.5.7 扩展的数据支持和2D/3D图形 7 1.5.8 优化的内存和进程管理 8 1.6 开放手机联盟简介 8 1.7 运行Android环境 8 1.8 从事Android开发的原因 9 1.8.1 推动Android普及的因素 9 1.8.2 Android的独到之处 10 1.8.3 改变移动开发格局 10 1.9 开发框架简介 11 1.9.1 开发包中的资源 11 1.9.2 理解Android软件栈 12 1.9.3 Dalvik虚拟机 13 1.9.4 Android应用程序架构 14 1.9.5 Android库 14 1.9.6 高级Android库 15 1.10 小结 16 第2章 开始入手 17 2.1 Android开发 18 2.1.1
Android高级编程》首先简要介绍Android软件栈,接着陈述为手机创建稳定可靠、赏心悦目的应用程序的基本原理。通过学习,您可以打下牢固的理论根基,了解使用当前Android 1.0 SDK编写定制移动程序所需的知识,还能灵活快捷地运用未来的增强功能构建最前沿的解决方案。   Android提供一个开放的开发环境,为针对移动设备编写创新应用程序带来了激动人心的新机遇。作为使用AndroidSDK构建这些应用程序的实用指南书籍,《Android高级编程》从始至终穿插了一系列示例项目,每个项目都引入Android的新功能和新技术,以助您达到最圆满的学习效果。书中介绍Android的所有基本功能,并通过简明扼要的示例引导您使用高级功能。 更多关于安卓软件系统详情-安卓风 目录: 第1章 Android简介 1.1 一些背景信息 1.1.1 不远的过去 1.1.2 未来的前景 1.2 对Android的误解 1.3 开放的移动开发平台 1.4 自带的Android应用程序 1.5 Android SDK功能 1.5.1 对包括摄像头、GPS和加速计在内的硬件的访问 1.5.2 自带的Google地图、地理编码和基于位置的服务 1.5.3 后台服务 1.5.4 SQLite数据存储和检索数据库 1.5.5 共享数据和应用程序间通信 1.5.6 使用Google Talk的P2P服务 1.5.7 扩展的数据支持和2D/3D图形 1.5.8 优化的内存和进程管理 1.6 开放手机联盟简介 1.7 运行Android环境 1.8 从事Android开发的原因 1.8.1 推动Android普及的因素 1.8.2 Android的独到之处 1.8.3 改变移动开发格局 1.9 开发框架简介 1.9.1 开发包中的资源 1.9.2 理解Android软件栈 1.9.3 Dalvik虚拟机 1.9.4 Android应用程序架构 1.9.5 Android库 1.9.6 高级Android库 1.10 小结 第2章 开始入手 2.1 Android开发 2.1.1 开始前的准备工作 2.1.2 创建第一个Android活动 2.1.3 Android应用程序的类型 2.2 面向移动设备的开发 2.2.1 关于硬件设计的考虑事项 2.2.2 考虑用户环境 2.2.3 Android开发 2.3 To-Do List示例 2.4 Android开发工具 2.4.1 Android模拟器 2.4.2 Dalvik调试监控服务(DDMS) 2.4.3 Android调试桥(ADB) 2.5 小结 第3章 创建应用程序和活动 3.1 Android应用程序的组成部分 3.2 程序清单简介 3.3 使用清单编辑器 3.4 Android应用程序生命周期 3.5 理解应用程序的优先级和进程状态 3.6 分离资源 3.6.1 创建资源 3.6.2 使用资源 3.6.3 To-DoList资源示例 3.6.4 为不同的语言和硬件创建资源 3.6.5 运行时配置更改 3.7 深入探讨Android活动 3.7.1 创建一个活动 3.7.2 活动生命周期 3.7.3 Android活动类 3.8 小结 第4章 创建用户界面 4.1 Android UI基本设计 4.2 View简介 4.2.1 使用View创建Activity(活动)用户界面 4.2.2 Android Widget工具箱 4.3 布局简介 4.4 创建新的View 4.4.1 修改现有的View 4.4.2 创建复合控件 4.4.3 创建定制的Widget和控件 4.4.4 使用定制的控件 4.5 创建和使用菜单 4.5.1 Android菜单系统简介 4.5.2 定义活动的菜单 4.5.3 动态更新菜单项 4.5.4 处理菜单选择 4.5.5 子菜单和上下文菜单 4.5.6 To-Do List示例续 4.6 小结 第5章 Intent、广播接收器、 Adapter和Internet 5.1 Intent简介 5.1.1 使用Intent来启动活动 5.1.2 使用Intent Filter来为隐式Intent提供服务 5.1.3 使用Intent Filter作为插件和扩展 5.1.4 使用Intent来广播事件 5.2 Adapter简介 5.2.1 Android提供的部分Adapter简介 5.2.2 使用Adapter绑定数据 5.3 使用Internet资源 5.3.1 连接到Internet资源 5.3.2 利用Internet资源 5.4 Dialog简介 5.4.1 Dialog类简介 5.4.2 使用活动作为对话框 5.5 创建一个地震查看器 5.6 小结
Android应用开发是构建适用于Android操作系统的移动应用程序的过程。以下是关于Android应用开发的一些揭秘: 首先,开发人员需要了解Android操作系统的基本原理和架构。Android操作系统是基于Linux内核构建的,包括核心库、应用程序框架和应用程序接口等部分。 其次,开发人员需要掌握Java编程语言,因为Android应用程序主要是使用Java编写的。开发人员需要了解Java语法、面向对象编程Android特定的API。 第三,开发人员需要使用Android Studio这样的开发工具。Android Studio是Google官方推荐的集成开发环境,提供了一系列用于设计、编码、调试和测试Android应用的工具和功能。 第四,应用程序的界面设计对于用户体验至关重要,所以开发人员需要熟悉Android的用户界面设计准则并运用到应用程序中。他们可以使用XML布局文件来定义应用程序的界面布局,并使用Java代码来处理用户交互。 第五,开发人员需要了解Android的组件和生命周期。Android应用程序由许多不同的活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)和内容提供者(Content Provider)组成。开发人员需要知道如何在这些组件之间进行数据共享和通信。 最后,开发人员需要进行测试和调试以确保应用程序的质量。他们可以使用Android Studio提供的调试工具来检测和修复错误。同时,他们还可以使用模拟器或真实设备来测试应用程序的功能和性能。 综上所述,Android应用开发需要掌握Android操作系统的基本原理和架构,熟悉Java编程语言,熟悉Android Studio开发工具,了解用户界面设计准则,掌握Android的组件和生命周期,并进行测试和调试。只有掌握了这些技术和知识,开发人员才能构建出高质量的Android应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

上山打老虎D

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值