Android程序架构基本内容概述
在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程序架构基本内容概述的更多相关文章
- Android 程序架构: MVC、MVP、MVVM、Unidirectional、Clean...
摘选自:GUI 应用程序架构的十年变迁:MVC.MVP.MVVM.Unidirectional.Cleanhttps://zhuanlan.zhihu.com/p/26799645 MV* in An ...
- fir.im Weekly - iOS/Android 应用程序架构解析
假如问你一个iOS or Android app的架构,你会从哪些方面来说呢? 本期 fir.im Weekly 收集了关于 iOS/Android 开发资源,也加入了一些关于 Web 前端方面的分 ...
- Android 学习手札(一) 应用程序架构
1.资源列表 Android支持的资源列表 目 录 资源类型 描述 res/anim XML 该目录用于存放帧(frame).动画或补间(tweened)动画文件 res/drawable ...
- 工资8000以下的Android程序员注意了!接下来要准备面对残酷现实了……
最近在知乎看到一个测试,特扎心: 以下三种情况,哪个最让你绝望? ❶ 每月工资去掉开销还存不到3千: ❷ 家人突然急病住院,医药费10万: ❸ 同班的家长都在争先恐后给孩子报名各种辅导班.兴趣班,但一 ...
- 转: GUI应用程序架构的十年变迁:MVC,MVP,MVVM,Unidirectional,Clean
十年前,Martin Fowler撰写了 GUI Architectures 一文,至今被奉为经典.本文所谈的所谓架构二字,核心即是对于对于富客户端的 代码组织/职责划分 .纵览这十年内的架构模式变迁 ...
- 微信Android客户端架构演进之路
这是一个典型的Android应用在从小到大的成长过程中的“踩坑”与“填坑”的历史.互联网的变化速度如此之快,1年的时间里,可以发生翻天覆地的变化.今天在这里,重新和大家回顾微信客户端架构的演进过程,以 ...
- android系统架构解析
以上是我在这个课题下的一些参考博客或者网页链接.里面有对于android架构的一些较好的分析理解,接下来是楼主在阅读后自己的一些整理. Android采用层次化系统架构,官方公布的标准架构如下图所示. ...
- Android系统架构说明介绍
Android系统架构说明介绍 Android系统架构和一些普遍的操作系统差不多,都是采用了分层的架构,从他们之间的架构图看,Android系统架构分为四个层,从高层到低层分别是应用程序层.应用程序框 ...
- 转载: android 学习架构
http://www.cnblogs.com/forlina/archive/2011/06/29/2093332.html 引言 通过前面两篇: Android 开发之旅:环境搭建及HelloWor ...
随机推荐
- POJ 2185 Milking Grid (KMP,求最小覆盖子矩阵,好题)
题意:给出一个大矩阵,求最小覆盖矩阵,大矩阵可由这个小矩阵拼成.(就如同拼磁砖,允许最后有残缺) 正确解法的参考链接:http://poj.org/showmessage?message_id=153 ...
- Vi的使用
Vi的使用: 范例一: 使用Vi进入一般模式: [root@dsetl lp]# vi test1.txt 范例二:按下i键进入编辑模式,开始编辑文字 -- INSERT – 范例三:按下[ESC]键 ...
- 初学Ajax(一)
以下文字根据李炎恢——jQuery教程整理而成. Ajax全称为:“Asynchronous JavaScript and XML”(异步JavaScript和XML),它并不是JavaScript的 ...
- Hbase Shell命令
1 启动HBase shell 2 HBase shell 命令 3 我们将以“一个学生成绩表”的例子来详细介绍常用的 HBase 命令及其使用方法. 这里 grad 对于表来说是一个列,course ...
- RTMP/RTP/RTSP/RTCP的区别
RTCP RTMP/RTP/RTSP/RTCP的区别 http://blog.csdn.net/frankiewang008/article/details/7665547 流媒体协议介绍(rtp/r ...
- ./jad: error while loading shared libraries: libstdc++-libc6.2-2.so.3: cannot open shared object file: No such file or directory
Ubuntu 上使用jad,出现上面错误: ./jad: error while loading shared libraries: libstdc++-libc6.2-2.so.3: cannot ...
- sql server UI怎么设置自增加id?
设置表结构的时候,设置标识列就可以了啊 来自为知笔记(Wiz)
- 存储入门 – RAID技术(大图解释)
对于RAID,一直都知道个概念,但是对于细节没有去仔细的研究过.正好昨天Training的时候, 老师讲解了RAID的内容,所以顺便就整理一下.很多内容都是参考了ISMv2这本书. RAID中用到的技 ...
- JVM加载class文件的原理
当Java编译器编译好.class文件之后,我们需要使用JVM来运行这个class文件.那么最开始的工作就是要把字节码从磁盘输入到内存中,这个过程我们叫做[加载 ].加载完成之后,我们就可以进行一系列 ...
- Android中通过导入静态数据库来提高应用第一次的启动速度
一个Android应用给用户的第一印象非常重要,除了要有好的创意和美观的界面,性能也是很关键的部分,本文讨论的就是第一次启动的速度问题. Android应用的启动过程不能让用户等待太长时间,个人觉得最 ...