Andorid Studio使用技巧

No proxy地址:
SDK Update Sites
鏡像地址:參見http://tools.android-studio.org/index.php/proxy/、http://www.oschina.net/news/38492/mirrors-tsinghua-will-close
Android SDK 在線更新鏡像服務器資源:
大連東軟信息學院鏡像服務器地址:
http://mirrors.neusoft.edu.cn 端口:80
北京化工大學鏡像服務器地址:
IPv4: http://ubuntu.buct.edu.cn/ 端口:80
IPv4: http://ubuntu.buct.cn/ 端口:80
IPv6: http://ubuntu.buct6.edu.cn/ 端口:80
上海GDG鏡像服務器地址:
http://sdk.gdgshanghai.com 端口:8000
中國科學院開源協會鏡像站地址:
IPV4/IPV6: http://mirrors.opencas.cn 端口:80
IPV4/IPV6: http://mirrors.opencas.org 端口:80
IPV4/IPV6: http://mirrors.opencas.ac.cn 端口:80
騰訊Bugly 鏡像:
http://android-mirror.bugly.qq.com 端口:8080
騰訊鏡像使用方法: http://android-mirror.bugly.qq.com:8080/include/usage.html

前言

該文以Android Studio2.1.1(Bundle)爲例。JDK使用的是1.8版本,也建議大家使用1.8版本。
使用技巧無先後順序。
Android Studio 2.1.1

軟件下載

目前,國內大家比較熟悉的應該是Android Studio中國社區,每次Android Studio的更新版本都可以在這找到。

Android Studio使用技巧問答區

http://ask.android-studio.org/?/explore/category-4

1、代碼沒有錯誤,但是爆紅解決技巧

當我們寫入一些代碼的時候,可能有些代碼是正確的,但是AS卻說找不到,這時候我們清理一下緩存即可並重啓AS即可解決這個問題。具體步驟是點擊File-Invalidate Cache / Restart…即可。

2、編輯/打開另一個項目,下載GIt項目

標題可能說的有點模糊。一般情況下,每一個AS工作區對應一個項目(當然可以添加多個Modules)。假如,我們當前正在編輯的是A項目,我想打開B項目進行編輯,此時的做法也很簡單。
方法一:點擊File-Open… 然後選擇一個Gradle項目即可。
方法二:點擊File-Open Recent 然後選擇一個項目打開即可。
如果我想關閉當前項目,並且打開B項目
方法三:點擊File-Close Project,然後在打開的界面選擇Open an existsing Android Studio Project選擇一個本地項目打開即可。
下載Git項目
方法四:點擊菜單欄的VCS-Checkout from Version Control-Git 在彈出的對話框輸入項目的SSH地址即可下載。如下圖:

下載Git項目.png

3、查看AS使用的SDk、JDk路徑

File-Other Settings-Default Project Structure…

Project Structure.png

4、刪除Module

瞭解Android Studio的應該知道其工作空間(Project)對應可以創建多個Module,而且可以對Module進行同時build等操作,當不需要這個Module,想要徹底刪除它時,有兩種方式(如刪除下圖的test Module):

即將要刪除test Module.png

(1)右擊MyApplication項目,選擇Open Module Settings,選中要刪除的Module(test),點擊符號“—”進行刪除,步驟如下圖所示:

刪除Module.png

移除Modul列表後.png

實際上,此時test僅僅是退出了Module列表(移除了對Project對Module的保護),並沒有刪除,此時對test右擊,點擊“Delete”則可,步驟如下圖所示:

刪除一個項目.png

(2)通過Android Studio對Module的保護機制去刪除一個Module。

在Eclipse上,如果想要刪除一個項目,直接右擊選擇“Delete”刪除項目即可,但是在Android Studio只有把Module的保護機制刪除才能對其刪除,所以兩者的不同就是Android Studio多了個保護機制,那麼我們只要知道保護機制的原理即可。事實上,Module的保護機制是通過settings.gradle文件實現的,我們首先打開settings.gradle文件,內容圖下圖所示:

Module保護機制列表.png
代碼如下:

include ':app',':test'

代碼很顯然,表示當前項目包括了兩個Module,一個是app,另一個是test。當我們想刪除test Module的保護機制,只需刪除代碼:’:test’,保存並重新執行gradle文件即可,具體步驟是:
1、刪除代碼:,’:test’並保存;
2、點擊菜單欄的Sync按鈕,重新編譯項目即可。
Sync Gradle.png
ps:實際上,該操作是可逆的!!!

5、把Eclipse項目移植到Android Studio 2.1.1

參考文章
將Eclipse代碼導入Android Studio
鏡像網站-techbrood
前提:ADT版本需要22以上。
查看ADT版本號。在Eclipse打開Help-Installation Details,然後選擇Plugin-ins,如下圖可看到當前使用的ADT版本爲23。
ADT版本號.png

當前以一個Hello工程爲例。步驟如下:
1、在Eclipse選擇File-Export-Android-Generate Gradle Build File-Next,接着選擇項目Hello,Next—Finish-Finish。此時,打開Hello項目目錄。

創建Gradle相關文件.png
從圖上可以看出,此時生成了Gradle相關的文件夾。

2、選擇導入工程的結構方式。

一般情況下,導入Eclipse項目到Android Studio會有兩種結構,一種是與Eclipse的項目文件結構相同,只是增加了IDE文件和Gradle相關文件;另一種則是符合Android Studio項目工程的結構,即Module包好Module。這兩種結構的導入方式都是支持的。如下圖,Open an existing Android Studio Project和Import Project都代表第一種結構。

選擇導入結構方式.png

2.1第一種結構-保留Eclipse的項目結構

選擇build.gradle文件導入項目,如下圖所示(可能需要同步一下gradle版本):

Android Studio項目目錄.png
此時,我們可以看一下這個項目存在多少個Module,點擊Gradle選項卡。

僅有一個Module.png
從圖上可以看出,當前項目只存在一個Module。

2.2選擇Import Project

該方式也是選擇build.gradle文件,其它步驟也都相同。

2.3符合Android Studio的項目結構

選擇Import Project選項,不需要增加Gradle相關文件,直接選擇項目名稱,點擊OK。
導入非gradle項目.png
這時候會彈出一個對話框,如下圖所示,意思是根據Hello這個項目,導入一個複製Hello的項目,名稱爲Hello1,並且不去修改Hello項目。此處,選擇“Next”。
Copy a project.png
對話框繼續彈出。圖片中包括了三個複選框,
第一、二項表示如果條件允許,利用gradle的依賴功能去代替jar包和庫的加載。一般情況下,爲了便於後面代碼、jar包管理,這兩項是勾選的。
第三個表示該項目、代碼的命名方式採用駝峯命名法,也就是說會修改一些,不符合駝峯命名法的名稱。

選擇修改的內容.png
點擊finish等待項目創建。當項目創建成功後,查看Gradle。如下圖:

Android Studio項目創建成功.png
圖片左側可以看到項目結構與使用Android Studio創建新的項目的結構是相同的,右邊可以查看到當前項目有兩個Module,一個是根-Hello1,另一個是子Module-app。中間是一個txt文件——import-summary.txt,它主要描述了導入Eclipse項目過程中做了Android Studio什麼事情,比如:Ignored Files表示沒有導入的文件;Replaced Jars with Dependencies表示Eclipse裏jar包的導入替換爲gradle的依賴;Moved Fiels表示文件的剪切——把資源文件移動到了子Module的工程目錄下;還有就是接下來的建議,比如文件的描述是建議build項目。最後,改文件是臨時文件,一般情況下,項目創建完成後即可刪除它。

3、構建apk

當項目導入成功後,點擊菜單欄的Build-Build APK,當執行完成後能生成Hello-debug.apk和Hello-debug-unaligned.apk則表示代碼無誤,並構建成功。

build apk成功.png

6、Android Studio快速編程技巧

PS:官網有一篇關於快速編程技巧的文章,點擊上面標題即可訪問(注:需要撥VPN)
文章表述的內容主要是寫少量的代碼並結合快捷鍵(Tab)就能敲出大量的代碼。下面舉個例子,假如需要在敲出下面的代碼:

Toast.makeText(MyActivity.this, "這是一個Toast", Toast.LENGTH_SHORT).show();

如果在Eclipse軟件下我們需要上面的代碼,一般需要輸入內容還是蠻多的,但是在Android Studio中只需要輸入Toast和文本內容即可。具體步驟如下:
1、輸入Toast
2、按下Tab鍵
3、輸入文本內容“這是一個Toast”
4、再按下Tab鍵,讓遊標到達當前行的末尾即可。
英文水平不錯的可以參考這篇文章:Writing More Code by Writing Less Code with Android Studio Live Templates下面的這張圖片就來自這篇博文,其作者是Reto Meiter
圖片來自Reto Meier的博客,博客地址:https://medium.com/@retomeier?swoff=true
PS:實際上,使用Enter鍵代替Tab鍵也是可行的,親試可用!

7、Live Templates

其實上面的第6個技巧使用到的就是Live Templates,它的目的在於定義一些常用的方法,在編碼過程中,當使用到這些方法時,敲下少量的代碼就能通過代碼模塊自動生成相應的方法和方法體代碼,這樣大大提高了編碼效率,而且令人興奮的一點是,這些模板我們可以自定義。
自定義或者查看Live Templates的位置在:File-Settings-Editor-Live Templates。如下圖,即使Toast的模板:

Live Templates for Toast
點擊下面鏈接可以查看如果快速定義自己的Live Templates–Live Templates教程

8、代碼自動完成

代碼自動完成

9、Project無法使用Instant Run(即時運行)功能

如下圖所示,當我們首次運行一個demo Project時,很大程度上會出現以下的異常。異常信息顯示,如果想要使用Instant Run功能,需要Android Studio允許adb集成功能(Enable ADB integration),一般我們需要手動去設置enable。
Error running app

手動設置Enable ADB integration,在Tools-Android-Enable ADB Integration,Enable ADB Integration前打上勾即可。如下圖:

Enable ADB Integration.png

PS:請保證Instant Run是允許使用的,具體的查看位置在File-Settings-Build,Excution,Deploymeny-Instant Run,在第一個選項Enable Instant Run to hot swap code/resource changes on deploy前面的複選框是打鉤的。

10、性能分析時,請關閉Instant Run功能。

當使用Android Monitor的Monitors選項查看調試應用情況並對其進行性能分析時,請關閉Instant Run功能。因爲當更新方法時,會對結果造成略大的影響,此外Stub方法會使得堆棧跟蹤。

關閉Instant Run功能可見第9個技巧點的PS部分。

12、Open Module Settings

參考:Android Studio 之 Gradle與Project Structure詳解

Properties

Incremental Dex(增量dex)

其實跟增量包的理解差不多,我們在編譯(Compile)apk時默認情況下會重新編譯整個apk,如果這個屬性設置爲true則只會重新編譯新增加或者修改的內容,這樣就可以大大縮短編譯時間了。

Source Compatibility(資源兼容性)

編譯(Compile)應用時兼容的java版本。2.1.1的Android Studio不支持Java 8(jdk1.8),所以如果此處使用1.8會出錯,但是是可以解決的。可以參照技巧13

Flavors

Build Type

13、Android Studio支持java 8

參考1:yuhanghate的博客文章
參考2:官方文檔,關於AS使用java1.8的說明

14、Android Studio Lint

lint是一個檢查代碼結構,保證代碼的Correctness、Usability、Security、Accessibility、Performance的工具,可以使用命令行或者Android Studio執行。它的執行結構圖如下:
[外鏈圖片轉存失敗(img-oHzwNAR2-1565693793260)(https://developer.android.com/images/tools/lint.png)]

lint.xml

該文件用於配置需要檢查或者排除的問題,並可以配置問題的風險等級。

配置build.gradle以達到禁用Lint效果

當構建應用時,默認會使用lint對Module進行檢查,如果希望在檢查到error時,不終止構建(也可以理解爲屏蔽lint工具),可以在對應的build.gradle文件中配置下面內容:

android {
    lintOptions {
       // set to true to turn off analysis progress reporting by lint
       quiet true
       // if true, stop the gradle build if errors are found
       abortOnError false
       // if true, only report errors
       ignoreWarnings true
    }
    ...
}
使用lint.xml

一般情況下,只有error等級的錯誤纔會終止build,我們可以自定義一個lint.xml文件去配置需要忽略的地方。

lintOptions {    
  lintConfig file("lint.xml") // 這是lint.xml文件路徑
  abortOnError true 
}
使用Inspect Code…檢查代碼

除了在Module build過程中,我們還可以手動去執行lint檢查,方法很簡單,在主窗口的菜單欄選擇Analyze-Inspect Code…,然後指定要檢查的位置即可。檢查完成後再工具欄會新增加一個Inspection工具,展開工具內容即可看到代碼檢查的結果,可以通過分析結果去優化代碼。

代碼整理功能Code Cleanup

這個功能會對指定的地方進行代碼整理,把多餘的代碼清理掉,把冗餘的代碼整理和刪除,是不錯的功能。我使用的技巧是,在VCS存在情況下更新到最新版本然後使用該功能進行代碼整理,接着就是Compare,看看代碼的問題在哪。

Run Inspection By Name…

通過名稱去執行檢查類型,比如Hardcoded text,在xml中使用字符串時一般都是通過@string/xxx引用的方式,如果代碼中出現直接使用字符串,那麼這個類型就屬於Hardcode

Configure Current File Analysis…

配置當前文件的分析等級。其實就是對於當前的文件是否需要使用Lint工具進行代碼檢查,實際上,Android Studio默認會檢查當前文件的代碼規範性,在代碼的右邊狀態欄中,如下圖:
代碼自動檢測
當點擊Analyze-Configure Current File Analysis…或者在上圖的位置右擊並點擊Customize HightLighting Level都會彈出下面的對話框:
高亮設置

None

滑動到None表示當前文件不適用Lint檢查代碼。

Syntax

表示使用Lint工具只檢查語法錯誤。

Inspections

表示使用Lint工具檢查代碼。

15、代碼編輯窗口默認顯示行號

16、項目離線sync,減少項目sync時間

每次修改build.gradle文件時,一般建議是重新sync一下項目,但是如果項目不是Use local gradle distribution而是**Use default gradle wrapper(recommend)**會導致每次sync項目時也重新配置gradle環境,導致項目sync時間過長。

一般情況下,第一次打開項目之後gradle環境已經配置好了不需要每次重新配置。所以,現在需要除了首次sync gradle環境,其它時候可以使用離線的gradle環境。這個很好配置,打開Settings-Build,Execution,Deployment-Build Tools-Gradle,把Offline work前面的複選框勾上即可。如下圖:

17、Analyze APK(分析apk)

apk文件實際上也是壓縮文件的一種,一般情況下,我們把一個apk如demo.apk重命名爲demo.zip並解壓就可以看到apk的結構情況。在Android Studio中,該步驟不需要手動操作,只需選擇菜單欄的Build-Analyze APK…,並選擇要分析的APK文件,點擊OK即可。

18、Android Studio2.2新增build高速緩存(實驗)

這個一個實驗性的功能,在Android 2.2以上版本可以實現高速緩存功能,加快apk build速度,但目前是實驗性功能。具體方法是在gradle.properties文件中增加

android.enableBuildCache=true

19、代碼自動補全優化

如下圖,選擇None則表示大小寫不敏感,默認是First Letter表示首字母大小寫銘感,如果第一個字母錯了,那麼就不會自動補全,如果選擇ALL則表示所有都敏感,所以只要打錯一個字,那麼都不會自動補全了。這裏選擇None。

20、使用Android Studio皮膚

使用主題:在網站 http://color-themes.com/?view=index 中下載主題,主題格式是jar包的形式,下載到本地後,在Android Studio選擇File-Import Settings…,接着選中下載的主題包(*.jar)並點擊OK即可。記得重啓AS哦。

恢復主題:當我們不想使用這個主題時(想要恢復原來的主題),選擇File-Settings-Editor-Colors & Fonts,然後重新選擇Scheme即可。

21、SDK下載、更新代理地址

g.cn:80

22、關聯C++項目

當一個普通的Module想要關聯一個C++項目(Android項目調用C++項目實現Java與C/C++的通信,即JNI項目)時,需要在Module級別build.gradle文件中配置相應的構建腳本文件。

Android Studio支持兩種構建工具,一個是NDK,一個是CMake,前者的構建腳本文件一般是Android.mk或者 Application.mk,後者的構建腳本文件固定是CMakeLists.txt。

關聯方法:右擊Module,選擇 Link C++ Project with Gradle,會彈出如下對話框。

選擇對應的構建工具,並在Project Path一項選擇相應的構建文件,點擊OK。當前Module級別的build.gradle文件會自動增加下面代碼(以CMake構建工具爲例),並自動Sync項目。

android {
  externalNativeBuild {
          cmake {
              path 'CMakeLists.txt'
          }
      }
}

實際上,如果記得命令可以手動敲入,並手動Sync項目。

JNI項目創建教程詳看:Android Studio 2.2 更方便地創建JNI項目-CMake

23、Git——新增內容add到工作空間

當使用Android Studio開發時,可能需要添加一些外部文件,如果直接複製-粘貼進來,當使用git提交時,發現可提交部分並沒有粘貼進來的文件,這是因爲這些文件並只是單純放在同一個目錄下,並沒有添加到git的工作空間。那麼解決方案就很明朗了,選擇當前項目,右擊,選擇Git,點擊第二項Add即可把文件添加到Git工作空間了。如下圖:

24、把本地項目分享到Github

選擇菜單欄的VCS——Import Into Version Control——Share Project On GitHub。接着Android Studio會提示把項目代碼添加到工作空間(教程詳看第23條技巧),添加完成就可以提交了。

25、重命名root Project

實際上項目名稱是無法重命名的,我們的做法實際上是複製一份項目並重命名它。

  • 方法一、到項目根目錄複製、粘貼當前項目並使用Android Studio打開。
  • 方法二、使用Android Studio的重命名方式。
    選擇項目,按F5,填寫新項目名稱,點擊ok即可,這時候當前項目目錄會生成新的項目,接着點擊**File-Open…**打開項目即可。
如果異議,請不吝賜教!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章