![Android Studio开发实战:从零基础到App上线(第2版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/515/26793515/b_26793515.jpg)
1.5 准备开始
俗话说得好,磨刀不误砍柴工。尽管前面我们已经初步学会了通过代码操作控件,不过为了后面介绍Android更顺利些,建议读者先了解本节的准备工作。即使已经迫不及待要进入Android的开发世界,也万万不可跳过本节直接翻到第2章,心急可吃不了热豆腐哦。
1.5.1 使用快捷键
就像在Eclipse上进行java开发一样,善用快捷键会让开发者提高工作效率,Android Studio也是一样,下面是使用Android Studio开发App常用的快捷键。
- Ctrl+S:保存文件。
- Ctrl+Z:撤销上次的编辑。
- Ctrl+Shift+Z:重做上次的编辑,建议改为Ctrl+Y,与Eclipse、UEStudio等工具保持一致。Android Studio默认Ctrl+Y为删除当前行,这点不太好,当你习惯按Ctrl+Y重做上次编辑时,系统却删除了当前行,非常不便。
- Ctrl+C:复制。
- Ctrl+X:剪切。
- Ctrl+V:粘贴。
- Ctrl+A:全选。
- Delete:删除。
- Ctrl+F:查询。
- Ctrl+R:替换。
- Ctrl+/:注释选中代码(在每行代码前面加双斜杆)。
- Ctrl+Shift+/:注释选中的代码段(在选中的代码段前面加“/*”,后面加“*/”)。
- Ctrl+Alt+L:格式化选中的代码段。注意该快捷键与QQ默认的热键(锁定QQ)冲突,建议更换快捷键,或者删除QQ的同名热键。
- Shift+F6:重命名。建议改为F2,与Wnidows和Eclipse的使用习惯保持一致。
- Alt+Enter:给光标所在位置的类导入相应的包。
- Shift+F10:运行当前模块。
- Ctrl+F5:清理并重新运行当前模块。
当然,每个人习惯的快捷键不尽相同,对于Android Studio来说也不例外,为了更好地使用快捷键,最好手工修改快捷键。手工修改快捷键的方法:依次选择菜单File→Settings,在弹出的设置窗口中选择Keymap,窗口右侧出现如图1-28所示的快捷键列表。
![](https://epubservercos.yuewen.com/2EEE11/15253384705226606/epubprivate/OEBPS/Images/Figure-P34_3191.jpg?sign=1739345186-FJfR5lJ66gjIGbVGOp2QZXB9c26H7sif-0-667d24e143517db770f9b22abd3fdafb)
图1-28 快捷键设置界面
在设置界面选中某条快捷键,右击或单击上方的铅笔按钮,在弹出的菜单中选择Add Keyboard Shortcut,然后在键盘上按你要设置的快捷键组合,单击OK按钮,即可完成对应的快捷键设置。
1.5.2 安装SVN工具
在企业里面开发App都是团队合作,需要对代码进行统一管理,而且App每隔一两周便发布一个新版本,这也要求做好工程代码的版本控制。因此,企业开发App都会运用版本控制工具管理工程源码,最常见的版本控制工具是SVN。
Android Studio自带了SVN插件(Subversion),但是还需要开发者进行相关配置才能正常使用SVN功能。具体配置步骤如下:
步骤01 在本机上安装TortoiseSVN。
首先下载TortoiseSVN安装包,然后在安装时选择command line client tools,这样安装后在bin目录下才能找到命令行工具svn.exe。
步骤02 在Android Studio中配置TortoiseSVN的命令行工具。
打开Android Studio,依次选择菜单File→Settings→Version Control→Subversion→user command line client,单击右侧的浏览按钮,选择本地安装的svn.exe的完整路径。
步骤03 在Android Studio中使用SVN检出项目。
打开Android Studio,依次选择菜单VCS→Checkout from Version Control→Subversion,单击Repositories右方的加号按钮,在弹出的小窗口中输入SVN仓库地址,单击OK按钮,回到原窗口单击Checkout按钮,把项目检出到本地目录。
项目检出完毕后,在开发过程中要及时把改好的代码提交到SVN,同时要及时从SVN更新别人改过的代码到本地。下面是SVN更新/提交的方法:
(1)把代码提交给SVN服务器:选中并右击工程目录,依次选择菜单Subversion→Commit File...,表示向SVN服务器提交本地改过的文件。
(2)从SVN服务器更新代码:选中并右击工程目录,依次选择菜单Subversion→Update File...,表示从SVN服务器更新文件到本地目录。
1.5.3 安装常用插件
在Android Studio中安装插件的步骤与Eclipse类似,具体步骤为:依次选择菜单File→Settings→Plugins→下方按钮Browser repositories...,弹出当前可用插件列表窗口,如图1-29所示。
![](https://epubservercos.yuewen.com/2EEE11/15253384705226606/epubprivate/OEBPS/Images/Figure-P35_3212.jpg?sign=1739345186-8waVv3MOGO6k9165slGRhhDOy5I9vVur-0-0f7a36a83e2770295aef958e1e382bbe)
图1-29 安装插件窗口
在安装插件窗口的Category框中选择Code tools,然后选中左边列表的指定插件,再单击右边窗口内部的Install按钮,安装后重启Studio即可正常使用该插件的功能。下面是5个常用的Studio插件:
1. Android Parcelable code generator
该插件可自动生成Parcelable接口的代码。开发者先写好一个类和内部变量的定义,然后在代码中按Alt+Insert,弹出的菜单列表下方就有Parcelable选项,如图1-30所示。选中该选项,即在类中插入实现Parcelable接口的代码。
2. Android Code Generator
该插件可根据布局文件快速生成对应的Activity、Fragment、Adapter、Menu等代码。在布局文件上右击或者在布局文件内部右击,弹出的菜单中多了一个Generate Android Code选项,具体的菜单如图1-31所示。选中生成项后,便会弹出代码窗口,把已生成的代码复制出来即可。注意该插件对汉字的支持不太好,如果XML文件中有汉字,代码就会生成失败。
![](https://epubservercos.yuewen.com/2EEE11/15253384705226606/epubprivate/OEBPS/Images/Figure-P36_3221.jpg?sign=1739345186-5d2XqAowakDEODPDrclUS8NO453bdR9R-0-dbc5f86781b2985f1c777bc28b1d342a)
图1-30 Parcelable插件
![](https://epubservercos.yuewen.com/2EEE11/15253384705226606/epubprivate/OEBPS/Images/Figure-P36_3222.jpg?sign=1739345186-UZDEXhleG0Urg9ZXg1KvHPSPvl5EWjRp-0-761ba0b2992a67a375eea3a97379e250)
图1-31 Generate Android Code插件菜单
3. GsonFormat
该插件能够快速将JSON字符串转换成代码段,包含变量定义以及set、get函数。在代码中按Alt+S,弹出JSON格式化窗口,往窗口中粘贴JSON字符串,单击OK按钮,即可在代码中插入生成好的代码段。GsonFormat窗口如图1-32所示。
![](https://epubservercos.yuewen.com/2EEE11/15253384705226606/epubprivate/OEBPS/Images/Figure-P36_103299.jpg?sign=1739345186-KueKvxSq5T4k0FCFuJ8K98M33wfxCGEc-0-8c0080ea32dcbb529095167318fea29f)
图1-32 GsonFormat插件
4. Android Postfix Completion
该插件支持在代码中快速生成Toast、Log等代码行。开发者在代码中输入字符串,后面跟上.toast并回车,即可生成Toast.makeText代码行;输入字符串后,紧接着输入.log并回车,即可生成Log.d代码行,如图1-33所示。
![](https://epubservercos.yuewen.com/2EEE11/15253384705226606/epubprivate/OEBPS/Images/Figure-P37_3244.jpg?sign=1739345186-O9ufY9W4cXjTZmVdRvy0upQirkQ6Eo9U-0-332a38494794850b60bccba49bdbfbe5)
图1-33 Postfix插件使用截图
5. Android Drawable Importer
![](https://epubservercos.yuewen.com/2EEE11/15253384705226606/epubprivate/OEBPS/Images/Figure-P37_3255.jpg?sign=1739345186-ydTd3RsqTMtNOc8ZOHSWAjuZrpY5ijt4-0-93a73a68a7ccef2f635aa8993f1e69dd)
图1-34 Drawable插件菜单
该插件可对一张图片自动生成不同分辨率的图片,从而让图片对不同屏幕的适配工作变得更加容易。右击任意目录,在弹出的菜单中选择New,右方弹出的菜单列表末尾会出现*** Drawable Importer之类的菜单项,如图1-34所示。
这里通常选中Batch Drawable Import,在弹出的窗口中选择图片的文件路径,并勾选需要自动生成的分辨率,然后单击OK按钮,即可在drawabe各分辨率的目录下生成对应的图片。
1.5.4 导入已经存在的工程
初学者一开始学习App开发,免不了想借鉴他人的编码思路,这就需要将网上的开源工程导入到本地。根据App工程提供的组织形式,存在两种方法可以导入到Android Studio。如果下载下来的App工程是Project项目形式,则依次选择菜单File→Open,然后在弹出的对话框中选择工程目录,即可完成该工程的导入操作。如果下载下来的App工程是Module模块形式,则不能把它当作项目导入,否则会出现“Plugin with id 'com.android.application' not found.”的错误。此时只能模块的形式导入该App工程,具体的导入步骤如下:
(1)依次选择菜单File→New→New Project,按提示新建一个项目(即Project)。
(2)项目创建完毕,再依次选择菜单File→New→Import Module,然后在弹出的对话框中选择模块目录。
在Android Studio 2.2/2.3/3.0中,按照上述步骤能够正常导入App模块,但是若在Android Studio 3.1中导入App模块,会发现AS死活无法正常导入。此时除了先进行以上的两个导入步骤之外,还要额外进行以下的第三个步骤:
(3)打开当前项目的settings.gradle,把下面这行:
include ':app'
改成下面这样,也就是手动添加新模块的名称:
include ':app',':新模块的名称'
修改完毕,重启Android Studio,再次打开后AS就会自动编译新模块了。
1.5.5 新建一个Activity页面
在前面的“1.4.4 在代码中操纵控件”中,我们已经尝试修改XML文件与Java代码,但这是在现有文件上进行修改,如果要增加一个新的页面,就得先创建新页面对应的XML布局和Java文件了。具体的页面创建步骤如下:
在左侧工程结构图中,选定新页面所在的包名如com.example.helloworld,然后右击该包名,并在弹出的右键菜单中依次选择New→Activity→Empty Activity,右键菜单如图1-35所示。
![](https://epubservercos.yuewen.com/2EEE11/15253384705226606/epubprivate/OEBPS/Images/Figure-P38_3279.jpg?sign=1739345186-VeJhRFMaFxhdnUNaNLoyhZMP5QsRjuTW-0-7b4e27ae64383bea475c3b2d6ff4d75b)
图1-35 创建Activity页面的右键菜单
此时会弹出新页面的创建对话框如图1-36所示,其中Activity Name一栏填写页面的Java类名,Layout Name一栏填写页面的XML布局名称,Package Name保持默认的包名,确认无误后单击窗口右下方的Finish按钮。
![](https://epubservercos.yuewen.com/2EEE11/15253384705226606/epubprivate/OEBPS/Images/Figure-P38_3288.jpg?sign=1739345186-PvHZRXuwNIJcJYLOeMBVGhxguGvK5e5e-0-f1f2721c990bdea4f265a0e9d50f56e5)
图1-36 创建Activity页面的信息填写窗口
接着Android Studio会自动在默认包名下面生成页面代码Main2Activity.java,在res\layout下面生成页面布局activity_main2.xml,新页面创建之后的工程结构如图1-37所示。
![](https://epubservercos.yuewen.com/2EEE11/15253384705226606/epubprivate/OEBPS/Images/Figure-P39_3300.jpg?sign=1739345186-FJid4Lximz1MyF1LEFuf0YND7fEAynce-0-a6be372b8585009f06372efa3071593f)
图1-37 新页面创建之后的工程目录结构
上述操作步骤虽然一次性生成了Java代码及其对应的XML布局,可是实际开发中往往还需要单独生成Java代码,或者单独生成XML文件。创建单个文件的操作那更简单了,倘若是创建单个Java代码文件,则需右击工程目录的包名,在右键菜单中依次选择New→Java Class,此时弹出新类的创建对话框如图1-38所示。在该窗口的Name一栏填写Java的类名,在Superclass一栏填写父类的名称(如果有的话),最后单击窗口下方的OK按钮,即可完成Java代码的创建操作。
倘若是创建单个XML布局文件,则需右击layout目录,在右键菜单中依次选择New→XML→Layout XML File,此时弹出XML的创建对话框如图1-39所示。在该窗口的Layout File Name一栏填写布局文件的名称,在Root Tag一栏填写XML的根节点名称,最后单击窗口右下方的Finish按钮,即可完成XML布局文件的创建操作。
![](https://epubservercos.yuewen.com/2EEE11/15253384705226606/epubprivate/OEBPS/Images/Figure-P39_3311.jpg?sign=1739345186-h2Aqm7um8rHg9vvZLlYcECViCsC48NbF-0-9f8fe2ef22a0555ce6ee58c5ec5cb866)
图1-38 创建Java代码的对话框
![](https://epubservercos.yuewen.com/2EEE11/15253384705226606/epubprivate/OEBPS/Images/Figure-P39_3312.jpg?sign=1739345186-gFLyVFWjuh4bRmStYMM7vuufzH0GAzQs-0-56ed762d7e3df5b1a1fdf8ead68159e2)
图1-39 创建XML布局的对话框