日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

爱上Android之选择您的开发工具

發布時間:2025/6/15 Android 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 爱上Android之选择您的开发工具 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文摘自人民郵電出版社異步社區《愛上Android》


京東地址:item.jd.com/12144527.ht…
試讀地址:www.epubit.com.cn/book/detail…

第2章 選擇您的開發工具

工欲善其事,必先利其器。選擇一個好的IDE可以大幅提高開發效率,節省下的時間可以去多學習新知識,多陪陪家人。接下來就手把手領著大家把開發環境搭建起來。


2.1 準備軟件,認識Android Studio


之前開發Android一般用Eclipse+ADT插件,但是Google已經停止維護ADT了,本書鄭重地建議大家,不要用Eclipse開發了,改用Android Studio開發。


當然Android程序大部分是使用Java語言開發的,所以安裝Java環境是必須的,需要大家下載JDK,目前最新版本是JDK 8。需要注意的是,大家必須準備JDK 7以上的版本(如果使用的是Android Studio 2.1以上的版本,必須準備JDK 8以上),否則達不到Android Studio的安裝要求,建議準備JDK 8(可以使用lambda語法)。如果是64位操作系統,建議安裝64位的JDK;如果是32位操作系統,只能安裝32位的JDK。


在Windows操作系統中右鍵單擊我的電腦→屬性就可以查看當前系統的位數。


JDK下載方式非常簡單,直接用百度搜索JDK的下載網站,下載下來直接打開,一直點擊下一步按鈕就可以安裝成功。


上面都不是重點,大家如果有Java基礎,這些應該都會了;如果沒有Java基礎,最好先了解一下Java,接下來就進入重點,了解一下Android Studio。


2.1.1 什么是Android Studio


Android Studio是一個基于IntelliJIDEA的新的Android開發環境。與Eclipse ADT插件相似,Android Studio提供了集成的Android開發工具,用于開發和調試。


Android Studio于2013年5月16日在谷歌I/O大會正式對外發布,Google希望Android Studio能讓應用開發更簡單、高效。


Windows、Mac OS X、Linux三大平臺全部支持。


2015年年底,Google開發者大會期間推出了Android Studio 2.0,讓Android Studio編譯和運行速度提高了50倍。


Android Studio 2.2完美兼容了NDK開發,可以完全擺脫ADT。


2.1.2 為什么使用Android Studio


原因一:Android Studio是谷歌開發的,專門為Android開發量身定做的編輯器。


原因二:Android Studio最核心的功能就是智能代碼編輯器,它能幫助我們非常高效地完成代碼補全、重構和代碼分析。做過開發的讀者都知道,沒有代碼提示,估計 90%以上的人就不會寫代碼了。


原因三:Android Studio的速度更快、更加智能,集成了版本控制系統、代碼分析工具、UI編輯器、Gradle構建工具、Android Monitor、模擬器、各種模板和示例等,還有各種強大的插件支持。


原因四:谷歌宣布將在2015年年底前停止對Eclipse Android開發工具的一切支持,包括ADT插件、Ant構建系統、DDMS、Traceview與其他性能和監控工具。


有了上面這四大原因,你還有什么理由不用Android Studio?


2.2 安裝Android Studio


2.2.1 安裝配置要求


現在的電腦配置越來越高,圖 2-1 所列的配置要求基本上很容易就能達到了。如果你的電腦配置不滿足這些要求,就需換臺電腦了。



▲圖2-1 需要滿足的基本系統要求

2.2.2 下載地址

官方下載地址:


官網:developer.android.com/sdk/index.h…


中文官網:developer.android.google.cn/studio/inde…


官網打開樣式如圖2-2所示,這里提供了三大平臺的安裝包,選擇對應的平臺進行下載。



▲圖2-2 Android Studio

采用官方鏈接,可以直接下載全部安裝包,里面主要包含Android Studio安裝包和Android開發SDK(開發工具包)。當然也可以分開下載。


2.2.3 安裝JDK


首先需要下載JDK,安裝完成JDK,配置JDK環境變量。下面以Windows平臺為例進行演示。


右鍵單擊我的電腦→屬性→環境變量,配置JAVA_HOME環境變量。


參考如圖2-3和圖2-4所示的內容。



▲圖2-3 配置環境變量

2.2.4 安裝Android Studio

安裝過程中的簡單操作在這就不進行截圖講解了,因為只需要點擊Next按鈕。


本文使用“包含SDK”的安裝文件進行講解,其中包含了“不包含SDK(軟件開發工具包)的安裝文件”的安裝步驟。如果使用“不包含SDK的安裝文件”進行安裝,安裝步驟只會比這些步驟少。


如果使用壓縮包安裝,直接解壓縮就可以用了。本節內容可直接跳過。


步驟1


如圖2-5所示,第一個選項:Android Studio程序,必選。第二個選項:Android SDK(安卓開發工具包),如果電腦中已經存在Android SDK,可以不勾選。第三個選項和第四個選項都和虛擬機有關系,如果不使用虛擬機或者SDK中的虛擬機,可以不勾選。



▲圖2-4 配置環境變量


▲圖2-5 步驟1

步驟 2


如圖2-6所示,選擇Android Studio和Android SDK的安裝目錄。



▲圖2-6 步驟2

步驟 3


如果在步驟1中勾選了HAXM(也就是第四個選項,HAXM為虛擬機提供加速服務),就會出現這一步。


需要根據自己機器的內容大小來設置這個值,一般建議默認即可,如圖2-7所示。



▲圖2-7 步驟3

步驟 4


如圖2-8所示,Android Studio的運行需要VC++環境,Android Studio在安裝的過程中會自動安裝。這也是為什么建議使用安裝包的原因。


如果電腦中使用殺毒類的軟件,就會禁止安裝VC++環境,請注意。



▲圖2-8 步驟4

步驟 5


一般不出意外,就會看到如圖2-9所示的界面。說明Android Studio已經安裝成功了。



▲圖2-9 步驟5

接下來是運行Android Studio。


前提準備工作:安裝JDK并配置JDK環境變量。


請使用傳統的JAVA_HOME環境變量名稱。很多人會被提醒JVM或者JDK查找失敗,幾乎都是因為JDK版本或者沒有使用JAVA_HOME這個環境變量名稱的原因。


步驟 6


每一次安裝都會顯示如圖2-10所示的界面,用以選擇導入Android Studio的配置文件。



  • 第一個選項:使用以前版本的配置文件夾。
  • 第二個選項:導入某一個目錄下的配置文件夾。
  • 第三個選項:不導入配置文件夾。


▲圖2-10 步驟6

如果以前使用過Android Studio,可以選擇到以前的版本。如果是第一次使用,可以選擇第三項。


步驟 7


這是在檢查Android SDK。安裝時有時會在這里等上很長時間,很大的原因就是:網絡連接有問題。可以通過配置hosts的方式來解決。如果檢查需要更新,則會允許安裝,如圖2-11所示。



▲圖2-11 步驟7

如果想跳過這一步,可以進行如下操作。


在 Android Studio 安裝目錄下的 bin 目錄下,找到 idea.properties 文件,在文件最后追加disable.android.first.run=true。


步驟 8


如果看到如圖2-12所示的界面,就說明需要更新Android SDK。建議進行更新。


步驟 9


如圖2-13所示,選擇安裝更新Android SDK。第一個選項表示全選,第二個表示自定義。



▲圖2-12 步驟8


▲圖2-13 步驟9

步驟 10


如果步驟9中選擇第一個選項,就會顯示如圖2-14所示的界面。選擇Accept,點擊Finish進行安裝即可。



▲圖2-14 步驟10

步驟 11


如果步驟9中選擇第二個選項,就會顯示如圖2-15所示的界面。需要選擇一個安裝目錄,需要注意的是:這個目錄中不能包含空格以及漢字。不建議使用默認的%APPDATA%目錄。點擊Next后可以看到類似步驟10的頁面,選擇Accept,點擊Finish進行安裝。



▲圖2-15 步驟11

步驟 12


當更新完Android SDK,就會看到如圖2-16所示的界面。直到這個界面才說明,可以使用Android Studio了。



▲圖2-16 步驟12

選項1:創建一個Android Studio項目。

選項2:打開一個Android Studio項目。

選項3:導入官方樣例,會從網絡上下載代碼。此功能在以前的測試版本中是沒有的,建議多看一看官方給的范例。

選項4:從版本控制系統中導入代碼。支持CVS、SVN、Git、Mercurial,甚至GitHub。

選項5:導入非Android Studio項目。比如Eclipse Android項目、IDEA Android項目。如果Eclipse項目使用官方建議導出(即使用Generate Gradle build files的方式導出),建議使用選項2導入。

選項6:設置。

選項7:幫助文檔。

如果一些選項不能點擊,說明JDK或者Android SDK目錄指向有問題,請看下面的設置JDK或者Android SDK目錄。


2.2.5 設置JDK和Android SDK目錄


有時運行Android Studio會提醒JDK或者Android SDK不存在,需要重新設置。此時就需要到全局的Project Structure頁面下進行設置。進入全局的Project Structure頁面方法如下。


方法 1


如圖2-16所示,選擇Configure→ProjectDefaults→Project Structure。


方法 2


如圖 2-17 所示,進入 Android Studio 開發界面,選擇 File→OtherSettings→Default Project Structure。



▲圖2-17 Android Studio開發界面

方法1和方法2都會進入Project Structure界面,如圖2-18所示,在此頁面下設置JDK或者Android SDK目錄即可。NDK暫時不需要。



▲圖2-18 設置SDK和JDK

建議大家把SDK目錄里的...\sdk\platform-tools這個路徑加入到PATH環境變量中,如圖2-19所示,方便在命令提示符中使用ADB指令。



▲圖2-19 配置環境變量,圖中為Windows 10系統

2.3 項目的創建

安裝好了開發環境,終于可以創建Android項目了。這可是你成為高手的第一步。接下來介紹創建項目的步驟和出現錯誤時的解決方法。


前期部分章節贈送教學視頻。視頻主要為了新手更方便熟悉基本操作。



 


2.3節、2.4節、2.5節、2.6節對應的視頻地址為:v.youku.com/v_show/id_X… MzA0MA==.html(建議改成超清模式觀看)。



2.3.1 創建項目的步驟


步驟 1  開始創建工程


如圖2-20所示,點擊Start a new Android Studio project就可以創建第一個項目了。



▲圖2-20 步驟一,創建Android項目

步驟 2  設置基本信息


如圖 2-21 所示,這一步主要設置項目中最基本的信息,包括項目的名字、項目的唯一標示包名和項目存放的地址。需要注意的是,存放工程的目錄不要有中文或者空格。添加C++支持暫時忽略。



▲圖2-21 創建工程

點擊Next進入選擇設備界面。


步驟 3  選擇設備


如圖2-22所示,Android系統覆蓋面太廣了,既可以開發和手機平板電腦,也可以開發手表、電視,甚至汽車眼鏡,以后種類還會越來越多。學習階段都是以手機為主,我們選擇手機就可以了。



▲圖2-22 選擇設備

關于最低兼容的版本,我們選擇不同版本的SDK,設備覆蓋率會有相應的變化,SDK版本越低,設備覆蓋率就越高。如果想支持更多的設備,就不得不選擇低版本的SDK。


點擊Next進入選擇Activity模板界面。


步驟 4  選擇 Activity 模板


Activity直接翻譯過來是活動的意思。在Android開發中,Activity是用來顯示界面的,是傳說中Android四大組件之一(四大組件還包括廣播接受者、內容提供者、服務)。


Android Studio為我們提供了常用的Activity模板,可以選擇更加快捷的創建。其實這些不同的模板大同小異,里面自動生成了不同的模板代碼。在學習階段,建議大家選擇 Empty Activity,這是一個空的界面,我們可以通過自己的雙手創建出來不同的界面,如圖2-23所示。



▲圖2-23 選擇Activity模板

點擊Next進入設置Activity信息的界面


步驟 5  設置 Activity 信息


如圖2-24所示,這一步設置Activity和布局的名字。一般Activity的名字都是以Activity為



▲圖2-24 定制Activity

后綴結束,表示這個類是Activity的子類,也就是姓Activity(老外習慣姓在后面)。布局文件并不是Java中的類,它是XML文件,其作用就是為了輔助我們開發界面。


主流的Android開發就是采用Java+XML進行的。


Backwords Compatibility(AppCompat) 選項一般勾選,勾選創建的 Activity 默認繼承AppCompatActivity,為了是兼容Android 5.0以下的低版本Android系統。可以讓低版本使用新版本的一些特性。


點擊Finish就完成創建項目了。當然還需要等待一會,如圖2-25所示。



▲圖2-25 項目生成中

2.3.2 解決錯誤(沒有錯誤最好)

第一次創建項目的時候可能會發生些錯誤。錯誤的原因最多的就是SDK版本太高或者太低。


列舉幾個作者碰到的錯誤。


錯誤 1


如圖2-26所示,這個錯誤原因是Gradle插件(Android是通過Gradle打包編譯的)太舊了。解決辦法有兩種。



▲圖2-26 錯誤1

(1)舊的不去,新的不來。升級Gradle插件,舊的就不要了。這個需要下載新的,然后進行配置。


(2)直接用舊的,但需要修改build.gradle文件。這個比較簡單,適合比較專一的人。具體修改方法如下。


如圖2-27所示,先找到工程下的build.gradle文件,找到里面的配置,把里面的配置改低點,改成1.2.3或者1.5.0,雖然有些新特性可能用不了,但是足夠我們用的了。



▲圖2-27 修改1

備注:最新版本已經不是2.0.0-alpha1了,解決方式是通用的。


錯誤 2


如圖2-28所示,這個錯誤指的是工程無法解析對應的函數庫。碰到這種情況不要害怕,Android Studio提供了解決方案。點擊Install Repository and sync project,然后安裝對應的函數庫即可。



▲圖2-28 錯誤2

備注:圖片只是為了演示錯誤,新創建工程默認不會加載recycleview-v7這個庫,目前新創建工程會加載。


圖中'com.android.support:appcompat-v7:XXXX'(這個位置看不懂沒關系,后面會講到)。



讀者在創建工程時碰到的問題可以反饋給我。我盡量幫你解決,同時我也會把問題的解決方式同步到電子書里。



2.4 Android Studio界面預覽


創建完了工程,接下來預覽開發環境的界面,如圖2-29所示。



▲圖2-29 界面預覽

Gradle同步按鈕為,當我們修改工程中后綴名為Gradle的文件時,需要點擊此按鈕才能生效。


Gradle同步按鈕右側的是工程配置按鈕,對工程進行配置需要點擊它。


圖中視圖切換按鈕的作用是可以根據個人喜好切換到不同的視圖。常用的視圖為Project和Android,如圖2-30所示。



▲圖2-30 視圖切換按鈕

2.5 常用設置

點擊菜單File→Setting進入設置界面,可以根據自己的偏好進行一些設置。如果喜歡系統默認的設置,此節可以跳過。


備注:Mac版本的Android Studio看不到此按鈕,可通過點擊頂部菜單Android Studio→Preferences調出來,下面大家自行轉換。


2.5.1 設置主題


默認的Android Studio為灰白色界面,可以選擇使用炫酷的黑色界面,如圖2-31所示。



▲圖2-31 設置主題

選擇Settings→Appearance→Theme進入界面,勾選Darcula主題即可。


2.5.2 設置字體和格式


1.設置系統字體


如圖2-32所示,如果Android Studio界面中的中文顯示有問題,或者選擇中文目錄顯示有問題,或者想修改菜單欄的字體,就可以這么設置:


Settings→Appearance,勾選Override default fonts by (not recommended),選擇一款支持中文的字體即可。本書使用的是微軟雅黑,效果不錯。



▲圖2-32 設置字體

2.設置編程字體

如圖2-33所示,此部分會修改編輯器的字體,包含所有的文件顯示的字體。



▲圖2-33 設置編程字體

選擇Settings→Editor→Colors & Fonts→Font。默認系統顯示的Scheme為Defualt,此處是不能編輯的,需要點擊右側的Save As...,保存一份自己的設置,并在當中設置。之后,在Editor Font中即可設置字體。


Show only monospaced fonts表示只顯示等寬字體。一般來說,等寬字體在編程中使用較多,且效果較好。


3.設置字體顏色


在Settings→Editor→Colors & Fonts中還可以設置字體的顏色,根據要設置的對象選擇設置,也可以從網絡上下載字體顏色設置包,導入到系統中。


4.設置代碼格式


如果想設置代碼格式化時顯示的樣式,就可以這么設置:


Settings→Code Style。同樣的,Scheme中默認的配置無法修改,需要創建一份自己的配置。


2.5.3 設置文件編碼


無論是個人開發,還是項目組團隊開發,都需要統一文件編碼。出于字符兼容的問題,建議使用UTF-8。大部分Windows系統默認的字符編碼為GBK。


選擇Settings→File Encodings。建議將IDE Encoding、Project Encoding、Properties Fiels都設置成統一的編碼,如圖2-34所示。



▲圖2-34 設置文件編碼格式

2.5.4 設置快捷鍵

Android Studio的快捷鍵和Eclipse(學習過Java的應該都接觸過)的不相同,但是通過設置就可以在Android Studio中使用Eclipse的快捷鍵。


選擇Settings→Keymap。可以從Keymap中選擇對應IDE的快捷鍵,如圖2-35所示。



▲圖2-35 快捷鍵

無論是否選擇Keymap映射,都需要修改一個快捷鍵,就是代碼提示的快捷鍵。Android Studio中代碼提示的快捷鍵是Ctrl+Space,這個按鍵和切換輸入法沖突。


選擇Main menu→Code→Completion→Basic,更改為想替換的快捷鍵組合,推薦為Alt+/,如圖2-36所示。



▲圖2-36 修改快捷鍵

2.5.5 其他設置

如圖2-37所示,為了方便大家開發,推薦大家設置編輯區域和顯示行號。



▲圖2-37 其他設置

1.設置Android Studio編輯區域

代碼在編輯區域中部會有一條豎線。這條線是用以提醒程序員,一行的代碼長度最好不要超過這條線。如果不想顯示這條線,可以這么設置:


Settings→Editor→General→Appearance,取消勾選Show right margin (configured in Code Style options)。


2.顯示行號


選擇Settings→Editor→General→Appearance,勾選Show line numbers。


2.6 常用快捷鍵


下面以Windows/Linux電腦為例講解常用快捷鍵。Mac電腦的快捷鍵大部分類似,只需要把Ctrl替換成Cmd,Alt替換成Option。


默認快捷鍵如下。


Ctrl + D:復制光標所在行代碼到下一行。


Ctrl + Y:刪除光標所在位置那行代碼(Mac電腦為Cmd+Delelte)。


Alt+Enter:導入包,快速修復。


Ctrl+/:當行注釋,反注釋再按一次即可。


Ctrl+Shift+/:模塊注釋,反注釋再按一次即可。


Alt+Insert:可以生成構造器/Getter/Setter等。


Ctrl+Alt+V:生成方法返回值。


Ctrl+E:查看最近打開過的文件。


Eclipse映射后區別不大。


Ctrl+Shift+↓:復制光標所在行代碼到下一行。


Ctrl+D:刪除光標所在位置那行代碼。


Alt+Enter:導入包,快速修復。


Ctrl+/:當行注釋,反注釋再按一次即可。


Ctrl+Shift+/:模塊注釋,反注釋再按一次即可。


Alt+Insert:可以生成構造器/Getter/Setter等。


Ctrl+Alt+V:生成方法返回值。


Ctrl+E:查看最近打開過的文件。


2.7 Android工程目錄


熟悉了Android Studio開發環境,接下來介紹大家比較關心的問題。進行Android開發時,當然需要熟悉Android工程目錄結構,主要需要了解Android目錄結構和Gradle文件的內容結構。



 


本節對應的視頻地址為:v.youku.com/v_show/id_X…



2.7.1 工程目錄介紹


如圖2-38所示,首先需要切換成Project視圖,然后整個項目結構就在我們眼前了。


我們重點介紹使用的Android項目結構如圖2-39所示。



▲圖2-38 項目結構


▲圖2-39 項目結構,框中的經常使用

注意,res目錄下的所有文件不允許出現大寫字母,也不允許使用Java關鍵字命名。


2.7.2 Gradle使用詳解


Android Studio通過Gradle腳本進行打包運行程序。


Gradle 所有文件結構


Android工程目錄下有一個build.gradle,運行的module里也有一個build.gradle。


settings.gradle


settings.gradle表示當前運行的程序是app,如果還需要在工程中添加其他運行的程序,就需要在settings.gradle中進行配置。


build.gradle


build.gradle中設置了Gradle的版本、依賴的倉庫。


2.7.3 app/build.gradle


app/build.gradle文件在開發過程中可能修改的次數比較多。下面我們重點介紹。


apply plugin: 'com.android.application'//應用Android應用插件
android {
compileSdkVersion 25 //編譯SDK(Software Development Kit)的版本
buildToolsVersion "25.0.2" //構建工具的版本

defaultConfig {
applicationId "com.baidu.myapplication" //應用的唯一標示
minSdkVersion 15 //最低兼容的版本
targetSdkVersion 25 //目標版本兼容的版本
versionCode 1 //版本號,數字版本號
versionName "1.0" //字符串版本號
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes { //構建類型
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies { // 指明項目中依賴的第三方函數庫
compile fileTree(dir: 'libs', include: ['.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:25.1.0'
}復制代碼

下面分別進行解釋。


1.Android腳本


這個不能刪。它的作用就是讓其余的腳本代碼都有用。


apply plugin: 'com.android.application'//應用Android應用插件復制代碼

2.Android配置


表明編譯的版本和編譯工具的版本。必須保證SDK(開發工具包,馬上就會介紹到)有這個版本。


compileSdkVersion 25 //編譯SDK(Software Development Kit)的版本
buildToolsVersion "25.0.2" //構建工具的版本復制代碼

3.運行程序的配置


其包括applicationId(程序的包名,也就是程序的唯一標示)、兼容的最低版本(minSdkVersion)和目標版本(targetSdkVersion)。這些都在創建項目的時候指定了,可以在這個位置修改。還有當前程序的版本號(versionCode)和版本名字(versionName),其中版本號是整數,隨著項目的升級遞增,版本名字是字符串,并沒有太嚴格的限制。


defaultConfig {
applicationId "com.baidu.myapplication" //應用的唯一標示
minSdkVersion 15 //最低兼容的版本
targetSdkVersion 25 //目標版本兼容的版本
versionCode 1 //版本號,數字版本號
versionName "1.0" //字符串版本號
}復制代碼

4.buildTypes


程序在發布的時候可以混淆代碼,可以保護代碼,不會被其他人輕易破解。


buildTypes { //構建類型
release {
minifyEnabled false //是否混淆代碼 false不混淆
// 混淆代碼配置文件
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}復制代碼

其實,buildType主要的目的是可以根據不同的版本設置不同的參數。進行不同的配置。開發過程分為調試階段和正式發布階段,可以通過buildType在不同的階段設置不同的參數,如下面的代碼:


debug {
buildConfigField "String", "API_URL", "\"test.baidu.com\""
buildConfigField "boolean", "LOG_CALLS", "true"
resValue "string", "str_name", "Example DEBUG"
}
release {
buildConfigField "String", "API_URL", "\"www.baidu.com\""
buildConfigField "boolean", "LOG_HTTP_CALLS", "false"
resValue "string", "str_name", "Example"
...
}復制代碼

調試階段就是debug,正式發布就是release,里面分別設置了不同的3個參數。這3個參數可以通過代碼調用:


String url=BuildConfig.API_URL;
boolean log_calls=BuildConfig.LOG_CALLS;
int stringid=R.string.str_name;復制代碼

5.dependencies


這個用來指明項目中依賴的函數庫,目前項目創建默認需要依賴appcompat-v7(版本不一定和書中一致),里面提供了很多API,既可以使用高版本的特效,也能兼容低版本,何樂而不為呢?


dependencies { // 指明項目中依賴的第三方函數庫
// 依賴程序中jar包
compile fileTree(dir: 'libs', include: ['復制代碼.jar'])
// 單元測試相關的
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:25.1.0'
}復制代碼

2.8 SDK目錄介紹



 


本節對應的視頻地址為:v.youku.com/v_show/id_X…



1.什么是 SDK


首先需要明白一個概念,SDK全稱是Software Development Kit,翻譯過來就是軟件開發工具包。它是開發程序必不可少的。在安裝Android Studio后必須要安裝SDK,否則不能創建項目。如果用官方默認的安裝包,默認是安裝SDK的。


2 . SDK 目錄(見圖 2 - 40 )


注:Mac系統默認在~/Libary/Android目錄下。



▲圖2-40 SDK目錄

(1)add-ons中保存著附加庫,比如GoogleMaps。


(2)build-tools編譯。


(3)docs中是Android SDKAPI參考文檔,所有的API都可以在這里查到。


(4)extras:額外的jar包之類的。


(5)platforms是每個平臺的SDK真正的文件,里面會根據APILevel劃分SDK版本。


(6)platform-tools保存著一些通用工具,比如adb、aapt、aidl、dx等文件。這里和platforms目錄中的tools文件夾有些重復,主要是從Android 2.3開始這些工具被劃分為通用了。


(7)samples是Android SDK自帶的默認示例工程,強烈推薦初學者學習里面的apidemos。


(8)source是Android系統源碼。


(9)tools作為SDK根目錄下的tools文件夾,包含了重要的工具,比如ddms用于啟動Android調試工具,還有logcat、屏幕截圖和文件管理器;draw9patch是繪制Android平臺的可縮放png圖片的工具;sqlite3可以在PC上操作SQLite數據庫;monkeyrunner是一個不錯的壓力測試應用,模擬用戶隨機按鍵;mksdcard是模擬器SD映像的創建工具;emulator是Android SDK模擬器主程序,不過從Android 1.5開始,需要輸入合適的參數才能啟動模擬器;traceview作為Android平臺上重要的調試工具。


(10)system-images:鏡像。


(11)AVD Manager:模擬器管理者。


(12)SDK Manager:SDK管理者,可以用它下載升級SDK。


2.9 調試程序


了解了這么多,其實大家最關心的是如何把程序部署到手機中。這樣大家就可以拿自己寫的手機程序跟朋友炫耀了。



怎么部署到手機呢



點擊就可以把程序部署到手機中。


前提是,需要有個Android手機,當然沒有手機也沒有關系,Google工程師提供了模擬器,可以模擬Android手機環境。


2.9.1 創建模擬器


參照圖2-41和圖2-42,首先點擊模擬器按鈕,然后點擊創建模擬器,選擇對應的設備。



▲圖2-41 步驟1創建模擬器


▲圖2-42 步驟2創建模擬器

使用默認的設備,點擊Next,選擇一個系統映像,如圖2-43所示。



▲圖2-43 步驟3選擇鏡像

點擊Next,進入核對配置界面,如圖2-44所示。



▲圖2-44 步驟4確認配置

最后點擊Finish就創建成功了,如圖2-45所示。



▲圖2-45 創建成功

點擊啟動按鈕就可以啟動模擬器。


目前新版Android模擬器速度非常快,但是比較耗費內存。


2.9.2 連接真實手機


當然,也可以連接自己的真實手機。


如圖2-46所示,進入手機設置中,進入開發者選項,勾選USB調試。然后用數據線連接上電腦,就可以調試了。當然,第一次部署需要用手機授權允許該電腦調試。



▲圖2-46 打開USB調試

備注:Android 4.4以上的手機系統默認是不顯示開發者選項這個按鈕的,默認需要連續點關于手機頁中的版本號。


2.9.3 Genymotion模擬器


如果大家不想用真實的手機,也不想用Android原生的模擬器,推薦大家用Genymotion模擬器(見圖2-47),這個模擬器的速度很驚人。不過,Genymotion安裝起來稍微麻煩,需要先安裝Oracle VM VirtualBox,然后安裝Genymotion,最后注冊Genymotion賬號,再下載模擬器。注冊和下載都需要訪問境外服務器,非常不穩定。本書提前給大家整理好了Windows版的Oracle VM VirtualBox和Genymotion的安裝包,也給大家提供了部分虛擬機,大家可以直接雙擊虛擬機導入Oracle VM VirtualBox中。



▲圖2-47 Genymotion模擬器

鏈接:pan.baidu.com/s/1i4fXwCt,…


備注:Win10操作系統中,Oracle VM VirtualBox和Genymotion需要用Win8/Win7兼容性,以管理員身份運行。


2.10 程序啟動分析


了解了如何調式程序,接下來分析項目是如何運行起來的。首先來看app/src/main/AndroidManifest.xml
這個文件:


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="schemas.android.com/apk/res/and…"
package="com.baidu.myapplication" >

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme" >
<activity android:name=".MainActivity"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>復制代碼

AndroidManifest.xml文件俗稱清單文件,可以簡單理解為是當前應用的配置文件。該文件可以配置應用權限和四大組件(包括Activity、廣播接受者、服務、內容提供者),Activity必須在清單文件中注冊,否則不能直接顯示。


其中,intent-filter里的兩行代碼非常重要,<action android:name="android.intent.action.MAIN" />和<category android:name="android.intent.category.LAUNCHER" />表示MainActivity是這個項目的主Activity,在手機上點擊應用圖標,首先啟動的就是MainActivity。


接下來再看MainActivity:


package com.baidu.myapplication;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
// 首先啟動onCreate方法
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//設置界面顯示的布局
setContentView(R.layout.activity_main);
}
}
復制代碼

首先可以看到,MainActivity繼承自AppCompatActivity,這是一個特殊的Activity,也具備Activity的特性。


當程序運行的時候,首先會根據上面清單文件的配置運行MainActivity,然后就會調用MainActivity的onCreate方法,這個方法率先調用。而MainActivity在這個方法中加載了布局setContentView(R.layout.activity_main);


這時候可能有人會問:R.layou.activity_main是什么?R又是在哪來的?


其中,R代表res目錄,layout就是res目錄下的布局目錄。R是自動生成的類,用來連接res目錄下的資源和Java代碼,這個位置相當于引入了activity_main這個布局文件。如果res目錄下有錯誤,R就不會生成了,代碼中就會有錯誤。


之前給大家介紹過,凡是在應用中看得到的東西,都是放在Activity中,而這個布局就是當前界面程序顯示的樣子:


再來看布局文件src/main/res/layout/activity_main.xml:


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="schemas.android.com/apk/res/and…"
xmlns:tools="schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.baidu.myapplication.MainActivity">
<!--TextView用來顯示文本的控件-->
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
/>
</RelativeLayout>復制代碼

如圖2-48所示,點擊Design按鈕可以查看預覽界面,或者直接運行到手機也可以看到一樣的界面。其中,TextView 就是最簡單的一個控件,用來顯示文本,上面代碼中的 android:text 屬性就是控制顯示的內容。



▲圖2-48 預覽界面

簡單總結下:項目啟動首先需要讀取清單文件AndroidManifest.xml,然后找到主Activity,調用主Activity的onCreate方法,加載布局顯示到手機中,大功告成。


2.11 日志和注釋


開發任何程序時,有兩點是萬萬不能少的:一是注釋,二是日志的輸出。學習Android開發之前首先需要掌握這兩點。下面來介紹注釋的使用和日志的輸出。


本節對應的視頻地址為:v.youku.com/v_show/id_X…


2.11.1 注釋


大部分Android程序都采用Java代碼,代碼中的注釋和Java代碼是一樣的。XML文件注釋采用<!---->進行注釋,如下:


<!--XML文件注釋-->

// java 行注釋

/
注釋 /

/*
文檔注釋 /復制代碼

好的注釋會讓你維護程序事半功倍。大家在學習的階段一定養成先寫注釋再寫代碼的習慣。


2.11.2 日志


注釋寫法相對比較簡單,重點看一下在Android中如何輸日志。首先需要明白日志是給程序員自己看的,使用軟件的人一般是看不到的。


如圖2-49所示,可以借助Android Monitor工具查看日志,默認快捷鍵:Alt+6。



▲圖2-49 日志

從上面的圖片可以看到,日志具有不同的日志級別,包括:Verbose、Debug、Info、Warn、Error、Assert。以上級別依次升高。每條日志都有進程信息,默認一個應用程序占一個進程。每條日志都有標簽。


磨刀不誤砍柴工,學習開發前首先需要了解如何輸出日志。


Android中的日志工具類是Log(android.util.Log),這個類中提供了如下方法來供我們打印日志。


(1)Log.v()對應級別Verbose。


(2)Log.d()對應級別Debug。


(3)Log.i()對應級別Info。


(4)Log.w()對應級別Warn。


(5)Log.e()對應級別Error。


(6)Log.wtf()對應級別Assert。


當然System.out.println方法也可以輸出日志,這個方法在Java中使用的比較多,在Android中并無明顯優勢,因為它不能控制日志的標簽,查詢起來比較麻煩。


直接在onCreate方法中演示這幾個方法,Log.XXX()中第一個參數就是日志的標簽,推薦大家指定當前的類名,方便查找:


Log.v("MainActivity","v");
Log.d("MainActivity","d");
Log.i("MainActivity","info");
Log.w("MainActivity","w");
Log.e("MainActivity","e");
Log.wtf("MainActivity","wtf");
System.out.print("out");復制代碼

寫完代碼,運行查看結果,如圖2-50所示。



▲圖2-50 輸出結果

大家發現Syste.out.println的標簽是System.out,級別是INFO級別。


注意,Android Studio每個級別默認的不是這個顏色,默認的顏色太難看,不方便區別級別,我們需要自己改一下。


2.11.3 設置Android Studio日志顯示顏色


如圖2-51和圖2-52所示,選擇File→Settings或按Ctrl + Alt +S組合鍵進入設置界面,找到Editor→Colors &Fonts→Android Logcat或在上面的搜索框中輸入Logcat點中Verbose、Info、Debug等選項,然后在后面將Use Inberited attributes去掉勾選,再將Foreground前的復選框選上,就可以雙擊后面的框去選擇顏色了,選擇Apply→OK。



▲圖2-51 修改日志顏色

對應的顏色值:




  • VERBOSE BBBBBB
  • DEBUG 0070BB
  • INFO 48BB31
  • WARN BBBB23
  • ERROR FF0006
  • ASSERT 8F0005

在實際開發的過程中,我們會經常看到程序輸出的日志,其中很多并不是我們主動輸出的。這些日志就像我們去醫院化驗的結果單子一樣。如果發現警告或者以上級別的日志,就需要留意了,你的程序有潛在風險或者嚴重問題,需要根據日志內容進行修復。



▲圖2-52 修改日志顏色

2.11.4 實際開發中控制日志

輸出日志很簡單,怎么控制日志的輸出就值得研究下了,日志是用來調試程序的,當程序發布后日志就變得一無是處了。所以輸出日志的原則就是:


程序開發階段允許輸出日志,發布后不允許打印日志。


如何去控制呢?如果在上線前手動刪除所有日志,這個工作量就很大了。


方法 1 :創建 LogUtils


可以創建一個LogUtils工具類:


public class LogUtils {
public static final boolean DEBUG=true;

public static void i(String tag,String msg){
if(DEBUG) {
Log.i(tag, msg);
}
}
}
復制代碼

在程序中都是用Logutils的方法輸出日志:


LogUtils.i("MainActivity","LogUtils");復制代碼

這樣就可以通過LogUtils中DEBUG變量去控制日志的輸出,當程序調試時,把這個值改為true;程序發布了,就把這個值改成false。這樣就可以實現我們一開始的需求。


然而,這樣的話,我們還需要在發布前夕手動地去改代碼,能不能在發布前不改代碼呢?這時候就要借助Gradle了,Android Studio集成了Gradle,這一點非常棒。可以參考之前介紹的內容,打開app/build.gradle這個文件,做一個配置:


buildTypes {
debug{ // 開發階段
buildConfigField "boolean", "LOG_CALLS", "true" // 定義了boolean變量 true
}
release { // 發布了
buildConfigField "boolean", "LOG_CALLS", "false"
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}復制代碼

可以在buildType中配置一些全局變量,可以是String類型,也可以是boolean,這里用到的就是LOG_CALLS這一個boolean類型變量,注意,debug{ ...}指的是程序開發階段,release{ }指的是程序發布階段。我們在開發和發布階段分別定義了對應不同值的LOG_CALLS,接下來就可以在LogUtils中使用這個全局變量了:


public class LogUtils {
public static final boolean DEBUG=BuildConfig.LOG_CALLS;

public static void i(String tag,String msg){
if(DEBUG) {
Log.i(tag, msg);
}
}
}
復制代碼


其中,BuildConfig.LOG_CALLS就是我們在上面定義的變量,這個變量在開發階段是true,發布階段自動就變成了false。我們這樣就干了一個一勞永逸的事了。


方法 2 :混淆日志類


上面的方法還是比較麻煩,其實還有更簡單的方法。我們可以借助代碼混淆。簡單地說,代碼混淆就是把代碼進行混淆加密,讓盜取代碼的人難以讀懂。


首先開啟代碼混淆:


release {
minifyEnabled true //是否混淆代碼 false不混淆
// 混淆代碼配置文件
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
復制代碼

混淆的腳本默認是在工程目錄下的proguard-rules.pro文件中添加的,添加如下代碼:


-assumenosideeffects class android.util.Log {
public static boolean isLoggable(java.lang.String, int);
public static int v(...);
public static int i(...);
public static int w(...);
public static int d(...);
public static int e(...);
}
復制代碼

assumenosideeffects的官方解釋就是,混淆器將刪除這些方法(如果在程序中使用這些方法的返回值,則不會刪除。一般日志不關心返回值)。這樣,程序在發布階段將會混淆代碼,混淆的過程中就把日志輸出的方法給去掉了,程序就永遠不會輸出日志了。


2.11.5 Logger的使用


可以使用Logger這個開源框架輸出日志,如圖2-53所示。首先看看這個日志控制器輸出的界面,其排版工整,調理清晰。



▲圖2-53 使用Logger輸出日志

具體怎么使用呢?大家可以通過上面的Logger連接進入github主頁。當然這也是本書第一次介紹開源框架的使用。下面給新手簡單介紹下。


直接訪問app/build.gradle文件,額外添加logger的依賴:


dependencies { // 指明項目中依賴的第三方函數庫
...
compile '<strong>com.orhanobut:logger:1.15</strong>'
}復制代碼

然后單擊界面上的同步按鈕,如圖2-54所示,Android Studio就會自動下載logger1.15這個第三方的庫,非常方便。



▲圖2-54 同步按鈕

使用方法:


Logger輸出的日志方式要多一些,可以輸出JSON和XML格式。后面介紹講網絡傳輸的時候會對這種格式進行具體介紹。


// 默認標簽
Logger.d("hello");
Logger.e("hello");
Logger.w("hello");
Logger.v("hello");
Logger.wtf("hello");
//指定標簽
Logger.t("mytag").d("hello");復制代碼

總結


這一章,我們把學習Andorid開發的前期準備工作都做完了,包括環境搭建、熟悉環境、創建項目的步驟、項目結構、調試程序、日志輸出等。這一章相對麻煩,很多內容大部分人都不會想做第二遍了,當然也沒有必要做第二遍,比如環境搭建(我寫這一節的時候也很痛苦)。不過還是有一些重點需要掌握的,比如日志的輸出。


本章代碼下載地址:github.com/yll2wcf/boo…


如果代碼導入困難,讀者可參考我的博客中的文章www.jianshu.com/p/0e73ad2ea…


歡迎關注微信公眾賬號——于連林,搜索關鍵字:likeDev。




合抱之木,生于毫末;九層之臺,起于累土;千里之行,始于足下。

總結

以上是生活随笔為你收集整理的爱上Android之选择您的开发工具的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。