ANDROID培训准备资料之项目结构简单介绍
Android Studio项目结构初步主要介绍下面几个文件夹,后续再补充
(1)java文件夹的介绍
(2)Res文件夹的介绍
(3)R文件的介绍
(4)Manifests文件夹的介绍
我们先看看整个项目结构
(1)java文件夹的介绍
java文件夹主要存放源代码,这里没有什么好讲的呢,主要讲下在开发过程中在这个文件夹下我们怎麼规划我们的代码,先来说说我怎么挖坑埋自己的吧,去年八月份吧,那时候刚出来,初生牛犊不怕虎,和另外一个实习生就直接着手开发商旅宝项目啦,一开始还按照正常的轨道前进,到后期一味的追求复用代码,也有担心后期维护的问题,但是但是没啥经验,就是你干,到最后我们竟然丧心病狂的把本来五六个Activity的内容全部集合到一个Activity中,布局页面也全集中到一个xml文件中,动态的判断该加载那个,反正最后就差一个项目用一个Activity,一个xml实现就得啦,这一年过去啦,现在我只要听到领导说维护下商旅宝,哪里哪里需要修改,我都开始颤抖啦,MD,这几十个if else if else我又得debug一行一行代码的走一遍啦,重要是当初还没有给代码加备注的习惯,真是日狗啦,反正到现在代码不好维护也不好扩展,就一句话吧,百无是处。好啦,回到正题吧。这也都工作一年啦,说说到底怎么规划我们代码吧,我觉得接手一个新的项目,我们首先得给他分模块,不用去考虑原形上那两个页面相似,那两个页面的逻辑代码差不多,我把它两给整一块去,这样是不正确的,我们应该按功能模块来划分package,而不是按层次来划分package,比如说一个项目主要有两个功能模块,一个是关于发型推荐的,一个是关于衣服搭配的,即使这两者有再多的页面相同,我们都要分成两块,一块hairstyle,另一块clothes,后期如果想复用一些代码,咱可以子类继承父类来实现。
(2)res文件夹的介绍
res 文件夹主要存放一些资源文件,比如说图片,音频文件,甚至数据库文件等等都可以,初始化主要有drawable,layout,menu,mipmap,values几个文件夹
drawable和 mipmap:两者主要都是存放图形资源的,之前在eclipse中是没有mipmap这个文件夹的 ,改用Studio作为开发工具后,一开始还真是蒙圈啦,干脆就把所有自定义的xml图形资源文件全扔在drawable中,美工切图的图形资源文件全扔miamap中,后来查了下资料 ,这样是不正确的,虽然两者在使用上是没有区别的,并且使用mipmap系统会在缩放上提供一定的性能优化,但是我们应该只把应用启动图标放在mipmap文件夹中,其他的都应该扔在drawable中,具体大家可以百度一下很多,这里就不再细述啦。
layout:layout文件夹主要存放用户界面资源文件,文件类型为xml。
menu:主要存放菜单文件
values/dimens:主要定义一些尺寸值
values/strings:主要定义一些字符串
values/styles:主要定义样式
我们还可以在values文件夹下定义一些例如colors(颜色资源文件),arrays(数组资源文件)之类的文件,方便我们管理
(3)R文件夹的介绍
资源文件的使用分为在代码中使用和在其他资源文件中引用该资源文件。在我们编译一个Android应用时,Android会自动生成一个R类,在该类中根据不同的资源类型又生成了相应的内部类,该类包含了系统中使用到的所有资源文件的标示。
(4)Manifest文件夹的介绍
Manifest文件夹下主要有一个文件AndroidManifest.xml文件,当我们启动一个程序时,怎么知道程序的入口在哪呢?答案就是AndroidManifest文件,不仅如此,当我们要启动某个组件时,例如Activity,Service时,Android系统首先会跑到AndroidManifest文件中查找这个组件存不存在,当然我们除了在AndroidManifest文件中定义描述所有的组件之外,像一些,程序的一些用户权限,例如联网,可以调用系统相机这些等等都需要在AndroidManifest文件中定义,还有定义程序的名字,启动图标,设置Activity的启动模式等等,今天我们只是初步了解一下AndroidManifest文件即可,后续再深入了解,大家最好可以去官方文档深入了解一下,哪里介绍的比较详细。
ANDROID培训准备资料之项目结构简单介绍的更多相关文章
- Android培训准备资料之五大布局简单介绍
本篇博客主要简单的给大家介绍一下Android五大布局 (1)LinearLayout(线性布局) (2)RelativeLayout(相对布局) (3)FrameLayout(帧布局) (4)Abs ...
- ANDROID培训准备资料之四大组件的简单介绍
Android四大组件是一个android app 最基本的组成部分,这篇博客主要给大家简单的介绍一下四种组件 (1)Activities (2)Services (3)BroadcastReceiv ...
- 使用Kotlin开发Android应用(I):简单介绍
使用Kotlin开发Android应用(I):简单介绍 @author ASCE1885的 Github 简书 微博 CSDN 原文链接 Kotlin是一门基于JVM的编程语言.它正成长为Androi ...
- Hadoop源码学习笔记之NameNode启动场景流程一:源码环境搭建和项目模块及NameNode结构简单介绍
最近在跟着一个大佬学习Hadoop底层源码及架构等知识点,觉得有必要记录下来这个学习过程.想到了这个废弃已久的blog账号,决定重新开始更新. 主要分以下几步来进行源码学习: 一.搭建源码阅读环境二. ...
- Vue入坑教程(二)——项目结构详情介绍
之前已经介绍了关于Vue的脚手架vue-cli的安装,以及一些文件目录介绍.具体可以查看<vue 入坑教程(一)--搭建vue-cli脚手架> 下面简单说一下具体的文件介绍 (一) pac ...
- Android 驱动(二) IIC简单介绍
一. I2C简单介绍 I2C(Inter-Integrated Circuit)总线是一种由 Philips 公司开发的两线式串行总线,用于连接微控制器及其外围设备.I2C 总线最基本的长处就是简单性 ...
- Android Fragment(三)ListFragment简单介绍以及Fragment之间通信
一.Fragment通信简单介绍:Fragments之间是不能够直接通信的,他们之间的通信是通过Activity这个中间件来通信的, 为了让Fragment跟它的Activity通信,我们可以在Fra ...
- (1)-Android学习笔记之:初识Android系统架构和项目结构
Android系统架构 Android程序结构 创建一个Android项目,为初学便于理解,将程序项目结构切换为Project模式,项目结构如下 .gradle和.idea:这两个目录下放的都是And ...
- Android 升级脚本updater-script 的函数简单介绍
这是Android系统来执行updater-scripts中的函数介绍. 函数都是的Edify语言.当调用这些函数结束的时候.会返回数据给脚本.当然,你也能够使用这些函数的返回值来确认成功与否,比如: ...
随机推荐
- PWA入门:手把手教你制作一个PWA应用
摘要: PWA图文教程 原文:PWA入门:手把手教你制作一个PWA应用 作者:MudOnTire Fundebug经授权转载,版权归原作者所有. 简介 Web前端的同学是否想过学习app开发,以弥补自 ...
- [视频教程] 基于redis的消息队列实现与思考
使用redis的list列表来实现消息队列功能,相信大家都听过消息队列,但是在业务中可能并没有真正去使用它.在公司项目中正好有个场景使用到了消息队列,因此就来说一下流程.在web界面上有个功能是群发邮 ...
- IDEA maven项目添加自己的jar包依赖
在pom中添加<dependency> <groupId>com.sim</groupId> <artifactId>SM-1.60</artif ...
- (七)Amazon Lightsail 部署LAMP应用程序之清除已安装服务
1.删除Lightsail实例 2.删除MySQL数据库 3.删除Amazon RDS数据库 4.删除负载均衡器 5.删除EC2实例 6.删除EC2安全组 7.删除快照
- Html学习之十(CSS选择器的使用--伪类选择器)
伪类选择器 一.基于a标签. 1.:hover 选择鼠标滑过的超链接元素 2.:active 选择鼠标单击中的超链接元素 3.:link 选择未被访问的超链接元素 4.:visited 选择已经被访问 ...
- Linux通过端口号查看使用进程-结束进程
1. 查看进程(参数带 - 与不带有区别): command [options] 例:ps -a(配合其他options参数以展示进程更多参数) ps -ef | grep 进程名(返回值是该进程的 ...
- day55_9_19模型层的操作
一.配置settings. 如果是queryset对象 那么可以点query直接查看该queryset的内部sql语句 将以下代码放入settings中.就可以实现当使用orm时查看sql语句: LO ...
- C++ class内的 < 和 > 重载,大于号,小于号,重载示例。
#include <iostream> // overloading "operator = " outside class // < 和 > 是二元操作符 ...
- Apex 企业设计模式
FFLIB 是一个免费的框架,对 Apex 进行了扩展.它的结构实现了 Salesforce 推荐的Apex 企业设计模式. 在学习如何使用 FFLIB 框架之前,我们先来了解一下 Apex 企业设计 ...
- Codeforces Round #597 (Div. 2) C. Constanze's Machine dp
C. Constanze's Machine Constanze is the smartest girl in her village but she has bad eyesight. One d ...