???♂? 個(gè)人主頁:@艾迦洼的個(gè)人主頁
???作者簡介:后端程序猿
?? 希望大家多多支持,如果文章對你有幫助的話,歡迎 ????????
目錄
-
??第一章:Android開發(fā)技能入門指南
- ??1. 技術(shù)要求
-
??2. 使用變量和習(xí)慣用法在Kotlin中編寫第一個(gè)程序
- ??2.1 準(zhǔn)備
- ??2.2 如何實(shí)現(xiàn)
- ??2.3 如何工作
- ??2.4 參考
-
??3. 使用Android Studio創(chuàng)建一個(gè)Hello, Android Community應(yīng)用程序
- ??3.1 準(zhǔn)備
- ??3.2 如何實(shí)現(xiàn)
- ??3.3 如何工作
-
??4. 在Android Studio中設(shè)置模擬器
- ??4.1 準(zhǔn)備
- ??4.2 如何實(shí)現(xiàn)
- ??4.3 如何工作
-
??5. 在Jetpack Compose中創(chuàng)建一個(gè)按鈕
- ??5.1 準(zhǔn)備
- ??5.2 如何實(shí)現(xiàn)
- ??5.3 如何工作
- ??5.4 參考
-
??6. 使用gradlew命令在Android Studio中清理和運(yùn)行您的項(xiàng)目
- ??6.1 準(zhǔn)備
- ??6.2 如何實(shí)現(xiàn)
- ??6.3 如何工作
-
??7. 了解Android項(xiàng)目結(jié)構(gòu)
- ??7.1 準(zhǔn)備
- ??7.2 如何實(shí)現(xiàn)
- ??7.3 如何工作
-
??8. 在Android Studio中調(diào)試和登錄
- ??8.1 準(zhǔn)備
- ??8.2 如何實(shí)現(xiàn)
- ??8.3 如何工作
- ??8.4 參考
- ?? 交友小貼士:
??第一章:Android開發(fā)技能入門指南
Android操作系統(tǒng)(OS)是最受歡迎的移動設(shè)備平臺之一,在全球擁有眾多用戶。該操作系統(tǒng)用于汽車和智能手表、電視、手機(jī)等可穿戴設(shè)備,這使得Android開發(fā)者的市場非常廣闊。
因此,新開發(fā)人員需要學(xué)習(xí)如何利用新的現(xiàn)代Android開發(fā)(MAD)技能構(gòu)建Android應(yīng)用程序。
自2008年發(fā)布以來,Android已經(jīng)走過了漫長的道路,并在第一個(gè)集成開發(fā)環(huán)境(IDES)、Eclipse和NetBeans中使用。
今天,Android Studio是Android開發(fā)的推薦IDE,與以前Java是首選語言不同的是,Kotlin現(xiàn)在是首選語言。
Android Studio包括對Kotlin、Java、c++和其他編程語言的支持,使得這個(gè)IDE適合不同技能的開發(fā)人員。
因此,在本章結(jié)束時(shí),按照指南,你將安裝Android Studio,使用Jetpack Compose構(gòu)建你的第一個(gè)Android應(yīng)用程序,并學(xué)習(xí)一些Kotlin語法,利用Android開發(fā)的首選語言。
此外,本介紹將為您了解對MAD至關(guān)重要的高級材料做好基礎(chǔ)準(zhǔn)備。
在本章中,我們將介紹以下內(nèi)容:
- 使用變量和習(xí)慣用法在Kotlin中編寫第一個(gè)程序
- 使用Android Studio創(chuàng)建一個(gè)Hello, Android Community應(yīng)用程序
- 在Android Studio中設(shè)置模擬器
- 在Jetpack Compose中創(chuàng)建一個(gè)按鈕
- 使用gradlew命令在Android Studio中清理和運(yùn)行您的項(xiàng)目
- 了解Android項(xiàng)目結(jié)構(gòu)
- 在Android Studio中調(diào)試和登錄
??1. 技術(shù)要求
成功運(yùn)行Android IDE和模擬器可能會讓您的計(jì)算機(jī)望而生畏。
你可能聽過一個(gè)笑話,說運(yùn)行Android Studio的機(jī)器在冬天可以用作加熱器。
好吧,這是有一定道理的,所以你的計(jì)算機(jī)應(yīng)該有以下規(guī)格,以確保你的系統(tǒng)可以應(yīng)付IDE的要求:
- 64位微軟Windows,macOS,或Linux安裝與穩(wěn)定的互聯(lián)網(wǎng)連接。本專欄中的指南是在macOS中開發(fā)的。您也可以使用Windows或Linux筆記本電腦,因?yàn)閮烧叨紱]有區(qū)別。
- 對于Windows和Linux用戶,您可以按照以下鏈接安裝Android Studio:https://developer.android.com/studio/install。
- 至少8GB或更多的RAM。
- Android Studio、Android軟件開發(fā)工具包(SDK)和Android模擬器的可用磁盤空間至少為8GB。
- 最低屏幕分辨率為1280 × 800。
- 你可以在這里下載Android Studio:https://developer.android.com/studio.
??2. 使用變量和習(xí)慣用法在Kotlin中編寫第一個(gè)程序
Kotlin是Android開發(fā)的推薦語言;您仍然可以選擇Java作為語言,因?yàn)樵S多遺留應(yīng)用程序仍然嚴(yán)重依賴Java。
然而,在本專欄中,我們將使用Kotlin,如果這是你第一次使用Kotlin語言構(gòu)建Android應(yīng)用程序,Kotlin組織有很好的資源來幫助你開始免費(fèi)練習(xí)和自定進(jìn)度的評估,稱為Kotlin Koans (https://play.kotlinlang.org/koans/overview).
此外,您可以使用Kotlin語言進(jìn)行多平臺開發(fā),使用Kotlin multiat form Mobile (KMM),在其中您可以在iOS和Android應(yīng)用程序之間共享標(biāo)準(zhǔn)代碼,并僅在必要時(shí)編寫特定于平臺的代碼。
KMM目前處于Alpha階段。
??2.1 準(zhǔn)備
在這個(gè)指南中,您可以使用在線Kotlin playground (https://play.kotlinlang.org/)來運(yùn)行代碼,也可以在Android Studio IDE中運(yùn)行代碼。
或者,如果你打算用Koans做更多的Kotlin練習(xí)題,你可以下載并使用IntelliJ IDEA IDE。
??2.2 如何實(shí)現(xiàn)
在這個(gè)指南中,我們將探索和修改一個(gè)簡單的程序,我們將在Kotlin中編寫;你可以把程序想象成我們給計(jì)算機(jī)或移動設(shè)備的指令,讓它們執(zhí)行我們給它們的動作。
例如,我們將在程序中創(chuàng)建一個(gè)問候語,然后編寫另一個(gè)程序。
對于這個(gè)指南,你可以選擇Android Studio或免費(fèi)的在線IDE,因?yàn)槲覀儗⒔佑|到一些Kotlin功能:
- 如果您第一次選擇使用Kotlin在線游樂場,您將看到類似以下截圖的內(nèi)容,其中包含一個(gè)println語句,表示Hello, world,但對于我們的示例,我們將將該問問語更改為Hello, Android Community,并運(yùn)行代碼。
fun main() {
println("Hello, Android Community")
}
// Hello, Android Community
-
讓我們看另一個(gè)例子;面試中常用的一個(gè)算法問題–反轉(zhuǎn)字符串。例如,您有一個(gè)字符串Community,我們希望反轉(zhuǎn)該字符串,以便輸出為ytinummoC。有幾種方法可以解決這個(gè)問題,但是我們將使用Kotlin慣用的方法來解決它。
-
在IDE的playground或Kotlin playground中輸入以下代碼:
fun main() {
val stringToBeReversed = "Community"
println(reverseString(stringToBeReversed))
}
fun reverseString(stringToReverse: String): String {
return stringToReverse.reversed()
}
// ytinummoC
??2.3 如何工作
有必要在Kotlin中提到,通過利用默認(rèn)參數(shù)值并只設(shè)置需要更改的參數(shù),有一些獨(dú)特的方法可以保持代碼更干凈、更精確和更簡單。
fun在Kotlin編程語言中代表函數(shù),而Kotlin中的函數(shù)是執(zhí)行特定任務(wù)的程序的一部分。
第一個(gè)示例中的函數(shù)名稱是main(),而在main()函數(shù)中,我們沒有任何輸入。
一般來說,函數(shù)都有名稱,以便在代碼庫比較復(fù)雜時(shí)能夠區(qū)分它們。
此外,在Java中,函數(shù)類似于方法。
函數(shù)名有兩個(gè)括號和大括號,還有println,它告訴系統(tǒng)打印一行文本。
如果您使用過Java,您可能會注意到Kotlin編程語言與Java非常相似。
然而,開發(fā)人員現(xiàn)在談?wù)揔otlin語言對開發(fā)人員來說有多棒,因?yàn)樗峁┝烁弑憩F(xiàn)力的語法和復(fù)雜的類型系統(tǒng),并處理了Java多年來一直存在的空指針問題。
為了充分利用Kotlin語言的強(qiáng)大功能并編寫更簡潔的代碼,了解Kotlin習(xí)慣用法可能是有益的。
Kotlin習(xí)語是經(jīng)常使用的集合,有助于操作數(shù)據(jù),使Android開發(fā)人員的體驗(yàn)更加輕松。
在第二個(gè)示例中,我們有兩個(gè)函數(shù)main()和reverseString()。
main()不接受任何輸入,但reverseString()接受String輸入。
您還會注意到我們使用了val,這是Kotlin使用的一個(gè)唯一的詞,它指的是一個(gè)只能設(shè)置為一個(gè)值的不可變值,而var是一個(gè)可變變量,這意味著它可以被替換。
我們創(chuàng)建一個(gè)val stringToBeReversed,它是一個(gè)字符串,并將其命名為“Community”,然后在main()函數(shù)中調(diào)用println,并在reverseString()函數(shù)中傳遞我們想要打印的文本。
此外,在本例中,reverseString函數(shù)從string對象中接受一個(gè)string參數(shù),然后返回一個(gè)字符串類型。
還有更多的東西要學(xué)習(xí),并且公平地承認(rèn),我們在這個(gè)指南中所涵蓋的只是您可以使用Kotlin習(xí)語的一小部分。
這個(gè)指南的目的是介紹一些概念,我們可能會在后面的章節(jié)中接觸或使用,但不是深入的,因?yàn)槲覀儗⒃诤竺娴恼鹿?jié)中探索更多的Kotlin。
因此,了解Kotlin習(xí)語是什么以及為什么它們現(xiàn)在很重要是很有必要的。
??2.4 參考
更好地理解Kotlin語法和流行的用例對您的日常工作至關(guān)重要,因此請查看以下資源:
- JetBrains Academy有一個(gè)很棒的免費(fèi)Kotlin基礎(chǔ)課程: https://hyperskill.org/tracks/18.
- Kotlin文檔也是一個(gè)很好的手邊資源: https://kotlinlang.org/docs/home.html.
??3. 使用Android Studio創(chuàng)建一個(gè)Hello, Android Community應(yīng)用程序
現(xiàn)在我們已經(jīng)安裝了Android Studio,我們將創(chuàng)建第一個(gè)Android應(yīng)用程序。
此外,我們將使用Compose–只是提前提一下,在這個(gè)指南中,我們不會深入討論Compose,因?yàn)槲覀冇袑iT的章節(jié)來討論Compose,即第二章,使用聲明式UI創(chuàng)建屏幕和探索Compose原理。
??3.1 準(zhǔn)備
在開始之前,了解你的Android項(xiàng)目的一致性是很有幫助的。
默認(rèn)情況下,AndroidStudio會在你的主目錄下創(chuàng)建一個(gè)包,包名為AndroidStudioProjects;在這里,您將找到您創(chuàng)建的所有項(xiàng)目。
如果要更改文件夾,還可以決定文件夾的位置。
此外,確保你使用的是最新版本的Android Studio,以利用所有偉大的功能。
要了解最新的Android版本,您可以使用以下鏈接: https://developer.android.com/studio/releases 。
??3.2 如何實(shí)現(xiàn)
在Android Studio IDE中,項(xiàng)目模板是一個(gè)Android應(yīng)用程序,它擁有創(chuàng)建應(yīng)用程序所需的所有必要部分,并幫助您開始和設(shè)置。
因此,一步一步地,我們將制作我們的第一個(gè)Android應(yīng)用程序并在模擬器上啟動它:
- 啟動Android Studio通過點(diǎn)擊Android Studio圖標(biāo)在您的dock或任何地方存儲Android Studio。
- 你會看到一個(gè)歡迎Android Studio窗口打開,你可以點(diǎn)擊New Project?;蛘?,您可以轉(zhuǎn)到File并單擊New Project。
- 選擇Empty Compose Activity并單擊Next。
- 加載空的Compose活動屏幕后,您將看到包含Name、Package Name、Save Location、Language和Minimum SDK的字段。
在本章中,您可以將項(xiàng)目命名為Android Community,其他設(shè)置保持不變。
您還會注意到,默認(rèn)情況下該語言是Kotlin。
至于最小SDK,我們的目標(biāo)是API 21: Android 5.0 (Lollipop),這表明你的應(yīng)用程序可以運(yùn)行的最小Android版本,在我們的情況下,大約是98.8%的設(shè)備。
您還可以單擊下拉菜單,了解有關(guān)最小SDK的更多信息。單擊Finish并等待Gradle同步。
- 繼續(xù)擺弄這些包,你會注意到一個(gè)MainActivity類擴(kuò)展了一個(gè)ComponentActivity(),而ComponentActivity()又?jǐn)U展了Activity();在內(nèi)部,我們有一個(gè)有趣的onCreate,它是來自ComponentActivity的重寫。
您還將看到setContent{},這是一個(gè)用于設(shè)置可組合函數(shù)內(nèi)容的函數(shù)。
setContent{}函數(shù)接受一個(gè)lambda表達(dá)式,該表達(dá)式包含應(yīng)該顯示的UI元素,在本例中,它包含應(yīng)用程序的主題。
在Greeting()函數(shù)中,我們將改變所提供的并添加我們自己的問候語,即“Hello, Android Community”并運(yùn)行,我們將創(chuàng)建我們的第一個(gè)問候語:
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
AndroidCommunityTheme {
// A surface container using the 'background' color from the theme
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background
) {
Greeting("Android")
}
}
}
}
}
- 讓我們繼續(xù)修改Greeting()函數(shù),并將name參數(shù)賦值給文本:
@Composable
fun Greeting(name: String, modifier: Modifier = Modifier) {
Text(
text = "Hello $name!",
modifier = modifier
)
}
此外,你也可以將“Hello, Android Community”傳遞到默認(rèn)實(shí)現(xiàn)中,這將產(chǎn)生相同的UI。
- 就像在XML視圖中一樣,您可以輕松地查看正在構(gòu)建的UI,而無需使用@Preview(showBackground = true)在模擬器中運(yùn)行應(yīng)用程序,所以讓我們繼續(xù)并將其添加到我們的代碼中,如果它不可用的話。
默認(rèn)情況下,項(xiàng)目附帶一個(gè)具有Preview()的模板:
@Preview(showBackground = true)
@Composable
fun GreetingPreview() {
AndroidCommunityTheme {
Greeting("Android")
}
}
- 最后,當(dāng)您運(yùn)行應(yīng)用程序時(shí),您應(yīng)該看到下圖所示的屏幕。
在下面的配方中,我們將看看如何一步一步地設(shè)置模擬器,所以不要擔(dān)心。
??3.3 如何工作
使用Jetpack Compose創(chuàng)建視圖的主要好處是,它加快了開發(fā)時(shí)間,因?yàn)槟闶褂孟嗤恼Z言來編寫整個(gè)代碼庫(Kotlin),并且更容易測試。
您還可以創(chuàng)建可重用的組件,并根據(jù)需要對其進(jìn)行定制。
因此,要確保出錯(cuò)的幾率更低,并且必須使用XML編寫視圖,因?yàn)檫@很繁瑣。
onCreate()函數(shù)被認(rèn)為是Android應(yīng)用程序的入口點(diǎn)。
此外,我們還使用修飾函數(shù)來添加行為和修飾可組合對象。
我們將在下一章中更多地討論修飾符和表面函數(shù)的作用。
??4. 在Android Studio中設(shè)置模擬器
Android Studio是一個(gè)可靠且成熟的IDE。
因此,自2014年以來,Android Studio一直是開發(fā)Android應(yīng)用程序的首選IDE。
當(dāng)然,您仍然可以使用其他ide,但Android Studio的優(yōu)勢在于您不需要單獨(dú)安裝Android SDK。
??4.1 準(zhǔn)備
您需要完成前面的配方才能遵循此配方,因?yàn)槲覀儗⒃O(shè)置模擬器以運(yùn)行我們剛剛創(chuàng)建的項(xiàng)目。
??4.2 如何實(shí)現(xiàn)
本章旨在對初學(xué)者友好,并在您完成指南的過程中使您順利地向更高級的Android學(xué)習(xí)。
讓我們按照以下步驟來看看如何設(shè)置模擬器并在使用Android Studio recipe創(chuàng)建一個(gè)Hello, Android Community App中運(yùn)行您的項(xiàng)目:
-
導(dǎo)航到工具|設(shè)備管理器。一旦設(shè)備管理器準(zhǔn)備好了,你有兩個(gè)選擇:
虛擬或物理。虛擬意味著你將使用模擬器,而物理意味著你將啟用Android手機(jī)來調(diào)試Android應(yīng)用程序。
出于我們的目的,我們將選擇Virtual。 -
單擊Create device,將彈出Virtual device Configuration界面。
-
選擇手機(jī)。你會注意到Android Studio還有其他類別,如電視、Wear OS、平板電腦和汽車。
讓我們現(xiàn)在使用Phone,在未來的章節(jié)中,我們將嘗試使用Wear OS。單擊Next。
- 您將看到推薦系統(tǒng)映像的列表。
您可以選擇任何選項(xiàng)或使用默認(rèn)選項(xiàng),在Android 12的情況下為S,盡管您可能希望使用最新的API 33,然后單擊Next。
- 現(xiàn)在您將到達(dá)Android虛擬設(shè)備(AVD)屏幕,在這里您可以命名您的虛擬設(shè)備。
你可以輸入一個(gè)名稱,也可以保留默認(rèn)值Pixel 2 API 31,然后點(diǎn)擊Finish。
- 通過運(yùn)行虛擬設(shè)備來測試它,并確保它按預(yù)期工作。你應(yīng)該看到一些東西在模擬器上運(yùn)行應(yīng)用程序后,類似于下圖。
??4.3 如何工作
測試和確保應(yīng)用程序顯示預(yù)期的結(jié)果非常重要。
這就是為什么Android Studio使用模擬器來幫助開發(fā)人員確保他們的應(yīng)用程序可以在標(biāo)準(zhǔn)設(shè)備上運(yùn)行。
此外,Android手機(jī)還提供了可供開發(fā)者使用的開發(fā)者選項(xiàng),這使得Android支持的不同設(shè)備數(shù)量變得更加容易,也有助于重現(xiàn)模擬器中難以發(fā)現(xiàn)的漏洞。
??5. 在Jetpack Compose中創(chuàng)建一個(gè)按鈕
我們必須注意,我們不能在一個(gè)指南中涵蓋所有的觀點(diǎn);我們有一章專門介紹更多關(guān)于Jetpack Compose的知識,所以在我們創(chuàng)建的項(xiàng)目中,我們將嘗試為我們的項(xiàng)目創(chuàng)建兩個(gè)額外的視圖。
??5.1 準(zhǔn)備
打開Android Community項(xiàng)目,因?yàn)檫@是我們將在此配方中構(gòu)建的項(xiàng)目。
??5.2 如何實(shí)現(xiàn)
讓我們從在Compose中實(shí)現(xiàn)一個(gè)簡單的按鈕開始:
- 讓我們繼續(xù)組織代碼,并通過添加Column()來組織視圖,將文本對齊到中心。這應(yīng)該添加到setContent{}函數(shù)中:
Column(
modifier = Modifier
.fillMaxSize()
.wrapContentSize(Alignment.Center),
horizontalAlignment = Alignment.CenterHorizontally
) {
Greeting("Android")
}
-
現(xiàn)在,創(chuàng)建一個(gè)函數(shù)并將其命名為SampleButton;在本例中我們將不傳遞任何信息。
然而,我們將有一個(gè)RowScope{},它定義了在本例中適用于我們的按鈕的修飾符函數(shù),并且我們將給我們的按鈕一個(gè)名稱:click me。 -
在Compose中,當(dāng)您創(chuàng)建一個(gè)按鈕時(shí),您可以設(shè)置它的形狀、圖標(biāo)和標(biāo)高,檢查它是否啟用,檢查它的內(nèi)容,等等。
你可以通過命令單擊button()組件來檢查如何自定義按鈕:
@Composable
fun SampleButton() {
Button(
onClick = { /*Do nothing*/ },
modifier = Modifier
.fillMaxWidth()
.padding(24.dp),
shape = RoundedCornerShape(20.dp),
border = BorderStroke(2.dp, Color.Blue),
colors = ButtonDefaults.buttonColors(
contentColor = Color.Gray,
containerColor = Color.White
)
) {
Text(
text = stringResource(id = R.string.click_me),
fontSize = 14.sp,
modifier = Modifier.padding(horizontal = 30.dp, vertical = 6.dp)
)
}
}
在我們的SampleButton中,onClick不做任何事情;我們的按鈕有一個(gè)最大填充寬度的修改器,填充為24個(gè)與密度無關(guān)的像素(dp),圓角半徑為20 dp。
我們還設(shè)置了按鈕的顏色,并添加了點(diǎn)擊我作為文本。
我們將字體大小設(shè)置為14個(gè)與比例無關(guān)的像素(sp),因?yàn)檫@有助于確保文本能夠很好地根據(jù)屏幕和用戶的偏好進(jìn)行調(diào)整。
- 此外,單擊右上方的Split以預(yù)覽屏幕元素,或者單擊Design部分以查看不含代碼的整個(gè)屏幕。
- 最后,讓我們調(diào)用SampleButton函數(shù),也就是Greeting函數(shù)所在的地方,然后運(yùn)行應(yīng)用程序:
Column(
modifier = Modifier
.fillMaxSize()
.wrapContentSize(Alignment.Center),
horizontalAlignment = Alignment.CenterHorizontally
) {
Greeting("Android")
SampleButton()
}
- 編譯并運(yùn)行程序,您的應(yīng)用程序應(yīng)該如下圖所示。
??5.3 如何工作
一個(gè)可組合的應(yīng)用包含幾個(gè)可組合的函數(shù),只是普通的帶@Composable注解的函數(shù)。
正如Google文檔所解釋的那樣,注釋告訴Compose向過程添加特殊支持,以便隨著時(shí)間的推移更新和維護(hù)UI。
Compose還允許您將代碼結(jié)構(gòu)成可維護(hù)的小塊,以便隨時(shí)調(diào)整和重用。
??5.4 參考
由于很難在一個(gè)指南中涵蓋所有視圖,我們將在第2章中討論更多視圖,探索最佳實(shí)踐,并測試我們的可組合視圖。
??6. 使用gradlew命令在Android Studio中清理和運(yùn)行您的項(xiàng)目
gradlew命令是一個(gè)健壯的Gradle包裝器,有很好的用途。然而,在Android Studio中,您不需要安裝它,因?yàn)樗且粋€(gè)打包在項(xiàng)目中的腳本。
??6.1 準(zhǔn)備
但是現(xiàn)在,我們不會研究所有的Gradle命令,而是使用最流行的命令來清理、構(gòu)建、提供信息、調(diào)試和掃描我們的項(xiàng)目,以便在運(yùn)行應(yīng)用程序時(shí)發(fā)現(xiàn)任何問題。
你可以在筆記本電腦的終端上運(yùn)行這些命令,只要你在正確的目錄下,或者使用Android Studio提供的終端。
??6.2 如何實(shí)現(xiàn)
按照以下步驟檢查并確認(rèn)Gradle是否按預(yù)期工作:
- 你可以通過運(yùn)行./gradlew來檢查版本。
-
要構(gòu)建和清理項(xiàng)目,可以運(yùn)行/gradlew clean和/gradlew build命令。
如果您的項(xiàng)目有任何錯(cuò)誤,構(gòu)建將失敗,您可以調(diào)查錯(cuò)誤。
此外,在Android中,你總是可以不使用Gradle命令運(yùn)行你的項(xiàng)目,只使用IDE運(yùn)行和清理選項(xiàng)。 -
下面是一些更有用的gradlew命令;例如,當(dāng)你的構(gòu)建失敗時(shí),你想知道是什么出了問題,使用命令來調(diào)查或點(diǎn)擊錯(cuò)誤消息(參見下圖):
- 使用–stacktrace選項(xiàng)運(yùn)行以獲取堆棧跟蹤信息
- 使用–info或–debug選項(xiàng)運(yùn)行可以獲得更多的日志輸出
- 運(yùn)行–scan以獲得完整的見解
??6.3 如何工作
Gradle是一個(gè)通用的構(gòu)建工具,在Android開發(fā)中非常強(qiáng)大。
此外,您還可以創(chuàng)建和發(fā)布自定義插件來封裝約定和構(gòu)建功能。
Gradle的優(yōu)點(diǎn)包括用于測試執(zhí)行、編譯和在構(gòu)建系統(tǒng)中發(fā)生的任何其他任務(wù)的增量構(gòu)建工作。
??7. 了解Android項(xiàng)目結(jié)構(gòu)
如果這是您第一次查看Android項(xiàng)目文件夾,您可能想知道在哪里添加代碼以及這些包的含義。
本指南將介紹每個(gè)文件夾中包含的內(nèi)容以及代碼的位置。
??7.1 準(zhǔn)備
如果您打開您的項(xiàng)目,您將注意到許多文件夾。你的Android項(xiàng)目的主要文件夾列在這里:
- 清單文件夾
- java文件夾 (test/androidTest)
- 資源文件夾
- Gradle腳本
??7.2 如何實(shí)現(xiàn)
讓我們?yōu)g覽每個(gè)文件夾,了解存儲的內(nèi)容、位置和原因:
-
在下圖中,您可以看到Packages下拉框;點(diǎn)擊它,就會彈出一個(gè)包含項(xiàng)目、包、項(xiàng)目文件等內(nèi)容的窗口。
-
您可以選擇使用Android徽標(biāo),通過project或下拉菜單旁邊的project高亮部分查看您的項(xiàng)目。
當(dāng)應(yīng)用程序中有許多模塊并希望添加特定代碼時(shí),Project視圖是最佳選擇。
請隨意點(diǎn)擊各個(gè)部分,看看它們都有什么。
-
manifest文件夾是Android應(yīng)用程序的真實(shí)來源;它包含AndroidManifest.xml。
點(diǎn)擊文件內(nèi)部,你會注意到你有一個(gè)意圖啟動器,在你的模擬器上啟動Android應(yīng)用程序。 -
此外,版本號通常是在Gradle中設(shè)置的,然后合并到manifest中,我們在manifest中添加所有需要的權(quán)限。
您還會注意到包的名稱、元數(shù)據(jù)、數(shù)據(jù)提取規(guī)則、主題和圖標(biāo);如果你有一個(gè)獨(dú)特的圖標(biāo),你可以在這里添加一個(gè)。
- java文件夾包含我們在構(gòu)建Android應(yīng)用程序時(shí)創(chuàng)建的所有Kotlin (.kt)和java (.java)文件。
例如,在下圖中,我們有一個(gè)包含(androidTest)和(test)的包,這是我們添加測試的地方。
點(diǎn)擊所有文件夾,看看里面都有什么。
- 在androidTest文件夾中,我們編寫UI測試來測試UI功能,在test文件夾中,我們編寫單元測試。
單元測試測試代碼的一小部分,以確保所需的行為符合預(yù)期。
測試驅(qū)動開發(fā)(TDD)在應(yīng)用程序開發(fā)過程中非常出色且有價(jià)值。
有些公司遵守這一規(guī)定,但有些公司不執(zhí)行這一規(guī)定。
然而,這是一項(xiàng)很好的技能,因?yàn)槭冀K測試代碼是一種很好的實(shí)踐。
res文件夾包含XML布局、UI字符串、可繪制圖像和Mipmap圖標(biāo)。
另一方面,values文件夾包含許多有用的XML文件,如尺寸、顏色和主題。
繼續(xù),點(diǎn)擊res文件夾來熟悉那里有什么,因?yàn)槲覀儗⒃谙乱徽轮惺褂盟?/p>
- 最后,在Gradle Scripts中,您將看到定義我們可以在模塊中應(yīng)用的構(gòu)建配置的文件。
例如,在構(gòu)建中。gradle(Project: AndroidCommunity),你會看到一個(gè)頂層文件,你可以在其中添加所有子項(xiàng)目模塊通用的配置選項(xiàng)。
??7.3 如何工作
在Android Studio中,對于第一次使用的用戶來說,不知道文件放在哪里以及什么是必需的可能會讓他們不知所措。
因此,有一個(gè)循序漸進(jìn)的指南,在哪里添加測試或代碼,并了解Android項(xiàng)目結(jié)構(gòu)是至關(guān)重要的。
此外,在復(fù)雜的項(xiàng)目中,您可能會發(fā)現(xiàn)不同的模塊;因此,了解項(xiàng)目結(jié)構(gòu)是有幫助的。
Android Studio中的模塊是源文件和構(gòu)建設(shè)置的集合,允許您將項(xiàng)目劃分為具有特定目的的不同實(shí)體。
??8. 在Android Studio中調(diào)試和登錄
調(diào)試和日志記錄在Android開發(fā)中是至關(guān)重要的,您可以編寫出現(xiàn)在Logcat中的日志消息,以幫助您發(fā)現(xiàn)代碼中的問題,或者在應(yīng)該執(zhí)行的時(shí)候驗(yàn)證一段代碼。
我們將在這里介紹這個(gè)話題,但說我們將在一個(gè)指南中涵蓋所有內(nèi)容是不公平的
??8.1 準(zhǔn)備
讓我們用一個(gè)例子來理解日志。以下日志方法按優(yōu)先級從高到低排列。
當(dāng)記錄網(wǎng)絡(luò)錯(cuò)誤、成功調(diào)用和其他錯(cuò)誤時(shí),它們是正確的:
- Log.e(): 錯(cuò)誤
- Log.w(): 警告
- Log.i(): 信息
- Log.d(): 調(diào)試向開發(fā)人員顯示關(guān)鍵消息,這是最常用的日志
- Log.v(): 冗長的
一個(gè)好的做法是將每個(gè)日志與一個(gè)TAG關(guān)聯(lián)起來,以便在Logcat中快速識別錯(cuò)誤消息。
"TAG"指的是一個(gè)文本標(biāo)簽,可以分配給Android應(yīng)用程序中的視圖或其他UI元素。
在Android中使用標(biāo)簽的主要目的是提供一種將附加信息或元數(shù)據(jù)與UI元素相關(guān)聯(lián)的方法。
??8.2 如何實(shí)現(xiàn)
讓我們繼續(xù)在我們的小項(xiàng)目中添加一個(gè)日志消息:
- 我們將繼續(xù)創(chuàng)建一個(gè)調(diào)試日志,然后運(yùn)行應(yīng)用程序:
Log.d(TAG, "asdf Testing call")
在Logcat部分的搜索框中,輸入asdf,看看是否可以找到該消息。
您將注意到日志有一個(gè)類名、我們的TAG (MainActivity)和顯示的日志消息;如下圖中的右箭頭所示。
- 左箭頭顯示了提到的日志類型,使用下拉菜單,您可以根據(jù)規(guī)范快速查看您的消息。
??8.3 如何工作
調(diào)試是指在類中設(shè)置斷點(diǎn),降低模擬器的速度,并嘗試在代碼中找到問題。
例如,如果您在代碼中遇到競爭條件,或者您的代碼在某些設(shè)備上工作而在其他設(shè)備上不起作用,則調(diào)試功能非常強(qiáng)大。
此外,為了利用調(diào)試,您需要首先將調(diào)試器附加到模擬器,然后在Debug模式下運(yùn)行。
另一方面,日志記錄可以幫助您記錄在遇到問題時(shí)可能對您有幫助的信息。
有時(shí),調(diào)試可能很有挑戰(zhàn)性,但是在代碼中需要的地方放置日志可能非常有幫助。
一個(gè)實(shí)際的例子是當(dāng)你從API加載數(shù)據(jù)時(shí);當(dāng)出現(xiàn)網(wǎng)絡(luò)錯(cuò)誤時(shí),您可能希望將其記錄下來,以便通知您如果網(wǎng)絡(luò)調(diào)用失敗會發(fā)生什么。
因此,使用斷點(diǎn)進(jìn)行調(diào)試可能有助于在評估值時(shí)減慢過程,并且由于我們在本章中沒有構(gòu)建很多內(nèi)容,我們可以在后面的章節(jié)中以不同的方法重新討論這個(gè)主題。
??8.4 參考
Timber是一個(gè)日志記錄器,帶有一個(gè)小的、可擴(kuò)展的API,它在Android的標(biāo)準(zhǔn)Log類之上提供實(shí)用程序,許多開發(fā)人員使用它進(jìn)行日志記錄。
有關(guān)Timber的更多信息,請參見:https://github.com/JakeWharton/timber.
?? 交友小貼士:
博主Github,Gitee同名賬號,F(xiàn)ollow 一下就可以一起愉快的玩耍了,更多精彩文章請持續(xù)關(guān)注。文章來源:http://www.zghlxwxcb.cn/news/detail-740605.html
專欄推薦
文章來源地址http://www.zghlxwxcb.cn/news/detail-740605.html
Android 從入門到出門 |
---|
第一章:Android開發(fā)技能入門指南 |
第二章:使用聲明式UI創(chuàng)建屏幕并探索組合原則 |
第三章:使用Hilt處理Jetpack Compose UI狀態(tài) |
第四章:現(xiàn)代Android開發(fā)中的導(dǎo)航 |
第五章:使用DataStore存儲數(shù)據(jù)和測試 |
第六章:使用Room數(shù)據(jù)庫并測試 |
第七章:開始使用WorkManager |
第八章:分頁入門指南 |
到了這里,關(guān)于【Android 從入門到出門】第一章:Android開發(fā)技能入門指南的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!