`
streamh
  • 浏览: 8313 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

Android程序工程架构

阅读更多
Android程序工程架构---转自《深入浅出Android》

乍看之下,Android 插件已帮我们建立了不少档案。 检视新建立的 BMI 档桉夹中的内容,我们可以将一个 Android 应用程式基本的档桉结构归纳成如下:

我们来看看 Android 应用程式的基本档桉结构,以及各自所负责的内容。
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 类别调用资源。编译时编译器也会查看这个资源列表,没有使用到的资源就不会编译进去,为手机应用程式节省不必要没用的空间。
res/ 资源(Resource)目录

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

res/ 中的程式:

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

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

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

5. AndroidManifest.xml

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

Android 应用程式的档桉组织方式与用途: http://developer.android.com/guide/appendix/faq/commontasks.html#filelist
分享到:
评论

相关推荐

    微信Android模块化架构重构实践.pdf

    1. Android模块化架构概念:模块化架构是指将应用程序拆分为独立的模块,每个模块负责一块特定的功能。这种方式有助于提高代码的复用性,降低复杂度,提高系统的可维护性和可扩展性。模块化架构是目前大型Android...

    Android安全架构深究

    《Android安全架构深究》这本书深入探讨了Android操作系统的核心安全机制,揭示了其设计原则、实现方式以及如何保障用户和应用程序的安全。Android作为全球最受欢迎的移动操作系统,其安全性至关重要,对于开发者、...

    Android嵌入式系统架构及内核浅析

    通过对Android系统架构的分析可以看出,Android是一个层次分明的操作系统,从底层的Linux内核到顶层的应用程序,每一层都扮演着特定的角色。这种分层设计不仅有利于系统的扩展性和维护性,也为开发者提供了丰富的...

    Android程序测试(1)

    本篇主要介绍如何进行Android程序测试,我们将通过创建一个新的测试工程来对已有工程进行测试。首先,我们需要理解Android测试的基本概念和架构。 Android测试主要分为以下几个层次: 1. **单元测试(Unit Tests)...

    Android底层架构研究

    **Android底层架构研究** 在深入探索Android底层架构之前,我们首先需要理解其核心构成与运作原理。Android系统作为全球最广泛使用的移动操作系统之一,其底层架构的复杂性和精妙性是确保其稳定性和高效性的基石。 ...

    谷歌工程师多图详解Android系统架构

    标题与描述均提到了"谷歌工程师多图详解Android系统架构",这暗示着文章的核心内容是关于Android系统架构的深入解析。关键词"Android系统架构"则明确了文章的主题方向,即探讨构成Android操作系统的基础结构和关键...

    android实战 保存QQ密码(android studio源程序工程)

    本项目“android实战 保存QQ密码”提供了一个使用Android Studio开发的基础案例,旨在帮助初学者理解如何在Android应用程序中安全地存储用户数据。 首先,我们关注的是数据存储的方式。在Android中,有多种方式可以...

    android实战 Android应用市场(android studio源程序工程)

    通过这个项目,初学者不仅可以学习到Android Studio的使用,还能深入理解Android应用的架构设计、UI布局、网络编程、数据存储、多线程和异步处理、权限管理等多个核心知识点。此外,还可以接触到Android的生命周期、...

    Android系统架构及其驱动研究

    通过对Android系统架构及其驱动的分析,我们可以看到Android作为一个开源平台,在系统架构设计和驱动程序编写方面都秉持着开放和灵活性的原则。Android系统的成功很大程度上依赖于其背后强大的Linux内核以及为移动...

    android实战 打开浏览器(android studio源程序工程)

    1. **Intent**:Intent是Android中的一个非常重要的概念,它用于连接应用程序的不同组件,比如在这里,我们将使用Intent来启动系统内置的Web浏览器。Intent可以携带数据,表明要执行的动作(ACTION_VIEW)以及要处理...

    安卓Android源码——Red5+直播系统的架构服务端的直播流工程.zip

    在本项目中,我们关注的是一个基于Android的直播系统,其源码涉及到服务端的架构设计,特别是使用了Red5服务器来处理直播流。Red5是一个开源的流媒体服务器,支持实时流传输协议(RTMP)、HLS(HTTP Live Streaming...

    android实战 新闻客户端(android studio源程序工程)

    通过构建一个新闻客户端应用,你可以深入学习Android应用程序的架构设计、数据处理、网络通信以及UI设计等多个关键知识点。 1. **Android Studio基础知识** Android Studio是Google为Android开发者提供的集成开发...

    android实战 视频播放器(android studio源程序工程)

    使用Android Studio可以更高效地构建和测试Android应用程序。 在这个项目中,"VideoView"是一个关键组件。VideoView是Android SDK提供的一种视图,它允许我们在应用中嵌入视频播放功能。VideoView可以加载本地视频...

    Android开发_2年工作经验Android软件工程师求职简历个人简历.pdf

    Android 软件工程师是移动应用程序开发的核心人物,负责开发、测试和维护 Android 操作系统下的软件应用程序。为了成为一名合格的 Android 软件工程师,需要具备以下技术栈: 1. 数据存储方式:Android 提供了五种...

    Android应用程序开发 代码与PPT

    哈工程的王向辉老师在这一领域的教学,可能会涵盖以上这些内容,并结合实际代码示例进行深入讲解,帮助学生掌握Android应用程序开发的核心技术和实战经验。通过学习,开发者可以创建出满足用户需求的、高质量的...

    Android-MFSocket-集成FMOD音效引擎的AndroidStudio工程

    【Android-MFSocket-集成FMOD音效引擎的AndroidStudio工程】是一个专为Android开发者设计的项目,旨在演示如何在Android应用中集成FMOD音效引擎。FMOD是一家知名的音频技术公司,其音效引擎被广泛应用于游戏和其他...

    Red5+Android 直播系统的架构服务端的直播流工程.zip安卓程序源码资源下载

    Red5+Android 直播系统的架构服务端的直播流工程.zip安卓程序源码资源下载Red5+Android 直播系统的架构服务端的直播流工程.zip安卓程序源码资源下载 1.学生做毕业设计用 2.程序员学习研究用 3.小公司换皮做新项目用

    Android系统架构及其驱动研究.pptx

    Android系统架构及其驱动研究 Android系统架构是智能手机操作系统的核心组件之一,对...Android系统架构及其驱动研究是计算机科学和电子工程领域的重要研究方向,对智能手机操作系统的发展和应用起着至关重要的作用。

Global site tag (gtag.js) - Google Analytics