`

android结构图及运行流程分析

阅读更多

 idea里面的文件目录结构图分析:




1、asserts文件用于存放项目中用到的多媒体文件,但是与res的区别是res文件下的文件会在项目运行时被载入内存中,而asserts文件下的文件是在被用到的时候才会被载入内存中(这个很像hibernate中那个load跟get方法的区别有木有)。所以可以用于存放诸如视频文件、声音文件的大文件。

2、gen文件夹,该文件时自动生成的,其下存在一个R.java文件,这个文件可以理解为一个全局的资源文件的索引,我们来看一下这个文件的内容:

package com.example;

public final class R {
    public static final class attr {
    }
    public static final class drawable {
        public static final int ic_launcher=0x7f020000;
    }
    public static final class layout {
        public static final int main=0x7f030000;
    }
    public static final class string {
        public static final int app_name=0x7f040000;
        public static final int hello=0x7f040001;
    }
}

 字段都被赋予了一个十六进制数,而这个文件中的所定义的常量的名字与res文件下的资源文件的名字是一致的,这个是不是很容易就会联想到数据库中的主键ID呢。当在Activity中需要调用资源文件中定义的值的时候就需要这个ID来获取了,例如:getResources().getColor(resourceId)可以调用color.xml中定义的资源

还有一个BuildConfig文件,这个文件可以理解成自定义常量集,有利于程序员们对程序的维护

3、libs文件夹,这个很明了,跟java项目中一样,是一个用于存放第三方jar包的文件

4、res文件夹,存放应用程序中的各类多媒体文件,按资源文件类型主要分为三个子目录drawable-*dpi、layout、values。

drawable文件夹用于存放图片文件,如png、jpg,上图中将drawable分成了四个子文件,主要是存放不同分辨率的图标,其中xdpi是超高分辨率,hdpi是高分辨率,mdpi是中等分辨率,ldpi是低分辨率;

layout文件夹用于存放页面布局的xml文件,如:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
        >
    <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/hello"
            />
</LinearLayout>

 这表明是一个线性布局,布局里放了一个文本组件。文本组件中的@符号表示的是引用;

values文件夹是定义格式参数的xml文件,其中包括字符串描述文件strings.xml、颜色描述文件color.xml、数组描述文件array.xml、样式描述文件style.xml等。

5、src文件夹就是用于存放各种java源文件的

6、AndroidManifest.xml是 应用程序描述文件,类似于java项目中的web.xml,如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example"
          android:versionCode="1"
          android:versionName="1.0">
    <uses-sdk android:minSdkVersion="18"/>
    <application android:label="@string/app_name" android:icon="@drawable/ic_launcher">
        <activity android:name="MyActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>
</manifest>

7、ant.properties文件用于在使用ant构建项目的时候覆盖某些被定义默认的值,例如

  'source.dir'本地的java源文件夹目录
  'out.dir' 本地编译项目输出的文件夹目录

8、loacal.properties文件是Android Tools自动生成的,主要包含一些本地特殊配置信息,如

sdk.dir=D:\\Program Files (x86)\\android\\sdk\\sdk

9、build.xml文件项目中的属性文件的配置文件

10、project.properties文件也是 Android Tools自动生成的

 

综合整理分析如图:

 

 

 

  • 大小: 51.1 KB
  • 大小: 113.6 KB
分享到:
评论

相关推荐

    Android-RIL详细总结及流程图_ril上网流程_RILandroid_RIL_androidril_Android流程图

    提供的“Android-RIL详细总结及流程图.pdf”文件可能包含了RIL工作流程的可视化表示,对于理解RIL如何在不同场景下操作非常有帮助。通常,流程图会详细展示从请求发出到响应返回的各个步骤,以及中间涉及到的关键...

    Android项目的目录结构和程序的执行流程

    在Android应用开发中,理解项目的目录结构和程序的执行流程是至关重要的。下面将详细解析这两个核心概念。 一、Android项目目录结构 1. **src/main/java**: 这是存放Java源代码的地方,通常按照包名(package)来...

    android和Arm启动流程分析工具bootchart(已编译为android版本)

    总之,Bootchart是Android和ARM设备启动流程分析的强大工具,它的使用可以帮助我们更好地理解和改进系统性能,提升用户的开机体验。通过细致的分析和不断的优化,我们可以让设备以更快的速度迎接每一次的开启。

    Androidusb流程分析样本.doc

    Android USB 流程分析样本文档主要讲解了 Android USB 流程的分析,文中使用 UMS(usb mass storage)为例来分析流程,主要按照图中红线来分析(即从插入 USB 开始到状态栏弹框,然后又从选择 UMS 功能开始往下的...

    Android目录结构和程序的执行流程

    在Android开发中,了解项目的目录结构和程序的执行流程是至关重要的基础。下面我们将详细探讨这两个方面。 首先,我们来看Android项目的目录结构: 1. **src/**:这是存放开发者编写的Java源代码的目录,通常按照...

    android核心分析pdf

    **Android核心分析(27):** 通过动态结构示意图来直观展示SurfaceFlinger的内部工作流程和各组件之间的交互关系。 **Android核心分析(28):** Surface和Canvas是Android图形系统中的两个重要概念,这部分内容...

    Android RIL 简介(包括流程图)

    - **事件处理流程**:当`select`监听到readFds可读或超时时,会解除阻塞状态,并执行以下步骤: - `processTimeouts()`:处理超时事件。 - `processReadReadies(&rfds, n)`:处理可读事件。 - `firePending()`:...

    Android-OTA升级流程资料

    Bootloader是嵌入式系统在加电后执行的第一段代码,在它完成CPU和相关硬件的初始化之后,再将操作系统映像或固化的嵌入式应用程序装载到内存中然后跳转到操作系统所在的空间,启动操作系统运行。 BCB(Bootloader ...

    2、Android项目的目录结构和程序的执行流程.doc

    Android项目的目录结构是...理解Android项目的目录结构和程序执行流程,可以帮助开发者更好地组织代码,管理资源,并确保应用的正常运行。在实际开发中,应遵循最佳实践,合理规划目录结构,以便于团队协作和代码维护。

    Android display架构分析

    ### Android Display 架构分析 #### 一、高通7系列硬件架构分析 高通7系列的硬件架构是Android Display架构的重要组成部分,主要包括以下几个部分: 1. **MDP (Mobile Display Processor)** - MDP是高通MSM7200A...

    Android源代码结构分析.pdf

    Android源代码结构分析是Android操作系统的源代码结构的详细分析,旨在帮助开发者和研究者了解Android操作系统的内部机制和工作流程。本文将对Android源代码结构进行详细的分析,涵盖了Android源代码的目录结构、...

    Qt实现流程示意图

    为了保存和加载流程图,项目可能使用了某种数据结构(如链表或树)来存储图形元素及其关系。同时,Qt提供QDataStream和QFile等类,用于序列化和反序列化数据,实现流程图的保存和读取。 **总结** "Qt实现流程示意图...

    Android项目的目录结构与安装及启动过程分析

    在Android开发领域,理解项目的目录结构、安装过程以及应用程序的启动流程是至关重要的。这篇文章将深入探讨这些核心概念,帮助开发者更好地掌握Android应用的工作机制。 首先,我们来详细解析Android项目的目录...

    Android初始化流程简要分析(英文版)

    **Android初始化流程简要分析** Android系统的启动流程是其核心工作原理的重要组成部分,对于开发者和系统优化者来说,深入理解这一过程至关重要。本篇文章将详细阐述Android系统从按下电源键到用户界面显示的整个...

    高通chi usecase流程分析.pdf

    三.Chi代码结构流程分析 1. chxadvancedcamerausecase.cpp分析 在代码层面,`CameraUsecaseBase::Initialize()`函数是初始化usecase的重要步骤。此函数中,会加载XML配置文件,解析其中的参数,并设置ISP的工作...

    unity android 目录结构1

    在Unity引擎中开发游戏或应用并将其部署到Android平台时,理解正确的目录结构至关重要,因为这直接影响到构建过程和最终APK的性能。本篇将详细介绍Unity导出Android项目的目录结构及其重要性。 首先,Unity在导出...

    基于Android的图书馆管理系统.zip

    【标题】"基于Android的图书馆管理系统.zip"是一个包含开发源代码和相关构建文件的压缩包,主要用于创建一个在Android平台上运行的图书馆管理应用程序。这个系统可能涵盖了书籍的添加、搜索、借阅、归还等功能,旨在...

    android OCR 图像文字识别

    OCR技术通过分析图像中的形状、结构和排列方式来识别文字。其基本流程包括预处理、特征提取、分类器训练和匹配四个步骤: 1. 预处理:对输入的图像进行去噪、二值化、倾斜校正等操作,提高文字识别的准确率。 2. ...

    《Android系统源代码情景分析》一书的光盘内容(有序列图)

    《Android系统源代码情景分析》一书的光盘内容提供了深入理解Android系统内核和其工作原理的宝贵资源。这本书的焦点在于通过一系列详细的序列图,帮助读者剖析Android系统的源代码,让开发者能够更有效地进行系统级...

Global site tag (gtag.js) - Google Analytics