Android ทำงานบน อุปกรณ์และเวอร์ชัน OS ที่หลากหลายมาก ("fragmentation") ดังนั้นแอปต้องจัดการ ความเข้ากันได้ของเวอร์ชัน โดยรองรับเวอร์ชันเก่าในขณะที่ใช้ฟีเจอร์ใหม่อย่างปลอดภัย การเข้าใจ SDK level, ไลบรารีความเข้ากันได้ และ graceful degradation เป็นสิ่งสำคัญ
SDK level: min, target, compile
minSdk → the OLDEST Android version the app supports (older devices can't install it)
→ lower minSdk = more devices reached, but more compatibility work
targetSdk → the version the app is TESTED/optimized against (and opts into its behaviors)
→ should be kept current (Play requires a recent targetSdk)
compileSdk → the SDK version used to COMPILE (access to newer APIs)
→ Balance: support enough old devices (minSdk) while targeting current behavior (targetSdk).
