iT邦幫忙

2022 iThome 鐵人賽

DAY 12
0

不知道有沒有人好奇為什麼 Android APP 是用 Java 或 Kotlin 撰寫的呢?

運作架構

Android 其實是個 Linux 作業系統,APP 開發時寫的是 Java 或 Kotlin,經過組譯器組譯後會生成 class 檔案,裡面是 Java Virtual Machine (JVM) bytecode,到這裡為止是一般 JVM-based 程式的組譯流程,但 Android 上能運行的是 Dalvik bytecode,所以要把 JVM bytecode 轉成 Dalvik bytecode,APP 安裝時會由 Android Runtime (ART) 先編譯部份的 bytecode 成為 machine code (Ahead-Of-Time compilation) 。

Activity

平常的程式可能是從 main 函式開始執行,在 Android 則是 Activity.onCreate()

Lifecycle

Android 與於一般 Linux 不一樣的是,為了節省效能會區分前景與背景程式,切換到背景時會暫停,在資源不足時還會中止運行,所以需要根據生命週期做出對應處理,避免造成使用者體驗不佳。

Application

Application 其實比 Activity 早開始執行的,但它就像 Linux ELF 的 __libc_start_main() 一樣,平常不需要知道、用到它,除非需要在跨 Activity 的情況下拿到 Context。


上一篇
Day 11 - Jetpack Compose UI
下一篇
Day 13 - Android debug 之翻車紀錄
系列文
關於我用 Compose UI 造新輪子這檔事24
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言