Android开发工具全面转向Android Studio(2)——AS project/module的CRUD
本文有些地方可能需要衔接Android开发工具全面转向Android Studio(1)——准备开发环境,读起来效果会更好。
这个世界很奇妙,所有的东西离不开CRUD,即增删改查。即使人本身也遵循这个规律,一个人出生是C,进入社会后会经常被R(坐个火车还得人证票合一呢),过个青春期,你已经被U不知多少次了,哪一天挂了总会被D掉的。下面回到主题,讲讲AS中project和module的CRUD,为了兼容Eclipse老用户和新手,此处还会以Eclipse的工作方式作为参考进行对比。
注:以下以Windows平台为标准,AS以目前最新稳定版1.4.1为准。
在开始前,如果是Eclipse转过来的,必须先强制理解下以下关系:
1、AS project的概念是等同于Eclipse workspace概念
2、AS module的概念是等同于Eclipse project概念
也就是说创建AS project就是创建Eclipse workspace,创建AS module就是创建Eclipse project
一、AS中project的CRUD:
创建分为两种,一种是New,另一种是Import。
1、创建新AS project(New):
一般来说,创建新东西都很简单,不会有很复杂的,但是有些概念可能需要理解,结合图片一起看。
①进入AS主界面——Start a new Android Studio project
②新建项目,这里演示所有的都用默认
③一直下一步,创建好项目,正常情况是会出现以下界面的,默认情况下这个名为app的应用是可以跑通的
④切换到视图project视图
⑤你会发现这样创建AS project后,自动创建了一个module,而且名字还强制叫app,有点恶心吧,看到下面这张图第一眼就是要改project名字和module名字(即CRUD中的U)
2、导入成AS project:
①从本地导入AS project
从AS主界面——Open an existing Android Studio project
或者在已经打开一个project的情况下:File——New——Import,选择AS project打开
②从本地导入eclipse项目
或者在已经打开一个project的情况下:File——New——Import,选择eclipse主项目打开,后面的步骤跟上面的截图一样
③从SVN/Git/Github导入(参考另一随笔,//TODO 待发布)
3、AS project名字修改:
①选中MyApplication——右键——Refator——Rename(快捷键shift+F6),重命名成MyProject,你会发现AS本身是不支持重命名project的,提示cannot rename root module,那如果我就是看着MyApplication不爽但又不想重新新建一个project再把现有的所有module导入进去,怎么办,当然有一个绝招(即下面的方法)
②进入MyApplication的硬盘目录,copy一份出来并将MyApplication修改成MyProject(当然也可以不copy,直接在原来的基础上改),再用AS打开MyProject(如何打开下面讲):
③可以正常编译运行,但是认真看是会发现冗余的,那就再改进一下(看下面)
④重新进入MyApplication的硬盘目录,copy一份出来并将MyApplication修改成MyWorkspace,同时把MyApplication.iml也改成MyWorkspace.iml,再用AS打开MyWorkspace(如何打开下面讲):
⑤这下修改是完美的,其实在.idea中在打开MyWorkspace之前有些配置文件还是记录MyApplication的,但是一旦用AS打开了就会被更新,所有总结来说:修改project名字只需要三步即可:先在硬盘上copy一份要改名的源project并将copy这份的名字命成想要的,然后再将里面的XXXXX.iml文件修改成“你的新名字.iml”,再用AS打开一遍即可全部完成
4、AS project的查询(打开一个project):
从某种意义上讲,AS打开一个project就是已经查询到了该module,打开一个已经存在的as project很简单,进入:AS主界面——Open an existing Android Atudio project
什么时候AS无法打开或者正常处理一个原本是project的项目呢,就是因为某种原因删掉了build.gradle或者删掉了gradle文件夹。删掉build.gradle是严重的,这个project完全无法使用,删掉gradle文件夹则需要重新配置gradle wrapper就可以正常使用了
5、AS project的删除,跟修改project名字一样,也不能在AS里直接删除,解决办法是:
①先关掉准备删除的project——回到AS主界面——按下键盘Delete/Backspace键删除project引用,现在只删除了AS对这个project的引用,实际上硬盘上还存在
②接着到project所在硬盘目录手动删除硬盘目录下数据,这样就完美的删除了一个project
二、AS中module的CRUD:
新建分为两种,一种是New,另一种是Import,如果是导入Eclipse项目,那么就必须通过Import实现
1、新建AS module(New):
①新建module不可以从AS主界面直接新建,需要先进到一个project中,比如此处以MyApplication project为例
②下一步来到这里,这里全部使用默认
③创建好模块后,大概是这样,现在问题来了,app和myapplication2这两个module名字我都不喜欢,也就是说我要改掉现有的模块名称,因为现在的module名字太没意义了,参考后面的《修改module名称》
2、导入成AS module:
①从本地导入AS module
②从本地导入eclipse项目
如果有依赖能自动导入,请确保依赖包跟正式项目处于同一个文件夹项目,即保持eclipse的项目文件夹结构
导入后一切正常
③从SVN/Git/Github导入(参考另一随笔,//TODO 待发布)
3、修改module名称:
①选中app——右键——Refator——Rename(快捷键shift+F6),然后发现有两个选项,该选哪个
②Rename directory指的是重命名硬盘目录,不命名module目录,说白了跟我直接进文件管理器修改没啥区别,效果就是跟下面图示那样操作一样,所以完全不建议,重命名后你的AS会找不到module了
③Rename module,这个是指同时命名硬盘目录和module本身的名字以及所有相关引用,这个是跟eclipse中的重命名项目是一致的,比如我把myapplication2命名成MyLaucnher
④如果刚开始AS,第一次对module重命名选错了,选择了Rename directory,这里在Rename directory界面还有两个选项,正常情况是不会选择Search in comments and strings,如果选择了,也只是相当于全局替换了注释中的app字符串而已,选择默认选中第一后进行Refactor之后。但是现在后悔了,我想要的是选择Rename module一样的效果,怎么基于选择了Rename directory重命名后的结果弄成Rename module一样的效果呢?
⑤点击sync project with gradle files,同步一下基于选择了Rename directory重命名后的结果,你会发现变成这样,MyHelloWorldApp已经不再是一个module(注意AS中的module的文件名是粗体字体的,如果不是lib的话,module还可以在Run/Debug Configurations上面的run中显示),而旧的app module也不见了
⑥解决方法是,打开project下的settings.gradle文件,将include里面原来的app改成MyHelloWorldApp
⑦然后点击sync project with gradle files,这样就正常了,即跟选择Rename module重命名module一样的效果了
4、module的查询:
这里从某种意义上讲,查询module主要是指AS能不能正确识别一个文件夹是不是module,这个配置时在project下的settings.gradle文件中
如果现在我要把MyHelloWorldApp这个module立即降级为一个文件夹的话,只需要在project下的settings.gradle文件中删掉':MyHelloWorldApp'即可(但这并不等于你删除了这个module)
5、删除module:
删除一个AS module跟eclipse删除一个项目有点不一样,略会麻烦一点。
①在AS里删除一个module,需要以下步骤:进入项目结构界面(file——project structure(快捷键 ctrl + alt + shift + s))——modules——删除选择的module引用,这里只解除了project对其的引用,如果用eclipse的概念来解释,就是close了一个项目
②回到project视图——选择在project structure中中删除引用的module(project解除了引用的module)——按下键盘delete/右键delete,这时候是删除AS对该module引用同时也删除了这个module的硬盘数据,但是还有一个地方没删除干净
③进入运行配置界面(Run/Debug configurations)点击Edit Configurations——删除已经删除的module引用 ——点击sync project with gradle files,这时候完美的删除了一个module
原创随笔,转载注明出处。
Android开发工具全面转向Android Studio(2)——AS project/module的CRUD的更多相关文章
- Android开发工具全面转向Android Studio(3)——AS project/module的目录结构(与Eclipse对比)
如果AS完全还没摸懂的,建议先看下Android开发工具全面转向Android Studio(2)——AS project/module的CRUD. 注:以下以Windows平台为标准,AS以目前最新 ...
- Android开发工具全面转向Android Studio(1)——准备开发环境
工欲善其事必先利其器,本文适合Android新手以及用过Eclipse而没用过Android Studio开发Android的老手,众所周知,谷歌是不会再维护和开发ADT了,旧的ADT已经是完全不能渲 ...
- Android Studio重构之路,我们重新来了解一下Google官方的Android开发工具
Android Studio重构之路,我们重新来了解一下Google官方的Android开发工具 记得我的第一篇博客就是写Android Studio,但是现在看来还是有些粗糙了,所有重构了一下思路, ...
- Android开发工具Android Studio、Android SDK和Genymotion完全配置
所谓“工欲善其事,必先利其器”.Android Studio 是谷歌推出一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提 ...
- 使用 Android Studio 开发工具创建一个 Android 应用程序,显示一行文字“Hello Android”,并将应用程序的名称更改为“FirstApp”。
需求说明: 使用 Android Studio 开发工具创建一个 Android 应用程序,显示一行文字"Hello Android",并将应用程序的名称更改为"Firs ...
- 使用 Android Studio 开发工具创建一个 Android 应用程序,并在 Genymotion 模拟器上运行
需求说明: 使用 Android Studio 开发工具创建一个 Android 应用程序,并在 Genymotion 模拟器上运行 实现步骤: 打开 Android Studio,创建一个 Andr ...
- 最新版Android开发工具
最新版Android开发工具 JUN 27TH, 2014 Android Tools ADT Bundle ADT Bundle包含了Eclipse.ADT插件和SDK Tools,是已经集成好的I ...
- 【转】Android开发工具--android-studio-bundle-141.2288178
原文网址:http://www.androiddevtools.cn/ AndroidDevTools简介 Android Dev Tools官网地址:www.androiddevtools.cn 收 ...
- Android群英传笔记——第二章:Android开发工具新接触
Android群英传笔记--第二章:Android开发工具新接触 其实这一章并没什么可讲的,前面的安装Android studio的我们可以直接跳过,如果有兴趣的,可以去看看Google主推-Andr ...
随机推荐
- Ninject之旅之十一:Ninject动态工厂(附程序下载)
摘要 如果我们已经知道了一个类所有的依赖项,在我们只需要依赖项的一个实例的场景中,在类的构造函数中引入一系列的依赖项是容易的.但是有些情况,我们需要在一个类里创建依赖项的多个实例,这时候Ninject ...
- C# 调用Adodb对Access数据库执行批量插入
public void BatchInsertIntoAccess(DataTable dt) { ADODB.Connection cn; ADODB.Recordset rs; string st ...
- 基本变换(读书笔记5 --- Real-Time rendering)
刚体变换 即变换不改变了被变换顶点之间的距离,以及偏手性(不会让左右手坐标系颠倒). 下面的平移变换.旋转变换即属于刚体变换 平移 从一个位置变到另一个位置可以用平移矩阵T来表示,这个矩阵将一个实体变 ...
- arcgis基于地形数据的坡度分析
高程.坡度和坡向是小班中非常重要的因子,坡度对水土保持规划设计具有决定性的作用,是土地利用规划和治理措施配置首先要考虑的因素.如何利用地形数据对坡度进行分析呢,本文即将揭晓. 软件准备: locasp ...
- Sublime Text 全程指引
Sublime Text 全程指引 by Lucida 包含sublime 的常用快捷操作
- 矩阵乘法的MapReduce实现
对于任意矩阵M和N,若矩阵M的列数等于矩阵N的行数,则记M和N的乘积为P=M*N,其中mik 记做矩阵M的第i行和第k列,nkj记做矩阵N的第k行和第j列,则矩阵P中,第i行第j列的元素可表示为公式( ...
- maven使用阿里云仓库
1.修改maven的conf/settings.xml文件,在<mirrors></mirrors>标签里加入: <mirror> <id>nexus- ...
- 返回多个类型的对象,Tuple
一个方法 通常只有一个 返回对象,有时候 我们遇到 要放回两个不同类型的值的时候, 这个时候可以使用Tuple. 对象. Tupele 只支持 .net framework 4.0 以上版本. 来!先 ...
- html css 编写规范
html 规范 一 语法 1.用两个空格带她tab, 2.嵌套的元素应该缩进一次,即两个空格是最好 3.属性定义,全部使用双引号,尽量避免单引号. 4.不要在自闭和标签尾部添加闭合标签. 5.可选得结 ...
- How to: Convert Between Various String Types
This topic demonstrates how to convert various Visual C++ string types into other strings. The str ...