đ¯ Android Developers āϝāĻžāϰāĻž āύāĻŋāĻā§āϰ āĻ ā§āϝāĻžāĻĒ āϏāĻžāĻāĻ āĻāĻŽāĻžāϤ⧠āĻāĻžāύ â āϤāĻžāϰāĻž āύāĻŋāĻļā§āĻā§āĻ "Split APKs by ABI" āĻāĻĨāĻžāĻāĻž āĻļā§āύā§āĻā§āύāĨ¤ āĻāĻŋāύā§āϤ⧠ABI (Application Binary Interface) āĻāϏāϞ⧠āĻā§? āĻāĻŦāĻ āĻā§āύ āĻāĻāĻž āĻ ā§āϝāĻžāĻĒ āϏāĻžāĻāĻā§āϰ āĻāύā§āϝ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ?
đ ABI (Application Binary Interface) āĻšāϞ⧠āĻāĻāĻāĻŋ āĻā§āĻā§āϤāĻŋ (interface) āϝāĻž Android OS āĻ āĻĄāĻŋāĻāĻžāĻāϏā§āϰ CPU āĻāϰ āĻŽāϧā§āϝ⧠āϝā§āĻāĻžāϝā§āĻā§āϰ āύāĻŋāϝāĻŧāĻŽ āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰ⧠â āĻŦāĻŋāĻļā§āώ āĻāϰ⧠āϝāĻāύ āĻ ā§āϝāĻžāĻĒā§ Native Code (e.g., .so file) āĻĨāĻžāĻā§āĨ¤
đĻ āϧāϰā§āύ āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒā§ arm64-v8a, armeabi-v7a, x86 â āĻāĻ āϏāĻŦ ABI āĻāϰ .so āĻĢāĻžāĻāϞ āĻāĻāϏāĻžāĻĨā§ āĻĨāĻžāĻā§, āϤāĻžāĻšāϞ⧠āĻ ā§āϝāĻžāĻĒ āϏāĻžāĻāĻ āĻ āύā§āĻ āĻŦā§ā§ā§ āϝāĻžāĻŦā§āĨ¤
đ¯ āϏāĻŽāĻžāϧāĻžāύ?
App Bundle (.aab) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϞ⧠Google Play āĻāĻāĻāĻžāϰā§āϰ āĻĄāĻŋāĻāĻžāĻāϏ āĻ āύā§āϝāĻžā§ā§ āĻļā§āϧ⧠āϏā§āĻ ABI-āĻāϰ āĻ āĻāĻļ āĻĒāĻžāĻ āĻžā§āĨ¤
āĻ āĻĨāĻŦāĻž APK āĻĻāĻŋā§ā§ āύāĻŋāĻā§ āĻļā§ā§āĻžāϰ āĻāϰāϞ⧠Gradle āĻsplits.abi
enable āĻāϰ⧠āĻāϞāĻžāĻĻāĻž APK āĻŦāĻžāύāĻžāύ⧠āϝāĻžā§āĨ¤
đ¸ Slide 1:
āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒ āϏāĻžāĻāĻ āĻŦā§āĻļāĻŋ āĻšā§ā§ āϝāĻžāĻā§āĻā§?
Native Code (.so āĻĢāĻžāĻāϞ)?
āϏāĻŽāĻžāϧāĻžāύ: Split APKs by ABI
đ¸ Slide 2:
ABI āĻā§?
ABI = Application Binary Interface
Android OS āĻāϰ āĻĄāĻŋāĻāĻžāĻāϏā§āϰ CPU-āĻāϰ āĻŽāϧā§āϝ⧠āĻāĻ āϧāϰāύā§āϰ "communication agreement"
āĻŦāĻŋāĻļā§āώ āĻāϰ⧠Native āĻā§āĻĄ āϰāĻžāύ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻāĻž āĻĻāϰāĻāĻžāϰ āĻšā§
đ¸ Slide 3:
āĻāĻāϏāĻžāĻĨā§ āϏāĻŦ ABI āĻĻāĻŋāϞ⧠āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒā§ āĻāĻāĻžāϧāĻŋāĻ .so āĻĢāĻžāĻāϞ āĻĨāĻžāĻā§
āϝā§āĻŽāύ: arm64-v8a, armeabi-v7a, x86 â āϏāĻŦ āĻŽāĻŋāϞāĻŋā§ā§ āĻ ā§āϝāĻžāĻĒ āϏāĻžāĻāĻ āĻ āύā§āĻ āĻŦā§ā§ā§ āϝāĻžā§
đ¸ Slide 4:
â āϏāĻŽāĻžāϧāĻžāύ āĻā§?
App Bundle (.aab) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ
đ Google Play āĻāĻāĻāĻžāϰā§āϰ āĻĄāĻŋāĻāĻžāĻāϏ āĻ āύā§āϝāĻžā§ā§ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻĻāϰāĻāĻžāϰāĻŋ ABI āĻĒāĻžāĻ āĻžā§
đ¸ Slide 5:
đ¯ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ APK āĻĢāĻžāĻāϞ āύāĻŋāĻā§ āĻļā§ā§āĻžāϰ āĻāϰā§āύ:
splits {
abi {
enable true
include 'arm64-v8a', 'armeabi-v7a'
universalApk false
}
}
đ¸ Slide 6:
â āϞāĻžāĻ āĻā§?
App Size āĻāĻŽā§ āϝāĻžā§
Faster install & download
Better UX & Performance
āĻāϤ⧠āĻ ā§āϝāĻžāĻĒ āϏāĻžāĻāĻ āĻāĻŽā§, āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāύā§āϏ āĻŦāĻžā§ā§ āĻāĻŦāĻ āĻāĻāĻāĻžāϰ āĻāĻā§āϏāĻĒā§āϰāĻŋā§ā§āύā§āϏ āĻšā§ āĻāύā§āύāϤāĨ¤