一、內容概要
本文主要內容是通過通過AndroidStudio開發工具開發一個基於純Kotlin語言的Android應用程式,這個程式也非常的簡單,因為它只會輸出一個HelloWorld。
我預設大家都是稍微懂一點Android開發的,至少jdk、sdk、androidstudio的安裝、真機、模擬器連線電腦這些基礎的東西會一點。因為在今後的文章中基本上都會是實戰,實戰後會詳細的解釋程式碼中用到的一些新的特性、新功能以及相關注意事項。
二、實戰部分開啟AndroidStudio,並準備新建一個專案新建專案
選擇一個乾淨的專案模板
3.定義專案名稱、定義包名名稱(包名會自動輸入,如果需要更改直接編輯即可)、並選擇Kotlin為app的開發語言,並點選finish進入AndroidStudio主介面
配置專案(名稱、包名、開發語言)
4.進入AndroidStudio主介面並了解其目錄結構
一個純淨版的目錄結構
執行並顯示HelloWorld
三、程式碼講解部分以上就是新建一個Kotlin專案的並執行顯示的步驟,在這個目錄結構中我們目前只用關注四個檔案。
1.MainActivity.kt App執行的主頁,此頁就是一個Activity,其在AndroidManifest.xml中有配置
2.activity_main.xml 佈局配置檔案,視覺化配置頁面要顯示的內容
3.build.gradle app目錄下的主配置檔案,主要用於配置簽名、版本、執行環境以及引入第三方庫
4.AndroidManifest.xml 主配置檔案,用來配置Android系統中的四大元件,如:Activity、Service、BroadcastReceiver、ContentProvider、渠道、許可權等配置
下面一一來介紹這部分的內容
1.MainActivity.kt
/**在Kotlin中類和java一樣依然使用的是class關鍵字,只是在Kotlin中預設情況下類是不能被繼承的/*如下面這個類就不能被繼承,如果一定想要繼承某個類,需要在class前面加上open關鍵字或者此類是/*抽象類才行(抽象類在Kotlin中預設是可以被繼承的)/*在java中繼承用extends關鍵字,但是到了Kotlin中繼承只能用“:”來表示,java中實現介面用/*implements 而Kotlin中依然用“:”來表示。就像下面的MainActivity繼承AppCompatActivity()/*一樣。/*在繼承關係中必須強調一點,大家需要注意下,Kotlin中繼承一個類必須指明其預設的構造方法,即在父類/*後面加上一對“()”*/class MainActivity : AppCompatActivity() {\t\t//Activity的回撥函式OnCreate,其中savedInstanceState:Bundle?代表Bundle可以為空 //Kotlin中的變數命名必須是變數名:型別 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) //給Activity設定佈局 setContentView(R.layout.activity_main) }}
2.activity_main.xml
android中的佈局檔案可以視覺化的進行佈局,使用者根據需要可以切換到程式碼模式、設定模式或程式碼和設定互存的模式。如下圖所示
xml的檢視模式
apply plugin: 'com.android.application'//引入kotlin核心外掛apply plugin: 'kotlin-android'//引入kotlin擴充套件外掛apply plugin: 'kotlin-android-extensions'android { \t//android專案編譯版本 compileSdkVersion 30 \t//打包工具版本 buildToolsVersion "29.0.2"\t\t//預設配置 defaultConfig { //appid,你可以把其理解成java的包名(在專案中是唯一的,當然可以通過多渠道配置不同的id) applicationId "com.yw.kotlin_helloworld" //最小sdk版本 minSdkVersion 23 \t//目標sdk版本 targetSdkVersion 30 \t//版本號 versionCode 1 \t//版本名稱 versionName "1.0"\t\t\t\t testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } }}//引入的第三方庫的配置dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) //引入kotlin的核心sdk implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" \t//支援androidx implementation 'androidx.appcompat:appcompat:1.1.0' \t//支援android的擴充套件庫ktx,使用和這個庫可以給android開發提供一些方便,例如:我們可以完全 \t//避免佈局檔案的findViewById,這個後面會講到 implementation 'androidx.core:core-ktx:1.3.0' \t//為減少佈局層級給造出來的一個佈局類,當前xml中使用的就是這個外掛的類 implementation 'androidx.constraintlayout:constraintlayout:1.1.3' \t//以下是單元測試的一些內容,暫不做介紹 testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test.ext:junit:1.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'}
4.AndroidManifest.xml
android中的四大元件,除了BroadcastReceiver的動態註冊與解註冊,都需要在這個檔案中進行配置,其中Activity元件是在所有的元件中被使用次數最多的一個元件,大家對此要保持高度關注。
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.yw.kotlin_helloworld"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> //此處是我們新建的MainActivity的配置,可以用相對路徑也可以用絕對路徑,此處用的是相對 //路徑,因為上面的package="com.yw.kotlin_helloworld"已經把完整包名寫好了,所以只 //需要貼上相對路徑就行了 <activity android:name=".MainActivity"> <intent-filter> \t\t\t\t//此處代表此MainActivity是我們的主Activity,是入口Activity \t\t\t//記住,以後凡是看到這個action,那麼此activity必定是app的口入Activity \t\t\t//也就是點選app圖示開啟後的第一個你看到的Activity <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>
四、總結語到此一個非常簡單的用Kotlin作為主開發語言的Android專案就算是完成了,那麼快速開啟你的HelloWorld之旅吧。