建立的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. XmlNodeList循环读取节点值

    foreach (XmlNode item in XmlNodeList) { string oid = item.SelectSingleNode("oid").InnerTex ...

  2. 如何安装nodejs

    1.进入官网https://nodejs.org/en/download/ 2.安装过程基本直接“NEXT”就可以了.(windows的安装msi文件在过程中会直接添加path的系统变量,变量值是你的 ...

  3. php中的字符串常用函数(四) ord() 获得字符的ascii码 chr()获取ascii码对应的字符

    ord('a');//=>97 返回小写a 的ascii码值97 chr(97);//=>a 返回ascii码表上的97对应的 小写a

  4. Webhooks PHP

    Webhooks/Parse When webhooks are triggered in the gateway, a notification is sent as a POST request ...

  5. PHP simplexml_load_string 过滤<![CDATA[XXXX]]>

    首先说说过滤<![CDATA[XXXX]]>干嘛用的. 这东西主要是防止XML里面嵌套HTML标签导致XML样式错乱的. 过滤很简单: $response = str_replace( a ...

  6. jvisualvm远程监控jvm设置

    有些时候,需要对特定环境中的Java应用进行实时性能分析,大部分非开发和测试环境,一般都是用jvisualvm进行基本检测以最小化对系统的影响(其开启后,负载影响大约20%-30%),jvisualv ...

  7. 伏羲八卦、文王六十四卦、老子阴阳太极、西方哲学辩证与"解耦和复用”思想的异曲同工之妙

    伏羲八卦.文王六十四卦.老子阴阳太极.西方哲学辩证与"解耦和复用”思想的异曲同工之妙     问题:任何程序语言在遇到复杂逻辑时,代码维护难度就会加大,如何处理该问题? 答案:重构,模块化. ...

  8. NYOJ 21 三个水杯

    三个水杯 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 给出三个水杯,大小不一,并且只有最大的水杯的水是装满的,其余两个为空杯子.三个水杯之间相互倒水,并且水杯没有 ...

  9. TCP中close和shutdown之间的区别

    该图片截取自<<IP高效编程-改善网络编程的44个技巧>>,第17个技巧.  如果想验证可以写个简单的网络程序,分别用close和shutdown来断开连接,然后用tcpdum ...

  10. PHP写日志函数

    初学,写一个函数用于存储日志调试. function WriteLog($msg) { $filename = dirname(__FILE__) ."\\Debug.log"; ...