1. 程式人生 > >Android Studio開發小技巧(一)

Android Studio開發小技巧(一)

我們都知道,Android Studio的功能是非常強大的,也是很智慧的。如果有人告訴你學Android開發要用命令列,你可以告訴他Android Studio是谷歌提供給開發者提升效率的。試想想你腦袋裡有一堆想法,但是開發編碼效率太低導致想法都丟失了或者興趣消失了多可怕對不。好了廢話不多說,這裡介紹幾個比較好用的技巧和快捷鍵,提升我們的編碼效率。

1.完成一句程式碼

如果我們呼叫了一個方法,並給方法傳遞了引數,這個時候如果我們要結束這個語句,就會用滑鼠或者方向鍵移動游標到行末,輸入;然後回車結束。這樣子其實效率是很低的,為什麼?因為我們的手在鍵盤上,要去摸滑鼠和方向鍵的距離都是比較遠的。所以這裡介紹一個組合快捷鍵用來完成依據程式碼:Ctrl+Shift+Enter

這裡可以看到,我們呼叫了方法之後,直接使用快捷鍵,Studio會直接跳到最後並加了一個分號,如果我們再按一下快捷鍵,會跳轉到下一行。如果你覺得這個快捷鍵有點長(我是這麼覺得的),可以通過自定義快捷鍵來簡化這個功能。下面給下具體的步驟:

① 開啟Settings

② 選擇Keymap

③ 點選搜尋框右邊的按鈕

④ 按下你需要修改的對應快捷鍵,也就是Ctrl+Shift+Enter,會搜尋到對應的快捷鍵,雙擊對應的快捷鍵設定,點選按鈕之後會出現下圖

⑤ 選擇第一個選項來增加一個快捷鍵,會出現下圖

可以直接在這個介面按下你想要的快捷鍵組合,可以看到如果已經存在的快捷鍵,那麼下面會出現一個黃色歎號警告,我們可以多嘗試,選擇最方便自己的就可以了。我設定的是Alt+M

,M是移動的意思,所以就記住了。

2.開啟文件

上一次介紹Studio的通過設定讓滑鼠懸停在程式碼上會開啟文件,但是預設是不會的。文件是我們學習的最重要的一個物件,在遇到問題的時候第一要想到的應該是文件。開啟文件的快捷鍵預設是:Ctrl+Q,我們要知道,這不僅僅可以允許我們在程式碼中開啟文件,也可以在程式碼補全的時候開啟對應補全的文件,可以看下面這個圖

這裡在補全的時候如果我們不知道isEmpty方法的用處,可以先將游標移動到該補全的位置,然後按下快捷鍵,就可以代開對應的文件。

3.提示方法引數

有時候我們寫著寫著就忘記了這個方法要傳入一個什麼型別的引數,這個時候,可以使用快捷鍵:Ctrl+P

,效果如下

當游標在方法中的時候,按下快捷鍵,Studio會提示我們這個方法需要的引數,這個也是比較常用的。

4.複製程式碼

選中你的程式碼,然後按下快捷鍵:Ctrl+D,總比按Ctrl+C和Ctrl+V快吧。

5.快速開啟檔案

當我們需要開啟專案中的某個檔案的時候,可以通過快捷鍵Ctrl+Shift+N開啟搜尋框,然後輸入檔名回車即可。按下快捷鍵會得到如下搜尋框:

6.跳轉到程式碼宣告

快捷鍵:Ctrl+B,這個就不多說了。

7.重寫父類方法

快捷鍵:Ctrl+O

可以看到,打開了選擇框之後我們可以直接輸入需要重寫的方法名來進行查詢,匹配上的直接回車就好。

8.安全重新命名

好處就是不用自己手動進行每個地方的修改。只需要將游標移動到要重新命名的地方,按下快捷鍵:Shift+F6,這個時候會提示你輸入一個新的名字,然後系統會進行搜尋,找到所有同名的變數或者方法,然後提示給使用者,介面會是下面這樣:

這個地方會顯示所有使用了這個變數或方法的地方,如果我們需要直接重新命名,可以點選左下角的Do Refactor按鈕進行確認,如果有不需要重新命名的地方,可以選中該行,右擊,選擇Exclude進行剔除。

9.查詢使用方法或類的地方

當專案比較大的而且對Activity進行過重構的時候,或者對別的程式碼進行維護的時候,很多時候我們需要知道一個方法究竟在哪裡被呼叫了,這個時候可以通過快捷鍵:Alt+F7來查詢到所有使用了這個方法的地方。

10.開啟最近使用檔案列表

快捷鍵:Ctrl+E,這個也不多說,谷歌官方的演示視訊會經常看到有工程師用這個快捷鍵。

接著介紹一些除了快捷鍵以外的技巧。

1.如果要判斷一個字串是不是空你會像下面這樣做嗎?

2.如果你要逆序遍歷一個ArrayList你會像下面這樣做嗎?

3.如果要根據一個Json資料來寫一個對應的bean,你會怎麼寫?這裡可以使用一個比較方便的外掛來做,名字叫 GSONFormat ,我們使用這個外掛可以通過一段Json生成一個對應的類,怎麼下載這個外掛的話可以自己百度一下。

比如有這麼一段Json資料:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

{

 "errNum": "0",

 "errMsg": "success",

 "querySign": "3845925467,2370020290",

 "retData": [

  {

   "rect": {

    "left": "0",

    "top": "0",

    "width": "33",

    "height": "31"

   },

   "word": " 8"

  }

 ]

}

外掛介面:

使用外掛可以直接生成一個對應的類程式碼如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

public class MyBean {

 

 /**

  * errNum : 0

  * errMsg : success

  * querySign : 3845925467,2370020290

  * retData : [{"rect":{"left":"0","top":"0","width":"33","height":"31"},"word":" 8"}]

  */

 

 private String errNum;

 private String errMsg;

 private String querySign;

 /**

  * rect : {"left":"0","top":"0","width":"33","height":"31"}

  * word : 8

  */

 

 private List<RetDataBean> retData;

 

 public String getErrNum() { return errNum;}

 

 public void setErrNum(String errNum) { this.errNum = errNum;}

 

 public String getErrMsg() { return errMsg;}

 

 public void setErrMsg(String errMsg) { this.errMsg = errMsg;}

 

 public String getQuerySign() { return querySign;}

 

 public void setQuerySign(String querySign) { this.querySign = querySign;}

 

 public List<RetDataBean> getRetData() { return retData;}

 

 public void setRetData(List<RetDataBean> retData) { this.retData = retData;}

 

 public static class RetDataBean {

  /**

   * left : 0

   * top : 0

   * width : 33

   * height : 31

   */

 

  private RectBean rect;

  private String word;

 

  public RectBean getRect() { return rect;}

 

  public void setRect(RectBean rect) { this.rect = rect;}

 

  public String getWord() { return word;}

 

  public void setWord(String word) { this.word = word;}

 

  public static class RectBean {

   private String left;

   private String top;

   private String width;

   private String height;

 

   public String getLeft() { return left;}

 

   public void setLeft(String left) { this.left = left;}

 

   public String getTop() { return top;}

 

   public void setTop(String top) { this.top = top;}

 

   public String getWidth() { return width;}

 

   public void setWidth(String width) { this.width = width;}

 

   public String getHeight() { return height;}

 

   public void setHeight(String height) { this.height = height;}

  }

 }

}

這就節省了很多時間了。

好了,這次先說這麼多,想到了再補充下吧。