《第一行代碼》作為Android開發(fā)入門的經(jīng)典書籍,是我們非常好的閱讀選擇,初學(xué)者可以迅速了解相關(guān)知識败许,老司機也可以溫故知新鞏固基礎(chǔ)黎泣。筆者使用該書的第二版绊含,也就是綠色封面的第一章節(jié)《開始啟程》作為筆者讀書文集筆記的第一篇。
第一章關(guān)鍵詞:
Android簡介屈尼,Android架構(gòu)册着,Android搭建快速開發(fā)環(huán)境,Android Studio了解鸿染,日志工具Log使用
Android簡介:
目前是世界上市場占有率最高的移動操作系統(tǒng)指蚜,單純從軟件開發(fā)而言,包含電商涨椒,音視頻摊鸡,直播绽媒,物流,閱讀免猾,小說是辕,SDK等研究領(lǐng)域;軟硬件領(lǐng)域涉及包含猎提,車載系統(tǒng)获三,穿戴設(shè)備等等
Android的架構(gòu)分為:
1:Linux內(nèi)核層:
為Android設(shè)備的各種硬件提供了底層的驅(qū)動,比如顯示驅(qū)動锨苏,音頻驅(qū)動疙教,藍(lán)牙驅(qū)動,Wi-Fi驅(qū)動等等
2:系統(tǒng)運行層:
通過C/C++(又是萬能的C)為Android系統(tǒng)提供主要的特性支持伞租。如Squlite庫提供了數(shù)據(jù)庫的支持贞谓,OpenGL|ES提供3D繪圖的支持,Webkit庫提供瀏覽器內(nèi)核支持等等葵诈,還有Android運行時庫裸弦,允許使用Java語言編寫Android應(yīng)用(現(xiàn)在支持使用Kotiln)等等
3:應(yīng)用框架層:
構(gòu)建應(yīng)用程序使用到的各種API,自帶的一些應(yīng)用就是使用這些API完成的
4:應(yīng)用層:
也就是自己編寫的apk作喘,短信程序理疙,游戲之類應(yīng)用的程序等
Android搭建快速開發(fā)環(huán)境:
1:由于現(xiàn)在開發(fā)人員大都使用Java語言來編寫Android開發(fā)程序(雖然Kotlin語言的出現(xiàn)打破了現(xiàn)在的格局,但是Java依舊占據(jù)著主導(dǎo)開發(fā)地位)所以泞坦,JDK窖贤,配置環(huán)境變量,基本的CMD命令行暇矫,Java語言基礎(chǔ)主之,等基本內(nèi)容還是需要自己花時間去掌握的
2:Android SDK择吊,就是谷歌為Android提供的開發(fā)工具包李根,在Android Studio中,這個可以自己按照喜好和開發(fā)過程中依據(jù)實際情況去下載(截至目前几睛,筆者使用的Android Studio版本是3.0房轿,SDK的最高版本是8.0)
3:IDE,也就是Android開發(fā)工具所森,Eclipse囱持,myEclispe,Android Studio,IDEA,筆者都用過,早期那可就是Eclipse的天下焕济,但是由于谷歌不在更新ADT纷妆,導(dǎo)致現(xiàn)在的Eclipse配置Android環(huán)境稍微麻煩一些(因為有些公司,研發(fā)團隊依舊使用Eclipse開發(fā))晴弃,當(dāng)然掩幢,筆者也自己配置好了Eclispe Adt(鏈接:http://pan.baidu.com/s/1cIwIlw ? 密碼:ah4m)直接解壓出來使用即可逊拍;MyEclispe就稍顯麻煩,首先你得破解凹柿凇(畢竟要收費芯丧,在大天朝免費才是最受歡迎的),破解之后得安裝ADT世曾,得缨恒,筆者也給大家準(zhǔn)備好了(有需要的私聊)那么,作為目前Android開發(fā)工具的主導(dǎo)轮听,Android Studio的使用那就是需要花時間掌握的骗露,最后談?wù)処dea,使用起來跟Android Studio一樣血巍,體驗極佳椒袍。
Android Studio初步了解:
安裝和配置需要自己去網(wǎng)上尋找,當(dāng)然筆者也準(zhǔn)備好了詳細(xì)的安裝文檔藻茂,快捷鍵文檔驹暑,安裝過程遇到的常見問題共計三份文檔(鏈接:http://pan.baidu.com/s/1miAAMog 密碼:0vgv)
跟之前Eclipse工程目錄結(jié)構(gòu)不一樣是,Android Studio(以下簡稱AS)使用了Gradle來構(gòu)建項目辨赐,它使用了一種基于Groovy 的領(lǐng)域特點語言來聲明項目配置优俘,我們直接先上AS下的整體項目結(jié)構(gòu)圖然后逐一分析
1: .gradle和 .idea 這兩個都是AS自動生成的一些文件,我們無需關(guān)心掀序,也不要去手動編輯
2: ?app目錄下內(nèi)容挺多(見上圖)帆焕,我們逐個分析,build是編譯時生產(chǎn)的文件不恭,libs目錄主要是第三方j(luò)ar包叶雹,src 目錄下(包含Java,res, AndroidManifest.xml)就是編寫具體的代碼和資源文件换吧,配置清單文件等等折晦,具體的內(nèi)容大家可以自己去看看; .gitigone文件用于將app模塊內(nèi)的指定目錄或文件排除在版本控制之外沾瓦;app.iml,是IntelliJ IDEA項目自動生產(chǎn)的文件满着,我們不需要關(guān)心或修改這個文件;
build.gradle(藍(lán)色框)贯莺,這個包含APP的編譯SDK版本风喇,是否開啟混淆,導(dǎo)入第三方依賴等等缕探;.proguard-rules.pro魂莫,是用于指定項目的混淆規(guī)則
3: ?build,包含編譯時自動生成的文件 ; gradle目錄包含gradlewrapper的配置文件爹耗,使用gradle wrapper的方式不需要提前將gradle下載好 耙考;?.gitigone文件用于將app模塊內(nèi)的指定目錄或文件排除在版本控制之外秽誊;
4: ?build.gradle,這里是全局的gradle構(gòu)建腳本琳骡,引用 jcenter,mavenCentral 代碼托管倉庫锅论,申明插件的版本號,(這里的版本號就是2.2.3) 楣号,通常這個文件是不需要修改的 最易,如下圖,
5: ?gradle.properties,這里是全局的gradle配置文件炫狱,在這里配置的屬性將會影響到項目中所有的gradle編譯腳本藻懒;gradlew和gradlew.bat 這兩個文件用來在命令行界面執(zhí)行g(shù)radle命令的,其中g(shù)radlew是在Linux或Mac系統(tǒng)中使用视译,gradlew.bat是在Window系統(tǒng)中使用的嬉荆;app.iml 這個文件是所有IntelliJ IDEA項目中都會生成的一個文件,用于標(biāo)識這是一個IntelliJ IDEA項目酷含。我們不需要修改這里面的任何內(nèi)容鄙早;local.properties 這個文件主要是用于指定本機中的Android SDK路徑,通常內(nèi)容都是自動生成的椅亚,我們并不需要修改限番。settings.gradle,這個文件用于指定項目中所有引入的模塊呀舔,由于就只有一個app模塊弥虐,因此該文件也就只引用這一個模塊
拓展 ? .jks文件,就是簽名文件媚赖,給APK打簽名包需要使用到的(一定要保存好霜瘪,一定要保存好)
日志工具Log:
在AS中,我們使用強大的Log去打印日志惧磺,看應(yīng)用運行信息方便調(diào)試颖对,
如上圖,這是AS自帶的日志過濾器:
show only selected application : 表示只顯示當(dāng)前選中程序的日志豺妓、
Filebase : 是谷歌提供的分析工具惜互,可以暫時不用理他布讹、
No Filters : 相當(dāng)于沒有過濾器琳拭,也就是會顯示所有的日志
Edit Filter Configuration : 會彈出過濾器配置界面(很實用的東西)
接下來,就是設(shè)置Log級別描验,依舊先上圖
Verbose:這個是最低級別的日志白嘁,無論是什么操作,都會顯示出來
debug:只有使用debug及以上級別方法打印的日志才會顯示出來膘流,以此內(nèi)推絮缅,
那么鲁沥,對應(yīng)的代碼是 ?Log.d(參數(shù)一,參數(shù)二);
參數(shù)一:也就是關(guān)鍵字耕魄,圖上的紅色方框画恰,也就是對應(yīng)的關(guān)鍵字,
參數(shù)二:也就是我們想要獲取并打印在輸出臺上的日志吸奴,
比如我想獲取Post請求允扇,獲取響應(yīng)體的調(diào)試信息(這里假設(shè)使用Okhttp訪問網(wǎng)絡(luò)請求,日志關(guān)鍵字是 “okhttp”)那么则奥,就可以寫成這樣:
Log.d ( "okhttp " ," 響應(yīng)體:"+?response.body().String);
Ps:開發(fā)小技巧考润,在開發(fā)中,我們會經(jīng)常使用到日志读处,但是糊治,我們希望應(yīng)用上線的時候,所有的測試日志都不顯示罚舱。這個時候就有人說井辜,簡單,我一個個刪就行(這我就呵呵噠)管闷,首先抑胎,你一個個刪除日志,即花時間又花精力渐北,況且阿逃,假設(shè)項目上線后出了些問題,之前的調(diào)試日志是有輔助排錯的功能赃蛛,但是你已經(jīng)刪除了之前的日志恃锉,不得已你又得重來或者Debug。
解決辦法就是寫一個工具類呕臂,方便開發(fā)測試破托,上線維護,如下圖
嗯歧蒋,簡單粗暴土砂,仔細(xì)明了。
好了谜洽,第一章就寫到這里萝映,如有錯誤,望糾正阐虚。
如果這篇文章對您有開發(fā)or學(xué)習(xí)上的些許幫助序臂,希望各位看官留下寶貴的star,謝謝实束。
Ps:著作權(quán)歸作者所有,轉(zhuǎn)載請注明作者, 商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)奥秆,非商業(yè)轉(zhuǎn)載請注明出處(開頭或結(jié)尾請?zhí)砑愚D(zhuǎn)載出處逊彭,添加原文url地址),文章請勿濫用,也希望大家尊重筆者的勞動成果