上一篇代码,我们学习了Android的功能以及如何用Android Studio开发第一个安卓程序。下面就要介绍Android项目结构。为日后学习打基础。

一:Android项目结构

打开MyFristApp,可以看到如下项目目录和文件结构:

这里对app模块下的文件进行介绍。

1.manifests

其下的AndroidMainfest.xml为项目的配置信息文件:

2.java

主要是java源代码和测试代码。下面的文件是主文件:

3.res

主要是资源目录,存储所有的项目资源:

下面是文件夹的功能说明:

目录结构 资源类型
res\values 存放字符串,颜色,尺寸,数组,主题,类型等资源
res\layout XML布局文件
res\drawable 图片(bmp,png,gif,jpg等)
res\anim XML格式的动画资源(帧动画和补间动画)
res\mipmap 存储系统的图片资源
res\raw 可以存放任意类型的文件,一般比较大的文件,会在Rl类中生成资源id,封装在apk中
assets 可以存放任意类型,不会被编译,与raw相比,不会在R类中生成资源id

下面是常用的目录简介:

(1)mipmap

功能:存储系统的图片资源

可以看到出现了两个文件夹,一个是方形的图片文件存放处,一个是圆形的图片文件存放处。

后面的括号内的代表不同的分辨率,是为了使应用程序在分辨率大小不同的显示窗体上都可以顺利显示。

(2)layout

这里存放XML布局文件,就是用户界面布局文件,有一个系统自动生成的activity_main.xml文件,可以按可视化的图形设计界面显示,也可以按代码设计界面显示:

a:图形设计界面


b:代码设计界面

"android:layout_width":定义当前视图在屏幕上所占的宽度,match_parent即填埋整个宽度。
同理android:layout_height是定义当前视图在屏幕上所占的高度。
android:layout_width="wrap_content"
android:layout_height="wrap_content"
自适应大小,用于显示其全部的文字内容。
在应用程序中如果使用用户界面的组件时,则需要通过R.java文件中的R类调用。

上面都是相对布局配置。

(3)values

该目录存放参数描述文件资源。也是XML文件。都是通过R类来调用。



4.R.java目录
该文件将res目录中的资源与id编号进行映射,很方便地对资源进行引用。该文件是自动生成的,不允许用户修改。
在系统中引用资源都需要使用R类。
专业解释是:R.java会自动收录当前应用中所有的资源,并根据这些资源建立对应的ID,包括:布局资源、控件资源、String资源、Drawable资源等。可以简单的把R.java理解成是当前Android应用的资源字典。
有时候会由于操作失误造成MainActivity找不到R.java文件,这时候只需要点击如下位置即可:
5.Gradle Scripts:build.gradle为项目的gradle配置文件。 6.Android应用程序结构分析
从上面的Android应用程序可以看到,一个Android应用程序通常由Activity类程序(Java源程序)和用户界面布局XML文档组成。
逻辑控制层由Java应用程序实现,表现层由XML文档描述。
主程序和Java一样。 7.AppCompatActivity与Activity区别
我们在写源程序时,会有两个继承的父类,这两个大体上是相同的,但有些地方还是有些区别。
当使用Eclipse开发Android应用的时候,当创建项目的时候,MainActivity自动继承的是Activity,而在使用Android Studio开发Android应用的时候,创建项目时,自动继承的是AppCompatActivity。
(1)AppCompatActivity简介
AppCompatActivity是Google后来退出的Activity  AS默认让我们继承它   因为他可以使用Android中的新特新   ToolBar   我平时使用的很少   如果使用toolbar需要继承AppCompatActivity。
(2)AppCompatActivity默认带标题
在继承AppCompatActivity时,界面最上面会出现一个ActionBar,
但Activity不带。
(3)AppCompatActivity和 
requestWindowFeature(Window.FEATURE_NO_TITLE); 
有冲突。
8.出现的问题
在运行代码时,可能会出现下面的问题:

它的含义如下:

在Android Studio3.0之后的版本解决方法如下:
结果如下:

Android Studio安卓学习笔记(二)Android项目结构的更多相关文章

  1. Android Studio安卓学习笔记(三)Android用户界面的设计布局与组件(一)用户界面布局设计(1)

    当我们创建了一个安卓项目后,我们会发现真正建立一个完善的安卓项目并不是想象的那么容易.其实和设计GUI可视化界面一样,开发安卓也需要考虑很多方面,主要考虑的还是界面布局和需要的组件. 一:Androi ...

  2. Android Studio安卓学习笔记(一)安卓与Android Studio运行第一个项目

    一:什么是安卓 1.Android是一种基于Linux的自由及开放源代码的操作系统. 2.Android操作系统最初由AndyRubin开发,主要支持手机. 3.Android一词的本义指“机器人”, ...

  3. muduo学习笔记(二)Reactor关键结构

    目录 muduo学习笔记(二)Reactor关键结构 Reactor简述 什么是Reactor Reactor模型的优缺点 poll简述 poll使用样例 muduo Reactor关键结构 Chan ...

  4. PMBOK学习笔记二-项目管理过程

    项目管理过程可归纳为五类,即五大项目管理过程组 启动过程组.定义一个新项目或现有项目的一个新阶段,授权开始该项目或阶段的一组过程..规划过程组.明确项目范围,优化目标,为实现目标制定行动方案的一组过程 ...

  5. django学习笔记二:一个项目多个App项目搭建

    django充许在一个项目中存在多个app,如一个大门户网站中可以包含论坛,新闻等内容,其中每一个模块称之为一个App,也可以理解为一个个独立的小型项目最终集成在一个门户网站中最终呈现给用户 本次测试 ...

  6. C#学习笔记二:C#程序结构

    从最简单的HelloWorld开始入手,这是一个最低限度的C#程序结构. C# Hello World 示例 一个C#程序主要由以下几部分组成: 命名空间声明 一个类 类方法 类属性 一个Main方法 ...

  7. Android学习笔记(1)—Android Studio安装

    Android Studio 是一个全新的 Android 开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工 ...

  8. Android Studio安卓导出aar包与Unity 3D交互

    Unity与安卓aar 包交互 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分 ...

  9. Unity 3D与Android Studio安卓交互之-导出jar包

    u3d与安卓 jar 包交互 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享 ...

随机推荐

  1. python查漏补缺 --- 基础概念及控制结构

    python  是一种面向对象的解释型计算机程序设计语言,在运行时由解释器处理,在执行程序之前不需要编译程序.Python就是一句话,写得快,跑得慢. 下面的内容是平时工作中容易忽略掉的小细节,希望借 ...

  2. python 获取大乐透中奖结果

    实现思路: 1.通过urllib库爬取http://zx.500.com/dlt/页面,并过滤出信息 2.将自己的买的彩票的号与开奖号进行匹配,查询是否中奖 3.将中奖结果发生到自己邮箱 caipia ...

  3. c#异常后重试操作

    private void TryConnect(System.Action action)         {             int retries = 3;             whi ...

  4. UR机器人的位姿

    一.Ur 移动命令 UR机器人移动,一共有三种移动指令,movej,movel,movep,分别是关节运动,线性运动,圆周运动. movej:6个关节的弧度 movel/movep:分别是x,y,z, ...

  5. excel 导入 下载模板 demo

    import org.apache.commons.beanutils.PropertyUtils;import org.apache.commons.lang3.StringUtils;import ...

  6. c++随笔之编译器编译原理

    /* C++编译器原理:1)首先明白声明与定义是两个不同的概念 extern int i;是声明,int i;是定义 函数就更简单了2)编译分为: 预编译:将宏替换,include等代码拷贝过来 编译 ...

  7. APP启动优化

    1. 去除启动黑屏 1.1 在style.xml中定义两种主题: <style name="AppTheme" parent="Theme.AppCompat.Da ...

  8. android ——活动

    活动(Activity)主要用于和用户进行交互,是一种可以包含用户界面的组件. 1.手动创建活动 右击com.example.administrator.exp5→New→Activity→Empty ...

  9. tk.mybatis扩展通用接口

    一.tk.mybatis已经为我们封装好了许多拆箱即用的通用mapper,但在实际的项目开发中想必不少小伙伴在数据库设计中都会采用逻辑删除这种方案,再去使用通用的mapper接口就不行了.这时候就需要 ...

  10. 深入研究BufferedInputStream内幕

    目录 1 概述 2 BufferedInputStream源码分析 3 BufferedInputStream在实际场景中,没有太多用处 4 BufferedInputStream唯一使用场景 1 概 ...