虛擬機選擇
Android系統目前支持如下七種不一樣的CPU架構:ARMv5,ARMv7 (從2010年起),x86 (從2011年起),MIPS (從2012年起),ARMv8,MIPS64和x86_64(從2014年起),每一種都關聯着一個相應的ABI。android
應用程序二進制接口(Application Binary Interface)定義了二進制文件(尤爲是.so文件)如何運行在相應的系統平臺上,從使用的指令集,內存對齊到可用的系統函數庫。在Android系統上,每個CPU架構對應一個ABI:armeabi,armeabi-v7a,x86,mips,arm64-v8a,mips64,x86_64。git
若是項目中使用到了NDK,它將會生成.so文件,所以顯然你已經在關注它了。若是隻是使用Java語言進行編碼,你可能在想不須要關注.so文件了吧,由於Java是跨平臺的。但事實上,即便你在項目中只是使用Java語言,不少狀況下,你可能並無意識到項目中依賴的函數庫或者引擎庫裏面已經嵌入了.so文件,並依賴於不一樣的ABI。windows
當一個應用安裝在設備上,只有該設備支持的CPU架構對應的.so文件會被安裝。在x86設備上,libs/x86目錄中若是存在.so文件的話,會被安裝,若是不存在,則會選擇armeabi-v7a中的.so文件,若是也不存在,則選擇armeabi目錄中的.so文件(由於x86設備也支持armeabi-v7a和armeabi)。架構
as界面工具
區域1(運行工具)
app
一、編譯2中顯示的模塊
二、當前項目的模塊列表
三、運行2中顯示的模塊
四、調試2中顯示的模塊
五、測試2中顯示的模塊代碼覆蓋率
六、調試安卓運行的進程
七、從新運行2中顯示的模塊
八、中止運行2中顯示的模塊
區域2(工程目錄工具)
maven
一、展現項目中文件的組織方式,默認是以Android方式展現的,可選擇「Project、Packages、Scratches、ProjectFiles、Problems…」等展現方式。平時用的最多的就Android和Project兩種。
二、定位當前打開文件在工程目錄中的位置。
三、關閉工程目錄中全部的展開項。
四、額外的一些系統配置,點開後是一個彈出菜單:
函數
Autoscroll to Source 和 Autoscrollfrom Source兩個勾選起來後,Android Studio會自動定位當前編輯文件在工程中的位置,用起來會很爽。其餘功能你們能夠本身摸索摸索
區域3(代碼區)
這個區域主要是用來編寫代碼和設計佈局。
一、已打開的文件的Tab頁。(在Tab頁上按下Ctrl鍵 + 點擊鼠標會出現一個彈出菜單會有驚喜哦!),進入系統文件位置
二、UI佈局預覽區域。(只有在選擇3中的text,而後選擇工具欄view>>toolwindows>>preview)
三、佈局編輯模式切換,對於一些老鳥來講更喜歡經過Text來編輯佈局,新手能夠試試Design編輯佈局,編輯後再切換到Text模式,對於學習Android佈局設計頗有幫助。
區域4(日誌區)
這個區域大部分是用來查看一些輸出信息的。
一、終端 - 喜歡命令行操做的夥伴不用額外啓動終端了。
二、監控 - 能夠查看應用的一些輸出信息。
三、信息 - 工程編譯的一些輸出信息。
四、運行 - 應用運行後的一些相關信息。
五、TODO - 標有TOTO註釋的列表。
六、事件 - 一些事件日誌。
七、Gradle控制檯,經過這個能夠了解Gradle構建應用的時候一些輸出信息。
區域5(目錄區)
一、Gradle編譯系統,版本由wrapper指定
二、Android Studio IDE所須要的文件
三、應用相關文件的存放目錄
四、編譯後產生的相關文件
五、存放相關依賴庫
六、代碼存放目錄
七、資源文件存放目錄(包括:佈局、圖像、樣式等等)
八、應用程序的基本信息清單,描述哪些個組件是存在的
九、Git版本管理忽略文件,標記出哪些文件不用進入git庫中
十、Android Studio的工程文件
十一、模塊的gradle相關配置
十二、代碼混淆規則配置
1三、工程的gradle相關配置
1四、gradle相關的全局屬性設置
1五、本地屬性設置(key設置,androidsdk位置等屬性)
區域6(調試)
一、Step Over(F8)- 程序向下執行一行,若是當前行有方法調用,這個方法執行完畢返回,而後到下一行。
二、Step Into(F7)- 程序向下執行一行,若是當前行有用戶自定義方法(非官方類庫方法)調用,則進入該方法。
三、Force StepInto(Alt+Shift+F7) - 程序向下執行一行,若是當前行有方法調用,則進入該方法。
四、Step Out(Shift+F8)- 若是在調試的時候你進入了一個方法,並以爲該方法沒有問題,你就可使用Step Out跳出該方法,返回到該方法被調用處的下一行語句。值得注意的是,該方法已執行完畢。
五、Drop Frame - 點擊該按鈕後,你將返回到當前方法的調用處從新執行,而且全部上下文變量的值也回到那個時候。只要調用鏈中還有上級方法,能夠跳到其中的任何一個方法。
六、Run toCursor(Alt+F9) - 一直運行到光標所在的位置。
七、Resume Program(F9) - 一直運行程序直到碰到下一個斷點。
八、View Backpoints(Ctrl + Shift+F8) - 查看你設置過的全部斷點並能夠設置斷點的一些屬性
九、Mute Backpoints- 選中後全部的斷點別設置成無效狀態。再次點擊能夠從新設置全部斷點有效。
在點擊了View Backpoints按鈕後,會出現一個斷點屬性窗口,能夠對斷點進行一些更高級的設置。
應用打包簽名
基礎
一個 Android Studio 項目中,會存在多個 .gradle 文件。其中, project 目錄下存在一個 build.gradle 文件和每個 module 會存在一個 build.gradle 文件。
工程中的build.gradle工具
1.buildscript { 2. repositories{ 3. jcenter() // 聲明使用 maven 倉庫 4. } 5. dependencies{ 6. // 依賴android提供的2.1.0-alpha5的gradle build 7. classpath'com.android.tools.build:gradle:2.1.0-alpha5' 8. } 9.} 10.// 爲全部的工程的repositories配置爲jcenters 11.allprojects { 12. repositories{ 13. jcenter() 14. } 15.} 16. 17.// 清楚工程的任務 18.task clean(type: Delete) { 19. deleterootProject.buildDir 20.}
模塊中的build.gradle佈局
1.// 這表示該module是一個app module 2.apply plugin:'com.android.application' 3.android { 4. //基於哪一個版本編譯 5. compileSdkVersion23 6. // 基於哪一個構建工具版本進行構建的 7. buildToolsVersion"23.0.3" 8. 9. // 缺省配置主要包括:應用ID,最小SDK版本,目標SDK版本,應用版本號、應用版本名 10. defaultConfig{ 11. applicationId"open_open.com.helloworld" 12. minSdkVersion 10 13. targetSdkVersion 23 14. versionCode 1 15. versionName "1.0" 16. } 17. 18. // buildTypes是構建類型,經常使用的有release和debug兩種,能夠在這裏面啓用混淆,啓用zipAlign以及配置簽名信息等。 19. buildTypes{ 20. release { 21. minifyEnabled false 22. proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro' 23. } 24. } 25. 26.} 27. // dependencies它定義了該module須要依賴的jar,aar,jcenter庫信息。 29.dependencies { 30. compilefileTree(dir: 'libs', include: ['*.jar']) 31. testCompile'junit:junit:4.12' 32. compile'com.android.support:appcompat-v7:23.2.1' 33.}