1.0、Android Studio管理你的项目
项目概览
Android Studio中的项目包含了开发一个app的工作环境所需要的一切。从代码,到资源,到测试到构建配置。当你创建一个新的项目的时候,Android Studio为所有的文件创建了必要结构,使它们在IDE左边的Project中可见(单击View >Tool Windows >Project)。
模块(Modules)
模块是构建设置(build settings)和源文件的集合,可以将你的项目分成几个独立可用的单元。你的项目可以有一个或多个模块,一个模块必须将其他模块作为依赖。每个模块可以单独构建,测试和调试。
你可以通过点击 File>New >New Module来创建模块文件。
Android Studio提供一些不同类型的模块。
Android app 模块
为你的应用源码、资源文件、设置文件和Android Manifest文件提供了一个容器。当你创建一个新的项目是,默认的模块名称为“app”。
在Create New Module窗口,Android Studio提供了以下app模块:
1) Phone & Tablet Module
2) Android Wear Module
3) Android TV Module
4) Glass Module
它们都提供了相应的代码模板和必要的文件。
Library 模块
提供了一个可芙蓉代码的容器,你可以将模块用作其他模块的依赖或者导入其他项目。Library模块在结构上跟Android app 模块是一样的。但是在构建上,它会成成一个包而不是APK文件,所以不能独立安装到设备中。
在Create New Module窗口,Android Studio提供了以下两种Library模块:
1) Android Library:这种类型的Library可以包含任何Android 项目中支持的文件类型。包括源码,资源和manifest文件。构建结果是生成一个AAR文件,你可以将AAR文件作为依赖添加到Android app模块中。
2) Java Library:这种类型的Library仅仅包含Java源文件。构建结果是生成一个Jar文件,你可以将jar文件作为依赖添加到Android app模块中或者其他Java项目中。
当你创建一个Library模块并且想作为依赖添加到当前的Android app模块中,你可以通过如下方式声明:
dependencies {
compile project(‘:my-library-module’)
}
项目文件
默认情况下,Android Studio在Android 视图下显示你的项目文件,这样视图的项目机构并没有直接映射文件实际存在的位置。而是根据模块和文件类型在你关键的源文件中方便的进行导航,隐藏不常用的文件或文件夹。Android视图显示与保存在磁盘中的项目结构的区别如下:
1) 将所有的build.gradle都归置到Gradle Script组中。
2) 将所有的Manifest文件归置到manifests中。
3) 显示相关的资源文件到一个组中,而不是不同的文件夹。比如不同分辨率的图标。
在Android APP模块中,文件按照以下方式分组:
Manifests
包含AndroidManifest.xml文件。
Java
包含根据包名进行分类的Java源文件,包含单元测试代码。
Res
包含所有的非代码资源,比如XML布局,UI字符和图片文件,分成几个子文件夹。
Android 项目视图
为了在Android视图中查看项目真实的结构(包括隐藏的文件),在项目窗口中选择Project试图。
当你选择项目视图后,你可以看到更多的文件和目录。最重要的如下:
模块名/
Build/
包含构建输出
Libs/
包含私有库
Src/
包含所有的代码和资源文件,子文件夹如下:
androidTest/
包含运行在设备上的Instrumentation测试
Main/
AndroidManifest.xml/
用于描述应用和各个组件
Java/
包含Java源代码
Jni/
包含使用Java Native Interface(JNI)的本地代码
Gen/
包含由Android Studio生成的Java文件,比如R.java和有AIDL文件生成的接口文件。
Res/
包含应用的资源,比如drawable文件,布局文件和UI字符。
Assets/
包含需要打包进apk文件中的文件。
Test/
包含运行在JVM的本地测试
Build.gradle(module)
定义了模块的运行配置
Build.gradel(project)
这个定义了可以应用于所有模块的构建配置。
项目结构设置
为了更改你的Android Studio项目的多种设置,通过点击File>Project Structure来打开Project Structure。它包含如下几个部分:
1) SDK Location:设置项目使用的JDK、Android SDK和Android NDK的位置。
2) Project:设置Gradle插件版本以及中央库
3) Developer Services:包含谷歌或第三方的Android Studio额外组件的设置。
4) Modules:允许你编辑构建设置,包含目标和最小SDK,app简明,library依赖。
开发者服务
Project Structure的Developter Services包含几个可以应用于你的app中的服务。包含如下:
1) AdMob:允许你开启Google的AdMob组件,用于广告。
2) Analytics:允许你开启Google Analytics。
3) Authenication:允许你开启Google Sign-In
4) Cloud:允许你开启Firebase
5) Notifications:允许你使用Google Cloud Messaging
模块
Modules设置允许你更改每个项目模块的设置。每个模块的设置页分成如下部分:
1) Properties:声明SDK的版本以及模块的构建工具版本。
2) Signing:签名
3) Flavors:
4) Build Types:创建或更改构建配置。
5) Dependencies:列出所有依赖。
本文作者:宋志辉
个人微博:点击进入
1.0、Android Studio管理你的项目的更多相关文章
- [转]Android Studio创建Xposed模块项目时BridgeApi的正确添加方式
使用Android Studio创建的空项目作为Xposed Module App,对于Api Jar包的引用方式,一开始是按照傻瓜式Jar Lib的处理方式,复制XposedBridgeApi-54 ...
- 使用 Xcode 和 Android Studio 管理 iOS 和 Android 项目版本
在移动应用开发和运营的过程中,版本管理是一个老生常谈的基础问题,一些版本的基本概念也常常会困扰我们的研发和运营人员.同时,手动管理软件版本,也常常会因为不小心导致后续的发布和更新问题. 这里,我准备了 ...
- Android studio 添加引用Module项目 与 设置Module项目的Libs的Jar在主项目里使用
前言 添加引用Module项目 设置Module项目的Libs的Jar在主项目里使用 1.在项目里添加libs包,并且加入jar 2.设置这个module项目的build.gradle depende ...
- 如何从Eclipse 迁移到Android Studio 且保持Eclipse项目结构
本文demo下载:http://www.wisdomdd.cn/Wisdom/resource/articleDetail.htm?resourceId=531 Android项目 Eclipse与A ...
- Android Studio 之 导入Eclipse项目常见问题及解决方案
在将Eclipse做的Android项目成功导入Android Studio 后,启动生成,遇到一些问题,现总结如下: 问题1:图片命名问题 AS对图片命名要求比eclipse严格,图片名称只能有&q ...
- Android studio升级后原有项目无法正常编译运行问题
Android studio工具升级后Gradle版本问题 背景 升级AndroidStudio到最新版本后,原来可正常编译输出AndroidTest的项目无法正常编译通过. 原因 升级后的Andro ...
- Android Studio将Eclipse的项目作为module的依赖库
情形: 我们现在有一个eclipse的项目,我们想把这个项目作为android studio的module的一个依赖库. 以前我们在eclipse的时候常常是在一个工作区里面把一个A工程 as a l ...
- Android Studio安卓学习笔记(一)安卓与Android Studio运行第一个项目
一:什么是安卓 1.Android是一种基于Linux的自由及开放源代码的操作系统. 2.Android操作系统最初由AndyRubin开发,主要支持手机. 3.Android一词的本义指“机器人”, ...
- Android教程-01 Android Studio创建第一个项目
视频教程建议采用超清模式, 关注更多视频订阅我的优酷 最近一直使用Android Studio 简单把Android Studio介绍下 1. 首先介绍下 Android Studio的快捷键 由于之 ...
随机推荐
- UpdateAfterEvent
10月3日,在杭州市西湖景区,一只小松鼠不停地接受一道道食物,花生.玉米.饼干,可谓来者不拒,憨态可掬的模样吸引了众多围观者...Description 小松鼠打了10个小时的游戏,一脸满足.却发 ...
- TopCoder SRM 566 Div 1 - Problem 1000 FencingPenguins
传送门:https://284914869.github.io/AEoj/566.html 题目简述: 平面上有中心在原点,一个点在(r,0)处的正n边形的n个顶点.平面上还有m个企鹅,每个企鹅有一个 ...
- C++Primer学习——const
Const int size = 512; 在编译的时候,编译器会把用到该变量的地方全部替换成对应的值. const&可以绑定字面值,所以当用常量引用绑定一个常量时,是否可以看成那个值在编译阶 ...
- 17.10.31&11.01
10.31模拟考试 Prob.1(AC)裸的矩阵幂 Prob.2(WA)(类似括号匹配求合法方案数) 卡特兰数的一个模型运用.可以推出一个式子(推导方法一个erge讲的,一个骚猪讲的) Prob.3( ...
- 【无语凝噎(wordless)】
·题目: 西施与范蠡泛舟而去……不对,场景不对,咳咳.在甄嬛前往蓬莱洲之前,她与皇上在碧桐书院告别.为了这可能会长达数月的离别,两个人都似乎有很多话要对对方说,却都无语凝噎.这时,皇上 ...
- hdu5630 BestCoder Round #73 (div.2)
Rikka with Chess Accepts: 393 Submissions: 548 Time Limit: 2000/1000 MS (Java/Others) Memory Lim ...
- P2P技术详解(二):P2P中的NAT穿越(打洞)方案详解
1.内容概述 P2P即点对点通信,或称为对等联网,与传统的服务器客户端模式(如下图"P2P结构模型"所示)有着明显的区别,在即时通讯方案中应用广泛(比如IM应用中的实时音视频通信. ...
- C语言程序第二次作业
(一)改错题 1.输出带框文字:在屏幕上输出以下3行信息. ************* Welcome ************* 源程序 include int mian() { printf(&q ...
- 怎样使用Secure CRT查看vcenter和esxi主机的日志文件(转)
对ESXI主机的日志管理对于故障诊断和合规性至关重要.Esxi主机的日志通过syslog工具进行管理的,在默认的情况下,日志文件存储在主机的scratch分区中(/scratch/log/).scra ...
- angularjs+ionic的app端分页和条件
做app项目积分商城的商品列表需要分页显示 实现: ionic滚动条:ion-scroll 用于创建一个可滚动的容器. 附:菜鸟教程:http://www.runoob.com/ionic/ionic ...