Android入门教程AS重制-A005 AS项目结构解析

上一节课给大家介绍了如何使用AS进行开发我们的第一个Android应用程序——HelloWorld,本节课来给大家系统介绍一下在Android Studio中Android的项目结构是怎样的,每一个文件夹和文件具体含义是什么,在我们Android程序中有什么作用,大家不妨来看看接下来的内容。

我们创建了一个Android Project,打开就如下图所示:

我们选择Project视图,就会有以下的项目文档结构:

上面笔者标注的数字是接下来要讲解的内容。 我们先来看1: 我们创建Application的时候,要求我们输入项目名称,1就是我们创建的项目,AndroidDevelopCourse是项目名称,在实际开发中,我们要为我们项目取一个能明确表达产品的名称,一般使用英文来描述,比如我们的课程是“Android开发课程”。1展开之后是我们完整的项目文档结构。

2: 我们的Android 模块,在AS当中,分为了Project(工作空间),Module(模块)两种概念,我们创建项目的时候会默认创建一个模块,这里的app就是我们的一个module,一个Android应用程序的文档结构。

3:libs,存放项目的类库,例如我们项目中用到的.jar文件。

4:src,Android项目的源文件目录,存放应用程序中所有用到的资源文件。

5:androidTest,存放我们应用程序单元测试代码,我们可以在这里进行单元测试。

6:main,Android项目的主目录,包含java目录存放.java源代码文件,res存放资源文件,包含图像、字符串资源等等,AndroidManifest.xml是项目的配置文件。

7:build.gradle,Android项目的Gradle构建脚本,详细解释看以下注释:

// 表示使用com.android.application插件。
apply plugin: 'com.android.application'

// 配置所有android构建过程需要的参数
android {
    // 用于编译的SDK版本
    compileSdkVersion 21
    // 用于Gradle编译项目的工具版本
    buildToolsVersion "21.1.2"

    // 项目默认配置
    defaultConfig {
        // 应用程序包名
        applicationId "com.devilwwj.androiddevelopcourse"
        // 最低支持Android版本
        minSdkVersion 14
        // 目标版本
        targetSdkVersion 21
        // 版本号
        versionCode 1
        // 版本名称
        versionName "1.0"
    }
    // 编译类型。默认两个:release和debug
    buildTypes {
        release {
            // 设置是否使用混淆
            minifyEnabled false
            // 混淆文件
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

// 用于配置引用的依赖
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.0.0'
}

8:build,Android studio项目的编译目录。

9:gradle,存放项目用到的构建工具。

10:build.gradle,Android Studio项目的构建脚本

// Top-level build file where you can add configuration options common to all sub-projects/modules.

// 用于设置驱动构建过程的代码
buildscript {
    // 远程仓库
    repositories
        // 这里依赖的远程仓库是jcenter
        jcenter()
    }
    // 声明了使用Android Studio gradle插件版本。
    dependencies {
        classpath 'com.android.tools.build:gradle:1.0.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

11:External Libraries,显示项目所依赖的所有类库。

以上基本上就是完整的Android Studio项目的文档结构,有一些IDE的配置文件这里我们无需关注。

如果大家想了解更多更详细关于Android Studio的使用,可以到Android Studio中文社区http://www.android-studio.org/,那么本节课就到这里了,写下大家,下次再见。

本文分享自微信公众号 - 小巫技术博客(wwjblog)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-08-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏用户2442861的专栏

Thrift 服务器端的几种工作模式分析

相关示例代码见:http://download.csdn.net/detail/hjx_1000/8374829

79720
来自专栏维C果糖

史上最简单的 MySQL 教程(一)「数据库」

数据库,可以简单的解释为:高效的存储和处理数据的介质(主要分为磁盘和内存两种)。

465130
来自专栏容器云生态

根据红帽RHEL7官方文档对centos7进行技术剖析(二)

第一章 使用红帽kickstart,自动化安装rhel。 http://pan.baidu.com/s/1qWqfXlq    文档下载地址。 第二章: 控制对...

40170
来自专栏向治洪

关于Android的UI测试

Android 测试主要分为3个类型: 单元测试(Unit Test) 区分UI代码和功能代码在Android开发中尤其困难。因为有时Activity既有Con...

24350
来自专栏北京马哥教育

使用 Nginx 提升网站访问速度

本文主要介绍如何在 Linux 系统上安装高性能的 HTTP 服务器 —— Nginx、并在不改变原有网站结构的条件下用 Nginx 来提升网站的访问速度。 N...

50480
来自专栏JMCui

Linux 学习记录 一(安装、基本文件操作).

Linux distributions主要分为两大系统,一种是RPM方式安装软件的系统,包括Red Hat,Fedora,SuSE等都是这类;一种则是使用De...

37680
来自专栏玄魂工作室

Python黑帽编程1.3 Python运行时与包管理工具

Python黑帽编程1.3 Python运行时与包管理工具 0.1 本系列教程说明 本系列教程,采用的大纲母本为《Understanding Network...

391150
来自专栏张戈的专栏

解决网站静态缓存后WP-PostViews插件不计数的问题

突然发现文章浏览计数功能失效了,文章发了几个月才几十上百的浏览数,本以为是因为最近发的文章都比较冷门,不受欢迎。但是发布了几个月,才不到 2 百的访问量,这就不...

410150
来自专栏CDA数据分析师

工具 | 当python爬虫遇到10060错误

相信做过网站爬虫工作的同学都知道,python的urllib2用起来很方便,使用以下几行代码就可以轻松拿到某个网站的源码: ? 最后通过一定的正则匹配,解析返回...

27290
来自专栏13blog.site

Spring+SpringMVC+MyBatis+easyUI整合基础篇(四)代码简化

作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载。 前言 项目展示地址,点这里...

29560

扫码关注云+社区

领取腾讯云代金券