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培训准备资料之项目结构简单介绍的更多相关文章

  1. Android培训准备资料之五大布局简单介绍

    本篇博客主要简单的给大家介绍一下Android五大布局 (1)LinearLayout(线性布局) (2)RelativeLayout(相对布局) (3)FrameLayout(帧布局) (4)Abs ...

  2. ANDROID培训准备资料之四大组件的简单介绍

    Android四大组件是一个android app 最基本的组成部分,这篇博客主要给大家简单的介绍一下四种组件 (1)Activities (2)Services (3)BroadcastReceiv ...

  3. 使用Kotlin开发Android应用(I):简单介绍

    使用Kotlin开发Android应用(I):简单介绍 @author ASCE1885的 Github 简书 微博 CSDN 原文链接 Kotlin是一门基于JVM的编程语言.它正成长为Androi ...

  4. Hadoop源码学习笔记之NameNode启动场景流程一:源码环境搭建和项目模块及NameNode结构简单介绍

    最近在跟着一个大佬学习Hadoop底层源码及架构等知识点,觉得有必要记录下来这个学习过程.想到了这个废弃已久的blog账号,决定重新开始更新. 主要分以下几步来进行源码学习: 一.搭建源码阅读环境二. ...

  5. Vue入坑教程(二)——项目结构详情介绍

    之前已经介绍了关于Vue的脚手架vue-cli的安装,以及一些文件目录介绍.具体可以查看<vue 入坑教程(一)--搭建vue-cli脚手架> 下面简单说一下具体的文件介绍 (一) pac ...

  6. Android 驱动(二) IIC简单介绍

    一. I2C简单介绍 I2C(Inter-Integrated Circuit)总线是一种由 Philips 公司开发的两线式串行总线,用于连接微控制器及其外围设备.I2C 总线最基本的长处就是简单性 ...

  7. Android Fragment(三)ListFragment简单介绍以及Fragment之间通信

    一.Fragment通信简单介绍:Fragments之间是不能够直接通信的,他们之间的通信是通过Activity这个中间件来通信的, 为了让Fragment跟它的Activity通信,我们可以在Fra ...

  8. (1)-Android学习笔记之:初识Android系统架构和项目结构

    Android系统架构 Android程序结构 创建一个Android项目,为初学便于理解,将程序项目结构切换为Project模式,项目结构如下 .gradle和.idea:这两个目录下放的都是And ...

  9. Android 升级脚本updater-script 的函数简单介绍

    这是Android系统来执行updater-scripts中的函数介绍. 函数都是的Edify语言.当调用这些函数结束的时候.会返回数据给脚本.当然,你也能够使用这些函数的返回值来确认成功与否,比如: ...

随机推荐

  1. securecrt如何保存操作日志

  2. DOS(磁盘操作系统)基本命令-思维导图

  3. CSS 轻松搞定标签(元素)居中问题

    在CSS里,标签位置居中一直是困扰Web前端的难题.在本文中,我对这类问题进行了探究和给出了几点建议,供读者参考. 1 行内标签 1.1 水平居中 在父级标签中使用 text-align: cente ...

  4. [MySQL] 解决Error 1698: Access denied for user 'root'@'localhost'

    当程序中使用root账号连接mysql时报以下错误,但是使用命令行是可以正常连接的,那么就查询下mysql数据库的user表,查看下当前用户的密码加密方式,看看是不是unix_socketMariaD ...

  5. Linux:路径的概念及路径的切换

    路径分为绝对路径和相对路径 绝对路径:从/根开头的路径为绝对路径 相对路径:以当前目录为开头的为相对路径 根目录:/ 家目录:普通用户的家目录在/home下,root用户的家目录是/root 切换目录 ...

  6. kettle教程---kettle作业调度,根据更新时间增量更新

    本文接上一篇,只写到读取日志.在平时工作当中,会遇到这种情况,而且很常见.比如:增量抽取(每隔2个小时抽取截至到上次抽取时间的记录) 本文中会用到作业,先来熟悉下作业的概念 简单地说,一个转换就是一个 ...

  7. jmeter判断请求响应时间,请求下加‘断言持续时间’,添加监听器断言结果;统计超时

  8. Python自动化运维之高级函数

    本帖最后由 陈泽 于 2018-6-20 17:31 编辑 一.协程 1.1协程的概念 协程,又称微线程,纤程.英文名Coroutine.一句话说明什么是线程:协程是一种用户态的轻量级线程.(其实并没 ...

  9. LG2495 「SDOI2011」消耗战 虚树

    问题描述 LG2495 题解 虚树 \(\mathrm{Code}\) #include<bits/stdc++.h> using namespace std; #define int l ...

  10. package.json文件配置详解

    package.json 是npm init命令初始化后,在项目的根目录下自动生成的配置文件,它定义了这个项目的配置信息以及所需要的各种模块,npm install根据这个命令,自动下载所需的模块.p ...