Templates
Android

AndroidComments

AndroidLog

AndroidParcelable

AndroidXML

Other

plain

自定义模版

eg:简单的一个单例模版
#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
#parse("File Header.java")
public class ${NAME}{
private static volatile ${NAME} instance = null;
public static ${NAME} getInstance() {
if(instance==null){
synchronized (${NAME}.class) {
if (instance == null) {
instance = new ${NAME}();
}
}
}
return instance;
}
private ${NAME}() {
}
}
快捷键(本人mac 用的eclipse快捷键)
control+shift+A 搜索功能模块
control+shift+e 最近打开
control+shift+r 搜索文件
control+o 当前类的所有方法
control+f+你鼠标当前点击的 在当前类搜索点击文字
control+h 全局搜索
control+g+选中的方法名或类 该类或方法所有被使用片段
control+t+选中 当前方法或类被实现类
option+shift+空格 补全
Ctrl + Alt + V 自动生成变量
Ctrl + Alt + P 提取参数
alt+shift+m 提取方法
ctrl+alt+shfit+t 重构
shift + esc 返回编辑器窗口
alt+f12 打开命令行
alt+7打开structure
alt+0 打开messages
alt+9打开localchanges
ctrl+tab switcher
ctrl+shift+f12隐藏/打开辅助窗口
打开包窗口 alt+1
alt+f1 select in
ctrl+alt+t surround with
ctrl+alt+h 调用树

其他快捷键:Android Studio使用技巧系列教程
技巧
1.当QA给你一段crash 日志
eg
java.lang.IllegalArgumentException: Path must not be empty.
at com.squareup.picasso.Picasso.load(Picasso.java:297)
at com.sankuai.movie.base.ingeniousadapter.model.ImageLoader.load(ImageLoader.java:95)
at com.sankuai.movie.movie.moviedetail.block.MovieDetailHeaderBlock.bindData(MovieDetailHeaderBlock.java:266)
at com.sankuai.movie.movie.moviedetail.block.MovieDetailHeaderBlock.bindData(MovieDetailHeaderBlock.java:80)
at com.sankuai.movie.base.ui.blockitemview.Block.onLoadFinished(Block.java:153)
at android.support.v4.app.LoaderManagerImpl$LoaderInfo.callOnLoadFinished(LoaderManager.java:427)
at android.support.v4.app.LoaderManagerImpl$LoaderInfo.onLoadComplete(LoaderManager.java:395)
at android.support.v4.content.Loader.deliverResult(Loader.java:104)
at com.sankuai.android.spawn.task.AbstractModelLoader.deliverResult(AbstractModelLoader.java:59)
at android.support.v4.content.ConcurrentTaskLoader.dispatchOnLoadComplete(ConcurrentTaskLoader.java:180)
at android.support.v4.content.ConcurrentTaskLoader$LoadTask.onPostExecute(ConcurrentTaskLoader.java:278)
at android.support.v4.content.ModernAsyncTask.finish(ModernAsyncTask.java:461)
at android.support.v4.content.ModernAsyncTask.access$500(ModernAsyncTask.java:47)
at android.support.v4.content.ModernAsyncTask$InternalHandler.handleMessage(ModernAsyncTask.java:474)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5944)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
一般我们只能慢慢的找出我们有问题的类,然后进入那个类那一行,检查bug
但是android studio其实自带一个Analayze Stacktrace

可以帮我们分析堆栈信息,只要复制crash日志到里面

点击ok

是不是就和我们在自己debug crash的日志一样了,可以直接点击进入引起奔溃的位置。

点击这个按钮也能直接看到谁改动的那行代码~直接定位到谁写的bug....

网友评论