Android Studio安卓学习笔记(二)Android项目结构
上一篇代码,我们学习了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项目结构的更多相关文章
- Android Studio安卓学习笔记(三)Android用户界面的设计布局与组件(一)用户界面布局设计(1)
当我们创建了一个安卓项目后,我们会发现真正建立一个完善的安卓项目并不是想象的那么容易.其实和设计GUI可视化界面一样,开发安卓也需要考虑很多方面,主要考虑的还是界面布局和需要的组件. 一:Androi ...
- Android Studio安卓学习笔记(一)安卓与Android Studio运行第一个项目
一:什么是安卓 1.Android是一种基于Linux的自由及开放源代码的操作系统. 2.Android操作系统最初由AndyRubin开发,主要支持手机. 3.Android一词的本义指“机器人”, ...
- muduo学习笔记(二)Reactor关键结构
目录 muduo学习笔记(二)Reactor关键结构 Reactor简述 什么是Reactor Reactor模型的优缺点 poll简述 poll使用样例 muduo Reactor关键结构 Chan ...
- PMBOK学习笔记二-项目管理过程
项目管理过程可归纳为五类,即五大项目管理过程组 启动过程组.定义一个新项目或现有项目的一个新阶段,授权开始该项目或阶段的一组过程..规划过程组.明确项目范围,优化目标,为实现目标制定行动方案的一组过程 ...
- django学习笔记二:一个项目多个App项目搭建
django充许在一个项目中存在多个app,如一个大门户网站中可以包含论坛,新闻等内容,其中每一个模块称之为一个App,也可以理解为一个个独立的小型项目最终集成在一个门户网站中最终呈现给用户 本次测试 ...
- C#学习笔记二:C#程序结构
从最简单的HelloWorld开始入手,这是一个最低限度的C#程序结构. C# Hello World 示例 一个C#程序主要由以下几部分组成: 命名空间声明 一个类 类方法 类属性 一个Main方法 ...
- Android学习笔记(1)—Android Studio安装
Android Studio 是一个全新的 Android 开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工 ...
- Android Studio安卓导出aar包与Unity 3D交互
Unity与安卓aar 包交互 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分 ...
- Unity 3D与Android Studio安卓交互之-导出jar包
u3d与安卓 jar 包交互 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享 ...
随机推荐
- 写这篇博客之前,我又忘了“==”和equals的区别。
没错.嘟嘟又把==号和equals 的区别给忘掉了 ==号比较基本类型的时候比的是值,比较引用类型的时候比较的是地址.equals比较基本类型的时候.... 脑子里关于这道题的答案好模糊好没有安全感 ...
- Centos7配置BIND开机自启动
Centos7上面已经把/etc/init.d/服务的启动方式更改为systemctl启动. 当然编译安装仍然可以/etc/init.d/手动启动但是chkconfig –add named就用不了. ...
- Linux基本操作及安装(部分)
1.分别用cat \tac\nl三个命令查看文件/etc/ssh/sshd_config文件中的内容, 并用自己的话总计出这三个文档操作命令的不同之处? [root@localhost ~]# c ...
- .Net Core CLR FileFormat Call Method( Include MetaData, Stream, #~)
.Net Core CLR PE 文件启动方法,找到函数入口点,调用整个.Net 程式宿主. 使用方法:可以利用Visual Studio新建一个控制台应用程序,然后生成DLL,替换掉本程序DLL, ...
- 微信支付java开发
微信公众平台 (此处只讲pay) 微信商户平台,公众号的后台管理工具,包含公众号的商户信息,公众号支付,扫码支付,刷卡支付 1.商户信息包含商户号,和此公众平台关联的商户号,需登录商户平台设置商户秘钥 ...
- Ubuntu 执行chmod -R 777 / 挽救方法
mgj怎么会有堪比rm -rf /*这样神奇的命令,本想着把当前目录下的权限改为777,没想到把整个/目录下全设成777了,直觉告诉我好像哪里有些不对劲,好在一顿xjb折腾最终弄好了,应该没啥大问题, ...
- 如何创建Github创库
重点:利用Markdown语言写简单的日常使用的文本 基础写作和语法格式 本篇文章的内容来源于Github的基础写作帮助.如果在观看时有什么问题,可以直接查阅源文件.另外需要说明的是Git对Markd ...
- String——字符串
首先看一下string的一部分源码吧 public final class String private final char value[]; 我们暂且只看这两行, 第一行String被final修 ...
- .Net Core 最优 MD5 打开方式!初学者建议收藏(支持 SHA1,SHA256,.Net Framework)
public static string GetMd5Hash(string input) { using (MD5 md5Hash = MD5.Create()) { // Convert the ...
- h5微信浏览器复制粘贴--ios兼容问题的解决方法(clipboard.js插件)
前段时间在做微信h5的时候,遇到了ios兼容,使用clipboard.js插件完美解决 下载地址:下载地址: https://github.com/zenorocha/clipboard.js cnd ...