Android Studio使用指南(Windows/Linux)

本文发表于KuTear's Blog,转载请注明

Android Studio
Android Studio

by KuTear

注: keymap调为eclipse模式(File > Settings > Keymap > Eclipse)

基本的快捷键

搜索相关

  • 函数/变量的引用(Ctrl+G)
  • 字段搜索(Ctrl+H)
  • 文件名搜索(类,XML) (Ctrl+Shift+R)
  • 类名搜索(Ctrl+Shift+T)
  • 通用搜索(文件,字段,类) (Double Shift)
  • 文件内字段搜索(Shift+f)
  • 文件内方法/变量搜索(Ctrl+O)

调试相关

  • Debug模式运行(Shift+Alt+D)
  • 对已运行程序启用调试(默认无,需配置)
  • 执行进入函数内部(F5)
  • 执行不进入函数内部(F6)
  • 函数内部直接跳到调用处(F7)
  • 跳到下一个断点(F8)
  • 跳到光标处(Ctrl+R)
  • 计算值(Ctrl+U)
    Android Debug
    Android Debug

Git相关

  • 添加文件追踪(Ctrl+Alt+A) 注:同QQ截图冲突
  • Push到服务器(Ctrl+Shift+K)

其他常用快捷键

  • 快速功能查找(Ctrl+Shitf+A)
  • 快速实现接口(Alt+Shift+P)
  • 复写方法/构造器/Setter And Getter等(Alt+Insert)
  • 运行程序(Shift+Alt+X)
  • Android Studio全屏模式(需配置)
  • 拷贝光标所在行到下一行(Ctrl+Win+Alt+↓)
  • 双斜杠注释(Ctrl+/)
  • (/* */)注释(Ctrl+Shilt+/)
  • 快速导入包,实现接口(Alt+Enter)
  • 文件/字段/方法重命名(Ctrl+Shift+R)
  • 类继承关系(F4)
  • 最近打开/最近编辑(Ctrl+E/Ctrl+Shift+E)
  • 关闭当前文件/全部文件(Ctrl+F4/Ctrl+Shift+F4(Ctrl+Shift+W))
  • 在引用处查看方法/类的实现(Ctrl+Shift+i)
  • 去除无用导入(Ctrl+Shift+O)
  • 代码格式化(Ctrl+Alt+L/Ctrl+Shitf+F) 注:Ctrl+Alt+L与Ubuntu锁屏键冲突,Ctrl+Shitf+F与一般输入法(搜狗)的简繁切换冲突
  • 方法/字段的说明查看(Shift+Ctrl+Space/F2)
  • 返回至上次浏览的位置(Alt+Left/Right)
  • 大小写切换(Ctrl+Shift+U)
  • 硬编码提取到资源文件(Alt+Enter)
  • 类切换(Ctrl+Tab)
  • {}的切换(Ctrl+[/])

快捷键与Live template的定制

快捷键设置

  • 这里以前面的Android Studio全屏模式为例来说明

    根据名字搜索(full screen)



    添加快捷键,注意不要冲突



    保存设置

Live template

  • 自带模板

在Eclipse编写主函数

public static void main(String[] agrs){
  ...
}

的时候,我们只需要输入main+Enter键就会生成以上代码,因为它就是一个模板,始终的都不会改变.在Android Studio/IDEA中同样有该功能,只不过输入的内容有所改变.当输入psvm+Enter键就回生成以上代码.
Android Studio中还内置了很多模板



比如Log.X(...)系列,findViewById(...),以及for(...)等等.

  • 自定义模板

下面我以Log来做说明.
在我们的项目中一般不会直接使用Log来打印日志,而是需要给它一个可控的开关,在正式版中把日志信息关掉,只在开发版中打开日志.

public class JLog{
 public static final boolean isDebug = true;
 public static void d(String tag,Object obj){
   if(isDebug){
   Log.d(tag,obj==null?"Null":obj.toString());
   }
 }
}

新建模板


在代码中键入jlogd+Enter就会自动生成

JLog.d(TAG,);

自需要你添加obj对象即可,使用模板会大量减少代码的输入,减少程序员的工作量.

对于上文中的TAG对象,我习惯与在创建类的时候就通过模板自动生成了TAG常量,如果你不是很习惯这种方式,可以给TAG指定为当前类的名字.


具体步骤如下
<video id="video" controls="" preload="none" poster="https://o4dj02fnq.qnssl.com/2016/07/17/android_studio.png">
<source id="ogv" src="https://o4dj02fnq.qnssl.com/2016/07/17/android_stdio_template_6.ogv" type="video/ogg">
</video>
具体的变量名称可以参考Live Template Variables

调试与分析

代码调试

启动调试的两种方式

  • Debug模式启动
  • app启动之后attach

日志过滤

  • 等级过滤
  • tag名字过滤 [系统日志(如Activity的启动会有ActivityManager)]

调试

在项目开发过程中,服务器返回的数据可能只是一个模拟的数据,它覆盖的面有限,比如一款产品包含预售,在售,缺货等等状态,但是这是服务端开发人员并没有完成整个开发,而是仅提供一个模拟的数据,而且仅是在售状态.客户端会根据状态设置不同的展示,比如在非在售是按钮置灰等.

这时我们就可以在调试的时候改变某些字段的值来达到覆盖各个情形.

断点类型

  • 普通断点
  • 条件断点
  • 日志断点
  • 方法断点
  • 异常断点

其他附带工具的使用

Dump Java Heap

Lint

MAT

Lint

Shallow Size是对象本身占据的内存的大小,不包含其引用的对象。对于常规对象(非数组)的Shallow Size由其成员变量的数量和类型来定,而数组的ShallowSize由数组类型和数组长度来决定,它为数组元素大小的总和。
Retained Size=当前对象大小+当前对象可直接或间接引用到的对象的大小总和。(间接引用的含义:A->B->C,C就是间接引用) ,并且排除被GC Roots直接或者间接引用的对象

Allocation Tracking

Lint

Lint

代码中标黄的部分
启动: Analyze>Inspect Code

Lint

插件推荐

ADB idea

Adds the following ADB commands to Android Studio and Intellij:
- ADB Uninstall App
- ADB Kill App
- ADB Start App
- ADB Restart App
- ADB Clear App Data
- ADB Clear App Data and Restart

提供app卸载,app数据清理,app重启等功能,使得我们不再需要在手机上进入app详情页面进行数据清理等工作.

Android Parcelable code genertor

Plugin which generates Android Parcelable boilerplate code for you.
自动生成序列化相关函数

参考链接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,080评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,422评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,630评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,554评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,662评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,856评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,014评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,752评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,212评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,541评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,687评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,347评论 4 331
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,973评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,777评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,006评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,406评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,576评论 2 349

推荐阅读更多精彩内容