04. 【Android教程】Android 工程解析及使用

在上一章中已经搭建好了 Android 开发环境,本章我们将一起通过 Eclipse 创建我们的第一个 Android App。

1. 创建 Android 工程

首先打开 Eclipse,在菜单栏依次选择"New" -> "Android App Project"。如果是第一次创建,可能没有"Android App Project",那么可以选择"Other"->"Android"。主要有三个参数需要我们设置:

  • 应用名: 即我们App的名字,也是最终会显示在设备桌面上的名称;
  • 工程名: 项目工程的名字,Eclipse会按照此名称在本地创建工程目录,并将工程文件保存在此目录下;
  • 包名: App 的唯一 ID,Android 系统用包名区分不同的 App
    在这里可以有一个简单的理解,应用名更多是面向用户的,工程名更多是面向 Eclipse 的,而包名是面向 Android 系统的。

设置好并选择对应的 Android 版本,点确认后即完成工程的创建。

2. 工程结构解析

在 Eclipse 左侧展示的就是我们创建的工程的目录结构

目录文件比较多,其中需要大家着重注意的是以下 5 个:

  • src: 用于存放源文件,也就是没有进行编译的程序文件。结构按照包名排列,与 Java 工程类似。
  • gen: 用于存放编译中间产物,由 ADT 自动生成,我们一般不做修改。内部有一个 R.java 文件,是工程的资源字典。工程内 Res 目录下的所有资源都会通过 id 的形式登记在该文件内。
  • assets: 用于存放打包在 apk 内的静态文件。该目录下的文件将不会在 R.java 内生成对应的 id,并且会以原始格式保存,适用于保存类似文本文件,视频文件,MP3 音频等媒体文件。
  • res: 用于存放资源文件,主要有以下几个资源:
    • drawable: 存放各种位图文件(png、jpg、9图、gif等),除此之外可能是一些其他的 drawable 类型的 XML 文件
    • layout: 布局文件,各个页面的 UI 样式
    • values: XML 类型的描述文件
  • AndroidMainfest.xml: 应用程序清单文件,包含了 android 应用中的元信息,Android 中的四大组件以及用户权限列表等都需要在此注册,同时也详细描述了 android 应用的项目结构。
    以上 5 个目录是大家必须掌握的,后面的开发也会频繁用到。另外还有一些如果感兴趣可以简单了解,不作要求。
  • android 9.0: 包含了项目需要的库文件(Jar 文件),和普通 Java 项目中的/lib类似。同时其中还包含项目打包时需要的META-INF目录.
  • Android Private Libraries: 存放项目中引入的第三方 JAR 包
  • **bin:**编译结果,保存的是二进制文件,包括class、资源文件、dex、apk 等,我们可以在这个目录下导出 apk 文件
  • proguard-project.txt: 代码混淆配置文件
  • project.properties: 工程属性的配置文件。可以再次设置编译使用的 Android 版本号

3. 编译运行Android工程

建立好 Android 工程之后,就可以直接运行起来了。方法很简单,首先我们按照前面的教程开启 AVD 或者 Genymotion,然后在左侧工程列表中找到新建的工程,依次"右键" -> "Run as" -> "Android Application",静静的等待片刻,就可以看到出现在屏幕上的 Hello World。

4. 小结

本章我们介绍了如何通过 Eclipse 创建 Android 工程并对工程的目录结构及重要的文件做了详细介绍,最后在模拟器上运行了我们新建的 Android 应用。到这里你已经完成了第一个 Android 应用的创建与运行,对 Android 的开发方式有了一个基本的认识,也希望大家打好基础,为后面的内容做好充分的准备。

相关推荐
雨中飘荡的记忆6 小时前
ElasticJob分布式调度从入门到实战
java·后端
冬奇Lab8 小时前
Android触摸事件分发、手势识别与输入优化实战
android·源码阅读
城东米粉儿11 小时前
Android MediaPlayer 笔记
android
Jony_12 小时前
Android 启动优化方案
android
阿巴斯甜12 小时前
Android studio 报错:Cause: error=86, Bad CPU type in executable
android
张小潇12 小时前
AOSP15 Input专题InputReader源码分析
android
考虑考虑15 小时前
JDK25模块导入声明
java·后端·java ee
_小马快跑_16 小时前
Java 的 8 大基本数据类型:为何是不可或缺的设计?
java
_小马快跑_16 小时前
Kotlin | 协程调度器选择:何时用CoroutineScope配置,何时用launch指定?
android
_小马快跑_16 小时前
Kotlin | 从SparseArray、ArrayMap的set操作符看类型检查的不同
android