編輯:關於Android編程
該文以Android Studio2.1.1(Bundle)為例。JDK使用的是1.8版本,也建議大家使用1.8版本。
使用技巧無先後順序。
Android Studio 2.1.1
目前,國內大家比較熟悉的應該是Android Studio中國社區,每次Android Studio的更新版本都可以在這找到。
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
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。
PS:實際上,使用Enter鍵代替Tab鍵也是可行的,親試可用!
其實上面的第6個技巧使用到的就是Live Templates,它的目的在於定義一些常用的方法,在編碼過程中,當使用到這些方法時,敲下少量的代碼就能通過代碼模塊自動生成相應的方法和方法體代碼,這樣大大提高了編碼效率,而且令人興奮的一點是,這些模板我們可以自定義。
自定義或者查看Live Templates的位置在:File-Settings-Editor-Live Templates。如下圖,即使Toast的模板:
Live Templates for Toast
點擊下面鏈接可以查看如果快速定義自己的Live Templates--Live Templates教程
代碼自動完成
如下圖所示,當我們首次運行一個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 前面的復選框是打鉤的。
當使用Android Monitor的Monitors選項查看調試應用情況並對其進行性能分析時,請關閉Instant Run功能。因為當更新方法時,會對結果造成略大的影響,此外Stub方法會使得堆棧跟蹤。
關閉Instant Run功能可見第9個技巧點的PS部分。
參考: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
這個控件之前就大致又看到V1版本的,然後坐著又做了更新,又寫了分析的博文,那這邊就簡單的把內容貼出來介紹給大家就好了(又幫我省事了)先來看下運行效果:內容都是手繪,可見原
SVG矢量圖在圖片表現力方面遠遠優於PNG位圖,同時在可維護性和修改性方面也比位圖要方便很多。盡管Android在5.0版本就引入了SVG圖片的解決方案:Vector。然
微信如何轉發文章,使用微信,有時候會讀到一些覺得很好的文章,我們就想轉發分享給好友,那麼微信如何轉發文章呢,其實很簡單的,下面我就來一步一步的講解給大家。1
需求:Activity(fragment)跳轉的時候當前界面裂開,上下各自拉出手機屏幕,之後跳轉到相對應的Activity.整體效果圖如下 思路: 1,在當前Acti