Android Studio快速開發之道

来源:http://www.cnblogs.com/yangqiangyu/archive/2016/11/30/6117574.html
-Advertisement-
Play Games

概述 現如今開發越來越追求效率和節奏,節省出時間做更多的事情,除了開發技術上的封裝等,開發工具的使用技巧也是很重要的,今天就根據自己的經驗來給大家介紹一下Android Studio快速開發之道。 Postfix completion 介紹 Postfix completion 是IntelliJ ...


概述

現如今開發越來越追求效率和節奏,節省出時間做更多的事情,除了開發技術上的封裝等,開發工具的使用技巧也是很重要的,今天就根據自己的經驗來給大家介紹一下Android Studio快速開發之道。

Postfix completion

介紹

Postfix completion 是IntelliJ IDEA很早就有的功能,該功能基於已經輸入的表達式和你添加的尾碼來實現另一個你想要的表達式。例如在布爾表達式之後加上尾碼if就是if語句 。

常用尾碼介紹

下麵介紹一下個人工作中覺得比較常用的幾個尾碼。

cast

當一個變數需要類型轉換時,你是不是經常多次回退到變數名前面,然後括弧再輸入類型,現在你只需要.cast之後瀟灑的輸入類型。
image

if

對於if語句你有更好的選擇,.if

這裡寫圖片描述

else

else就是if取反,就是那麼快

這裡寫圖片描述

field

假設你的代碼寫了很長,突然在1000行的時候要給一個變數賦值並且聲明為全局變數,難道要返回去重新聲明嗎,簡直麻煩。有了field,在哪都可以。

這裡寫圖片描述

fori

簡單快速for迴圈,就是那麼弔

這裡寫圖片描述

for

for迴圈第二式,增強for迴圈(使用.iter也是同樣的效果)

這裡寫圖片描述

forr

for迴圈第三式,反向for迴圈 .forr

這裡寫圖片描述

null

快速判空

這裡寫圖片描述

nn/notnull

快速判斷非空 .nn,與.notnull效果一致

這裡寫圖片描述

switch

.switch 通過字元串枚舉等類型的對象直接生成switch語句

這裡寫圖片描述

inst/instantsof

快速進行instanof判斷 併進行類型轉換

這裡寫圖片描述

var

快速為一個表達式生成變數

這裡寫圖片描述

par

快速為一個表達式添加括弧

這裡寫圖片描述

log

快速log,想輸出的內容.log即可

這裡寫圖片描述

toast

快速toast,想輸出的內容.toast即可

這裡寫圖片描述

除了以上的尾碼語句,Android Studio還有很多其它的尾碼語句,由於個人覺得不是很常用,所以沒有提到,大家可以打開setting-Editor-General-Postfix Completion查看更多用法。

下麵貼一張Postfix Completion的圖

這裡寫圖片描述

Live Templates

介紹

讓您插入頻繁使用的或自定義的代碼結構,快速、高效、準確地構建到您的源代碼文件中。

我們可以直接打開Settings/Preferences 對話框 選中Editor下的Live Templates進行查看

這裡寫圖片描述

通過上圖大家可以看到Android Studio已經為我們提供了大量的模版。

系統模版簡單認識

這裡我們通過系統提供的一個模版來對Live Templates簡單認識一下。

先看一張圖
這裡寫圖片描述

上圖中Android為分組名,該分組下系統提供了許多模版。

我們可以在右上角點擊+進行添加自己的group或者模版

Abbreviation就是模版的縮寫,定義了縮寫之後就能直接輸入縮寫得到模版具體內容。

Description在輸入的時候會有一個附帶的描述信息進行提示。

Tempplate text中的就是具體內容,具體內容中可以通過$variable$來進行變數定義,上圖中的模版定義了的$name$ 和$value$兩個變數。

通過右邊的Edit variables按鈕可以進行變數的編輯,點擊之後彈出如下 對話框
這裡寫圖片描述

可以看到 name指定了預設值NAME,value是一個1000以內的隨機數。關於變數的編輯裡面有很多細節,由於篇幅原因,不再這裡詳細討論,後續我會寫一篇博客對live templelates各個功能進行詳細介紹。

繼續剛纔說到第一個模版,左下角有一個change按鈕,點擊之後可以指定該模版的作用範圍。

基本介紹就完畢了,看下效果

這裡寫圖片描述

系統提供的模版很多並且大多數都很有用,我就不一一列舉了,大家可以自己查看Live Templates找到自己合適的使用,開始的時候可能不適應,之後,你會發現,你越來越快。

自定義模版

瞭解了Live Templates之後,我發現我經常使用butterknife的時候會寫onClick,但是每次都是一樣的代碼,這時候我就可以自定義一個模版,請看下圖:

這裡寫圖片描述

自定義了一個分組 custom,並且在該分組下定義了一個縮寫為onclick的模版

模版內容就是一個butterknife註解修飾的click方法,並且聲明瞭一個個變數id。

點擊Edit variables如下圖

這裡寫圖片描述

指定了 Expression為completeSmart(),表示該變數會智能型的完成調用(游標會出現在變數位置)

具體效果如下:
這裡寫圖片描述

這裡為了方便 隨便賦值為 activity的資源id了。

小技巧1

在使用Live Templates我如果正在寫代碼,寫了半個小時,我發現此時正在鞋一段代碼已經寫了幾次並且很可能接下來也會寫。難道我們copy下來再 打開setting找到Live Templates去添加嗎?你完全有更好的選擇!

選中你的代碼,點擊菜單攔Tools->Save as Live templates
之後直接指定縮寫等參數保存即可。

或者 打開設置 keymap,輸入過濾條件live template,找到Save as Live templates設置快捷鍵

這裡寫圖片描述

這裡我設置為cmd+shift+s

就不用點菜單了,選中代碼直接cmd+shift+s

這裡寫圖片描述

ps:由於我之前設置過快捷鍵,還以為有預設的快捷鍵,想看看預設快捷鍵寫下來,所以點了下reset,發現這個功能沒有提供預設快捷鍵,然後最悲劇的來了,發現reset之後我沒有點apply尼瑪居然也生效了,所有我修改過的快捷鍵全沒拉。。。。。

小技巧2

加入你想使用一個模版,但是忘記了它的縮寫,此時怎麼辦呢?
快速的cmd+j,windows電腦我不清楚,大家設置技巧1的時候會看到一個insert live templates,就可以看到快捷鍵了。該功能可以提示出所有適合當前場景的模版。

當然Live Templates的知識很有很多,比如定義變數里的expression有好多,各自代表什麼意思,但是這些不是本篇文章的重點,所以就不做討論了。

快捷鍵

Android Studio提供的快捷鍵功能非常強大,個人覺得只要你對快捷鍵熟悉至極,從打開Android Studio那一刻,你就可以把滑鼠扔了。。。

個人常用快捷鍵介紹

先來一波常用功能快捷鍵效果演示,沒圖我也是不能服眾啊(由於快捷鍵很多這裡只做部分演示),ps:這裡的快捷鍵是基於as自帶的快捷鍵類型,如果你選擇了其它的快捷鍵類型(如eclipse),你只需要打開設置,keymap,通過輸入過濾條件找到對應的功能查看快捷鍵。

以下格式為

描述/Windows或Linux的快捷鍵/Mac 快捷鍵

介紹

圖片

Find action (F3/Command + G)

查找as所有動作功能(超級強大)

這裡寫圖片描述

Find next (F3/Command + G)

查找下一個
這裡寫圖片描述

Find previous

查找上一個
這裡寫圖片描述

Find class(Control + N/Command + O)

直接通過類名過濾打開類文件,有了這個基本我很少用滑鼠去找類文件了。
這裡寫圖片描述

Duplicate current line or selection(Control + D/Command + D)

快速產生一個單行或者選中行的copy
這裡寫圖片描述

Go to implementations( Control + Alt + B/Command + Alt + B)

找到當前介面的實現類,或介面方法的實現方法,在mvp模式里最常用
這裡寫圖片描述

Extract method( Control + Alt + M/Command + Option + M)

為選中代碼生產一個方法,超級智能,甚至能識別處是否要參數和返回值,如果有多個相似代碼,會提示是否要統一替換,吊到沒朋友。
這裡寫圖片描述

Extract variable(Control + Alt + V/Command + Option + V)

為選中表達式生成臨時變數,如果有多個地方會提示是否需要統一替換。
這裡寫圖片描述

Extract field(Control + Alt + F/Command + Option + F)

為選中表達式生成全局變數,如果有多個地方會提示是否需要統一替換。
這裡寫圖片描述

Next highlighted error(F2 / F2)

你一定有過在一個很長代碼文件中找一個錯誤的時候,很麻煩,有了這個功能,游標直接移到錯誤的地方。
這裡寫圖片描述

篇幅有限,就介紹這麼多了,其它的系統快捷鍵我以表格的形式整理下來,許多功能需要自己去嘗試才能發現它的強大。

系統預設快捷鍵

以表格形式列出個人覺得比較常用得系統快捷鍵,ps:這裡列出得是系統預設的快捷鍵,如果你快捷鍵類型選定為eclipse或者其它,你需要找到對應的描述進行查看或者修改。

普通類型

description 解釋 Windows/Linux Mac
Open settings dialogue 快速打開設置 Control + Alt + S Command + , (comma)
Open project structure dialog 打開項目結構 Control + Alt + Shift + S Command + ; (semicolon)
Switch between tabs and tool window tab的切換 Control + Alt + Shift + S Command + ; (semicolon)

追蹤和搜索

description 解釋 Windows/Linux Mac
Find 查找 Control + Alt + S Command + , (comma)
Search everything (including code and menus) 查找所有 點擊shift兩次即可搜索 點擊shift兩次即可搜索
Find next 順序向下查找 F3 Command + G
Find action 查找功能,超級強大,as的所有功能可以通過該功能來查找 Control + Shift + A Command + Shift + A
Find class 快速找到類並打開文件 Control + N Command + O
Find file (instead of class) 快速查找文件 Control + Shift + N Command + Shift + O
Find in path 在項目下的所有路徑查找 Control + Shift + F Command + Shift + F
Find action
Recently opened files pop-up 列出最近打開的文件 F3Control + E Command + E
Recently edited files pop-up 列出最近編輯過的文件 Control + Shift + E Command + Shift + E
Go to last edit location 回到最近一次編輯的位置 Control + Shift + Backspace Command + Shift + Backspace
Close active editor tab 關閉當前編輯的文件 Control + F4 Command + W
Open type hierarchy 打開類型層次關係 Control + H Control + H
Open method hierarchy 打開方法層次關係 Control + Shift + H Command + Shift + H
Open call hierarchy 打開調用層次關係 Control + Alt + H Control + Option + H

寫代碼常用快捷鍵

description 解釋 Windows/Linux Mac
Generate code (getters, setters, constructors, hashCode/equals, toString, new file, new class) 快速生成各種方法 Alt + Insert Command + N
Override methods 顯示所有可以重寫的方法 Control + O Control + O
Implement methods 顯示所有可以實現的方法 Control + I Control + I
Surround with (if...else / try...catch / etc.) 快速為語句生成if else,try catch for迴圈等 Control + Alt + T Command + Option + T
Delete line at caret 刪除游標所在行 Control + Y Command + Backspace
Duplicate current line or selection 快速產生新的當前行,或者新的多行代碼 Control + D Command + D
Quick documentation lookup 快速查看簡要文檔 Control + P Command + P
Go to declaration (directly) 找到變數或方法聲明處 Control + B or Control + Click Command + B or Command + Click
Go to implementations 找到一個介面的實現類,介面方法的是實現處 Control + Alt + B Command + Alt + B
Go to super-method/super-class 找到父類或父類方法 Control + U Command + U
Toggle project tool window visibility 顯示或隱藏as左邊的項目視窗 Alt + 1 Command + 1
Comment/uncomment with line comment 快速單行註釋或去除註釋 Control + / Command + /
Comment/uncomment with block comment 多行註視或除去多行註釋 Command + Shift + / Command + Shift + /
Project quick fix (show intention actions and quick fixes) 給出當前問題的多種解決方法(該方法非常常用) Alt + Enter Option + Enter
Reformat code 格式化代碼 Control + Alt + L Command + Option + L
Next/previous highlighted error 找到下一個/上一個錯誤 F2 / Shift + F2 F2 / Shift + F2

編譯運行

description 解釋 Windows/Linux Mac
Build 編譯 Control + F9 Command + F9
Build and run 編譯 Shift + F10 Control + R

調試

description 解釋 Windows/Linux Mac
Debug Shift + F9 Shift + F9
Step over F8 F8
Step into F7 F7
Smart step into Shift + F7 Shift + F7
Resume program F9 Command + Option + R

修改

description 解釋 Windows/Linux Mac
Safe delete 安全刪除 Alt + Delete Command + Delete
Extract method 提取方法 Control + Alt + M Command + Option + M
Extract method 提取方法 Control + Alt + V Command + Option + V
Extract variable 提取變數 Control + Alt + V Command + Option + V
Extract field 提取全局變數 Control + Alt + F Command + Option + F
Extract constant 提取常量 Control + Alt + C Command + Option + C
Extract parameter 提取參數 Control + Alt + P Command + Option + P

版本控制/本地歷史

description 解釋 Windows/Linux Mac
Commit project to VCS Control + K Command + K
Update project from VCS Control + T Command + T
View recent changes 查看最近修改 Alt + Shift + C Option + Shift + C
Open VCS popup 打開版本控制設置視窗 Alt + ` (backquote) Control + V

擴展

自定義快捷鍵

看到這裡相信大家對快捷鍵有了更深的認識,我們可以通過簡單的幾個鍵就實現強大的功能,但是有時候許多系統提供的快捷鍵也許和你本身系統的快捷鍵衝突,或者說某些強大的功能as並沒有提供你快捷鍵,此時就涉及到快捷鍵的自定義(修改或者添加)。

比如上面提到的 找到並高亮錯誤代碼 as提供的是F2鍵,但是在Mac上是功能鍵並且我也想保留,我就修改為了command+shift+2

關於快捷鍵的自定義我就不細提了,大家百度一下有很多文章。

發現更多功能

keyMap里列出的功能眾多,篇幅和精力有限,不能一一列出,
各位有時間的時候可以打開設置->KeyMap,去看裡面的快捷鍵,不確定的就自己親自按了試一下,你會發現原來可以那麼方便。

插件

這裡推薦幾個個人使用中覺得的確很好的插件,這些插件的介紹文章都很多,我就不詳細介紹了。

Android ButterKnife Zelezny

能夠方便快速初始化,免去了findById等繁瑣的操作。
image

Gsonformat

可根據json數據快速生成java實體類作。
image

Android Material Design Icon Generator

快速生成Material Design圖標,對於在小公司,設計要求不那麼嚴格的同學可以方便生成合適的圖標。

Android Wifi ADB

是不是很討厭調試總是要把手機放在電腦旁,有了這個插件你可以不用挨著電腦調試了。

由於時間關係,插件的圖沒有製作,上面兩張圖的地址出處:http://www.jcodecraeer.com/a/anzhuokaifa/Android_Studio/2015/1009/3557.html

Tip of the day

不知道大家有沒有註意,每天當你第一次打開Android Studio的時候,總是先彈出一個對話框,相信大多數同學都是果斷關閉然後開始今天的工作,被猜中的給我點贊!haha

這裡寫圖片描述

Tip of the day會推薦給你一些使用Android Studio的技巧,快捷鍵等等功能,所以希望大家能夠花一分鐘看一看,每天一個積累,半年一年之後你就是開發效率之王了!

你可以隨時菜單選擇help->tip of the day進行查看
這裡寫圖片描述

結語

花了一個周末給大家總結的快速開發到這裡就結束了,由於時間關係,肯定有很多方面不足或者沒有提及到,請見諒!該篇文章會持續更新,喜歡我的文章,歡迎關註我!

點贊只需一秒,動力確是永恆,點個贊唄!

我剛開通了微信公眾號,每周至少兩篇文章,下周開始運作,歡迎關註我的微信公眾號

這裡寫圖片描述



您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 看到一些程式都有這種寫法,也不知道原創者是誰了。先在博客保存下。 在.m文件 在.h文件 ...
  • 記錄下一些不常用的技巧,以防忘記,複製用。 1、獲取當前的View在Window的frame: 2、UIImageView 和UILabel 等一些控制項,需要加這句才能setCorn 3、手機上的沙盒路徑要加"Documents",不然存儲寫入失敗!mac上不用! 4、圖片拉伸不失真,如聊天軟體對話 ...
  • 1、登錄developer.apple.com,查看到期時間 2、到期提醒通知,點擊Renew Membership續費(一般提前一個月提醒續費) 3、個人開發者賬號續費需要支付 688人民幣/年(99刀),企業賬號則需要299刀 4、Review your purchase details核查訂單 ...
  • init.rc腳本是由Android中linux的第一個用戶級進程init進行解析的。 init.rc 文件並不是普通的配置文件,而是由一種被稱為“Android初始化語言”(Android Init Language,這裡簡稱為AIL)的腳本寫成的文件。 該文件在ROM中是只讀的,即使有了root ...
  • 在IOS5之後,蘋果為避免根據UDID獲得用戶的信息,而禁止使用uniqueIdentifier獲得UDID,但是仍有些應用需要根據UDID區分設備 有一個系統的庫IOKit.framework可以獲得設備的唯一標識 但是這個方法只能獲得模擬器上的UDID很坑爹啊 那還有另外的方法獲得設備的信息,那 ...
  • 原文標題:Variables in Kotlin, differences with Java. var vs val (KAD 02) 作者:Antonio Leiva 時間:Nov 28, 2016 原文鏈接:http://antonioleiva.com/variables-kotlin/ K ...
  • 一、寫在前面: 本次我們來講解一下Android應用中三個適配器:BaseAdapter、SimpleAdapter和ArrayAdapter。其中常見的是BaseAdapter,也是個人推薦使用的適配器。 二、深入瞭解: 1.什麼是適配器? 適配器:在安卓中,顧名思義就是把數據變成符合界面風格的形 ...
  • 一、SQLite簡介 Google為Andriod的較大的數據處理提供了SQLite,他在數據存儲、管理、維護等各方面都相當出色,功能也非常的強大。 二、SQLite的特點 1.輕量級使用 SQLite 只需要帶一個動態庫,就可以享受它的全部功能,而且那個動態庫的尺寸想當小。2.獨立性SQLite ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...