建立的HelloWorld的应用项目,其代码是由ADT插件自动生成的,形成Android项目特有的结构框架。

接下来让我带领大家解析一个Android程序的各个组成部分,这次我们拿一个Hello,World做例子,虽然只是一个Hello,World,但也是麻雀虽小五脏俱全,通过分析Hello,World的目录结构,让我们对Android程序有一个整体全面的认识。

一、创建一个Android 应用项目

启动Eclipse;

选择File->New->Project…;
选择Android 下的Android Project,单击Next按钮。

根据上面的目录结构,我们来分析一下

二 、目录解析

我们来大致了解一下安卓应用程序的目录的作用:

1. src目录

该目录下的文件存放Android应用程序中所有java源代码,自动地组织在用户定义声明的包内。

Activity是Android中的视图部分,负责界面显示。

2. gen目录

该目录下的文件是由ADT自动生成的,即包内的R.java文件。该文件为项目中的各个资源在该类中创建其唯一的ID。

从R文件中可以看到每一个资源都会有一个整数和它相对应。

3. Android4.4 

建立不同版本的可能会有不同的依赖。

Android4.4 目录存放该项目支持的jar包。

作为一个Java项目,通常情况下都会引入要用到的工具类,也就是Jar包,在Android开发中,绝大部分开发用的工具包都被封装到一个名叫Android.jar的文件里了。

如果我们在Eclipse中展开来看,可以看到j2se中的包,apache项目中的包,还有Android自身的包文件。

在这里我们简单浏览一下Android的包文件:

 
android.app : 提供高层的程序模型、提供基本的运行环境
android.content : 包含各种的对设备上的数据进行访问和发布的类
android.database : 通过内容提供者浏览和操作数据库
android.graphics : 底层的图形库,包含画布,颜色过滤,点,矩形,可以将他们直接绘制到屏幕上.
android.location : 定位和相关服务的类
android.media : 提供一些类管理多种音频、视频的媒体接口
android.net : 提供帮助网络访问的类,超过通常的java.net.* 接口
android.os : 提供了系统服务、消息传输、IPC 机制
android.opengl : 提供OpenGL 的工具
android.provider : 提供类访问Android 的内容提供者
android.telephony : 提供与拨打电话相关的API 交互
android.view :提供基础的用户界面接口框架
android.util : 涉及工具性的方法,例如时间日期的操作
android.webkit  :默认浏览器操作接口
android.widget : 包含各种UI 元素(大部分是可见的)在应用程序的屏幕中使用

4. assets

存放项目相关的资源文件

5. bin

该目录用于存放生成的目标文件,例如Java的二进制文件、资源打包文件(.ap_后缀)、Dalvik虚拟机的可执行性文件(.dex后缀),打包好应用文件(.apk后缀)等。

6. libs

该目录用于存放需要使用的第三方jar包文件。

7. res

该目录存放的是整个项目的经常使用的资源文件,新建一个项目,在该目录中自动建立以下目:

(1)drawable开头的四个目录:分别以三种尺寸存放png、 9.png、 jpg等图片资源。

(2)layout:存放应用程序的布局文件,文件类型为XML格式。新建项目时都有main.xml文件。

(3)values:存放所有XML格式的资源描述文件,例如字符串(strings.xml)、颜色(colors.xml)、样式(styles.xml)
、尺寸(dimens.xml)和数组(arrays.xml)等。

res目录中的文件命名:
以a-z、0-9、_字符命名文件名。

8. AndroidManifest.xml 文件

在每个应用程序的根目录都会有一个AndroidManifest.xml文件,该文件向Android操作系统描述了,本程序所包括的组件,所实现的功能,能处理的数据,要请求的资源等等。

学过Java Web开发的同学可以用Web应用程序里的web.xml来类比这个AndroidManifest.xml文件。

该文件为项目的系统控制文件,是每个Android项目必须的文件,位于项目的根目录。

9. proguard-project.txt 文件

proguard-project.txt文件是混淆代码的脚本配置文件。

10. project.properties 文件

project.properties文件是与当前应用所使用android的配置信息。

Android开发之 Android应用程序目录结构解析的更多相关文章

  1. Android 开发之Android 应用程序如何调用支付宝接口

    1.到支付宝官网,下载支付宝集成开发包 由于android设备一般用的都是无线支付,所以我们申请的就是支付宝无线快捷支付接口.下面是申请的地址以及下载接口开发包的网址:https://b.alipay ...

  2. Android开发之 Android应用程序详细解析

    我们继续的沿用上一篇所建立的应用. Android应用程序可以分为:应用程序源代码(.java),应用程序描述文件(.xml),各种资源. 可以这么理解: 安卓应用程序,通过java代码来实现其业务逻 ...

  3. Android开发之 Android 的基本组件的概述

    Android是一个为组件化而搭建的平台,它的应用是由一些零散的有联系的组件组成,并通过AndroidManifest.xml文件 把它们绑定起来. Android常用的组件有: Activity(活 ...

  4. Android开发之android:process=":remote"

    由于每个应用程序都运行在自己的进程空间,并且可以从应用程序UI运行另一个服务进程,而且经常会在不同的进程间传递对象.在Android平台,一个进程通常不能访问另一个进程的内存空间,所以要想对话,需要将 ...

  5. Android开发之Android Material Design Toolbar自定义随笔

    一.自定义Toolbar的menu: 在menu下新建menu.xml文件,自定义menu的样式: <menu xmlns:android="http://schemas.androi ...

  6. Android 开发之 Android 开发的起步

    前言  Android 开发的起步 我们可以先来看看百科上面怎么说? 百度百科上 Android的介绍 一.Windows环境下在线搭建Android环境. 1. 下载 Android开发工具. JD ...

  7. Android Studio教程01-的工程和目录结构解析

    目录 1.主目录 1.1. app目录 1.2.项目资源文件夹res 2. 理解build.gradle文件 2.1. 外部build.gradle 2.2. app文件下的build.gradle ...

  8. Android开发之Android Context,上下文(Activity Context, Application Context)

    转载:http://blog.csdn.net/lmj623565791/article/details/40481055 1.Context概念Context,相信不管是第一天开发Android,还 ...

  9. Android开发之 android:windowSoftInputMode属性详解

    android:windowSoftInputMode activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性. 这个属性能影响两件事情: [一] ...

随机推荐

  1. 查找最小的k 个元素之C#算法实现

    紧接着上一篇微软编程面试100题,这次想解决的是查找最小的K个元素,题目是:输入n 个整数,输出其中最小的k 个.例如输入1,2,3,4,5,6,7 和8 这8 个数字,则最小的4 个数字为1,2,3 ...

  2. 重新想象 Windows 8.1 Store Apps (84) - 图像处理的新特性, Share Contract 的新特性

    [源码下载] 重新想象 Windows 8.1 Store Apps (84) - 图像处理的新特性, Share Contract 的新特性 作者:webabcd 介绍重新想象 Windows 8. ...

  3. PHP学习笔记:伪静态规则的书写

    这里以阿帕奇为服务器软件,直接上案例: 1.把index.html重定向到index.php RewriteEngine On Options -Indexes ReWriteRule ^index. ...

  4. 【Android】Android SDK Manager更新慢/失败的问题

    前言:更新下载Intel x86 Atom_64 System Image的时候总是失败,速度只有几KB,我这是10M的网啊. 最后找到一篇日志,解决了这个问题.非常感谢!其参考地址:http://w ...

  5. spring扫描classpath下特定package,并加载具有特定注解的接口

    spring扫描classpath下特定package,并加载具有特定注解的接口. 在框架平台的开发中,通常有很多的情况通过spring配置方式来实现某些功能会使得框架平台难以使用和扩展,我们通常的做 ...

  6. TSQL生成Combguid

    Nhibernate实现combguid /// <summary> /// Generate a new <see cref="Guid"/> using ...

  7. ASP.NET本质论第一章网站应用程序学习笔记1

    1.统一资源标示符 1) 格式:协议://主机[.端口号][绝对路径[?参数]],在Http://www.kencery.com/hyl/index/login中,http表示协议的名称,www.ke ...

  8. 说反话(c++实现)

    描述:给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有 ...

  9. 微信公共平台开发5 .net

    每次在于微信交互时,都要用到access_token,但是这个值限制的是有时间的,但是access_token,在以后的高级功能里面会经常用到,所以这里不得不这里对前面所讲解的access_token ...

  10. ABAP 表格控制(Table Control)和步循环

    表格控制(Table Control)和步循环     1.两个标准Demo: SAPMTZ60,SAPMTZ61 2.简介 3.建立Table Control程序的基本流程 4.使用步循环 5.表格 ...