Android操作系统中开发的应用程序都有一个结构缜密的架构。我们今天就来对这一Android程序架构做一个详细的分析。帮助大家了解程序开发的特点,以方便将来在应用程序开中明确自己的程序架构。

Android程序架构1. src/ 原始码(source)目录

src 目录中包含了一个 Android 应用程式中所需的各个程式码档桉。这些档桉被包在对应 package 的子目录下。(如本章的 BMI 例子中,子目录指的就是 /src/com/demo/android/bmi/)

src 目录中比较关键的程式有:

1. Bmi.java 这个档桉的档名会随着你在建立一个新的程式专桉画面中所填入「Create Activity」栏位值的不同而改变。这是新程式专桉中的主要程式区块。我们开发 Android 程式的多数时间,都是在 src 目录下和 Android 打交道。
gen/ 自动生成(Generate)目录

gen 目录中存放所有自动生成的档桉。

gen 目录中最关键的程式就是 R.java 档。

1. R.java 这个档是自动产生的。会由 ADT 插件自动根据你放入 res 目录的 XML 描述文件、图像等资源,同步更新修改 'R.java' 这个文件中。所有的 Android 程式中都会有以 R.java 为名的这个档桉,你完全不需要,也应避免手工修改 R.java 这个档桉。

R.java 中自动产生的「R」 类别就像是个字典一样,包含了使用者介面、图像、字串等各式的资源与相应的编号(id)。Android 应用程式中很多时候会需要透过 R 类别调用资源。编译时编译器也会查看这个资源列表,没有使用到的资源就不会编译进去,为手机应用程式节省不必要没用的空间。

Android程序架构2. s/ 资源(Resource)目录

「res」 目录中存放所有程式中用到的资源档桉。"资源档桉"指的是资料档桉,或编译时会被转换成程式一部分的 XML 描述档。Android 针对放在「res」 目录下的不同子目录的资源,会有各自不同处理方式。因此我们写程式时,最好能搞清楚各目录下分别可放置的内容。

Android程序架构3. layout/ 版面配置(layout)目录

「layout」目录包含所有使用 XML 格式的介面描述档。「layout」 中的 XML 介面描述档就像写网页时用到的 HTML 档桉一样,用来描述萤幕上的版面编排与使用的介面元件。XML 介面描述档描述的内容可以是整张萤幕,也可以只描述一部分的介面(例如描述用来产生对话框的介面元件)。

虽然你也能直接通过 Java 来建立使用者介面,不过透过 XML 描述档来建立使用者介面相对更简单,架构也更清晰,以后维护时更容易釐清问题。要使用这些介面元件,应透过 「R.java」 档中自动产生的 「R」 类别来调用。

Android程序架构4. values/ 参数值(value)目录

「values」 目录包含所有使用 XML 格式的参数值描述档,可以在此添加一些额外的资源如字串(很常用)、颜色、风格等。使用时也是透过 「R」 类别来调用。
Android 功能清单

Android程序架构5. AndroidManifest.xml

「AndroidManifest.xml」 是 Android 程式的功能清单,应用程式在这离列出该工程所提供的功能。当应用程式开启时,会提供诸如内容提供者(ContentProvider)、处理的资料类型、实际运行的类别、跨应用程式的资讯等等讯息。你可以在此指定你的应用程式会使用到的服务(诸如电话功能、网路功能、GPS功能等)。当你新增一个页面行为类别 (Activity) 时,你也需要先在此注册这个新增的 Activity 类别后,才能顺利调用。

转自:http://developer.51cto.com/art/201001/181343.htm

Android程序架构基本内容概述的更多相关文章

  1. Android 程序架构: MVC、MVP、MVVM、Unidirectional、Clean...

    摘选自:GUI 应用程序架构的十年变迁:MVC.MVP.MVVM.Unidirectional.Cleanhttps://zhuanlan.zhihu.com/p/26799645 MV* in An ...

  2. fir.im Weekly - iOS/Android 应用程序架构解析

    假如问你一个iOS or Android app的架构,你会从哪些方面来说呢? 本期 fir.im Weekly 收集了关于  iOS/Android 开发资源,也加入了一些关于 Web 前端方面的分 ...

  3. Android 学习手札(一) 应用程序架构

    1.资源列表 Android支持的资源列表 目   录 资源类型 描述 res/anim  XML  该目录用于存放帧(frame).动画或补间(tweened)动画文件 res/drawable   ...

  4. 工资8000以下的Android程序员注意了!接下来要准备面对残酷现实了……

    最近在知乎看到一个测试,特扎心: 以下三种情况,哪个最让你绝望? ❶ 每月工资去掉开销还存不到3千: ❷ 家人突然急病住院,医药费10万: ❸ 同班的家长都在争先恐后给孩子报名各种辅导班.兴趣班,但一 ...

  5. 转: GUI应用程序架构的十年变迁:MVC,MVP,MVVM,Unidirectional,Clean

    十年前,Martin Fowler撰写了 GUI Architectures 一文,至今被奉为经典.本文所谈的所谓架构二字,核心即是对于对于富客户端的 代码组织/职责划分 .纵览这十年内的架构模式变迁 ...

  6. 微信Android客户端架构演进之路

    这是一个典型的Android应用在从小到大的成长过程中的“踩坑”与“填坑”的历史.互联网的变化速度如此之快,1年的时间里,可以发生翻天覆地的变化.今天在这里,重新和大家回顾微信客户端架构的演进过程,以 ...

  7. android系统架构解析

    以上是我在这个课题下的一些参考博客或者网页链接.里面有对于android架构的一些较好的分析理解,接下来是楼主在阅读后自己的一些整理. Android采用层次化系统架构,官方公布的标准架构如下图所示. ...

  8. Android系统架构说明介绍

    Android系统架构说明介绍 Android系统架构和一些普遍的操作系统差不多,都是采用了分层的架构,从他们之间的架构图看,Android系统架构分为四个层,从高层到低层分别是应用程序层.应用程序框 ...

  9. 转载: android 学习架构

    http://www.cnblogs.com/forlina/archive/2011/06/29/2093332.html 引言 通过前面两篇: Android 开发之旅:环境搭建及HelloWor ...

随机推荐

  1. (转)Linux进程间通信

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 谢谢nonoob纠错 我们在Linux信号基础中已经说明,信号可以看作一种粗糙的进 ...

  2. 【mysql5.6】连接vs2010

    参考这篇博客:http://www.tuicool.com/articles/mUZNne 配置:vs2010项目属性里面配置包含目录和库目录. 包含目录:C:\Program Files\MySQL ...

  3. Visual Studio 2010 快捷键

    Visual Studio 2010 快捷键: CTRL + SHIFT + B 生成解决方案CTRL + F7 生成编译CTRL + O 打开文件CTRL + SHIFT + O 打开项目CTRL ...

  4. 基于Mongodb的轻量级领域驱动框架(序)

    混园子也有些年头了,从各个大牛那儿学了很多东西.技术这东西和中国的料理一样,其中技巧和经验,代代相传(这不是舌尖上的中国广告).转身回头一望,几年来自己也积累了一些东西,五花八门涉猎到各种方向,今日开 ...

  5. mq_send

    NAME mq_send - 将消息发送到消息队列 (REALTIME) SYNOPSIS #include <mqueue.h>int mq_send(mqd_t mqdes, cons ...

  6. vmware通过vmnet8共享本地网络

    转载于:http://zhaolongchn.blog.163.com/blog/static/19065850420122595117886/ 1,首先将真实电脑的虚拟网卡VMnet8启用 2,然后 ...

  7. Java:静态导入

    静态导入 importStatic 当类重名时,需要指定具体的包名. 当方法重名时,需要指定具体的类或对象名. 举例如下: import java.util.*; import static java ...

  8. Android SQLite数据库增删改查操作

    一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库——SQLite,SQLite3支持NULL.INTEGER.REAL(浮点数字). TEXT(字符 ...

  9. 把properties放到src的package中

    eclipse在buildporject的时候会自动将properties文件拷贝到/build下的相应的package中

  10. VI操作--跳到最后一行和跳到最后一行的最后一个字符

    vi操作 1.跳到文本的最后一行:按“G”,即“shift+g” 2.跳到最后一行的最后一个字符 : 先重复1的操作即按“G”,之后按“$”键,即“shift+4”. 3.跳到第一行的第一个字符:先按 ...