Android Jetpack
Jetpack เป็นชุดไลบรารีที่ช่วยให้นักพัฒนาแอปทำตามแนวทางปฏิบัติแนะนำ ลดโค้ดสำเร็จรูป และเขียนโค้ดที่ทำงานสอดคล้องกันในเวอร์ชันและอุปกรณ์ Android เพื่อให้นักพัฒนาแอปมุ่งเน้นที่โค้ดที่ตนสนใจได้
Jetpack Compose
พัฒนา UI ด้วยการเขียน
ชุดเครื่องมือที่ทันสมัยสำหรับการสร้าง UI แบบเนทีฟที่ช่วยให้คุณพัฒนา UI บน Android ได้อย่างง่ายดายและรวดเร็วยิ่งขึ้น
เหตุใดจึงควรใช้ Android Jetpack
ทำตามแนวทางปฏิบัติแนะนำ
ไลบรารี Android Jetpack Libraries ที่สร้างขึ้นตามแนวทางปฏิบัติด้านการออกแบบที่ทันสมัยช่วยลดข้อขัดข้องและลดการรั่วไหลของหน่วยความจำเนื่องจากมาพร้อมความสามารถในการใช้งานร่วมกันแบบย้อนหลัง
นำโค้ด Boilerplate ออก
Android Jetpack จัดการกิจกรรมที่น่าเบื่อ เช่น งานในเบื้องหลัง การนำทาง และการจัดการอายุการใช้งาน เพื่อให้คุณสามารถโฟกัสกับสิ่งที่ทำให้แอปยอดเยี่ยมได้
ลดการกระจาย Fragment
ลดความซับซ้อนด้วยไลบรารีที่ทำงานอย่างสอดคล้องกันในเวอร์ชันและอุปกรณ์ Android
ไลบรารี Jetpack สำรวจไลบรารีทั้งหมด
* ไลบรารียอดนิยมและที่ใช้บ่อยจะแสดงเป็นอันดับแรก
activity * | เข้าถึง API แบบคอมโพสิเบิลที่สร้างขึ้นจากกิจกรรม |
appcompat * | อนุญาตให้เข้าถึง API ใหม่ใน API เวอร์ชันเก่าของแพลตฟอร์ม (หลายรายการใช้ Material Design) |
appsearch * | สร้างความสามารถในการค้นหาในแอปที่กําหนดเองสําหรับผู้ใช้ |
camera * | สร้างแอปกล้องบนอุปกรณ์เคลื่อนที่ |
compose * | กำหนด UI โดยใช้โปรแกรมด้วยฟังก์ชันแบบคอมโพสิเบิลที่อธิบายรูปร่างและความเกี่ยวข้องของข้อมูล |
databinding * | เชื่อมโยงคอมโพเนนต์ UI ในเลย์เอาต์กับแหล่งข้อมูลในแอปโดยใช้รูปแบบประกาศ |
fragment * | แบ่งแอปออกเป็นหลายหน้าจออิสระที่โฮสต์ภายในกิจกรรม |
hilt * | ขยายฟังก์ชันการทำงานของ Dagger Hilt เพื่อเปิดใช้การฉีดข้อมูล Dependency ของคลาสบางคลาสจากไลบรารี androidx |
lifecycle * | สร้างคอมโพเนนต์ที่รับรู้วงจรซึ่งสามารถปรับลักษณะการทำงานตามสถานะวงจรปัจจุบันของกิจกรรมหรือข้อมูลโค้ด |
คอมโพเนนต์ Material Design * | คอมโพเนนต์ UI ของ Material Design แบบโมดูลและปรับแต่งได้สำหรับ Android |
navigation * | สร้างและจัดโครงสร้าง UI ในแอป จัดการ Deep Link และไปยังหน้าจอต่างๆ |
การเรียกหน้าเว็บ * | โหลดข้อมูลเป็นหน้าๆ และแสดงใน RecyclerView |
room * | สร้าง จัดเก็บ และจัดการข้อมูลที่ถาวรซึ่งได้รับการสนับสนุนโดยฐานข้อมูล SQLite |
test * | การทดสอบใน Android |
work * | กําหนดเวลาและดําเนินการงานเบื้องหลังตามข้อจํากัดที่เลื่อนได้ |
ads | รับรหัสโฆษณาโดยมีหรือไม่มีบริการ Play |
คำอธิบายประกอบ | แสดงข้อมูลเมตาที่ช่วยให้เครื่องมือและนักพัฒนาแอปรายอื่นๆ เข้าใจโค้ดของแอป |
arch.core | ตัวช่วยสำหรับข้อกำหนดอื่นๆ ของสถาปัตยกรรม รวมถึงกฎการทดสอบ JUnit ที่ใช้กับ LiveData ได้ |
asynclayoutinflater | ขยายเลย์เอาต์แบบไม่พร้อมกันเพื่อหลีกเลี่ยงการกระตุกใน UI |
ป้อนอัตโนมัติ | ปรับปรุงความแม่นยำของการป้อนข้อความอัตโนมัติผ่านการขยายคำแนะนำ |
benchmark | วัดประสิทธิภาพของโค้ดภายใน Android Studio อย่างแม่นยำ |
ข้อมูลไบโอเมตริก | ตรวจสอบสิทธิ์ด้วยข้อมูลไบโอเมตริกหรือข้อมูลเข้าสู่ระบบของอุปกรณ์ และดำเนินการเข้ารหัส |
bluetooth | ใช้ฟีเจอร์บลูทูธของแพลตฟอร์ม Android กับ API ที่เข้ากันได้แบบย้อนหลัง |
browser | แสดงหน้าเว็บในเบราว์เซอร์เริ่มต้นของผู้ใช้ |
camera.media3 | สิ่งที่ต้องทำ |
camera.viewfinder | ช่องมองภาพแบบคอมโพสและแบบมุมมองสําหรับกล้องแบบสแตนด์อโลน" |
car-app | สร้างแอปเทมเพลตสำหรับ Android Auto และ Android Automotive OS |
cardview | ใช้รูปแบบการ์ดของ Material Design ที่มีมุมมนและแรเงา |
collection | ลดผลกระทบต่อหน่วยความจำของคอลเล็กชันที่มีอยู่และคอลเล็กชันใหม่ที่มีขนาดเล็ก |
compose.animation | สร้างภาพเคลื่อนไหวในแอปพลิเคชัน Jetpack Compose เพื่อมอบประสบการณ์การใช้งานที่ดีขึ้นให้แก่ผู้ใช้ |
compose.compiler | เปลี่ยนรูปแบบฟังก์ชัน @Composable และเปิดใช้การเพิ่มประสิทธิภาพด้วยปลั๊กอินคอมไพเลอร์ Kotlin |
compose.foundation | เขียนแอปพลิเคชัน Jetpack Compose ด้วยองค์ประกอบพื้นฐานที่พร้อมใช้งานและขยายรากฐานเพื่อสร้างชิ้นส่วนระบบออกแบบของคุณเอง |
compose.material | สร้าง UI ของ Jetpack Compose ด้วยคอมโพเนนต์ Material Design ที่พร้อมใช้งาน นี่เป็นจุดแรกเข้าระดับที่สูงขึ้นของ Compose ซึ่งออกแบบมาเพื่อจัดหาคอมโพเนนต์ที่ตรงกับที่อธิบายไว้ใน www.material.io |
compose.material3 | สร้าง UI ของ Jetpack Compose ด้วยคอมโพเนนต์ Material Design 3 ซึ่งเป็นวิวัฒนาการขั้นถัดไปของ Material Design Material 3 ประกอบด้วยธีมและคอมโพเนนต์ที่อัปเดต รวมถึงฟีเจอร์การปรับแต่งในแบบของคุณของ Material You เช่น สีแบบไดนามิก และออกแบบมาให้สอดคล้องไปกับสไตล์ภาพและ UI ของระบบ Android 12 เวอร์ชันใหม่ |
compose.material3.adaptive | ใช้ไลบรารีแบบปรับเปลี่ยนได้ของ Material 3 เพื่อสร้าง UI แบบปรับเปลี่ยนได้ซึ่งจะปรับเปลี่ยนตามการกำหนดค่าหน้าต่างปัจจุบันโดยอัตโนมัติ เช่น คลาสขนาดหน้าต่างหรือลักษณะการวางอุปกรณ์ ไลบรารีนี้มีทั้งการใช้งานสคาฟเฟิลเริ่มต้นและคอมโพสิชันองค์ประกอบพื้นฐานที่จําเป็นเพื่อสร้างประสบการณ์ที่กําหนดเอง |
compose.runtime | องค์ประกอบพื้นฐานของรูปแบบการเขียนโปรแกรมและการจัดการสถานะของ Compose รวมถึงรันไทม์หลักสำหรับกำหนดเป้าหมายปลั๊กอินคอมไพเลอร์ Compose |
compose.ui | องค์ประกอบพื้นฐานของ UI การเขียนที่จำเป็นต่อการโต้ตอบกับอุปกรณ์ ซึ่งรวมถึงเลย์เอาต์ ภาพวาด และอินพุต |
concurrent | ย้ายงานออกจากเธรดหลักด้วยโคโริวทีนและใช้ประโยชน์จาก ListenableFuture |
constraintlayout | วางตำแหน่งและปรับขนาดวิดเจ็ตได้อย่างยืดหยุ่นด้วยการวางตำแหน่งแบบสัมพัทธ์ |
contentpager | โหลดและแบ่งหน้าข้อมูล ContentProvider ในเธรดเบื้องหลัง |
coordinatorlayout | วางตำแหน่งวิดเจ็ตแอปพลิเคชันระดับบนสุด เช่น AppBarLayout และ FloatingActionButton |
core | กําหนดเป้าหมายฟีเจอร์และ API ของแพลตฟอร์มล่าสุดไปพร้อมกับรองรับอุปกรณ์รุ่นเก่า |
core.uwb | ใช้ UWB (แถบความถี่กว้างยิ่งยวด) ในอุปกรณ์ที่รองรับ |
credentials | ไลบรารีนี้ให้สิทธิ์เข้าถึงข้อมูลเข้าสู่ระบบของผู้ใช้แบบรวม ซึ่งอาจรวมถึงรหัสผ่าน พาสคีย์ และข้อมูลเข้าสู่ระบบแบบรวมศูนย์ คุณควรใช้ไลบรารีนี้เพื่อให้ประสบการณ์การลงชื่อเข้าใช้ที่ราบรื่นและปลอดภัย |
credentials.registry | ในการแก้ปัญหาเหล่านี้ เราจึงเพิ่มกลไกรีจิสทรีใหม่ซึ่งช่วยให้แอประบุข้อมูลเข้าสู่ระบบดิจิทัลในลักษณะที่รักษาความเป็นส่วนตัวได้ ในระดับสูง แอปของผู้ให้บริการจะลงทะเบียนข้อมูลเข้าสู่ระบบดิจิทัลที่เป็นไปได้ทั้งหมดกับเครื่องมือจัดการข้อมูลเข้าสู่ระบบล่วงหน้า เมื่อเครื่องมือจัดการข้อมูลเข้าสู่ระบบได้รับคําขอแอปสําหรับข้อมูลเข้าสู่ระบบดิจิทัลที่เฉพาะเจาะจง ก็จะเรียกใช้การจับคู่ข้อมูลเข้าสู่ระบบและ UI ตัวเลือกผู้ใช้ในแซนด์บ็อกซ์ |
cursoradapter | แสดงข้อมูลเคอร์เซอร์ต่อวิดเจ็ต ListView |
customview | ใช้มุมมองที่กำหนดเอง |
datastore | จัดเก็บข้อมูลแบบไม่พร้อมกัน สอดคล้องกัน และแบบธุรกรรม ซึ่งช่วยขจัดข้อเสียบางอย่างของ SharedPreferences |
documentfile | ดูเอกสารไฟล์ |
draganddrop | ยอมรับการลากและวางข้อมูลจากแอปอื่นหรือภายในแอป และแสดงการอำนวยความสะดวกในการวางเป้าหมายที่สอดคล้องกัน |
drawerlayout | ใช้วิดเจ็ตลิ้นชักของ Material Design |
dynamicanimation | สร้างภาพเคลื่อนไหวที่ราบรื่นด้วย API ภาพเคลื่อนไหวที่อิงตามฟิสิกส์ |
emoji | แสดงอีโมจิในอุปกรณ์ปัจจุบันและอุปกรณ์รุ่นเก่า |
emoji2 | แสดงอีโมจิในอุปกรณ์ปัจจุบันและอุปกรณ์รุ่นเก่า |
enterprise | สร้างแอปพลิเคชันที่พร้อมใช้งานสำหรับองค์กร |
exifinterface | อ่านและเขียนแท็ก EXIF ของไฟล์ภาพ |
เกม | ใช้ Android Game SDK ในแอปโดยตรงเพื่อทำงานที่ซับซ้อนของเกม เช่น Frame Pacing |
ข้อมูลโดยย่อ | สร้างเลย์เอาต์สำหรับแพลตฟอร์มระยะไกลโดยใช้ API สไตล์ Jetpack Compose |
graphics | ใช้ประโยชน์จากสิ่งอํานวยความสะดวกด้านกราฟิกในแพลตฟอร์ม Android หลายรุ่น |
gridlayout | ใช้เลย์เอาต์ตารางกริด |
health | สร้างแอปพลิเคชันด้านสุขภาพที่มีประสิทธิภาพโดยไม่คำนึงถึงแพลตฟอร์ม |
health.connect | อนุญาตให้นักพัฒนาแอปอ่านหรือเขียนบันทึกสุขภาพและการออกกำลังกายของผู้ใช้ |
heifwriter | เข้ารหัสรูปภาพหรือคอลเล็กชันรูปภาพในรูปแบบ HEIF โดยใช้ตัวแปลงรหัสที่มีอยู่ในอุปกรณ์ Android |
ink | สร้างแรงบันดาลใจให้แอปปากกาที่ดีที่สุด ลดความซับซ้อนในการพัฒนาแอปเพื่อประสบการณ์การเขียนที่มีประสิทธิภาพสูงและสวยงาม |
input | ลดเวลาในการตอบสนองของการโต้ตอบกับอินพุตด้วยการคาดการณ์ MotionEvents ในอนาคต |
interpolator | ใช้ตัวอินเทอร์โพเลเตอร์ภาพเคลื่อนไหวในแพลตฟอร์มรุ่นเก่า |
javascriptengine | เปิดใช้แอป Android เพื่อประเมิน JavaScript |
jetifier | เครื่องมือแบบสแตนด์อโลนที่ย้ายข้อมูลทรัพยากร Dependency ของไลบรารีในไลบรารีสนับสนุนที่เลิกใช้งานแล้วไปยังทรัพยากร Dependency ของ AndroidX ที่เทียบเท่า |
leanback | ใช้เครื่องมือเขียนสำหรับทีวีแทนรายการต่างๆ นี้ |
เดิม | อาร์ติแฟกต์นี้และคลาสของอาร์ติแฟกต์เลิกใช้งานแล้ว ตั้งแต่ Android 8 เป็นต้นไป ข้อจำกัดในการตรวจสอบประวัติทำให้คลาสนี้ไม่มีประโยชน์อีกต่อไป |
lint | การตรวจสอบ Lint เพื่อยืนยันการใช้ Gradle API |
loader | โหลดข้อมูลสําหรับ UI ที่จะยังคงอยู่หลังจากการเปลี่ยนแปลงการกําหนดค่า |
localbroadcastmanager | อาร์ติแฟกต์นี้และคลาสของอาร์ติแฟกต์เลิกใช้งานแล้ว ให้ใช้ LiveData หรือ Reactive Stream แทน |
media | แชร์เนื้อหาและการควบคุมสื่อกับแอปอื่นๆ แทนที่โดย media3 |
media2 | แชร์เนื้อหาและการควบคุมสื่อกับแอปอื่นๆ |
media3 * | รองรับไลบรารีสําหรับกรณีการใช้งานสื่อ |
mediarouter | เปิดใช้การแสดงผลและการเล่นสื่อในอุปกรณ์รับสัญญาณระยะไกลโดยใช้อินเทอร์เฟซผู้ใช้ทั่วไป |
multidex | ติดตั้งใช้งานแอปพลิเคชันที่มีไฟล์ dex หลายไฟล์ในอุปกรณ์ก่อน Android 5 |
metrics | ติดตามและรายงานเมตริกรันไทม์ต่างๆ สําหรับแอปพลิเคชัน |
palette | ดึงชุดสีที่แสดงถึงรูปภาพ |
ไลบรารีสำหรับเพิ่มความสามารถในการดู PDF ภายในแอป | |
percentlayout | อาร์ติแฟกต์นี้และคลาสของอาร์ติแฟกต์เลิกใช้งานแล้ว ให้ใช้ ConstraintLayout และเลย์เอาต์ที่เกี่ยวข้องแทน |
preference | สร้างหน้าจอการตั้งค่าแบบอินเทอร์แอกทีฟโดยไม่ต้องโต้ตอบกับพื้นที่เก็บข้อมูลของอุปกรณ์หรือจัดการ UI |
พิมพ์รูปภาพ เอกสาร รวมถึงกราฟิกและรูปภาพอื่นๆ จากแอป | |
privacysandbox.activity | สิ่งที่ต้องทำ |
privacysandbox.ads | ไลบรารีนี้ช่วยให้ผสานรวมกับ Privacy Preserving API ซึ่งเป็นส่วนหนึ่งของ Privacy Sandbox ใน Android ได้ |
privacysandbox.plugins | ปลั๊กอิน Gradle ของคลัง Sdk ของ Privacy Sandbox ของ Android |
privacysandbox.sdkruntime | ไลบรารีนี้มีคอมโพเนนต์สําหรับผู้บริโภคที่รับรู้ SdkRuntime |
privacysandbox.tools | ไลบรารีเพื่อใช้ประโยชน์จากฟังก์ชัน Privacy Sandbox ใน Android |
privacysandbox.ui | สิ่งที่ต้องทำ |
profileinstaller | ช่วยให้ห้องสมุดป้อนข้อมูลร่องรอยการคอมไพล์ล่วงหน้าเพื่อให้ ART อ่านได้ |
recommendation | โปรโมตเนื้อหาไปยังหน้าจอหลักของ Android TV Launcher |
recyclerview | แสดงชุดข้อมูลขนาดใหญ่ใน UI ขณะลดการใช้หน่วยความจํา |
remotecallback | สร้าง Wrapper ที่ช่วยนักพัฒนาแอประบุ PendingIntent ได้ง่ายขึ้น |
resourceinspection | แสดงแอตทริบิวต์ของมุมมองที่กำหนดเองในเครื่องมือตรวจสอบเลย์เอาต์แบบเรียลไทม์ของ Android Studio |
savedstate | เขียนคอมโพเนนต์แบบปลั๊กอินที่บันทึกสถานะ UI เมื่อกระบวนการสิ้นสุดลง และกู้คืนสถานะเมื่อกระบวนการเริ่มต้นใหม่ |
security | จัดการคีย์และเข้ารหัสไฟล์และ SharedPreferences อย่างปลอดภัย |
sharetarget | รองรับการใช้งานแป้นพิมพ์ลัดเป็นเป้าหมายการแชร์โดยตรงแบบย้อนหลัง |
slice | แสดงองค์ประกอบ UI เทมเพลตภายนอกแอป |
slidingpanelayout | ใช้รูปแบบ UI ของแผงแบบเลื่อน |
startup | ใช้วิธีเริ่มต้นคอมโพเนนต์ที่มีประสิทธิภาพและตรงไปตรงมาเมื่อแอปเริ่มต้น |
sqlite | ทำงานกับฐานข้อมูล SQLite ในเครื่อง หากเป็นไปได้ ให้ใช้ Room แทน |
swiperefreshlayout | ใช้รูปแบบ UI การปัดเพื่อรีเฟรช |
test.uiautomator | เฟรมเวิร์กสําหรับการทดสอบ UI แบบทํางานข้ามแอป |
textclassifier | ระบุการสนทนา ลิงก์ การเลือก และโครงสร้างอื่นๆ ที่คล้ายกันในข้อความ |
การติดตาม | เขียนเหตุการณ์การติดตามไปยังบัฟเฟอร์การติดตามของระบบ |
transition | สร้างภาพเคลื่อนไหวใน UI ด้วยเลย์เอาต์เริ่มต้นและสิ้นสุด |
tv | ให้บริการฟังก์ชันการทำงาน Compose และ Material Design แก่นักพัฒนาแอปพลิเคชันสำหรับทีวี |
tvprovider | ระบุช่อง Android TV |
xr.arcore | นำเนื้อหาดิจิทัลมาสู่โลกแห่งความเป็นจริงด้วยความสามารถในการรับรู้ |
xr.compose | สร้างเลย์เอาต์ UI แบบพื้นที่ทำงานแบบประกาศเพื่อใช้ประโยชน์จากความสามารถของพื้นที่ทำงานของ Android XR |
xr.compose.material3 | สร้างด้วยคอมโพเนนต์และเลย์เอาต์ Material ที่ปรับให้เหมาะกับ XR |
xr.runtime | เริ่มเซสชัน AR หรือ 3 มิติที่กําหนดเองด้วยรันไทม์แบบเนทีฟ |
xr.scenecore | สร้างและจัดการกราฟฉาก Android XR ด้วยเนื้อหา 3 มิติ |
vectordrawable | แสดงผลกราฟิกเวกเตอร์ |
versionedparcelable | ให้รูปแบบการแปลงข้อมูลไบนารีที่กะทัดรัดและเสถียรซึ่งสามารถส่งผ่านกระบวนการต่างๆ หรือเก็บไว้อย่างปลอดภัย |
viewpager | แสดงมุมมองหรือข้อมูลโค้ดในลักษณะที่ปัดได้ หากเป็นไปได้ ให้ใช้ viewpager2 แทน |
viewpager2 | แสดงมุมมองหรือข้อมูลโค้ดในลักษณะที่ปัดได้ |
wear | สร้างแอปพลิเคชันสำหรับสมาร์ทวอทช์ Wear OS by Google |
wear.compose | เขียนแอปพลิเคชัน Jetpack Compose สำหรับอุปกรณ์ที่สวมใส่ได้ด้วยการระบุฟังก์ชันการทำงานเพื่อรองรับอุปกรณ์ รูปร่าง ขนาด และท่าทางสัมผัสเฉพาะของอุปกรณ์ที่สวมใส่ได้ |
wear.protolayout | ไลบรารีนี้ช่วยให้คุณกำหนดชุดเลย์เอาต์ UI และนิพจน์ที่ไม่ใช่ UI เพื่อแสดงผล/ประเมินในแพลตฟอร์มระยะไกลได้ |
wear.tiles | สร้างแอปพลิเคชันสำหรับสมาร์ทวอทช์ Wear OS by Google |
wear.watchface | สร้างแอปพลิเคชันสำหรับสมาร์ทวอทช์ Wear OS by Google |
webkit | ทำงานร่วมกับ WebView API สมัยใหม่ใน Android 5 ขึ้นไป |
window | ช่วยรองรับรูปแบบของอุปกรณ์ที่หลากหลาย เช่น อุปกรณ์แบบพับได้ |
window.extensions.core | Core API สําหรับส่วนขยายไลบรารีเครื่องมือจัดการหน้าต่าง |
ดูวิธีใช้ Jetpack
การฝึกอบรมขั้นพื้นฐาน
เรียนรู้ไลบรารี Jetpack ที่จำเป็นในข้อมูลเบื้องต้นเกี่ยวกับ Android ด้วยหลักสูตร Compose และลดการทำซ้ำในแอป
บทแนะนำภาคปฏิบัติ
สัมผัสประสบการณ์การใช้งานไลบรารี Jetpack 3 รายการที่จะช่วยให้ชั้นข้อมูลของคุณง่ายขึ้น ซึ่งได้แก่ LiveData, ViewModel และ Room
แอปตัวอย่างดอกทานตะวัน
ดูวิธีที่มีการใช้ไลบรารี Jetpack ที่ได้รับความนิยมมากที่สุดในแอประดับเวอร์ชันที่ใช้งานจริง