文章目錄
- 安裝+配置Android Studio
- 使用Android Studio
- 模擬器
- 更改Android SDK的路徑
- Hello World!
- 專案目錄分析
- AndroidManifest.xml 分析
- MainActivity.kt 分析
安裝+配置Android Studio
從這一步開始:

一直點 next 即可,直到存盤路徑的選擇上,可以放到非 C 盤,這里我放到 D 盤了(截圖中沒改):

是否要添加到開始選單欄:

直到完成:

是否繼承舊有配置,第一次安裝的選第二個就行:

谷歌問你能不能在不侵犯你隱私的前提下獲取些幫助改進的資訊……我選的 send:

這個問題詳見這篇博客:

配置,第一個是標準常規配置,第二個是自定義配置,選擇第一個即可:

深色主題 or 淺色主題:

使用Android Studio
新建一個專案:

選擇專案模塊,可直接點next:

因為 Google 簡易采用 Kotlin 來進行開發,不過也可以使用 java,同時指定 Minimum SDK 的版本為 21,對應 Android 5 版本:

編譯器界面:

如果點了上圖圈出來的那個,就會……:

運行 ‘app’ 時出錯:沒有找到目標設備,
模擬器
這是因為缺少模擬器,點擊:

進入下圖界面,點擊頁面中間的 Create Virtual Device...:

選擇完成后點擊 next:

點擊 Download 下載你想要的系統,下載完之后選中,點擊 Next :

點擊接受,然后 next:

下載完成后點擊 Finish:

更改Android SDK的路徑
值得一提的是,Android SDK 的默認路徑是在 C 盤,因此模擬器也會被下在 C 盤:

其實這個是可以更改的,我們根據 C: \Users\(你的主機名)\AppData\Local \Android\Sdk\ ,找到 Sdk 檔案夾,將其移動到 D 盤(我是將整個 Android 檔案夾移動到 D 盤了):

PS:移動時記得關閉 AS 軟體,否則會因為部分組件正在被使用導致無法成功移動,
然后在 AS 里重設 Sdk 的路徑:


好了我們繼續說配置模擬器,之后回到之前選擇系統的界面,選擇下載好的系統,點擊 next:

進行引數配置:

添加成功:

出現左側的安卓手機就算配置成功啦!PS:在此之前可能會讓你下載 HAXM,跟著提示點就行了,因為我們上面把 SDK 移動到了 D 盤,因此也不用擔心占記憶體什么的~

值得一提的是,出現如下圖所示的彈窗,則表示模擬器已經啟動了,無需再點擊啟動的三角符號:

當啟動模擬器之后即可回傳之前界面,運行代碼:

這時我出現了這樣的報錯:Installed Build Tools revision 版本號 is corrupted. Remove and install again
焦頭爛額許久之后,找到了原因,我下載的模擬器版本是 Android 7.0 ,但是 Android SDK 卻只有 API 32 這個版本:


解決方式是,下載 Android 7.0 之后,更改 build.gradle 組態檔,圖中框起來的部分是修改后的內容,這里我選擇的是我下載的 30 版本,之后記得點擊右上角的 sync now 進行同步:


Hello World!
解決上述問題后再次運行程式,模擬器即可出現:

專案目錄分析
我們來看一下 src/main/res 下的一些檔案:

mipmap系:用來放置圖示,有多個版本的檔案夾,是為了適應不同的設備,提高了代碼兼容性,values系:存放字串、樣式、顏色等配置,layout系:存放布局檔案的,drawable系:存放圖片,AndroidManifest.xml:整個專案的組態檔,在程式中定義的組件都需要在這個檔案中注冊,
AndroidManifest.xml 分析

activity表示對MainActivity進行注冊,- 因為包名在上文
package中已經定義,所以用.表示省略包名, intent-filter是攔截器,定義了整個專案的主Activity,也就是專案的入口,
MainActivity.kt 分析
MainActivity.kt 是用 kotlin 實作的代碼檔案,可以類比于 C++/JAVA 的 main 檔案/函式:

上圖紅框的意義是:MainActivity 繼承了 AppCompatActivity,
那么什么是
AppCompatActivity呢?
Android 21(也就是 Android 5)之后引入了 Material Design 的設計方式,為了支持 Material Color 、調色板、toolbar 等各種新特性,AppCompatActivity 就應運而生,其不僅兼容舊有的 ActionBarActivity,更是引入了AppCompatDelegate 類的設計,可以在普通的 Acitivity 中使用 AppCompate 的相關特性,
那么什么是
Acitivity呢?
Activity類 是 Android 提供的一個基類,專案中所有程式員自定義的 Activity 都必須繼承 基類Activity 或者 基類Activity的子類,從而獲得一個 Activity 的特性,
onCreate與Create
在 view類 中,Create 是虛函式、由框架呼叫,用來 生成一個視窗的子視窗, 而 OnCreate 函式是用來表示 一個視窗正在生成,
一個視窗創建(Create)之后,會向作業系統發送 WM_CREATE 訊息,OnCreate() 函式主要是用來回應此訊息的,因此又被叫做訊息回應函式,其只是在視窗顯示前設定視窗的屬性,如風格、位置顏色等;實作我們要在視窗里面增加的東西,例如按扭,狀態欄,工具列等,這些子視窗一般定義成類中的一個成員變數,以保證生命周期的正確性,
Android中Bundle類的作用.
Bundle類 類似于 Map,用于存放 key-value 鍵值對形式的值,相對于 Map,它提供了各種常用型別的 put/get 方法,如:putString()/getString() 和 putInt()/getInt(),put() 用于往 Bundle 物件放入資料,get() 方法用于從 Bundle 物件里獲取資料,Bundle 的內部實際上使用了 HashMap型別 的變數來存放 put() 方法放入的值,
savedInstanceState和onSaveInstanceState()
在 Activity 的生命周期中,只要離開了可見階段,或者說失去了焦點,Activity 就很可能被行程 KILL 掉,這時候,就需要一種能保存當時的狀態的機制—— savedInstanceState ,當一個 Activity 在 PAUSE 時,被 KILL 之前,它可以呼叫 onSaveInstanceState() 來保存當前 Activity 的狀態資訊,用來保存狀態資訊的 Bundle 會同時傳給兩個 method,即 onRestoreInstanceState() 和 onCreate(),
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
// override 確保該函式(即onCreate)為基類(即Activity)的虛函式并在此進行重寫,
super.onCreate(savedInstanceState)
// 呼叫其父類Activity的onCreate方法來實作對界面的圖畫繪制作業,
// 其實這條陳述句放在子類中的onCreate方法中的任何位置都可,問題只是該陳述句必須要被執行,所以,最好放在第一行,避免遺忘,
// Activity中的onCreate方法中已經實作了一些基本操作,如果子類沒有缺少super.onCraete,會導致子類中的onCreate方法功能不全,
setContentView(R.layout.activity_main)
// 作用:加載一個界面,Android講究邏輯與視圖分離,所以在Activity是不寫界面的,界面是放在區域檔案里面的,
// 該方法中傳入的引數是”R.layout.activity_main“,其含義為R.java類中靜態內部類layout的靜態常量activity_main的值,
// 而該值是一個指向res目錄下的layout子目錄下的activity_main.xml檔案的識別符號,
// 因此代表著顯示activity_main.xml所定義的畫面/布局,
}
}
我們來看一下上面代碼提到的 activity_main.xml:

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/413491.html
標籤:其他
