目录

Android 应用程序剖析

结构说明

MainActivity. java

AndroidManifest. xml

Strings 文件

R 文件

Layout 文件


Android 应用程序剖析

在运行应用之前,需要了解 Android 项目中常用目录和文件

如下所示为  Android Studio 3.1.2 创建应用构建成功之后的默认结构:

Android Studio 应用目录结构说明_第1张图片

结构说明

编码 结构 说明
1 AndroidManifest.xml 应用程序的清单文件,程序中用到的四大组件均需在此注册,且可在此给应用添加权限声明。
2 java/com/.... APP 源码目录。默认情况下,它包括一个 MainActivity.java 源文件对应的活动类,当应用程序通过应用图标启动时,将运行它。
3 java/com(androidTest) Android 专用测试
4 java/com(test) 应用的 Junit 单元测试
4.1 res 存放各种资源文件的地方,有图片,字符串,动画,音频等,还有各种形式的XML文件
5 res/drawable 存放各种位图文件(.png,.jpg,.9png,.gif等)。除此之外可能是一些其他的drawable类型的XML文件
6 res/layout 存放用于定义用户界面的文件,布局文件
7 res/menu 菜单按钮文件
8 res/mipmap 用来存放图片资源,如 应用图标
8.1 mipmap-hdpi 高分辨率,一般把图片丢这里
8.2 mipmap-mdpi 中等分辨率,很少,除非兼容的的手机很旧
8.3 mipmap-xhdpi 超高分辨率,手机屏幕材质越来越好,以后估计会慢慢往这里过渡
8.4 mipmap-xxhdpi 超超高分辨率,这个在高端机上有所体现
9 res/values 存放各种各样的包含一系列资源的XML文件,比如字符串和颜色的定义。
9.1 demens.xml 定义尺寸资源
9.2 string.xml 定义字符串资源
9.3 styles.xml 定义样式资源
9.4 colors.xml 定义颜色资源
9.5 arrays.xml 定义数组资源
9.6 attrs.xml 自定义控件时用的较多,自定义控件的属性!
11 build.gradle(Project:xxx) 应用全局的 gradle 构建脚本
12 build.gradle(Module:app) app 模块的 gradle 构建脚本,此文件会指定很多项目构建相关的配置
13 gradle.properties(Global Properties) 全局 gradle 配置文件,配置的属性将会影响到项目中所有的 gradle 编译脚本
14 gradle-wrapper.prperties  
15 proguard-rules.pro  
16 gradle.properties(Project Properties)  
17 settings.gradle 用于指定项目中所有引入的模块,如 include ':app'
18 local.properties 用于指定本机中的 Android SDK 路径,如 sdk.dir=D\:\\Android\\sdk
19 raw 用于存放各种原生资源(音频,视频,一些XML文件等)

MainActivity. java

主活动代码在 MainActivity.java 文件中,这是实际的应用程序文件,也是整个 App 的程序入口,将被转化为 Dalvik 可执行文件并运行。

下面是由应用向导创建的空活动窗口应用生成的默认代码,说明当前 Android Studio 版本为 3.1.2

import android.support.v7.app.AppCompatActivity;import android.os.Bundle;public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }}

其中 R.layout.activity_main 引用自res/layout目录下的 activity_main.xml 文件。

onCreate() 是活动被加载之后众多被调用的方法之一。  

AndroidManifest. xml

无论开发什么组件用作应用程序中的一部分,都需要在应用程序项目根目录下的 AndroidManifest.xml 文件中声明所有的组件。

AndroidManifest.xml 文件是 Android 操作系统与应用程序之间的接口,所以如果没有在这个文件中声明应用的组件,将无法被操作系统所识别。

如下所示为 Android Studio 3.1.2 版本创建的 HelloWorld 应用使用的空活动窗口时的 AndroidManifest.xml 文件 内容:

<?xml version="1.0" encoding="utf-8"?>                                                                                

意图过滤器的 action 被命名为 android.intent.action.MAIN,表明这个活动被用做应用程序的入口

意图过滤器的 category(类别) 被命名为 android.intent.category.LAUNCHER,表明应用程序可以通过设备启动器的图标来启动。

@string/app_name 指的是定义在 src/values/strings.xml 中的 app_name,值为 "Hello World"。

下面是清单文件中将用到的标签,用于指定不同的 Android应 用程序组件:

  1. 活动元素
  2. 服务元素
  3. 广播接收器元素
  4. 内容提供者元素

Strings 文件

strings.xml 文件在 res/values 文件夹下,它包含应用程序使用到的所有文本,例如 按钮、标签的名称,默认文本,以及其他相似的strings,

一个默认的 strings 文件看起来如下:

    TestApp    Home    Dashboard    Notifications

R 文件

R 文件是活动窗口(如 MainActivity.java)与资源文件(如strings.xml)之间的胶水。

R 文件由编辑器自动生成,无需程序员修改,R 文件的位置:切换项目列表试图为project,然后依次 app-->build-->generated-->source-->r-->debug

Android Studio 应用目录结构说明_第2张图片

Layout 文件

activity_main.xml 是一个在 res/layout 目录下的 layout(布局) 文件。

当应用程序构建它的界面时被引用,在"Hello World"应用程序中,这个文件具有默认的布局,内容如下:

<?xml version="1.0" encoding="utf-8"?>    

TextView 是一个 Android 的控件,用于构建用户图形界面,它包含有许多不同的属性,诸如 android:layout_width, android:layout_height 等用来设置它的宽度和高度等。

@string 指的是res/values 文件夹下的 strings.xml 文件中的内容

 

更多相关文章

  1. github开源Android资源整理(八)工具库
  2. Android笔记四 虚拟机Dalvik、Android各种java包功能、Android相
  3. android 资源列表-网址
  4. android保存手势操作到文件&读取识别手势
  5. android 2.android 系统架构与应用程序目录介绍
  6. Android 官方博客 - Android应用程序的内存分析

随机推荐

  1. Android(安卓)Bluetooth HID实现详解
  2. 以用户的角度给 Android(安卓)开发者的一
  3. Vitamio 随笔分类
  4. Android 字体自适应设置
  5. Android ViewGroup中有关测量的方法
  6. TextView 限制最大行数、最小行数、字数
  7. Android 对话框(Dialog)大全
  8. 管理Android通信录
  9. Android Activity的启动过程(API27 源码分
  10. cocos2d-x 1.0.1 for Android 使用Box2D