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 ...
随机推荐
- 入门React和Webpack
最近在学习React.js,之前都是直接用最原生的方式去写React代码,发现组织起来特别麻烦,之前听人说用Webpack组织React组件得心应手,就花了点时间学习了一下,收获颇丰 说说React ...
- win 7,win2008 无法给新建用户完全权限
明明把这个用户添加到管理员组了啊,为什么在运行一些程序时老是提示没有权限,实在是郁闷.在网上Google 了半天也没找到个所以然来. 后来发现是系统用户帐户控制搞的鬼,到 控制面板/用户帐户和家庭安全 ...
- 使用Birt开发报表
间隔一段时间未使用Birt开发报表后,本文章记录Birt开发报表的常遇到的开发问题及解决措施,方便自己和园内其他朋友学习. 一.Birt连接数据库配置 1.连接DB2数据库: 1.1.birt的数据连 ...
- 使用反射,查找WCF异常类型
//使用System.Reflection,查找System.ServiceModel的异常类型 public void ConsoleException() { ...
- Ubuntu 查看和杀死进程
1.ps -e 2.netstat -antup 3.kill pid 4.pgrep 进程名 5.killall 进程名 6.kill -9 pid
- xargs的原理剖析及用法详解
转载请注明出处:http://www.cnblogs.com/f-ck-need-u/p/5925923.html 学习这个xargs花了很长时间,在网上翻了很久也查了很多书关于xargs的介绍,都只 ...
- {ICIP2014}{收录论文列表}
This article come from HEREARS-L1: Learning Tuesday 10:30–12:30; Oral Session; Room: Leonard de Vinc ...
- MVC使用内建的Form辅助器方法创建Select元素
第一种方法: List<SelectListItem> statusItems = new List<SelectListItem>(); statusI ...
- Native wifi API使用
写于博客园,自己迁过来: 一.WlanOpenHandle打开一个客户端句柄 DWORD WINAPI WlanOpenHandle( __in DWORD dwClientVersion, __re ...
- freemarker
一.下载freemarker的jar包,到maven仓库下载 二.引入jar包,参考freemarker的手册写代码 1.Test.ftlh <!DOCTYPE html> <htm ...