MyException - 我的异常网
当前位置:我的异常网» Android » ADT转AndroidStudio提议

ADT转AndroidStudio提议

www.MyException.Cn  网友分享于:2015-08-26  浏览:0次
ADT转AndroidStudio建议

个人参考网络上其他博主的内容和官方的文档整理的备忘。

1. 背景

1.1、AndroidStudio

Android Studio是Google于2013 I/O大会针对Android开发推出的新的开发工具,目前很多开源项目都已经在采用,Google的更新速度也很快,明显能感觉到这是Android开发的未来。

Android Studio其实和ADT基于eclipse一样, Android Stuido是Google推出,专门为Android“量身订做”的,是Google大力支持的一款基于IntelliJ IDEA改造的IDE, IntelliJ IDEA被业界公认为最智能的java开发工具。

可以看到Android Studio毕竟是Google的亲儿子,他不仅有Google这么牛逼的爹,而且还有个IntellJ idea这么牛逼的妈。Android Studio肯定是趋势。

1.2、优点

首先看截止I/O 2015全新官方首页对studio的优点列表(个人翻译,加上个人解释):

l 谷歌首推studio的智能,智能的代码编辑器,超强的代码补全,有点类似于微软的VS般实时,实时的代码补全能力,eclipse的情况下需要输入”Alt”加上”/”(eclipse也可以实时,但会导致eclipse非常卡)。

l 代码模板的能力。新建项目的时候,可以选择谷歌官方的sample也可以直接选取github上的项目。

l 多屏幕开发。这个是针对布局文件的,可以多个分辨率的预览,还可以预览在手表,电视等其他职能设备。总之,增强了他的预览能力。

l 可以自定义任意分辨率和屏幕尺寸的虚拟机,默认的设备包含了一些常用的,包括谷歌的几个儿子,此外,也可以自定义需要的尺寸大小。

l 更加先进的打包工具gradle,可以对同一个项目根据不同的特性打包成不同的apk,例如多渠道打包;更加智能的管理项目依赖,可以使用maven管理项目依赖。

l 基于IntelliJ IDEA,公认的最流行的java IDE。

l 基于gradle更加灵活的构建系统。

以下收集网络上的:

l UI更漂亮,Stuido自带的Darcula主题的炫酷黑界面,被很多人觉得很有逼格。。。同时,网上有很多基于IntelliJ的主题,稍后分享。

l 更加智能,智能保存,不需要手动保存。

l 整合了Gradle构建工具,主流的构建工具。

l 强大的UI编辑器,布局文件实时预览,而且自带图片编辑,多屏幕,多分辨率预览。

l 编辑模式下,引用图片、色彩等资源时,会在右侧显示预览小图;引用文字时,会自动折叠资源id,显示为将要显示的文字。

l 内置终端,不需要单独打开命令行,直接内置。

l 更多的插件,包括git等版本控制工具,Markdown。。。。

l 最新的1.2之后可以自动反编译依赖的jar或class文件。

clip_image002

1.3、缺点

网上有很多因为studio快,就吹嘘studio占用内存少的开发者,同时贬低eclipse占用内存大的。据我用到目前为止的感受,studio占用的内存常常会在1G多,应该是比eclipse占用内存大的。但是,开发速度的确是比eclipse快的。顺便找了一下国外的对比图,eclipse内存至少是1G,而Intellij idea至少内存是2G,推荐4G以上。和Google的chrome一样,快是要付出代价的。

2. 准备

2.1、系统要求:

1. Microsoft® Windows® 8/7/Vista/2003 (32 or 64-bit)

2. 内存最低2G,推荐4G以上;

3. 为SDK至少预留1G的硬盘空间;

4. JDK7+;

5. 可选:安装Intel加速器。

PS:需要注意的是,studio将32位和64位的全放在一个安装包里了,默认打开的时候,会根据你安装的系统去查找相应的JDK,也就是说,你假如win7 64位的系统,必须要安装64位的JDK,还望注意。

2.2、安装包

clip_image004

官网提供了三种下载文件,从上到下依次为,bundle:包含了studio文件和SDK,类似于以往的官方封装的ADT;接下来的是studio的安装文件exe;最后一个是studio的免安装的压压缩文件。

全新的开发环境,可以选择第一个;已经有SDK环境的,可以选择第二个和第三个。如果我们选择第二个,也就是和已有的eclipse公用SDK的话,有个问题需要注意,studio默认需要升级SDK,包含了build文件,随之带来需要升级ADT,最新版的ADT为ADT-23.0.6。

2.3、第一种安装方式

假如我们想保留以往的eclipse开发环境,不想和studio公用一个SDK目录,我们采用第一种。(亦或者第二种,然后自己下载SDK。)

clip_image006

clip_image007

图2-1:直接next即可。

clip_image008

图2-2:默认是全选的,这里先不建虚拟机,稍后再说

clip_image009

图2-3:同意协议。

clip_image010

图2-4:选择studio的安装目录和SDK的解压目录,不要在同一个目录里。之后next。

clip_image011

图2-5:设置启动模拟器Intel加速器的内存,这个以后是可以改的,next。

clip_image012

图2-6:install。

clip_image013

图2-7:解压完成。

clip_image014

图2-8:finish。

clip_image015

图2-9:每次安装,更新studio都会遇到这个界面,这里在联网检查SDK的更新。这里先安装默认的要求一路走完,在下一个第二种安装方式里,将会介绍如何跳过这一麻烦的步骤。

clip_image017

图2-10:选择主题,随着个人喜好,第二个受人追捧。

clip_image019

图2-11:检查更新SDK。

clip_image021

图2-12:更新SDK。

clip_image023

图2-13:经过一个半小时,更新SDK完成,可以看到默认情况下,会将Android最新的版本所有的工具都会下载下来。点击finish。

clip_image024

图2-14:studio的喜好文件导入选择,直接OK即可,如果之前有使用过,会在用户目录下生成一个配置文件,直接导入即可。

clip_image026

图2-15:打开成功,这时候可以选择新建项目或者导入项目。PS:这个页面在下次就不会再出现了,会默认打开你上次编辑的项目,如果你不在意,那么无视下一步,如果想下次打开哪个项目都由你来说的算,那么请看下一步。

clip_image028

图2-16: 选择setting

clip_image030

图2-17: 取消第一个选项”reopen last project on startup”,选择OK

至此,第一种安装studio就算完成了。

2.4、第二种安装方式

假如你不想有多余的SDK,就打算eclipse和studio公用一份SDK,那么,就选择第二种安装方式。这里我就直接将刚刚的studio卸载,保留之前的SDK。

clip_image031

clip_image032

clip_image033

clip_image034

clip_image035

clip_image036

clip_image037

clip_image039

在idea.properties文件末尾添加一行:disable.android.first.run=true,然后保存文件。

clip_image041

clip_image043

clip_image045

clip_image047

clip_image049

2.5、第三种安装方式

直接将压缩文件解压到你想放的目录即可。其他操作都一样。

区别:早期的时候,studio在windows的安装需要一些动态库的支持,假如用第一,第二种安装方式的话,会检测本机是否有相应的动态库,没有会自动安装。

总结:第二种和第三种安装方式区别不大,任意选择。

3. Hello World

3.1 Hello World

clip_image051

图3-1:输入项目名helloworld

clip_image053

图3-2:选择最低的版本,这里不能选择编译的SDK版本,不能不说是个缺失,默认的编译版本为本机安装的最新的SDK版本。

clip_image055

图3-3:点击上图中的”help me choose ”会告诉你版本占有率。

clip_image057

图3-4:选择模板,studio为我们提供了很多模板,包括以后新建activity,自定义view的时候,都会省很多步骤,当然,都是一些标准的流程。

clip_image059

图3-5:自定义主activity,布局文件,menu文件的名字。

clip_image061

图3-6:构建。

clip_image063

图3-7:弹出的是tip,都是一些快捷方式。

clip_image065

图3-8:默认情况下,这里会出现布局文件的预览。

由于刚刚更新的SDK是androidM的,是发行版,可能存在一些问题。默认编译版本都是最新的,我们稍微修改一下。

clip_image067

图3-9:打开module setting。

clip_image069

图3-10:修改编译版本。

clip_image071

图3-11:修改主题,在前面添加”Base.”PS:这个问题还是首次遇到。

clip_image073

图3-12:修改一下预览的版本为22,到此就是我们正常打开布局文件时候的样子。

clip_image075

图3-13:点击绿色的小箭头就可以运行了。

3.2熟悉界面

clip_image076

图3-14:切换查看文件的结构。

clip_image077

点击这个类似于显示器的小图标,可以关闭侧边和下方的开关。

4. Studio Tip

4.1 设置主题

clip_image079

clip_image081

4.2 设置快捷键

clip_image083

4.3 设置字体大小

clip_image085

clip_image087

4.4 智能代码补全(选择none)

clip_image089

4.5 设置项目的编码格式

clip_image091

4.6 自动导包功能。

clip_image093

4.7 修改log的颜色,默认颜色都是一样的。

clip_image095

5. Git使用

clip_image097

图5-1:设置git。

clip_image099

图5-2:新增文件的颜色为红色。

clip_image101

图5-3:提交完的文件为灰色。

clip_image103

图5-4:下角可以看到当前的分支,可以随时切换,也可以新建分支。

clip_image105

图5-5:提交过服务器了,但是在本地被修改的文件的颜色为蓝色。

clip_image107

图5-6:提交操作。

clip_image109

图5-7:填写日志,同时选择格式化代码。

clip_image111

图5-8:代码审核有警告。

clip_image113

图5-9:查看历史日志。

clip_image115

图5-10:列出项目的所有日志历史。

clip_image116

图5-11:双击一个记录会显示当时提交的文件。

clip_image118

图5-12:选中一个记录右击可以选择对比。。

clip_image119

图5-13:选择需要对比的文件。

clip_image121

图5-14:有点类似于Beyond Compare ,箭头处可以折叠相同内容。

clip_image123

图5-15:push操作。

clip_image125

图5-16:控制台会显示一系列的git命令。

clip_image127

图5-17:local changes出会显示到目前为止,相对于最新的head,修改的内容,可以查看修改的内容,也可以撤销。

clip_image129

图5-18:相对远程分支对比。

6.概念对比

迁移到studio最麻烦的可能是概念的理解,在eclipse里,一个可以运行的项目称为project,而在studio里为module,同时他也有project的概念,studio的project相当于eclipse里的workspace的概念。

从字面的意思理解,project就是项目,module就是模块的意思。一个项目包含多个模块,当然可以在同一个project下的,说明他们都是有相互的关系的。

官方的解释如下:

project概念: http://www.jetbrains.com/idea/webhelp/project.html

module概念: http://www.jetbrains.com/idea/webhelp/module.html

7.ZenLauncher代码迁移

7.1保持eclipse的文件结构

这种方式可以保持与原先eclipse的项目一样的结构,保持与eclipse开发的兼容。之所以能保持与eclipse一样的文件结构,全依赖于gradle的支持。

7.2采用studio的文件结构

PS:studio的语法,权限等检查非常严格,所以,编码尽量规范,以及不必要的权限需要删除。

直接新建一个studio的项目,将对应的资源文件和java文件复制进去。这里就不细说了。

下面说一下,可能会遇到的问题。

1. 布局文件中的任何viewgroup必须显式的指定宽度和高度,否则不能通过编译。

clip_image131

2. 同样是刚刚的那个文件,需要指出的是,所有的自定义命名空间,统一换成,而不需要指定包名位置。

clip_image133

3. 所有的依赖,包括包,都是在module下面的gradle配置文件中声明即可。这里正如上面说的wallpaperselector是一个lib类型的module,是被依赖的,在app的gradle中声明一下。对gradle的任何修改都会提示同步一下,点击上面的同步按钮即可,会进行一次重新编译。

clip_image135

4. 依赖包中声明的,不能重复声明。

clip_image137

5. AIDL的配置,在main文件夹下新建一个aidl文件夹,在这个文件夹下书写aidl文件。

clip_image139

6. 打开DDMS。

clip_image140

7. Assets文件夹的位置

clip_image141

8.

8.附录

8.1比较牛的功能

1. 查看引用:不仅能查看类的引用,还能查看在xml文件中的引用。省去全局搜索。

clip_image143

2. 多分辨率预览功能,方便适配,提前预知可能发生的布局问题。除此之外还有多语言,多版本,都可以。

clip_image145

clip_image147

clip_image149

3. 全局搜索。双击shift,即可搜索整个项目中的任何文字,和VS极像。

clip_image151

4. .9png直接编辑功能,双击打开.9图片即可编辑。

5. 监控cpu和内存的使用状态,对于寻找OOM,查看应用性能,都有帮助。

clip_image153

6. 分析代码的能力,检查项目中代码中的问题。检查出我们代码中不规范的地方以及隐藏可能的bug。

clip_image155

clip_image157

7. 自动反编译,会自动反编译出我们依赖包。下图是自动反编译了友盟的jar包。

clip_image159

8. 各种模板,新建类,activity,自定义view,现成的模板,等待诸位的试用。

8.2默认快捷键
  • ctrl+u  查看父类实现
  • 查看类的介绍:

               Ctrl+Q (View | Quick Documentation).

  • 跳转到引用类:

              Ctrl+B (Navigate | Declaration). 或者是

              Ctrl key pressed to jump to declarations

  • 添加父类的方法进行覆盖:

             Ctrl+O

  • Ctrl + I   实现接口方法
  • 查看当前类的所有方法概要:

            Ctrl+F12 (Navigate | File Structure).

  • 重命名类,变量,方法的名字:

             Shift+F6 (Refactor | Rename).

  • 快速补全代码:

            Ctrl+Shift+空格:

  • 生成setter和getter方法

              Alt+Insert (Code | Generate)

  • 选择对project的操作:

             Alt+F1

  • 快速关闭文件:

            Shift+click

  • 外层包裹语句:

            Ctrl+Alt+T (Code | Surround With)

  • 选中整个方法:

             Ctrl+W (select word)

  • 提取变量

             Ctrl+Alt+V (Refactor | Extract | Variable...)

  • 注释:

             Ctrl+斜杠 and Ctrl+Shift+斜杠

  • 在浏览器中查看文档内容

             Shift+F1 (View | External Documentation).

  • 复制当前行

              Ctrl+D

  • 迭代数组或者

               itar

  • 返回到上次输入编辑的地方

              Ctrl+Shift+Backspace

  • 高亮显示同一个变量

       F3

  • 查看项目的所有历史变化
  • 查看最近查看过的文件

      Ctrl+E (View | Recent Files)

  • 在高亮的变量之间切换

             F2/Shift+F2

  • 快速列出所有缩写

              Ctrl+J to complete any valid Live Template abbreviation

  • 快速切换方法

               Alt+向上箭头 and Alt+向下箭头

  • 合并两行,删除多余的空格

                 Ctrl+Shift+J

  • 显示树状结构

                 Ctrl+H (Navigate | Type Hierarchy).

  • 查找整个项目中的变量

                Ctrl+Alt+Shift+N (Navigate | Symbol)

快速补充后续的括号(do-while, try-catch, return)

                 Ctrl+Shift+Enter

  • 查看当前的变量的引用

           Alt+F7(crl+alt+F7),连续双击F7。整个项目所有=crl+shit+alt+F7

  • 高亮显示当前的变量

               crl+F7

  • 运行程序

            shift+F10

  • 切换编辑页面

           alt+左右方向键

  • 回到以前的工具窗口

          F12

  • 提取成一个局部变量

          crl+alt+v

  • 提取成一个全局变量

          crl+alt+F

  • 提取成一个常量

          crl+alt+c

  • 删除行

          crl+Y

  • 关闭正在编辑的窗口

          Crl+F4

  • Shift + F6 Rename   重命名
  • Ctrl + Alt + M  Extract Method   提取成一个方法
  • Ctrl + Shift + F12  把编辑窗口的代码最大化/恢复
  • Ctrl + Tab  快速打开某个文件或者窗口
  • Ctrl + Alt + T   给代码添加if...else,try...catch等
  • Double Shift   在所有范围内搜索
  • Ctrl+Alt+ left/right 返回至上次浏览的位置
8.3 打开已有项目可能遇到的问题

从github等网站下载他人的已有的项目的时候,经常出现导入错误,或者经常需要下载gradle的情况。当我们下载一个项目的时候,手动的修改项目下的gradle的文件夹下的properties文件中的gradle版本,和你本地的gradle版本保持一致即可。

clip_image161

还有可能就需要修改,保证这两个版本都有,没有也可以修改成自己本地相应的版本。

clip_image163

一般经过以上设置,都可以运行了。

8.4多渠道打包
8.4.1配置渠道

以友盟统计为例;

第一步 在AndroidManifest.xml里配置PlaceHolder:

clip_image165

第二步 在build.gradle设置productFlavors

clip_image167

以上两步即可。当然也有可视化的方法。

clip_image169

clip_image171

8.4.2打包

打包也有两种方式,命令行,和可视化界面的。

首先看命令行,在project的根目录下打开命令行。第一次运行的时候,可能会下载一些库文件。当全部打包完的时候,就在module的build文件下生成了相应的apk文件。

clip_image173

clip_image175

clip_image177

下面看可视化的方法。

clip_image178

clip_image179

clip_image180

全部选中。Finish。

clip_image181

区别:目前发现有个区别,不知道是不是我操作的问题,命令行打包的apk,是没有证书的,是需要重新签名的。而可视化的操作,是有证书的。

9.Gradle

留着日后更新。

文章评论

程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
中美印日四国程序员比较
中美印日四国程序员比较
Java程序员必看电影
Java程序员必看电影
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
编程语言是女人
编程语言是女人
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
鲜为人知的编程真相
鲜为人知的编程真相
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
总结2014中国互联网十大段子
总结2014中国互联网十大段子
一个程序员的时间管理
一个程序员的时间管理
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
10个调试和排错的小建议
10个调试和排错的小建议
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
我的丈夫是个程序员
我的丈夫是个程序员
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
程序员应该关注的一些事儿
程序员应该关注的一些事儿
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
程序员必看的十大电影
程序员必看的十大电影
代码女神横空出世
代码女神横空出世
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
漫画:程序员的工作
漫画:程序员的工作
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
程序员和编码员之间的区别
程序员和编码员之间的区别
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
旅行,写作,编程
旅行,写作,编程
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
那些争议最大的编程观点
那些争议最大的编程观点
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
我是如何打败拖延症的
我是如何打败拖延症的
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
每天工作4小时的程序员
每天工作4小时的程序员
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
老程序员的下场
老程序员的下场
如何成为一名黑客
如何成为一名黑客
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有