上一篇代码,我们学习了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. PointCloud及其经典论文介绍

    这篇博客会介绍点云的基本知识,重点介绍最近两年发表的部分经典论文,有什么建议欢迎留言! 点云基本介绍 点云是某个坐标系下的点的数据集,包含了丰富的信息,可以是三维坐标X,Y,Z.颜色.强度值.时间等等 ...

  2. [ PyQt入门教程 ] Qt Designer工具的使用

    Qt Designer是PyQt程序UI界面的实现工具,Qt Designer工具使用简单,可以通过拖拽和点击完成复杂界面设计,并且设计完成的.ui程序可以转换成.py文件供python程序调用.本文 ...

  3. 【iOS】Ineligible Devices || “无法下载应用程序”

    今天遇到了这个问题,Xcode 显示如图所示: 还有真机测试无法安装的问题,如图: 究其原因,都是 版本不匹配 的问题!在 Xcode 中的 PROJECT 和 TARGETS 设置下版本就行了,如下 ...

  4. css3系列之transform详解translate

    translate translate这个参数的,是transform 身上的,那么它有什么用呢? 其实他的作用很简单,就是平移,参考自己的位置来平移 translate() translateX() ...

  5. win10家庭版打开组策略

    新建记事本,输入: @echo off pushd "%~dp0" dir /b C:\Windows\servicing\Packages\Microsoft-Windows-G ...

  6. JAVA并发编程之倒计数器CountDownLatch

    CountDownLatch 的使用场景:在主线程中开启多线程去并行执行任务,并且主线程需要等待所有子线程执行完毕后汇总返回结果. 我把源码中的英文注释全部删除,写上自己的注释.就剩下 70 行不到的 ...

  7. IT技术管理者的自我修养

    1. 前言 本来写<IT技术管理者的自我修养>与<IT技术人员的自我修养>是一开始就有的想法.但发表<IT技术人员的自我修养>后,收到了不少良好的反馈,博客园的编辑 ...

  8. 疯子的算法总结(三) STL Ⅱ迭代器(iterator) + 容器

    一.迭代器(Iterator) 背景:指针可以用来遍历存储空间连续的数据结构,但是对于存储空间费连续的,就需要寻找一个行为类似指针的类,来对非数组的数据结构进行遍历. 定义:迭代器是一种检查容器内元素 ...

  9. 十分钟带你看一遍ES6新特性

    let , const关键字 var 看习惯了java, 看js真的是忍不住想笑,比如说这个var,它太自由了,自由到{}根本限制不住它的生命周期 js的var关键字,无论在何处声明,都会被视为声明在 ...

  10. Vue项目中使用better-scroll

    当 better-scroll 遇见 Vue   在我们日常的移动端项目开发中,处理滚动列表是再常见不过的需求了. 以滴滴为例,可以是这样竖向滚动的列表,如图所示: 也可以是横向滚动的导航栏,如图所示 ...