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 的开发方式有了一个基本的认识,也希望大家打好基础,为后面的内容做好充分的准备。

相关推荐
灿飞几秒前
Kotlin与Java虚拟机八:控制流与 when:卫语句、上下文相关解析与穷尽性
java·kotlin
文丑颜不良啊1 小时前
LeetCode2021~2040题目解析
java·leetcode
bksczm1 小时前
InnoDB 行格式详解:DYNAMIC / COMPACT / COMPRESSED / REDUNDANT
java·开发语言·数据库
liangbo72 小时前
Spring系列03:Bean 的三种注册方式
java·spring
余槐i2 小时前
MySQL 8.0 联合索引走错:为什么加了索引查询反而从 200ms 变成 8s
java·spring boot·mysql·docker·性能优化
SL_staff2 小时前
制造业订单交付总在最后一刻爆雷?用结构化计划模板打通跨系统协同断点
java·开源·全栈
做科研的周师兄2 小时前
【R语言实战】MixSIAR 氢氧同位素水源解析全流程:从混合空间校验到贝叶斯 MCMC 收敛诊断(后附完整代码)
java·大数据·开发语言
有点小困9772 小时前
Spring Boot 异步任务 ClassLoader 踩坑实录:ClassNotFoundException 的诡异真相
java
aiks_yuan2 小时前
Java 正则表达式很慢怎么办:Pattern 预编译只快 2~5 倍,真正卡死线程的是回溯(JDK 8、11、17 实测)
java
用户3721574261352 小时前
C# 填写 PDF 交互式表单:文本框、复选框、单选按钮和下拉列表
java