Andorid Studio使用技巧

pdqq9292 3年前
   <h2><strong>前言</strong></h2>    <p>该文以Android Studio2.1.1(Bundle)为例。JDK使用的是1.8版本,也建议大家使用1.8版本。</p>    <p>使用技巧无先后顺序。</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/123d95414cf2f6df804eae1f74a02ebe.png"></p>    <p>Android Studio 2.1.1</p>    <h2>软件下载</h2>    <p>目前,国内大家比较熟悉的应该是 <a href="/misc/goto?guid=4959625373346681722" rel="nofollow,noindex">Android Studio中国社区</a> ,每次Android Studio的更新版本都可以在这找到。</p>    <h2><strong>Android Studio使用技巧问答区</strong></h2>    <p><strong>1、代码没有错误,但是爆红解决技巧</strong></p>    <p>当我们写入一些代码的时候,可能有些代码是正确的,但是AS却说找不到,这时候我们清理一下缓存即可并重启AS即可解决这个问题。具体步骤是点击File-Invalidate Cache / Restart...即可。</p>    <p><strong>2、编辑/打开另一个项目,下载GIt项目</strong></p>    <p>标题可能说的有点模糊。一般情况下,每一个AS工作区对应一个项目(当然可以添加多个Modules)。假如,我们当前正在编辑的是A项目,我想打开B项目进行编辑,此时的做法也很简单。</p>    <p>方法一:点击File-Open... 然后选择一个Gradle项目即可。</p>    <p>方法二:点击File-Open Recent 然后选择一个项目打开即可。</p>    <p>如果我想关闭当前项目,并且打开B项目</p>    <p>方法三:点击File-Close Project,然后在打开的界面选择Open an existsing Android Studio Project选择一个本地项目打开即可。</p>    <p>下载Git项目</p>    <p>方法四:点击菜单栏的VCS-Checkout from Version Control-Git 在弹出的对话框输入项目的SSH地址即可下载。如下图:</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/d7cc3c10d12c2ce3ade13191135bcb7f.png"></p>    <p style="text-align:center">下载Git项目.png</p>    <p><strong>3、查看AS使用的SDk、JDk路径</strong></p>    <p>File-Other Settings-Default Project Structure...</p>    <p><img src="https://simg.open-open.com/show/6aa3a9169a03129ce237a6a43c126b66.png"></p>    <p style="text-align:center">Project Structure.png</p>    <p><strong>4、删除Module</strong></p>    <p>了解Android Studio的应该知道其工作空间(Project)对应可以创建多个Module,而且可以对Module进行同时build等操作,当不需要这个Module,想要彻底删除它时,有两种方式(如删除下图的test Module):</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/fb09044453507dbcb170e4935187da6a.png"></p>    <p style="text-align:center">即将要删除test Module.png</p>    <p>(<strong>1)右击MyApplication项目,选择Open Module Settings,选中要删除的Module(test),点击符号“—”进行删除,步骤如下图所示:</strong></p>    <p><img src="https://simg.open-open.com/show/1ddebd6e6c70a989b4cd1ecbecc6500a.png"></p>    <p style="text-align:center">删除Module.png</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/c41be219c39a3fcbe3748404b532f72d.png"></p>    <p style="text-align:center">移除Modul列表后.png</p>    <p>实际上,此时test仅仅是退出了Module列表(移除了对Project对Module的保护),并没有删除,此时对test右击,点击“Delete”则可,步骤如下图所示:</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/e0ed3c82f94e6018f0181393b6ac25eb.png"></p>    <p style="text-align:center">删除一个项目.png</p>    <p><strong>(2)通过Android Studio对Module的保护机制去删除一个Module。</strong></p>    <p>在Eclipse上,如果想要删除一个项目,直接右击选择“Delete”删除项目即可,但是在Android Studio只有把Module的保护机制删除才能对其删除,所以两者的不同就是Android Studio多了个保护机制,那么我们只要知道保护机制的原理即可。事实上,Module的保护机制是通过settings.gradle文件实现的,我们首先打开settings.gradle文件,内容图下图所示:</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/64e97df0c2053a0ce09fdd37c77feec0.png"></p>    <p style="text-align:center">Module保护机制列表.png</p>    <p>代码如下:</p>    <pre>  include ':app',':test'</pre>    <p>代码很显然,表示当前项目包括了两个Module,一个是app,另一个是test。当我们想删除test Module的保护机制,只需删除代码:':test',保存并重新执行gradle文件即可,具体步骤是:</p>    <p>1、删除代码:,':test'并保存;</p>    <p>2、点击菜单栏的Sync按钮,重新编译项目即可。</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/603d9270a27960593b9523a7612fb078.png"></p>    <p style="text-align:center">Sync Gradle.png</p>    <p>ps:实际上,该操作是可逆的!!!</p>    <p><strong>5、把Eclipse项目移植到Android Studio 2.1.1</strong></p>    <p>参考文章</p>    <p><a href="http://www.open-open.com/lib/view/open1419597450031.html" rel="nofollow,noindex">将Eclipse代码导入Android Studio</a></p>    <p><a href="/misc/goto?guid=4959715366040256453" rel="nofollow,noindex">镜像网站-techbrood</a></p>    <p>前提:ADT版本需要22以上。</p>    <p>查看ADT版本号。在Eclipse打开Help-Installation Details,然后选择Plugin-ins,如下图可看到当前使用的ADT版本为23。</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/aae9901f9649c4f19b4e86e2a2990f79.png"></p>    <p style="text-align:center">ADT版本号.png</p>    <p><strong>当前以一个Hello工程为例。步骤如下:</strong></p>    <p><strong>1、在Eclipse选择File-Export-Android-Generate Gradle Build File-Next,接着选择项目Hello,Next—Finish-Finish。此时,打开Hello项目目录。</strong></p>    <p><img src="https://simg.open-open.com/show/3eefdd8b50a7f88ffd49f28635601561.png"></p>    <p style="text-align:center">创建Gradle相关文件.png</p>    <p>从图上可以看出,此时生成了Gradle相关的文件夹。</p>    <p><strong>2、选择导入工程的结构方式。</strong></p>    <p>一般情况下,导入Eclipse项目到Android Studio会有两种结构,一种是与Eclipse的项目文件结构相同,只是增加了IDE文件和Gradle相关文件;另一种则是符合Android Studio项目工程的结构,即Module包好Module。这两种结构的导入方式都是支持的。如下图,Open an existing Android Studio Project和Import Project都代表第一种结构。</p>    <p><img src="https://simg.open-open.com/show/f3d00eea89753858f3a1df92430208e7.png"></p>    <p style="text-align:center">选择导入结构方式.png</p>    <p><strong>2.1第一种结构-保留Eclipse的项目结构</strong></p>    <p>选择build.gradle文件导入项目,如下图所示(可能需要同步一下gradle版本):</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/805d68b2a8a7f144700d699944fcb470.png"></p>    <p>Android Studio项目目录.png</p>    <p>此时,我们可以看一下这个项目存在多少个Module,点击Gradle选项卡。</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/6411d74144787eab48b079bebbeb284c.png"></p>    <p style="text-align:center">仅有一个Module.png</p>    <p>从图上可以看出,当前项目只存在一个Module。</p>    <p><strong>2.2选择Import Project</strong></p>    <p>该方式也是选择build.gradle文件,其它步骤也都相同。</p>    <p><strong>2.3符合Android Studio的项目结构</strong></p>    <p>选择Import Project选项,不需要增加Gradle相关文件,直接选择项目名称,点击OK。</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/22fead885ffc16d5cc4319689f747712.png"></p>    <p style="text-align:center">导入非gradle项目.png</p>    <p>这时候会弹出一个对话框,如下图所示,意思是根据Hello这个项目,导入一个复制Hello的项目,名称为Hello1,并且不去修改Hello项目。此处,选择“Next”。</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/7e01914207ba4f4613dcdc42398d5cba.png"></p>    <p style="text-align:center">Copy a project.png</p>    <p>对话框继续弹出。图片中包括了三个复选框,</p>    <p>第一、二项表示如果条件允许,利用gradle的依赖功能去代替jar包和库的加载。一般情况下,为了便于后面代码、jar包管理,这两项是勾选的。</p>    <p>第三个表示该项目、代码的命名方式采用驼峰命名法,也就是说会修改一些,不符合驼峰命名法的名称。</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/83f04a5cb65e263ac993f62379c9cc2e.png"></p>    <p style="text-align:center">选择修改的内容.png</p>    <p>点击finish等待项目创建。当项目创建成功后,查看Gradle。如下图:</p>    <p><img src="https://simg.open-open.com/show/2328f10992fbc71bbb06eef3e6c3358e.png"></p>    <p style="text-align:center">Android Studio项目创建成功.png</p>    <p>图片左侧可以看到项目结构与使用Android Studio创建新的项目的结构是相同的,右边可以查看到当前项目有两个Module,一个是根-Hello1,另一个是子Module-app。中间是一个txt文件——import-summary.txt,它主要描述了导入Eclipse项目过程中做了Android Studio什么事情,比如:Ignored Files表示没有导入的文件;Replaced Jars with Dependencies表示Eclipse里jar包的导入替换为gradle的依赖;Moved Fiels表示文件的剪切——把资源文件移动到了子Module的工程目录下;还有就是接下来的建议,比如文件的描述是建议build项目。最后,改文件是临时文件,一般情况下,项目创建完成后即可删除它。</p>    <p><strong>3、构建apk</strong></p>    <p>当项目导入成功后,点击菜单栏的Build-Build APK,当执行完成后能生成Hello-debug.apk和Hello-debug-unaligned.apk则表示代码无误,并构建成功。</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/6f5f3df10bed21ddc60da857d076cef9.png"></p>    <p style="text-align:center">build apk成功.png</p>    <h2>6、 <strong><a href="/misc/goto?guid=4959715366128750610" rel="nofollow,noindex">Android Studio快速编程技巧</a></strong></h2>    <p>PS:官网有一篇关于快速编程技巧的文章,点击上面标题即可访问(注:需要拨V*N)</p>    <p>文章表述的内容主要是写少量的代码并结合快捷键(Tab)就能敲出大量的代码。下面举个例子,假如需要在敲出下面的代码:</p>    <pre>  Toast.makeText(MyActivity.this, "这是一个Toast", Toast.LENGTH_SHORT).show();</pre>    <p>如果在Eclipse软件下我们需要上面的代码,一般需要输入内容还是蛮多的,但是在Android Studio中只需要输入Toast和文本内容即可。具体步骤如下:</p>    <p>1、输入Toast</p>    <p>2、按下Tab键</p>    <p>3、输入文本内容“这是一个Toast”</p>    <p>4、再按下Tab键,让游标到达当前行的末尾即可。</p>    <p>英文水平不错的可以参考这篇文章: <a href="/misc/goto?guid=4959715366128750610" rel="nofollow,noindex">Writing More Code by Writing Less Code with Android Studio Live Templates</a> 下面的这张图片就来自这篇博文,其作者是 <a href="/misc/goto?guid=4959715366223610697" rel="nofollow,noindex">Reto Meiter</a> 。</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/6cbdc4e62a5bf777fa92ef237fa5d947.gif"></p>    <p> </p>    <p>PS:实际上,使用Enter键代替Tab键也是可行的,亲试可用!</p>    <h2><strong>7、Live Templates</strong></h2>    <p>其实上面的第6个技巧使用到的就是Live Templates,它的目的在于定义一些常用的方法,在编码过程中,当使用到这些方法时,敲下少量的代码就能通过代码模块自动生成相应的方法和方法体代码,这样大大提高了编码效率,而且令人兴奋的一点是,这些模板我们可以自定义。</p>    <p>自定义或者查看Live Templates的位置在:File-Settings-Editor-Live Templates。如下图,即使Toast的模板:</p>    <p><img src="https://simg.open-open.com/show/d2862d634c4d1c19a2ed99f6be57603e.png"></p>    <p style="text-align:center">Live Templates for Toast</p>    <p>点击下面链接可以查看如果快速定义自己的Live Templates-- <a href="/misc/goto?guid=4959715366301344723" rel="nofollow,noindex">Live Templates教程</a></p>    <h2><strong>8、代码自动完成</strong></h2>    <p><img src="https://simg.open-open.com/show/a78a21856a945eac891c640330d04ed9.png"></p>    <p style="text-align:center">代码自动完成</p>    <h2><strong>9、Project无法使用Instant Run(即时运行)功能</strong></h2>    <p>如下图所示,当我们首次运行一个demo Project时,很大程度上会出现以下的异常。异常信息显示,如果想要使用Instant Run功能,需要Android Studio允许adb集成功能(Enable ADB integration),一般我们需要手动去设置enable。</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/66c53a9d95f25cfbddd437968acf904c.png"></p>    <p style="text-align:center">Error running app</p>    <p>手动设置 <strong>Enable ADB integration</strong> ,在Tools-Android-Enable ADB Integration,Enable ADB Integration前打上勾即可。如下图:</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/d0ec694a49216a729d4bdbfcf4f58ade.png"></p>    <p style="text-align:center">Enable ADB Integration.png</p>    <p>PS:请保证Instant Run是允许使用的,具体的查看位置在File-Settings-Build,Excution,Deploymeny-Instant Run,在第一个选项 Enable Instant Run to hot swap code/resource changes on deploy 前面的复选框是打钩的。</p>    <h2><strong>10、性能分析时,请关闭Instant Run功能。</strong></h2>    <p>当使用Android Monitor的Monitors选项查看调试应用情况并对其进行性能分析时,请关闭Instant Run功能。因为当更新方法时,会对结果造成略大的影响,此外Stub方法会使得堆栈跟踪。</p>    <p>关闭Instant Run功能可见第9个技巧点的PS部分。</p>    <h2>12、Open Module Settings</h2>    <p>参考: <a href="/misc/goto?guid=4959715366382358638" rel="nofollow,noindex">Android Studio 之 Gradle与Project Structure详解</a></p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/c338c7a7fb1441e3c5c70ed57ce44fb5.png"></p>    <p style="text-align:center">Properties</p>    <p><strong>Incremental Dex(增量dex)</strong></p>    <p>其实跟增量包的理解差不多,我们在编译(Compile)apk时默认情况下会重新编译整个apk,如果这个属性设置为true则只会重新编译新增加或者修改的内容,这样就可以大大缩短编译时间了。</p>    <p><strong>Source Compatibility(资源兼容性)</strong></p>    <p>编译(Compile)应用时兼容的java版本。2.1.1的Android Studio不支持Java 8(jdk1.8),所以如果此处使用1.8会出错,但是是可以解决的。可以参照 <strong>技巧13</strong> 。</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/3f9c068a7316b8d28fcb8de4337e1a9e.png"></p>    <p style="text-align:center">Flavors</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/5084844b023a1111cfa8f88afd0961f3.png"></p>    <p style="text-align:center">Build Type</p>    <h2><strong>13、Android Studio支持java 8</strong></h2>    <p> </p>    <p> </p>    <p>来自:http://www.jianshu.com/p/e7f2b0060491</p>    <p> </p>