1. 程式人生 > 其它 >第1章筆記

第1章筆記

技術標籤:安卓第一行程式碼筆記

文章目錄

前言

其實自己學習安卓已經有挺長時間了(差不多兩年),不過一直沒有系統地讀完一本安卓教材,很多基礎知識處於學了就忘的狀態,感覺有記錄會好很多,所以選擇了 CSDN 部落格來記錄。
在筆記中,我會用紅色標記自己在學習過程中發現的書中的講解問題,包括已經不適用的一些內容等;用藍色標記出自己關於程式碼的一些想法,一些創新點,一些嘗試等。
筆記不會記錄全部,自己認為書中已經講解得很清楚的部分,不再重複。

筆記

1 安裝 Anroid Studio

這裡沒有要特別注意的地方。按照教程即可裝好。一開始檢測到沒有 Android SDK,點選 cancel 後會跳轉到後續引導頁面指導下載。
另外,據說有些(使用英特爾晶片的)電腦會出現不支援 HAXM 的情況,導致安裝好安卓虛擬裝置後無法執行。HAXM 是英特爾推出的硬體加速執行管理器,目前廣泛用於安卓模擬器和 QEMU。 出現這個問題的解決辦法可以看這裡 <Windows 10>
一開始引導頁如果因為網路問題下載失敗的話,稍後可以進入 SDK Manager 重新開啟下載。如果下載 HAXM 沒有成功,執行虛擬裝置時會提示重新下載。

2 佈局檢視分離

安卓提出了檢視的邏輯與檢視本身分離的設計,一般基礎的檢視會在 XML 佈局檔案內寫好。之後,在需要確定具體邏輯的時候,就要從這些 XML 佈局檔案中拿到對應的控制元件的例項。

3 引用資源的方式

在實際的程式設計程式碼中(也就是實際負責邏輯部分的 Kotlin 或者 Java 程式碼),採用 R.type.name 的方式來獲取它的引用。
type 代表資源的型別。例如 string 型別的資源就放在 res/values/strings.xml 下,標籤頭由 string 標識。

<resources>
    <string name="app_name">Application</string>
</resources>

顏色也是資源,在 res/values/colors.xml 中有指定,用 color

標識。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="purple_200">#FFBB86FC</color>
    <color name="purple_500">#FF6200EE</color>
    <color name="purple_700">#FF3700B3</color>
    <color name="teal_200">#FF03DAC5</color>
    <color name="teal_700">#FF018786</color>
    <color name="black">#FF000000</color>
    <color name="white">#FFFFFFFF</color>
</resources>

需要注意的是,之後提到的每一個控制元件都會有的 id 也是一種資源,通過控制元件的 id 才可以獲取控制元件例項。
name 就是標籤內具體指定的 name 屬性了,同一型別的資源 name 不能相同。
在 XML 檔案中要引用資源,方法是 @type/nametype 指定了資源的型別, name 則是具體的資源的名字。

4 執行app與x64架構

在這裡插入圖片描述
注意到,安卓預設讓我們下載的 Pixel_3a,採用了 Level 30 的 API,同時後面跟了一個 x86,這意味著這部手機的系統是 32 位的。那麼我們編譯出來的 app 呢?它能在執行64位系統上的安卓手機上執行嗎?
事實上目前這種擔心是多餘的。現在我們考慮的並不包括,甚至整本書中都沒有談到 NDK 開發的具體問題,雖然 Google 要求今後所有在 Google Play 上釋出的應用都必須支援 64位架構了,但是這隻會影響到使用了 naive code 的應用(也就是專案中用到了 Android NDK,使用 C/C++ 開發,或者專案整合的庫內使用了 NDK,具體可以參考官方文件),對於目前還在 Application 層面的初學者來說不用考慮這個問題,但是我認為有必要了解這個問題。

如果有條件,一個 app 做好之後,還是要儘可能地安裝到物理機上執行測試,以檢測在真實的硬體裝置環境和使用條件下app的效能等。

總結

第1章算是比較簡單的,首先是下載好了 Android Studio,然後建立了第一個專案,瞭解了 Android 專案的基本結構。從這一天開始就是一個真正的安卓開發者了,但是前面還有很長的路要走。但是走出第一步可以說是最重要的。