《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——1.4节Hello Android应用程序的开发

简介:

本节书摘来自异步社区《Android 3D游戏开发技术宝典——OpenGL ES 2.0》一书中的第1章,第1.4节Hello Android应用程序的开发,作者 吴亚峰,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.4 Hello Android应用程序的开发
Android 3D游戏开发技术宝典——OpenGL ES 2.0
本节首先将介绍如何在Eclipse中创建一个基于Android的Hello World应用程序,之后将简单介绍Android应用程序的调试,为读者以后学习高级开发铺平道路。

1.4.1 第一个Android应用程序
本小节将向读者介绍如何在Eclipse中创建一个基于Android的Hello World应用程序,基本步骤如下所列。

(1)首先打开Eclipse,然后依次选择File|New|Project(如图1-33所示)或者单击按钮后,系统将弹出新建项目对话框,如图1-34所示。


862c66e61791413fe8ac8f66101048efa14078f8

(2)在新建项目对话框中选择Android Project,然后单击“Next”按钮(如图1-35所示),弹出New Android Project对话框,如图1-36所示。

(3)在New Android Project对话框中输入项目的名称(在这里输入的是Sample1_1),在Build Target中选择项目的目标版本(这里选择的是Android 2.3.1版),如图1-37所示。

(4)接着在Application name中输入应用程序的名称(这里输入的名称与Project Name中的相同,当然也可以不同);同时在Package name中输入程序的包名(这里输入的是com.bn.Sample1_1);最后输入Activity的名称(在这里输入的是Sample1_1_Activity);最后在Min SDK Version中输入应用程序最低支持的版本Level(这里输入的是9,代表Android 2.3.1版)。整体情况如图1-38所示。


abd99cf0f700a9b8b3ebcd331309182995f6fda6

提示 创建项目时输入项目的包名时,需要至少使用二级包名,否则在该对话框上方会显示“Package name must have at least two identifiers”错误信息。
(5)最后单击“Finish”按钮(如图1-39所示)完成项目的创建,此时在Project Explorer中会自动添加创建的项目,如图1-40所示。

(6)在Project Explorer中选择本项目,然后单击鼠标右键,在弹出的快捷菜单中依次选择Run As|Android Application运行本程序(如图1-41所示)或者单击按钮运行本程序,运行效果如图1-42所示。


37ec7b184b228c5505c7bab806c32707d622ef0c


7da979e3e578898f650ff4547dd7d9c5c2e7d452

从上述步骤中可以看出,使用Eclipse创建并运行一个Android应用程序是非常容易的。

1.4.2 Android应用程序的项目结构
上一小节介绍了如何通过Android SDK自动生成Android项目,但是没有对该项目中的内容及组成进行介绍。本小节将对Android项目中的各重要组成部分逐一进行介绍,如图1-43所示。


f3f2120e0c848f15a8e7857c034ced2be73257e5

1.src源代码文件夹
该文件夹下存放了应用程序中所有开发的Java源代码。要注意的是,在更为复杂的项目中,该文件夹下可以有很多不同的包用于存放不同功能目的的源代码。

2.gen文件夹
该文件夹中存放的是Eclipse中ADT插件自动生成的R.java文件。实际上R.java定义了一个R类,其中包含应用程序的用户界面、图像以及字符串等资源的编号。也就是每有一个资源实例,系统就为其在R类中生成一个相应的编号。这些编号都是系统自动生成的,用户不应该修改。

3.assets文件夹
该文件夹用于存放应用程序需要使用的一些外部资源,如音频、视频、数据文件等。在应用程序中可以使用“getResources().getAssets().open("aa.mp3")”得到指定资源文件的输入流。

4.res资源文件夹
该文件夹下一般有drawable系列、layout及values 等文件夹,下面对这些文件夹逐一进行介绍。

drawable系列文件夹。该系列文件夹一般有drawable-hdpi、drawable-mdpi、drawable-ldpi 3个文件夹,这3个文件夹分别用来存放不同分辨率目标设备的图片资源。当应用程序在目标设备上运行时,系统会自动根据目标设备的分辨率选择对应文件夹下的图片使用。
layout文件夹。该文件夹下包含了所有使用xml格式的界面描述文件,这些文件用于表述应用程序中用户界面的布局。具体的开发中读者会体会到,用这种方式进行布局的开发比传统的使用Java源代码开发布局要方便简捷得多。
values文件夹。本文件夹中包含了一些xml格式的资源描述文件,一般包括string.xml(字符串资源)、color.xml(颜色资源)、style.xml(样式资源)等。
5.AndroidManifest.xml文件
此文件是整个应用程序的描述文件,应用程序中所需要的各个组件均需要在此文件中说明。同时,应用程序需要的一些权限,如网络访问权限、I/O读取权限等,也需要在此文件中进行声明。

提示 除了上述文件夹及文件外,还有一个一般开发时不需要直接使用的default.properties文件。此文件为项目的配置文件,一般不需要人为改动,系统会自动对其进行管理,有兴趣的读者可以自行打开查看。

1.4.3 Android应用程序的调试
Android SDK提供了一个强大的调试工具DDMS(Dalvik Debug Monitor Service),通过DDMS可以调试并监控Android程序的运行,打开DDMS的方法如下。

一般情况下在Eclipse中安装了ADT插件后,Eclipse窗口的右上侧会有DDMS的选项按钮,如图1-44所示。单击它即可切换到DDMS界面,如图1-45所示。


b82b143a5c7cd70886f295fcb142eb2dd36fe9b1

1.System.out.println方法
首先介绍Java开发人员十分熟悉的System.out.println方法,其在Android应用程序中的使用方法与传统Java中相同,具体步骤如下。

提示 在这里就不再创建新的Android项目了,直接使用的是上一小节已经创建的Android项目(Sample1_1)。
首先在Eclipse中打开src文件夹下的com.bn.Sample1_1包中的Sample1_1Activity.java文件。
然后在setContentView(R.layout.main)语句后面添加代码System.out.println(“the first”)。
代码修改完成后,再次运行本应用程序。
应用程序运行后打开DDMS,找到LogCat面板,单击其中的(debug)按钮,如图1-47所示。
在LogCat面板下的Log选项卡中可以看到输出的打印语句,如图1-48所示。


892b0a8ad78040af1c7a6eb10534911ec2e53183

有时可能觉得在Log中的输出信息太多,不便于查看。这时可以在LogCat中添加一个专门输出System.out信息的面板。单击DEBUG按钮右边的(Create Filter)按钮,系统会弹出Log Filter对话框,在Filter Name输入框中输入过滤器名称,在by Log Tag中输入用于过滤的标志,如图1-49所示。

说明 由于输出的语句主要有System.out.println(换行),System.out.print(不换行)两种,所以设置by Log Tag中的内容为System.out以进行过滤。
此时再次运行应用程序观察输出的情况,在LogCat下的System面板中将会只存在System.out的输出信息,效果如图1-50所示。


3d7780f48840994d06a76b9067ff705992094740

2.android.util.Log类
除了Java开发人员熟知的System.out.println方法外,Android还专门提供了另外一个类android.util.Log来进行调试信息的输出。下面将介绍Log类的使用,具体步骤如下。

在Sample1_1Activity.java中注释已经添加的打印输出语句“System.out.println(“the first”);”,然后在后面添加代码“Log.d(“Log”, “the first Log”);”。
运行程序,在DDMS中找到LogCat面板,切换到Log页面,观看打印的内容,如图1-51所示。


7c3f6d8a1cc109fa7656a9e4eeac541c287f3c8d

提示 使用Log类时需要使用import android.util.Log语句进行导入,System.out.println方法与android.util.Log类各有优缺点,读者可以在开发项目时自行体会,选用自己所需要的。 同时需要注意的是,DDMS还有很多强大的功能,这里只介绍了其最基本的用法,有兴趣的读者可以参考2011年9月人民邮电出版社出版的《Android应用案例开发大全》一书的第1.4节“DDMS的灵活应用”或参考其他技术资料。

1.4.4 实际设备的联机调试
由于模拟器在实际项目开发中不是很方便,主要体现为性能较差、很多功能不支持(如本书要重点讨论的OpenGL ES 2.0),因此实际开发中一般使用真机对开发的应用程序进行调试。本小节将介绍实际设备联机调试的方法,基本步骤如下。

下载与真机型号相匹配的驱动程序(注意部分手机自带驱动程序,无须下载)。
用数据线将手机和开发PC相连接。
根据提示,在PC上安装手机驱动程序。
将手机设置为允许安装未知来源软件,并打开手机上的USB调试。这两项设置都可以在手机设置选项下的应用程序项目中找到,根据手机具体型号的不同可能略有区别。
再次运行前面开发的应用程序,系统将弹出Android Device Chooser窗口,如图1-52所示。


db1754501ca0b910e05c09ac098b2ad432e88a08
相关文章
|
3天前
|
Linux 编译器 Android开发
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
在Linux环境下,本文指导如何交叉编译x265的so库以适应Android。首先,需安装cmake和下载android-ndk-r21e。接着,下载x265源码,修改crosscompile.cmake的编译器设置。配置x265源码,使用指定的NDK路径,并在配置界面修改相关选项。随后,修改编译规则,编译并安装x265,调整pc描述文件并更新PKG_CONFIG_PATH。最后,修改FFmpeg配置脚本启用x265支持,编译安装FFmpeg,将生成的so文件导入Android工程,调整gradle配置以确保顺利运行。
24 1
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
|
21天前
|
移动开发 Java Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
【4月更文挑战第3天】在移动开发领域,性能优化一直是开发者关注的焦点。随着Kotlin的兴起,其在Android开发中的地位逐渐上升,但关于其与Java在性能方面的对比,尚无明确共识。本文通过深入分析并结合实际测试数据,探讨了Kotlin与Java在Android平台上的性能表现,揭示了在不同场景下两者的差异及其对应用性能的潜在影响,为开发者在选择编程语言时提供参考依据。
|
22天前
|
数据库 Android开发 开发者
构建高效Android应用:Kotlin协程的实践指南
【4月更文挑战第2天】随着移动应用开发的不断进步,开发者们寻求更流畅、高效的用户体验。在Android平台上,Kotlin语言凭借其简洁性和功能性赢得了开发社区的广泛支持。特别是Kotlin协程,作为一种轻量级的并发处理方案,使得异步编程变得更加简单和直观。本文将深入探讨Kotlin协程的核心概念、使用场景以及如何将其应用于Android开发中,以提高应用性能和响应能力。通过实际案例分析,我们将展示协程如何简化复杂任务,优化资源管理,并为最终用户提供更加流畅的体验。
|
23天前
|
开发框架 安全 Android开发
探索安卓系统的新趋势:智能家居应用的蓬勃发展
随着智能家居概念的兴起,安卓系统在智能家居应用领域的应用日益广泛。本文将探讨安卓系统在智能家居应用开发方面的最新趋势和创新,以及其对用户生活的影响。
14 2
|
23天前
|
Java Android开发 开发者
构建高效Android应用:Kotlin协程的实践与优化
在响应式编程范式日益盛行的今天,Kotlin协程作为一种轻量级的线程管理解决方案,为Android开发带来了性能和效率的双重提升。本文旨在探讨Kotlin协程的核心概念、实践方法及其在Android应用中的优化策略,帮助开发者构建更加流畅和高效的应用程序。通过深入分析协程的原理与应用场景,结合实际案例,本文将指导读者如何优雅地解决异步任务处理,避免阻塞UI线程,从而优化用户体验。
|
2天前
|
存储 缓存 安全
Android系统 应用存储路径与权限
Android系统 应用存储路径与权限
5 0
Android系统 应用存储路径与权限
|
2天前
|
存储 安全 Android开发
Android系统 自定义系统和应用权限
Android系统 自定义系统和应用权限
13 0
|
7天前
|
缓存 移动开发 Android开发
构建高效Android应用:从优化用户体验到提升性能表现
【4月更文挑战第18天】 在移动开发的世界中,打造一个既快速又流畅的Android应用并非易事。本文深入探讨了如何通过一系列创新的技术策略来提升应用性能和用户体验。我们将从用户界面(UI)设计的简约性原则出发,探索响应式布局和Material Design的实践,再深入剖析后台任务处理、内存管理和电池寿命优化的技巧。此外,文中还将讨论最新的Android Jetpack组件如何帮助开发者更高效地构建高质量的应用。此内容不仅适合经验丰富的开发者深化理解,也适合初学者构建起对Android高效开发的基础认识。
5 0
|
7天前
|
移动开发 Android开发 开发者
构建高效Android应用:采用Kotlin进行内存优化的策略
【4月更文挑战第18天】 在移动开发领域,性能优化一直是开发者关注的焦点。特别是对于Android应用而言,由于设备和版本的多样性,确保应用流畅运行且占用资源少是一大挑战。本文将探讨使用Kotlin语言开发Android应用时,如何通过内存优化来提升应用性能。我们将从减少不必要的对象创建、合理使用数据结构、避免内存泄漏等方面入手,提供实用的代码示例和最佳实践,帮助开发者构建更加高效的Android应用。
11 0
|
8天前
|
缓存 移动开发 Java
构建高效的Android应用:内存优化策略
【4月更文挑战第16天】 在移动开发领域,尤其是针对资源有限的Android设备,内存优化是提升应用性能和用户体验的关键因素。本文将深入探讨Android应用的内存管理机制,分析常见的内存泄漏问题,并提出一系列实用的内存优化技巧。通过这些策略的实施,开发者可以显著减少应用的内存占用,避免不必要的后台服务,以及提高垃圾回收效率,从而延长设备的电池寿命并确保应用的流畅运行。