Android Jetpack
Jetpack เป็นชุดไลบรารีที่ช่วยให้นักพัฒนาแอปทำตามแนวทางปฏิบัติแนะนำ ลดโค้ดสำเร็จรูป และเขียนโค้ดที่ทำงานสอดคล้องกันในเวอร์ชันและอุปกรณ์ Android เพื่อให้นักพัฒนาแอปมุ่งเน้นที่โค้ดที่ตนสนใจได้
Jetpack Compose
พัฒนา UI ด้วยการเขียน
ชุดเครื่องมือที่ทันสมัยสำหรับการสร้าง UI แบบเนทีฟที่ช่วยให้คุณพัฒนา UI บน Android ได้อย่างง่ายดายและรวดเร็วยิ่งขึ้น
เหตุใดจึงควรใช้ Android Jetpack
ทำตามแนวทางปฏิบัติแนะนำ
ไลบรารี Android Jetpack Libraries ที่สร้างขึ้นตามแนวทางปฏิบัติด้านการออกแบบที่ทันสมัยช่วยลดข้อขัดข้องและลดการรั่วไหลของหน่วยความจำเนื่องจากมาพร้อมความสามารถในการใช้งานร่วมกันแบบย้อนหลัง
นำโค้ด Boilerplate ออก
Android Jetpack จัดการกิจกรรมที่น่าเบื่อ เช่น งานในเบื้องหลัง การนำทาง และการจัดการอายุการใช้งาน เพื่อให้คุณสามารถโฟกัสกับสิ่งที่ทำให้แอปยอดเยี่ยมได้
ลดการกระจาย Fragment
ลดความซับซ้อนด้วยไลบรารีที่ทำงานอย่างสอดคล้องกันในเวอร์ชันและอุปกรณ์ Android
ห้องสมุด Jetpack สำรวจห้องสมุดทั้งหมด
* ไลบรารียอดนิยมและใช้บ่อยจะแสดงเป็นอันดับแรก
กิจกรรม * | เข้าถึง API ที่ประกอบกันได้ซึ่งต่อยอดมาจากกิจกรรม |
appcompat * | อนุญาตการเข้าถึง API ใหม่ในแพลตฟอร์ม API เวอร์ชันเก่า (หลายแพลตฟอร์มที่ใช้ดีไซน์ Material) |
การค้นหาแอป * | สร้างความสามารถในการค้นหาในแอปแบบกำหนดเองสำหรับผู้ใช้ |
กล้อง * | สร้างแอปกล้องบนมือถือ |
เขียน * | กำหนด UI แบบเป็นโปรแกรมด้วยฟังก์ชันที่ประกอบกันได้ซึ่งอธิบายรูปร่างและทรัพยากร Dependency ต่างๆ |
การเชื่อมโยงข้อมูล * | เชื่อมโยงคอมโพเนนต์ UI ในเลย์เอาต์กับแหล่งข้อมูลในแอปโดยใช้รูปแบบการประกาศ |
ส่วนย่อย * | แบ่งกลุ่มแอปออกเป็นหน้าจอหลายๆ หน้าจอที่เป็นอิสระซึ่งโฮสต์อยู่ภายในกิจกรรม |
hilt * | ขยายฟังก์ชันการทำงานของ Dagger Hilt เพื่อเปิดใช้การแทรกทรัพยากร Dependency ของคลาสบางรายการจากไลบรารี androidx |
วงจร * | สร้างคอมโพเนนต์ที่ทราบถึงวงจรซึ่งปรับลักษณะการทำงานตามสถานะปัจจุบันของกิจกรรมหรือส่วนย่อยได้ |
คอมโพเนนต์ดีไซน์ Material * | คอมโพเนนต์ UI ของดีไซน์ Material แบบโมดูลและปรับแต่งได้สำหรับ Android |
การนำทาง * | สร้างและจัดโครงสร้าง UI ในแอป จัดการ Deep Link และไปยังหน้าจอต่างๆ |
การแบ่งหน้า * | โหลดข้อมูลในหน้าเว็บแล้วแสดงใน RecyclerView |
ห้อง * | สร้าง จัดเก็บ และจัดการข้อมูลถาวรที่มาจากฐานข้อมูล SQLite |
ทดสอบ * | การทดสอบใน Android |
ที่ทำงาน * | กำหนดเวลาและดำเนินงานเบื้องหลังที่มีข้อจำกัดและเลื่อนเวลาออกไปได้ |
โฆษณา | รับรหัสโฆษณาโดยมีหรือไม่มีบริการ Google Play |
หมายเหตุ | แสดงข้อมูลเมตาที่ช่วยให้เครื่องมือและนักพัฒนาซอฟต์แวร์รายอื่นๆ เข้าใจโค้ดของแอป |
Arc.core | ผู้ช่วยสำหรับทรัพยากร Dependency ของอาร์เคดอื่นๆ รวมถึงกฎการทดสอบ JUnit ที่ใช้กับ LiveData ได้ |
asynclayoutinflater | ขยายเลย์เอาต์ให้เพียงพอแบบอะซิงโครนัสเพื่อหลีกเลี่ยงการกระตุกใน UI |
ป้อนข้อความอัตโนมัติ | ปรับปรุงความถูกต้องของการป้อนข้อความอัตโนมัติผ่านการขยายคำแนะนำ |
การเปรียบเทียบ | วัดประสิทธิภาพโค้ดอย่างแม่นยำใน Android Studio |
ข้อมูลไบโอเมตริก | ตรวจสอบสิทธิ์ด้วยข้อมูลไบโอเมตริกหรือข้อมูลเข้าสู่ระบบของอุปกรณ์ และดำเนินการเข้ารหัส |
บลูทูธ | ใช้ฟีเจอร์บลูทูธของแพลตฟอร์ม Android กับ API ที่เข้ากันได้แบบย้อนหลัง |
เบราว์เซอร์ | แสดงหน้าเว็บในเบราว์เซอร์เริ่มต้นของผู้ใช้ |
แอปสำหรับรถยนต์ | สร้างแอปที่ใช้เทมเพลตสำหรับ Android Auto และ Android Automotive OS |
Cardview | ใช้รูปแบบการ์ดของดีไซน์ Material ที่มีมุมกลมและเงาตกกระทบ |
คอลเล็กชัน | ลดการใช้ความทรงจำในคอลเล็กชันที่มีอยู่และคอลเล็กชันใหม่ที่มีขนาดเล็ก |
compose.animation | สร้างภาพเคลื่อนไหวในแอปพลิเคชัน Jetpack Compose เพื่อยกระดับประสบการณ์ของผู้ใช้ |
compose.compiler | แปลงฟังก์ชัน @Composable และเปิดใช้การเพิ่มประสิทธิภาพด้วยปลั๊กอินคอมไพเลอร์ Kotlin |
compose.foundation | เขียนแอปพลิเคชัน Jetpack Compose ด้วยองค์ประกอบสำคัญที่พร้อมใช้งานและขยายพื้นฐานเพื่อสร้างชิ้นงานของระบบการออกแบบของคุณเอง |
compose.material | สร้าง UI ของ Jetpack Compose ด้วยคอมโพเนนต์ดีไซน์ Material ที่พร้อมใช้งาน นี่คือจุดแรกเข้าของ Compose ในระดับที่สูงขึ้น ซึ่งออกแบบมาเพื่อมอบคอมโพเนนต์ที่ตรงกับคอมโพเนนต์ที่อธิบายไว้ใน www.material.io |
compose.material3 | สร้าง UI ของ Jetpack Compose ด้วยคอมโพเนนต์ Material Design 3 ซึ่งเป็นการพัฒนาครั้งใหม่ของดีไซน์ Material Material 3 ประกอบด้วยธีมและคอมโพเนนต์ที่อัปเดตใหม่ และฟีเจอร์การปรับเปลี่ยนในแบบของคุณของ Material You เช่น สีแบบไดนามิก ทั้งยังออกแบบมาให้สอดคล้องกับสไตล์ภาพและ UI ของระบบใหม่ของ Android 12 |
compose.runtime | องค์ประกอบพื้นฐานพื้นฐานของโมเดลการเขียนโปรแกรมและการจัดการสถานะของ Compose และรันไทม์หลักของปลั๊กอิน Compose Compiler ที่จะกำหนดเป้าหมาย |
compose.ui | องค์ประกอบพื้นฐานของ UI การเขียนที่จำเป็นสำหรับการโต้ตอบกับอุปกรณ์ ซึ่งรวมถึงเลย์เอาต์ การวาดภาพ และการป้อนข้อมูล |
พร้อมกัน | ย้ายงานออกจากชุดข้อความหลักด้วย Coroutine และใช้ประโยชน์จาก ListenableFuture |
constraintlayout | จัดตำแหน่งวิดเจ็ตและขนาดด้วยวิธีที่ยืดหยุ่นด้วยการจัดตำแหน่งแบบสัมพันธ์กัน |
contentpager | โหลดและหน้าเว็บในข้อมูล ContentProvider ในชุดข้อความเบื้องหลัง |
Coordinatorlayout | จัดตำแหน่งวิดเจ็ตแอปพลิเคชันระดับบนสุด เช่น AppBarLayout และ FloodActionButton |
แกน | กำหนดเป้าหมายไปยังฟีเจอร์แพลตฟอร์มและ API ล่าสุด ขณะเดียวกันก็รองรับอุปกรณ์รุ่นเก่าด้วย |
core.uwb | ใช้ UWB (แถบความถี่กว้างยิ่งยวด) ในอุปกรณ์ที่รองรับ |
ข้อมูลเข้าสู่ระบบ | ไลบรารีนี้ให้การเข้าถึงข้อมูลเข้าสู่ระบบของผู้ใช้แบบรวม ซึ่งอาจรวมถึงรหัสผ่าน พาสคีย์ และข้อมูลเข้าสู่ระบบแบบรวมศูนย์ ควรใช้ไลบรารีนี้เพื่อมอบประสบการณ์การลงชื่อเข้าใช้ที่ราบรื่นและปลอดภัย |
cursoradapter | แสดงข้อมูลเคอร์เซอร์ไปยังวิดเจ็ต ListView |
มุมมองที่กำหนดเอง | ใช้มุมมองที่กำหนดเอง |
พื้นที่เก็บข้อมูล | จัดเก็บข้อมูลแบบไม่พร้อมกัน สม่ำเสมอ และธุรกรรม โดยแก้ไขข้อเสียบางอย่างของ SharedPreferences |
documentfile | ดูเอกสารไฟล์ |
draganddrop | ยอมรับข้อมูลแบบลากและวางจากแอปอื่นหรือภายในแอป และแสดงการจ่ายเป้าหมายการลดลงที่สม่ำเสมอ |
drawerlayout | ใช้วิดเจ็ตลิ้นชักดีไซน์ Material |
ภาพเคลื่อนไหวแบบไดนามิก | สร้างภาพเคลื่อนไหวที่ราบรื่นด้วย API ภาพเคลื่อนไหวที่อิงตามหลักฟิสิกส์ |
อีโมจิ | แสดงอีโมจิในอุปกรณ์ปัจจุบันและรุ่นเก่ากว่า |
อีโมจิ 2 | แสดงอีโมจิในอุปกรณ์ปัจจุบันและรุ่นเก่ากว่า |
องค์กร | สร้างแอปพลิเคชันที่พร้อมให้องค์กรใช้งาน |
อินเทอร์เฟซภายนอก | อ่านและเขียนแท็ก EXIF ของไฟล์ภาพ |
เกม | ใช้ Android Game SDK ในตัวแอปเพื่อทำงานที่ซับซ้อนเกี่ยวกับเกม เช่น Frame Pacing |
ข้อมูลโดยย่อ | สร้างเลย์เอาต์สำหรับพื้นผิวระยะไกลโดยใช้ API สไตล์ Jetpack Compose |
กราฟิก | ใช้ประโยชน์จากสิ่งอำนวยความสะดวกด้านกราฟิกในแพลตฟอร์ม Android รุ่นต่างๆ |
gridlayout | ใช้เลย์เอาต์แบบตารางกริด |
สุขภาพ | สร้างแอปพลิเคชันด้านสุขภาพที่มีประสิทธิภาพบนแพลตฟอร์มต่างๆ โดยไม่ต้องอาศัยความรู้จากแพลตฟอร์มของคุณเอง |
health.connect | อนุญาตให้นักพัฒนาซอฟต์แวร์อ่านหรือเขียนบันทึกสุขภาพและการออกกำลังกายของผู้ใช้ |
Heifwriter | เข้ารหัสคอลเล็กชันรูปภาพหรือรูปภาพในรูปแบบ HEIF โดยใช้ตัวแปลงรหัสที่มีอยู่ในอุปกรณ์ Android |
อินพุต | ลดเวลาในการตอบสนองของการโต้ตอบอินพุตโดยการคาดการณ์ MotionEvents ในอนาคต |
เครื่องมือควบคุมเวลา | ใช้เครื่องมือการประมาณค่าภาพเคลื่อนไหวบนแพลตฟอร์มรุ่นเก่า |
javascriptengine | เปิดใช้แอป Android เพื่อประเมิน JavaScript |
เครื่องบินเจ็ตเตอร์ | เครื่องมือแบบสแตนด์อโลนที่ย้ายข้อมูลทรัพยากร Dependency ของไลบรารีบนไลบรารีการสนับสนุนที่เลิกใช้งานแล้วไปยังทรัพยากร Dependency ของ AndroidX ที่เทียบเท่า |
Leanback | ใช้ฟีเจอร์ Compose สำหรับทีวีแทนอาร์ติแฟกต์นี้ |
เดิม | เลิกใช้งานอาร์ติแฟกต์นี้และคลาสของอาร์ติแฟกต์แล้ว ตั้งแต่ Android 8 เป็นต้นไป ข้อจำกัดการตรวจสอบภูมิหลังจะทำให้ชั้นเรียนนี้ไม่มีประโยชน์อีกต่อไป |
Lint | ตรวจสอบ Lint เพื่อยืนยันการใช้งาน Gradle API |
ตัวโหลด | โหลดข้อมูลสำหรับ UI ที่รอดการเปลี่ยนแปลงการกำหนดค่า |
localbroadcastmanager | เลิกใช้งานอาร์ติแฟกต์นี้และคลาสของอาร์ติแฟกต์แล้ว โปรดใช้ LiveData หรือสตรีมเชิงรับแทน |
สื่อ | แชร์เนื้อหาและการควบคุมสื่อกับแอปอื่นๆ มีเดีย 2 มาแทนที่แล้ว |
สื่อ 2 | แชร์เนื้อหาและการควบคุมสื่อกับแอปอื่นๆ |
สื่อ 3 * | ไลบรารีสนับสนุนสำหรับ Use Case สื่อ |
mediaRouter | เปิดใช้การแสดงและการเล่นสื่อในอุปกรณ์ตัวรับสัญญาณระยะไกลโดยใช้อินเทอร์เฟซผู้ใช้ทั่วไป |
multidex | ทำให้แอปพลิเคชันที่มีไฟล์ dex หลายไฟล์ใช้งานได้ในอุปกรณ์ Android 5 รุ่นก่อน |
เมตริก | ติดตามและรายงานเมตริกรันไทม์ต่างๆ สำหรับแอปพลิเคชัน |
ชุดสี | แยกชุดสีตัวแทนออกจากรูปภาพ |
คลังสำหรับเพิ่มความสามารถในการดู PDF ภายในแอป | |
percentlayout | เลิกใช้งานอาร์ติแฟกต์นี้และคลาสของอาร์ติแฟกต์แล้ว โปรดใช้ ConstraintLayout และเลย์เอาต์ที่เกี่ยวข้องแทน |
ค่ากำหนด | สร้างหน้าจอการตั้งค่าแบบอินเทอร์แอกทีฟโดยไม่ต้องโต้ตอบกับพื้นที่เก็บข้อมูลของอุปกรณ์หรือจัดการ UI |
พิมพ์ | พิมพ์รูปภาพ เอกสาร ตลอดจนกราฟิกและรูปภาพอื่นๆ จากแอปของคุณ |
privacysandbox.activity | สิ่งที่ต้องทำ |
privacysandbox.ads | ไลบรารีนี้เปิดใช้การรวมกับ Privacy Preserving API ซึ่งเป็นส่วนหนึ่งของ Privacy Sandbox ใน Android |
privacysandbox.plugins | ปลั๊กอิน Privacy Sandbox ของไลบรารี Sdk สำหรับ Android |
privacysandbox.sdkruntime | ไลบรารีนี้มีคอมโพเนนต์สำหรับผู้บริโภคที่ตระหนักถึง SdkRuntime |
privacysandbox.tools | ไลบรารีสำหรับใช้ฟังก์ชัน Privacy Sandbox ใน Android |
privacysandbox.ui | สิ่งที่ต้องทำ |
profileinstaller | เปิดให้ไลบรารีป้อนข้อมูลล่วงหน้าการติดตามการคอมไพล์ที่จะอ่านโดย ART |
คำแนะนำ | โปรโมตเนื้อหาไปยังหน้าจอหลักของ Android TV Launcher |
Recyclerview | แสดงชุดข้อมูลขนาดใหญ่ใน UI พร้อมกับลดการใช้หน่วยความจำ |
remotecallback | สร้าง Wrapper ที่ช่วยให้นักพัฒนาแอประบุ PendingIntent ได้ง่ายขึ้น |
การตรวจสอบทรัพยากร | แสดงแอตทริบิวต์ของมุมมองที่กำหนดเองในเครื่องมือตรวจสอบ Live Layout ของ Android Studio |
บันทึกสถานะ | เขียนคอมโพเนนต์ที่เสียบได้ซึ่งบันทึกสถานะ UI เมื่อกระบวนการหยุดทำงาน และคืนค่าเมื่อกระบวนการรีสตาร์ท |
ความปลอดภัย | จัดการคีย์และเข้ารหัสไฟล์ รวมถึงค่ากำหนดที่แชร์ได้อย่างปลอดภัย |
เป้าหมายที่แชร์ | ระบุความเข้ากันได้แบบย้อนหลังสำหรับการใช้แป้นพิมพ์ลัดเป็นเป้าหมายการแชร์โดยตรง |
สไลซ์ | แสดงองค์ประกอบ UI ที่ใช้เทมเพลตนอกแอปของคุณ |
slidingpanelayout | ใช้รูปแบบ UI ของแผงเลื่อน |
การเริ่มต้น | ใช้วิธีที่ง่ายและมีประสิทธิภาพในการเริ่มต้นคอมโพเนนต์เมื่อเริ่มต้นแอป |
Sqlite | ทำงานกับฐานข้อมูล SQLite ในเครื่อง หากเป็นไปได้ ให้ใช้ "ห้องแชท" แทน |
ปัดการรีเฟรช | ใช้รูปแบบ UI การปัดเพื่อรีเฟรช |
test.uiautomator | เฟรมเวิร์กสำหรับการทดสอบ UI ข้ามฟังก์ชัน |
ตัวแยกประเภทข้อความ | ระบุการสนทนา ลิงก์ การเลือก และโครงสร้างอื่นๆ ที่คล้ายกันในข้อความ |
การติดตาม | เขียนเหตุการณ์การติดตามลงในบัฟเฟอร์การติดตามของระบบ |
การเปลี่ยน | สร้างภาพเคลื่อนไหวใน UI ด้วยการออกแบบเริ่มต้นและสิ้นสุด |
ทีวี | มีฟังก์ชันการเขียนและดีไซน์ Material สำหรับนักพัฒนาซอฟต์แวร์เพื่อเขียนแอปพลิเคชันสำหรับทีวี |
ผู้ให้บริการทีวี | ระบุช่อง Android TV |
vectordrawable | แสดงผลกราฟิกเวกเตอร์ |
versionedparcelable | มีรูปแบบการเรียงอันดับไบนารีที่เสถียรและกะทัดรัด ซึ่งสามารถส่งผ่านข้ามกระบวนการต่างๆ หรือเก็บไว้อย่างปลอดภัย |
การดูหน้าเว็บ | แสดงมุมมองหรือส่วนย่อยในรูปแบบที่ปัดได้ หากเป็นไปได้ ให้ใช้ viewpager2 แทน |
การดูหน้าเว็บ 2 | แสดงมุมมองหรือส่วนย่อยในรูปแบบที่ปัดได้ |
Wear | สร้างแอปพลิเคชันสำหรับสมาร์ทวอทช์ Wear OS by Google |
wear.compose | เขียนแอปพลิเคชัน Jetpack Compose สำหรับอุปกรณ์ที่สวมใส่ได้โดย ให้ฟังก์ชันเพื่อรองรับอุปกรณ์ ขนาด รูปร่าง และ ท่าทางสัมผัสการนำทาง |
wear.profilayout | ไลบรารีนี้อนุญาตให้กำหนดชุดเลย์เอาต์ UI และนิพจน์ที่ไม่ใช่ UI เพื่อแสดงผล/ประเมินบนแพลตฟอร์มระยะไกล |
wear.tiles | สร้างแอปพลิเคชันสำหรับสมาร์ทวอทช์ Wear OS by Google |
wear.watchface | สร้างแอปพลิเคชันสำหรับสมาร์ทวอทช์ Wear OS by Google |
webkit | ทำงานร่วมกับ WebView API สมัยใหม่ใน Android 5 ขึ้นไป |
หน้าต่าง | ช่วยรองรับอุปกรณ์รูปแบบต่างๆ เช่น อุปกรณ์แบบพับได้ |
window.extensions.core | API หลักสำหรับส่วนขยาย Window Manager Library |
มีอะไรใหม่
- เขียนเดือนสิงหาคม 2023
- Jetpack Compose 1.5.0 จะย้ายไปยังเวอร์ชันเสถียรและปรับปรุงประสิทธิภาพครั้งใหญ่ ซึ่งรวมถึงการเปลี่ยนโครงสร้างภายในโค้ดของตัวแก้ไขระดับสูง เช่น "Clickable" ที่ช่วยเพิ่มเวลาในการเรียบเรียงได้ถึง 80% Compose เดือนสิงหาคมปี 2023 ยังปรับปรุงการจัดสรรหน่วยความจำได้ถึง 70% (โดยเฉพาะอย่างยิ่งในสแต็กกราฟิก) ซึ่งจะช่วยลดพื้นที่หน่วยความจำของการเขียนในอุปกรณ์
- Wear Compose และการ์ด 1.2
- การ์ด Wear Compose และ Wear ได้ย้ายไปยังเวอร์ชันเสถียรเพื่อยกระดับประสบการณ์การใช้งานของนักพัฒนาแอป WearOS ทั้ง 2 ฟีเจอร์ส่งเสริมกันและกัน ซึ่งใช้ Wear Compose เพื่อสร้างหน้าจอแอปที่ซับซ้อนในอุปกรณ์ Wear ได้ และการใช้การ์ด Wear เพื่อสร้างการ์ดแอป การเปิดตัว Wear Compose ใหม่มีฟังก์ชันการทำงานใหม่ เช่น รายการที่ขยายได้และการเลื่อนเพื่อแสดง นอกจากนี้ รุ่นการ์ด Wear ยังรองรับภาพเคลื่อนไหวของวิดเจ็ตและการเชื่อมโยงข้อมูลแพลตฟอร์ม (เช่น แหล่งข้อมูลสุขภาพ) ด้วย
- หน้าต่าง 1.1
- 1.1 ลดการสั่นไหวให้กับ API ที่ฝังกิจกรรม ซึ่งทำให้แอปอย่าง WhatsApp, eBay และ Temu จัดส่งเลย์เอาต์หน้าจอขนาดใหญ่ได้ API นี้อัดแน่นไปด้วยฟีเจอร์ต่างๆ เนื่องจากช่วยให้นักพัฒนาแอปสามารถแก้ไขลักษณะการทำงานของการแยกหน้าจอ ตรวจสอบ (และเปลี่ยนแปลง) สถานะการแยกตอนรันไทม์ ใช้การแยกแนวนอน และเริ่มโมดัลแบบเต็มหน้าต่าง
- บันทึกประจำรุ่น
- ดูข้อมูลเพิ่มเติมได้ที่บันทึกประจำรุ่น
ดูวิธีใช้ Jetpack
การฝึกอบรมขั้นพื้นฐาน
เรียนรู้ไลบรารี Jetpack ที่จำเป็นในข้อมูลเบื้องต้นเกี่ยวกับ Android ด้วยหลักสูตร Compose และลดการทำซ้ำในแอป
บทแนะนำภาคปฏิบัติ
สัมผัสประสบการณ์การใช้งานไลบรารี Jetpack 3 รายการที่จะช่วยให้ชั้นข้อมูลของคุณง่ายขึ้น ซึ่งได้แก่ LiveData, ViewModel และ Room
แอปตัวอย่างดอกทานตะวัน
ดูวิธีที่มีการใช้ไลบรารี Jetpack ที่ได้รับความนิยมมากที่สุดในแอประดับเวอร์ชันที่ใช้งานจริง