- ไวยากรณ์:
<application android:allowTaskReparenting=["true" | "false"] android:allowBackup=["true" | "false"] android:allowClearUserData=["true" | "false"] android:allowNativeHeapPointerTagging=["true" | "false"] android:appCategory=["accessibility" | "audio" | "game" | "image" | "maps" | "news" | "productivity" | "social" | "video"] android:backupAgent="string" android:backupInForeground=["true" | "false"] android:banner="drawable resource" android:dataExtractionRules="string resource" android:debuggable=["true" | "false"] android:description="string resource" android:enabled=["true" | "false"] android:enableOnBackInvokedCallback=["true" | "false"] android:extractNativeLibs=["true" | "false"] android:fullBackupContent="string" android:fullBackupOnly=["true" | "false"] android:gwpAsanMode=["always" | "never"] android:hasCode=["true" | "false"] android:hasFragileUserData=["true" | "false"] android:hardwareAccelerated=["true" | "false"] android:icon="drawable resource" android:isGame=["true" | "false"] android:isMonitoringTool=["parental_control" | "enterprise_management" | "other"] android:killAfterRestore=["true" | "false"] android:largeHeap=["true" | "false"] android:label="string resource" android:logo="drawable resource" android:manageSpaceActivity="string" android:name="string" android:networkSecurityConfig="xml resource" android:permission="string" android:persistent=["true" | "false"] android:process="string" android:restoreAnyVersion=["true" | "false"] android:requestLegacyExternalStorage=["true" | "false"] android:requiredAccountType="string" android:resizeableActivity=["true" | "false"] android:restrictedAccountType="string" android:supportsRtl=["true" | "false"] android:taskAffinity="string" android:testOnly=["true" | "false"] android:theme="resource or theme" android:uiOptions=["none" | "splitActionBarWhenNarrow"] android:usesCleartextTraffic=["true" | "false"] android:vmSafeMode=["true" | "false"] > . . . </application>
- มีอยู่ใน
<manifest>- อาจมีข้อมูลต่อไปนี้
<activity><activity-alias><meta-data><service><receiver><profileable><provider><uses-library><uses-native-library><property>- คำอธิบาย:
การประกาศของแอปพลิเคชัน องค์ประกอบนี้มีองค์ประกอบย่อย ที่ประกาศคอมโพเนนต์แต่ละรายการของแอปพลิเคชัน และมีแอตทริบิวต์ ที่อาจส่งผลต่อคอมโพเนนต์ทั้งหมด
แอตทริบิวต์เหล่านี้หลายรายการ เช่น
icon,label,permission,process,taskAffinityและallowTaskReparentingจะตั้งค่าเริ่มต้นสำหรับแอตทริบิวต์ที่เกี่ยวข้องขององค์ประกอบคอมโพเนนต์ ส่วนอื่นๆ เช่นdebuggable,enabled,descriptionและallowClearUserDataจะตั้งค่าสำหรับแอปพลิเคชันโดยรวมและ คอมโพเนนต์จะไม่ลบล้าง- แอตทริบิวต์
android:allowTaskReparenting- ไม่ว่ากิจกรรมที่แอปพลิเคชันกำหนดจะย้ายจาก
งานที่เริ่มกิจกรรมไปยังงานที่กิจกรรมมีความเกี่ยวข้องด้วยได้หรือไม่ เมื่อมีการนำงานนั้น
มาไว้ด้านหน้าในครั้งถัดไป โดยจะเป็น
"true"หากย้ายได้ และ"false"หากต้องอยู่กับงานที่เริ่ม ค่าเริ่มต้นคือ"false"องค์ประกอบ
<activity>มีแอตทริบิวต์allowTaskReparentingของตัวเองซึ่งสามารถลบล้างค่าที่ตั้งไว้ที่นี่ได้ android:allowBackupว่าจะอนุญาตให้แอปพลิเคชันเข้าร่วมโครงสร้างพื้นฐานการสำรองข้อมูล และการกู้คืนหรือไม่ หากตั้งค่าแอตทริบิวต์นี้เป็น
"false"ระบบจะไม่สำรองข้อมูลหรือกู้คืนแอปพลิเคชันเลย แม้ว่าจะเป็นการสำรองข้อมูลทั้งระบบที่ทำให้ระบบบันทึกข้อมูลแอปพลิเคชันทั้งหมดโดยใช้adbก็ตาม ค่าเริ่มต้นของแอตทริบิวต์นี้คือ"true"หมายเหตุ: สําหรับแอปที่กําหนดเป้าหมายเป็น Android 12 (ระดับ API 31) ขึ้นไป ลักษณะการทํางานนี้ จะแตกต่างกัน ในอุปกรณ์จากผู้ผลิตอุปกรณ์บางราย คุณจะปิดใช้การย้ายข้อมูลไฟล์ของแอปจากอุปกรณ์หนึ่งไปยังอีกอุปกรณ์หนึ่งไม่ได้
อย่างไรก็ตาม คุณสามารถปิดใช้การสำรองข้อมูลและการกู้คืนไฟล์ของแอปในระบบคลาวด์ได้โดยการตั้งค่า แอตทริบิวต์นี้เป็น
"false"แม้ว่าแอปจะกำหนดเป้าหมายเป็น Android 12 (ระดับ API 31) ขึ้นไป ก็ตามดูข้อมูลเพิ่มเติมได้ที่ส่วนสำรองและกู้คืน ของหน้าเว็บที่อธิบายการเปลี่ยนแปลงลักษณะการทำงานของแอปที่กำหนดเป้าหมายเป็น Android 12 (ระดับ API 31) ขึ้นไป
android:allowClearUserDataเลือกว่าจะอนุญาตให้แอปพลิเคชันรีเซ็ตข้อมูลผู้ใช้หรือไม่ ข้อมูลนี้รวมถึง แฟล็ก เช่น ผู้ใช้เคยเห็นเคล็ดลับเครื่องมือเบื้องต้นหรือไม่ รวมถึงการตั้งค่าและค่ากำหนดที่ผู้ใช้ปรับแต่งได้ ค่าเริ่มต้นของแอตทริบิวต์นี้คือ
"true"หมายเหตุ: เฉพาะแอปที่เป็นส่วนหนึ่งของอิมเมจระบบเท่านั้นที่สามารถประกาศแอตทริบิวต์นี้อย่างชัดเจนได้ แอปของบุคคลที่สามจะรวมแอตทริบิวต์นี้ ไว้ในไฟล์ Manifest ไม่ได้
ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมการสำรองข้อมูล
android:allowNativeHeapPointerTaggingแอปเปิดใช้ฟีเจอร์การติดแท็กตัวชี้ฮีปหรือไม่ ค่าเริ่มต้นของ แอตทริบิวต์นี้คือ
"true"หมายเหตุ: การปิดใช้ฟีเจอร์นี้ไม่ได้แก้ปัญหา ความสมบูรณ์ของโค้ดพื้นฐาน อุปกรณ์ฮาร์ดแวร์ในอนาคตอาจไม่รองรับแท็ก Manifest นี้
ดูข้อมูลเพิ่มเติมได้ที่เคอร์เซอร์ที่ติดแท็ก
android:appCategoryประกาศหมวดหมู่ของแอปนี้ ระบบจะใช้หมวดหมู่เพื่อจัดกลุ่มแอปหลายแอป เข้าด้วยกันเป็นกลุ่มที่มีความหมาย เช่น เมื่อสรุปการใช้แบตเตอรี่ เครือข่าย หรือ ดิสก์ กำหนดค่านี้สำหรับแอปที่เหมาะกับหมวดหมู่ใดหมวดหมู่หนึ่งต่อไปนี้เท่านั้น
ต้องเป็นค่าคงที่ค่าใดค่าหนึ่งต่อไปนี้
ค่า คำอธิบาย accessibilityแอปที่เป็นแอปการช่วยเหลือพิเศษเป็นหลัก เช่น โปรแกรมอ่านหน้าจอ audioแอปที่ทำงานกับเสียงหรือเพลงเป็นหลัก เช่น เครื่องเล่นเพลง gameแอปที่เป็นเกมเป็นหลัก imageแอปที่ทำงานกับรูปภาพเป็นหลัก เช่น แอปกล้องหรือแกลเลอรี mapsแอปที่เป็นแอปแผนที่เป็นหลัก เช่น แอปนำทาง newsแอปที่เป็นแอปข่าวเป็นหลัก เช่น แอปหนังสือพิมพ์ นิตยสาร หรือแอปกีฬา productivityแอปที่เน้นการเพิ่มประสิทธิภาพเป็นหลัก เช่น แอปพื้นที่เก็บข้อมูลระบบคลาวด์หรือแอปในที่ทำงาน socialแอปที่เป็นแอปโซเชียลเป็นหลัก เช่น แอปส่งข้อความ แอปการสื่อสาร แอปอีเมล หรือแอปเครือข่ายสังคม videoแอปที่ทำงานกับวิดีโอหรือภาพยนตร์เป็นหลัก เช่น แอปสตรีมมิงวิดีโอ android:backupAgent- ชื่อของคลาสที่ใช้เอเจนต์การสำรองข้อมูลของแอปพลิเคชัน
ซึ่งเป็นคลาสย่อยของ
BackupAgentค่าแอตทริบิวต์คือ ชื่อคลาสที่มีคุณสมบัติครบถ้วน เช่น"com.example.project.MyBackupAgent"อย่างไรก็ตาม ในรูปแบบย่อ หากอักขระแรกของชื่อเป็นจุด เช่น".MyBackupAgent"ระบบจะต่อท้ายชื่อแพ็กเกจที่ระบุในองค์ประกอบ<manifest>ไม่มีค่าเริ่มต้น ชื่อต้องเฉพาะเจาะจง
android:backupInForeground- ระบุว่าการดำเนินการสำรองข้อมูลอัตโนมัติ
สามารถทำได้ในแอปนี้แม้ว่าแอปจะอยู่ในสถานะเทียบเท่ากับเบื้องหน้า
ก็ตาม ระบบจะปิดแอปในระหว่างการดำเนินการสำรองข้อมูลอัตโนมัติ
ดังนั้นโปรดใช้แอตทริบิวต์นี้ด้วยความระมัดระวัง การตั้งค่าสถานะนี้เป็น
"true"อาจส่งผลต่อลักษณะการทำงานของแอป ขณะที่แอปทำงานอยู่ค่าเริ่มต้นคือ
"false"ซึ่งหมายความว่าระบบปฏิบัติการจะหลีกเลี่ยง การสำรองข้อมูลแอปขณะที่แอปทำงานอยู่เบื้องหน้า เช่น แอปเพลง ที่กำลังเล่นเพลงโดยใช้บริการในสถานะstartForeground() android:banner- ทรัพยากร Drawable
ซึ่งมีแบนเนอร์กราฟิกแบบขยายสำหรับสินค้าที่เชื่อมโยง ใช้กับแท็ก
<application>เพื่อระบุแบนเนอร์เริ่มต้นสำหรับกิจกรรมทั้งหมดของแอปพลิเคชัน หรือใช้กับแท็ก<activity>เพื่อระบุแบนเนอร์สำหรับกิจกรรมที่เฉพาะเจาะจงระบบจะใช้แบนเนอร์เพื่อแสดงแอปใน หน้าจอหลักของ Android TV ดังนั้น ให้ระบุเฉพาะแอปพลิเคชันที่มีกิจกรรมที่จัดการ Intent
CATEGORY_LEANBACK_LAUNCHERแอตทริบิวต์นี้ตั้งค่าเป็นข้อมูลอ้างอิงไปยังทรัพยากรที่วาดได้ซึ่งมีรูปภาพ เช่น
"@drawable/banner"ไม่มีแบนเนอร์เริ่มต้นดูข้อมูลเพิ่มเติมได้ที่ ระบุแบนเนอร์หน้าจอหลัก
android:dataExtractionRulesแอปพลิเคชันสามารถตั้งค่าแอตทริบิวต์นี้เป็นทรัพยากร XML ที่ระบุกฎที่กำหนดว่าไฟล์และไดเรกทอรีใดที่สามารถคัดลอกจากอุปกรณ์เป็นส่วนหนึ่งของการสำรองข้อมูลหรือการโอนได้
ดูข้อมูลเกี่ยวกับรูปแบบของไฟล์ XML ได้ที่สำรองและกู้คืนข้อมูล
android:debuggable- ไม่ว่าจะแก้ไขข้อบกพร่องของแอปพลิเคชันได้หรือไม่ แม้ว่าจะทำงาน
ในอุปกรณ์ในโหมดผู้ใช้ก็ตาม
"true"หากทำได้และ"false"หากทำไม่ได้ ค่าเริ่มต้นคือ"false" android:description- ข้อความที่ผู้ใช้อ่านได้เกี่ยวกับแอปพลิเคชัน ซึ่งยาวและสื่อความหมายมากกว่าป้ายกำกับของแอปพลิเคชัน ค่านี้จะตั้งเป็นข้อมูลอ้างอิงไปยังทรัพยากรสตริง โดยจะใช้สตริงดิบไม่ได้เหมือนป้ายกำกับ ไม่มีค่าเริ่มต้น
android:enabled- ไม่ว่าระบบ Android จะสร้างอินสแตนซ์ของคอมโพเนนต์ของ
แอปพลิเคชันได้หรือไม่
"true"หากทำได้และ"false"หากทำไม่ได้ หากค่าเป็น"true"แอตทริบิวต์enabledของแต่ละคอมโพเนนต์จะกำหนดว่าคอมโพเนนต์นั้นเปิดใช้อยู่หรือไม่ หากค่าเป็น"false"ค่านี้จะลบล้างค่าเฉพาะคอมโพเนนต์ และระบบจะปิดใช้คอมโพเนนต์ทั้งหมดค่าเริ่มต้นคือ
"true" android:enableOnBackInvokedCallbackฟีเจอร์นี้ช่วยให้คุณเลือกไม่ใช้ภาพเคลื่อนไหวของระบบแบบคาดการณ์ได้ที่ระดับแอป
ตั้งค่า
android:enableOnBackInvokedCallback=falseเพื่อปิดภาพเคลื่อนไหวของการย้อนกลับที่คาดการณ์ได้ระดับแอป และสั่งให้ระบบไม่สนใจการเรียก API ของแพลตฟอร์มOnBackInvokedCallbackandroid:extractNativeLibs- แอตทริบิวต์นี้ระบุว่าโปรแกรมติดตั้งแพ็กเกจจะแยกไลบรารีเนทีฟจาก
APK ไปยังระบบไฟล์หรือไม่ หากตั้งค่าเป็น
"false"ระบบจะจัดเก็บไลบรารีแบบเนทีฟ ที่ไม่ได้บีบอัดใน APK แม้ว่า APK อาจมีขนาดใหญ่ขึ้น แต่แอปพลิเคชันจะโหลดได้เร็วขึ้น เนื่องจากไลบรารีจะโหลดจาก APK โดยตรงในขณะรันไทม์ค่าเริ่มต้นของ
extractNativeLibsจะขึ้นอยู่กับminSdkVersionและ เวอร์ชันของ AGP ที่คุณใช้ ในกรณีส่วนใหญ่ ลักษณะการทำงานเริ่มต้นอาจเป็นสิ่งที่คุณต้องการ และคุณไม่จำเป็นต้องตั้งค่าแอตทริบิวต์นี้อย่างชัดเจน android:fullBackupContent- แอตทริบิวต์นี้ชี้ไปยังไฟล์ XML ที่มีกฎการสำรองข้อมูลแบบเต็มสำหรับ
การสำรองข้อมูลอัตโนมัติ
กฎเหล่านี้เป็นตัวกำหนดว่าระบบจะสำรองข้อมูลไฟล์ใด ดูข้อมูลเพิ่มเติมได้ที่ไวยากรณ์การกำหนดค่า XML
สำหรับการสำรองข้อมูลอัตโนมัติ
คุณจะระบุแอตทริบิวต์นี้หรือไม่ก็ได้ หากไม่ได้ระบุไว้ โดยค่าเริ่มต้น การสำรองข้อมูลอัตโนมัติ จะรวมไฟล์ส่วนใหญ่ของแอป ดูข้อมูลเพิ่มเติมได้ที่ไฟล์ที่สำรองข้อมูล
android:fullBackupOnly- แอตทริบิวต์นี้จะระบุว่าจะใช้การสำรองข้อมูลอัตโนมัติในอุปกรณ์
ที่ฟีเจอร์นี้พร้อมใช้งานหรือไม่ หากตั้งค่าเป็น
"true"แอปจะทำการสำรองข้อมูลอัตโนมัติเมื่อติดตั้งในอุปกรณ์ที่ใช้ Android 6.0 (ระดับ API 23) ขึ้นไป ในอุปกรณ์รุ่นเก่า แอปจะละเว้นแอตทริบิวต์นี้และดำเนินการการสำรองข้อมูลคีย์/ค่าค่าเริ่มต้นคือ
"false" android:gwpAsanMode- แอตทริบิวต์นี้จะระบุว่าจะใช้ GWP-ASan ซึ่งเป็นฟีเจอร์ตัวจัดสรรหน่วยความจำของระบบที่ช่วยค้นหาข้อบกพร่องของการใช้งานหลังช่วงใช้ฟรี (Use After Free) และบัฟเฟอร์ล้นฮีป (Heap Buffer Overflow) หรือไม่
ค่าเริ่มต้นคือ
"never" android:hasCode- แอปพลิเคชันมีโค้ด DEX หรือไม่ ซึ่งก็คือโค้ดที่ใช้ภาษาโปรแกรม Kotlin หรือ Java
โดยจะเป็น
"true"หากมี และ"false"หากไม่มี เมื่อ ค่าเป็น"false"ระบบจะไม่พยายามโหลดโค้ดแอปพลิเคชัน เมื่อเปิดใช้คอมโพเนนต์ ค่าเริ่มต้นคือ"true"หากแอปพลิเคชันมีโค้ดแบบเนทีฟ (C/C++) แต่ไม่มีโค้ด DEX คุณควรตั้งค่าเป็น
"false"หากตั้งค่าเป็น"true"เมื่อ APK ไม่มีโค้ด DEX แอปอาจโหลดไม่สำเร็จพร็อพเพอร์ตี้นี้ต้องพิจารณาโค้ดที่รวมอยู่ในแอปพลิเคชันโดย การอ้างอิง หากแอปพลิเคชันขึ้นอยู่กับ AAR ที่ใช้โค้ด Java/Kotlin หรือขึ้นอยู่กับ JAR โดยตรง
app:hasCodeต้องเป็น"true"หรือละเว้นเนื่องจากเป็นค่าเริ่มต้นเช่น แอปอาจรองรับการนำส่งฟีเจอร์ Play และมีโมดูลฟีเจอร์ ที่ไม่สร้างไฟล์ DEX ซึ่งเป็นไบต์โค้ดที่เพิ่มประสิทธิภาพสำหรับแพลตฟอร์ม Android หากเป็นเช่นนั้น คุณต้องตั้งค่าพร็อพเพอร์ตี้นี้เป็น
"false"ในไฟล์ Manifest ของโมดูล เพื่อหลีกเลี่ยงข้อผิดพลาดขณะรันไทม์ android:hasFragileUserData- ว่าจะแสดงข้อความแจ้งให้ผู้ใช้
เก็บข้อมูลของแอปไว้เมื่อผู้ใช้ถอนการติดตั้งแอปหรือไม่ ค่าเริ่มต้นคือ
"false" android:hardwareAccelerated- ไม่ว่าจะเปิดใช้การแสดงผลที่มีการเร่งด้วยฮาร์ดแวร์สำหรับกิจกรรมและมุมมองทั้งหมดในแอปพลิเคชันนี้หรือไม่ โดยจะเป็น
"true"หากเปิดใช้ และ"false"หากไม่ได้เปิดใช้ ค่าเริ่มต้นคือ"true"หากคุณตั้งค่าminSdkVersionหรือtargetSdkVersionเป็น"14"ขึ้นไป มิเช่นนั้นจะเป็น"false"ตั้งแต่ Android 3.0 (ระดับ API 11) เป็นต้นไป แอปพลิเคชันจะใช้ตัวแสดงผล OpenGL ที่เร่งด้วยฮาร์ดแวร์ได้เพื่อปรับปรุงประสิทธิภาพสำหรับการดำเนินการกราฟิก 2 มิติทั่วไปหลายอย่าง เมื่อเปิดใช้โปรแกรมแสดงผลที่เร่งด้วยฮาร์ดแวร์ ระบบจะเร่งการทำงานส่วนใหญ่ ใน Canvas, Paint, Xfermode, ColorFilter, Shader และ Camera
ซึ่งจะส่งผลให้ภาพเคลื่อนไหวและการเลื่อนราบรื่นขึ้น รวมถึงการตอบสนองโดยรวมดีขึ้น แม้แต่สำหรับแอปพลิเคชันที่ไม่ได้ใช้ไลบรารี OpenGL ของเฟรมเวิร์กอย่างชัดแจ้ง
การดำเนินการ 2 มิติของ OpenGL บางอย่างอาจไม่ได้รับการเร่งความเร็ว หากเปิดใช้ โปรแกรมแสดงผลที่เร่งด้วยฮาร์ดแวร์ ให้ทดสอบแอปพลิเคชันเพื่อให้ ใช้โปรแกรมแสดงผลได้โดยไม่มีข้อผิดพลาด
ดูข้อมูลเพิ่มเติมได้ในคู่มือการเร่งด้วยฮาร์ดแวร์
android:icon- ไอคอนสำหรับแอปพลิเคชันโดยรวมและไอคอนเริ่มต้นสำหรับ
คอมโพเนนต์แต่ละรายการของแอปพลิเคชัน ดูแอตทริบิวต์
iconแต่ละรายการสำหรับองค์ประกอบ<activity>,<activity-alias>,<service>,<receiver>และ<provider>แอตทริบิวต์นี้ตั้งค่าเป็นการอ้างอิงไปยังทรัพยากรที่วาดได้ซึ่งมี รูปภาพ เช่น
"@drawable/icon"ไม่มีไอคอนเริ่มต้น android:isGame- ระบุว่าแอปพลิเคชันเป็นเกมหรือไม่ ระบบอาจจัดกลุ่มแอปพลิเคชันที่จัดประเภทเป็นเกมไว้ด้วยกัน หรือแสดงแยกจากแอปพลิเคชันอื่นๆ ค่าเริ่มต้นคือ
"false" android:isMonitoringToolระบุว่าแอปพลิเคชันนี้ออกแบบมาเพื่อตรวจสอบบุคคลอื่น
หมายเหตุ: หากแอปประกาศแอตทริบิวต์นี้ในไฟล์ Manifest นักพัฒนาแอปต้อง ปฏิบัติตามนโยบายสตอล์กเกอร์แวร์ เพื่อเผยแพร่แอปไปยัง Google Play
ไม่มีค่าเริ่มต้น นักพัฒนาแอปต้องระบุค่าใดค่าหนึ่งต่อไปนี้
ค่า คำอธิบาย "parental_control"แอป รองรับการควบคุมโดยผู้ปกครองและกำหนดเป้าหมายไปยังผู้ปกครองที่ต้องการดูแลบุตรหลานให้ปลอดภัยโดยเฉพาะ "enterprise_management"แอป รองรับองค์กรที่ต้องการจัดการและติดตามอุปกรณ์ที่มอบให้แก่พนักงาน "other"แอปมีไว้สำหรับกรณีการใช้งาน ที่ไม่ได้ระบุไว้ในตารางนี้ android:killAfterRestoreไม่ว่าแอปพลิเคชันจะสิ้นสุดหลังจากที่ระบบกู้คืนการตั้งค่าระหว่างการดำเนินการกู้คืนทั้งระบบหรือไม่ การดำเนินการคืนค่าแพ็กเกจเดียวจะไม่ทำให้แอปพลิเคชันปิดตัวลง โดยปกติแล้วการดำเนินการกู้คืนทั้งระบบจะเกิดขึ้นเพียงครั้งเดียว เมื่อตั้งค่าโทรศัพท์เป็นครั้งแรก โดยปกติแล้วแอปพลิเคชันของบุคคลที่สามไม่จำเป็นต้องใช้แอตทริบิวต์นี้
ค่าเริ่มต้นคือ
"true"ซึ่งหมายความว่าหลังจากที่แอปพลิเคชัน ประมวลผลข้อมูลเสร็จสิ้นในระหว่างการกู้คืนระบบแบบเต็มแล้ว แอปพลิเคชันจะสิ้นสุดandroid:largeHeapไม่ว่ากระบวนการของแอปพลิเคชันจะสร้างขึ้นด้วยฮีป Dalvik ขนาดใหญ่หรือไม่ ซึ่งจะมีผลกับ กระบวนการทั้งหมดที่สร้างขึ้นสำหรับแอปพลิเคชัน โดยจะมีผลกับแอปพลิเคชันแรกที่โหลดลงใน กระบวนการเท่านั้น หากคุณใช้รหัสผู้ใช้ที่แชร์เพื่อให้แอปพลิเคชันหลายรายการใช้กระบวนการเดียวกัน แอปพลิเคชันทั้งหมด ต้องใช้อุปกรณ์นี้อย่างสม่ำเสมอเพื่อหลีกเลี่ยงผลลัพธ์ที่คาดเดาไม่ได้
แอปส่วนใหญ่ไม่จำเป็นต้องใช้ฟีเจอร์นี้ และมุ่งเน้นที่การลดการใช้งานหน่วยความจำโดยรวมเพื่อ ปรับปรุงประสิทธิภาพแทน การเปิดใช้ตัวเลือกนี้ไม่ได้เป็นการรับประกันว่าจะมีการเพิ่มหน่วยความจำที่ใช้ได้แบบคงที่ เนื่องจากอุปกรณ์บางเครื่องมีข้อจำกัดด้านหน่วยความจำทั้งหมดที่ใช้ได้
หากต้องการค้นหาขนาดหน่วยความจำที่พร้อมใช้งานในรันไทม์ ให้ใช้วิธีการ
getMemoryClass()หรือgetLargeMemoryClass()android:label- ป้ายกำกับที่ผู้ใช้อ่านได้สำหรับแอปพลิเคชันโดยรวมและป้ายกำกับเริ่มต้น
สำหรับคอมโพเนนต์แต่ละรายการของแอปพลิเคชัน ดูแอตทริบิวต์
labelแต่ละรายการสำหรับองค์ประกอบ<activity>,<activity-alias>,<service>,<receiver>และ<provider>ป้ายกำกับจะตั้งค่าเป็นข้อมูลอ้างอิงไปยังทรัพยากรสตริง เพื่อให้ แปลเป็นภาษาท้องถิ่นได้เหมือนสตริงอื่นๆ ในอินเทอร์เฟซผู้ใช้ อย่างไรก็ตาม เพื่อความสะดวกในขณะที่คุณกำลังพัฒนาแอปพลิเคชัน คุณยังตั้งค่าเป็นสตริงดิบได้ด้วย
android:logo- โลโก้สำหรับแอปพลิเคชันโดยรวมและโลโก้เริ่มต้นสำหรับกิจกรรม
แอตทริบิวต์นี้ตั้งค่าเป็นการอ้างอิงไปยังทรัพยากรที่วาดได้ซึ่งมี
รูปภาพ เช่น
"@drawable/logo"ไม่มีโลโก้เริ่มต้น android:manageSpaceActivity- ชื่อที่สมบูรณ์ในตัวเองของ
Activityคลาสย่อยที่ระบบเปิดใช้เพื่อให้ผู้ใช้จัดการหน่วยความจำที่แอปพลิเคชันใช้ในอุปกรณ์ได้ นอกจากนี้ยังประกาศกิจกรรมด้วยองค์ประกอบ<activity> android:name- ชื่อที่สมบูรณ์ในตัวเองของ
Applicationคลาสย่อยที่ใช้สำหรับแอปพลิเคชัน เมื่อเริ่มกระบวนการสมัคร ระบบจะสร้างอินสแตนซ์ของคลาสนี้ก่อนคอมโพเนนต์ ใดๆ ของแอปพลิเคชันโดยคุณจะระบุคลาสย่อยหรือไม่ก็ได้ แอปพลิเคชันส่วนใหญ่ไม่จำเป็นต้องมี หากไม่มีคลาสย่อย Android จะใช้อินสแตนซ์ของคลาสฐาน
Application android:networkSecurityConfigระบุชื่อของไฟล์ XML ที่มีการกำหนดค่าความปลอดภัยของเครือข่ายของแอปพลิเคชัน ค่านี้เป็นการอ้างอิงถึงไฟล์ทรัพยากร XML ที่มีการกำหนดค่า
แอตทริบิวต์นี้เพิ่มเข้ามาในระดับ API 24
android:permission- ชื่อของสิทธิ์ที่ไคลเอ็นต์ต้องมีเพื่อโต้ตอบ
กับแอปพลิเคชัน แอตทริบิวต์นี้เป็นวิธีที่สะดวกในการตั้งค่า
สิทธิ์ที่มีผลกับคอมโพเนนต์ทั้งหมดของแอปพลิเคชัน โดยจะ
เขียนทับด้วยการตั้งค่าแอตทริบิวต์
permissionของแต่ละ คอมโพเนนต์ดูข้อมูลเพิ่มเติมเกี่ยวกับสิทธิ์ได้ที่ส่วนสิทธิ์ในภาพรวมของไฟล์ Manifest ของแอปและเคล็ดลับด้านความปลอดภัย
android:persistent- แอปพลิเคชันจะทำงานตลอดเวลาหรือไม่
"true"หากมีและ"false"หากไม่มี ค่าเริ่มต้น คือ"false"โดยปกติแล้วแอปพลิเคชันจะไม่ตั้งค่าสถานะนี้ โหมดคงทนมีไว้สำหรับแอปพลิเคชันระบบบางอย่างเท่านั้น android:process- ชื่อของกระบวนการที่คอมโพเนนต์ทั้งหมดของแอปพลิเคชันทำงาน
คอมโพเนนต์แต่ละรายการจะลบล้างค่าเริ่มต้นนี้ได้โดยการตั้งค่า
processแอตทริบิวต์ของตัวเองโดยค่าเริ่มต้น Android จะสร้างกระบวนการสำหรับแอปพลิเคชันเมื่อคอมโพเนนต์แรก ของแอปพลิเคชันนั้นต้องทำงาน จากนั้นคอมโพเนนต์ทั้งหมดจะทำงานในกระบวนการนั้น ชื่อของกระบวนการเริ่มต้นจะตรงกับชื่อแพ็กเกจที่ตั้งค่าโดยองค์ประกอบ
<manifest>การตั้งค่าแอตทริบิวต์นี้เป็นชื่อกระบวนการที่แชร์กับแอปพลิเคชันอื่น จะช่วยให้คุณจัดเรียงคอมโพเนนต์ของทั้ง 2 แอปพลิเคชันให้ทำงานใน กระบวนการเดียวกันได้ แต่จะทำได้ก็ต่อเมื่อทั้ง 2 แอปพลิเคชันแชร์ รหัสผู้ใช้และลงนามด้วยใบรับรองเดียวกันด้วย
หากชื่อที่กำหนดให้กับแอตทริบิวต์นี้ขึ้นต้นด้วยโคลอน (
:) ระบบจะสร้างกระบวนการใหม่ ซึ่งเป็นแบบส่วนตัวของแอปพลิเคชันเมื่อจำเป็น หากชื่อกระบวนการขึ้นต้นด้วยอักขระตัวพิมพ์เล็ก ระบบจะสร้างกระบวนการส่วนกลาง ที่มีชื่อนั้น กระบวนการส่วนกลางสามารถแชร์กับแอปพลิเคชันอื่นๆ ได้ ซึ่งจะช่วยลดการใช้ทรัพยากร android:restoreAnyVersion- ระบุว่าแอปพลิเคชันพร้อมที่จะพยายามกู้คืนชุดข้อมูลที่สำรองไว้ แม้ว่าการสำรองข้อมูลจะจัดเก็บโดยแอปพลิเคชันเวอร์ชันใหม่กว่าที่ติดตั้งอยู่ในอุปกรณ์ในปัจจุบันก็ตาม การตั้งค่าแอตทริบิวต์นี้เป็น
"true"จะช่วยให้ Backup Manager พยายามกู้คืนแม้ว่าเวอร์ชันจะไม่ตรงกันซึ่งบ่งบอกว่าข้อมูล เข้ากันไม่ได้ โปรดใช้ด้วยความระมัดระวัง$1ค่าเริ่มต้นของแอตทริบิวต์นี้คือ
"false" android:requestLegacyExternalStorage-
ไม่ว่าแอปพลิเคชันจะต้องการเลือกไม่ใช้พื้นที่เก็บข้อมูลที่กำหนดขอบเขตหรือไม่
หมายเหตุ: ระบบอาจไม่ดำเนินการตามคำขอเลือกไม่ใช้ดังกล่าว ทั้งนี้ขึ้นอยู่กับการเปลี่ยนแปลงที่เกี่ยวข้องกับนโยบายหรือความเข้ากันได้ของแอป
android:requiredAccountType- ระบุประเภทบัญชีที่แอปพลิเคชันต้องใช้ในการทำงาน
หากแอปของคุณต้องใช้
Accountค่าของแอตทริบิวต์นี้ต้อง สอดคล้องกับประเภทโปรแกรมตรวจสอบสิทธิ์ของบัญชี ที่แอปของคุณใช้ตามที่กำหนดโดยAuthenticatorDescriptionเช่น"com.google"ค่าเริ่มต้นคือ null และบ่งบอกว่าแอปพลิเคชันสามารถทำงานโดยไม่มีบัญชีใดๆ ได้
เนื่องจากโปรไฟล์ที่จำกัด เพิ่มบัญชีไม่ได้ การระบุแอตทริบิวต์นี้จะทำให้แอปของคุณ ไม่พร้อมใช้งานจากโปรไฟล์ที่จำกัด เว้นแต่คุณจะประกาศ
android:restrictedAccountTypeที่มีค่าเดียวกันด้วยข้อควรระวัง: หากข้อมูลบัญชีอาจเปิดเผยข้อมูลส่วนบุคคลที่ระบุตัวบุคคลได้ คุณต้องประกาศแอตทริบิวต์นี้และปล่อยให้
android:restrictedAccountTypeเป็นค่าว่าง เพื่อไม่ให้โปรไฟล์ที่ถูกจำกัดใช้แอปของคุณเพื่อเข้าถึงข้อมูลส่วนบุคคลที่เป็นของผู้ใช้เจ้าของได้แอตทริบิวต์นี้เพิ่มเข้ามาในระดับ API 18
android:resizeableActivity-
ระบุว่าแอปจะรองรับโหมดหลายหน้าต่างหรือไม่
คุณตั้งค่าแอตทริบิวต์นี้ได้ในองค์ประกอบ
<activity>หรือ<application>หากตั้งค่าแอตทริบิวต์นี้เป็น
"true"ผู้ใช้จะเปิดกิจกรรมใน โหมดแยกหน้าจอและโหมดอิสระได้ หากคุณตั้งค่าแอตทริบิวต์เป็น"false"คุณจะทดสอบหรือเพิ่มประสิทธิภาพแอป สำหรับสภาพแวดล้อมแบบหลายหน้าต่างไม่ได้ ระบบยังคง ใส่กิจกรรมในโหมดหลายหน้าต่างได้โดยใช้โหมดความเข้ากันได้การตั้งค่าแอตทริบิวต์นี้เป็น
"true"ไม่ได้เป็นการรับประกันว่าจะไม่มีแอปอื่นๆ ในโหมดหลายหน้าต่างที่มองเห็นได้บนหน้าจอ เช่น การแสดงภาพซ้อนภาพ หรือบนจอแสดงผลอื่นๆ ดังนั้น การตั้งค่าสถานะนี้ไม่ได้หมายความว่าแอปของคุณ มีสิทธิ์เข้าถึงทรัพยากรแบบพิเศษสำหรับแอปที่กำหนดเป้าหมายเป็น API ระดับ 24 ขึ้นไป ค่าเริ่มต้นคือ
"true"หากแอปกำหนดเป้าหมายเป็น API ระดับ 31 ขึ้นไป แอตทริบิวต์นี้จะทำงานแตกต่างกันในหน้าจอขนาดเล็กและขนาดใหญ่ ดังนี้
- หน้าจอขนาดใหญ่ (sw >= 600dp): แอปทั้งหมดรองรับโหมดหลายหน้าต่าง แอตทริบิวต์จะระบุว่า
แอปปรับขนาดได้หรือไม่ ไม่ใช่ว่าแอปนั้นรองรับโหมดหลายหน้าต่างหรือไม่ หาก
resizeableActivity="false"ระบบจะเปลี่ยนแอปเป็นโหมดความเข้ากันได้เมื่อจำเป็นเพื่อให้สอดคล้องกับขนาดการแสดงผล - หน้าจอขนาดเล็ก (sw < 600dp): หาก
resizeableActivity="true"และความกว้างขั้นต่ำ และความสูงขั้นต่ำของกิจกรรมหลักเป็นไปตามข้อกำหนดของโหมดหลายหน้าต่าง แอปจะรองรับโหมดหลายหน้าต่าง หากเป็นresizeableActivity="false"แอปจะไม่รองรับโหมดหลายหน้าต่างไม่ว่าความกว้างและความสูงขั้นต่ำของกิจกรรมจะเป็นเท่าใดก็ตาม
ค่ากิจกรรมรูทของงานจะมีผลกับกิจกรรมเพิ่มเติมทั้งหมดที่เปิดตัวในงาน กล่าวคือ หากกิจกรรมรูทของงานปรับขนาดได้ ระบบจะถือว่ากิจกรรมอื่นๆ ทั้งหมดในงานนั้นปรับขนาดได้ หากกิจกรรมรูท ปรับขนาดไม่ได้ กิจกรรมอื่นๆ ในงานก็จะปรับขนาดไม่ได้เช่นกัน
แอตทริบิวต์นี้เพิ่มเข้ามาในระดับ API 24
- หน้าจอขนาดใหญ่ (sw >= 600dp): แอปทั้งหมดรองรับโหมดหลายหน้าต่าง แอตทริบิวต์จะระบุว่า
แอปปรับขนาดได้หรือไม่ ไม่ใช่ว่าแอปนั้นรองรับโหมดหลายหน้าต่างหรือไม่ หาก
android:restrictedAccountType- ระบุประเภทบัญชีที่แอปพลิเคชันนี้ต้องการ และระบุว่าโปรไฟล์ที่ถูกจำกัด
สามารถเข้าถึงบัญชีดังกล่าวที่เป็นของผู้ใช้เจ้าของได้ หากแอปของคุณต้องใช้
Accountและโปรไฟล์ที่จำกัดเข้าถึงบัญชีของผู้ใช้หลักได้ ค่าของแอตทริบิวต์นี้ต้องสอดคล้องกับประเภทโปรแกรมตรวจสอบสิทธิ์ของบัญชีที่แอปใช้ตามที่กำหนดโดยAuthenticatorDescriptionเช่น"com.google"ค่าเริ่มต้นคือ null และบ่งบอกว่าแอปพลิเคชันสามารถทำงานโดยไม่มีบัญชีใดๆ ได้
ข้อควรระวัง: การระบุแอตทริบิวต์นี้จะทำให้โปรไฟล์ที่ถูกจำกัดใช้แอปของคุณกับบัญชีที่เป็นของผู้ใช้เจ้าของได้ ซึ่งอาจเปิดเผยข้อมูลส่วนบุคคลที่ระบุตัวบุคคลนั้นได้ หากบัญชีอาจเปิดเผยรายละเอียดส่วนบุคคล อย่า ใช้แอตทริบิวต์นี้ ให้ประกาศแอตทริบิวต์
android:requiredAccountTypeแทน เพื่อทำให้แอปไม่พร้อมให้บริการในโปรไฟล์ที่จำกัดแอตทริบิวต์นี้เพิ่มเข้ามาในระดับ API 18
android:supportsRtlประกาศว่าแอปพลิเคชันของคุณพร้อมรองรับเลย์เอาต์แบบอ่านจากขวาไปซ้าย (RTL) หรือไม่
หากตั้งค่าเป็น
"true"และtargetSdkVersionตั้งค่าเป็น 17 ขึ้นไป ระบบจะเปิดใช้งานและใช้ API ต่างๆ ของ RTL เพื่อให้แอปแสดงเลย์เอาต์ RTL ได้ หากตั้งค่านี้เป็น"false"หรือหากตั้งค่าtargetSdkVersionเป็น 16 หรือต่ำกว่า ระบบจะไม่สนใจ RTL API หรือไม่มีผล และแอปจะทํางานเหมือนเดิมโดยไม่คํานึงถึงเลย์เอาต์ ที่เชื่อมโยงกับตัวเลือกภาษาของผู้ใช้ กล่าวคือ เลย์เอาต์ของคุณจะอยู่จากซ้ายไปขวาเสมอค่าเริ่มต้นของแอตทริบิวต์นี้คือ
"false"แอตทริบิวต์นี้เพิ่มใน API ระดับ 17
android:taskAffinity- ชื่อความสัมพันธ์ที่ใช้กับกิจกรรมทั้งหมดภายในแอปพลิเคชัน
ยกเว้นกิจกรรมที่ตั้งค่าความสัมพันธ์อื่นด้วยแอตทริบิวต์ของตัวเอง
taskAffinityดูข้อมูลเพิ่มเติมได้ที่แอตทริบิวต์ดังกล่าวโดยค่าเริ่มต้น กิจกรรมทั้งหมดภายในแอปพลิเคชันจะมีความสัมพันธ์เดียวกัน ชื่อของความสัมพันธ์นั้นจะเหมือนกับชื่อแพ็กเกจที่ตั้งค่าโดยองค์ประกอบ
<manifest> android:testOnly- ระบุว่าแอปพลิเคชันนี้มีไว้เพื่อการทดสอบเท่านั้นหรือไม่ เช่น
อาจเปิดเผยฟังก์ชันการทำงานหรือข้อมูลภายนอกตัวเองซึ่งอาจทำให้เกิดช่องโหว่ด้านความปลอดภัย
แต่มีประโยชน์สำหรับการทดสอบ APK ประเภทนี้จะติดตั้งได้ผ่าน
adbเท่านั้น คุณเผยแพร่ไปยัง Google Play ไม่ได้Android Studio จะเพิ่มแอตทริบิวต์นี้โดยอัตโนมัติเมื่อคุณคลิกเรียกใช้

android:theme- การอ้างอิงถึงทรัพยากรรูปแบบที่กำหนดธีมเริ่มต้นสำหรับกิจกรรมทั้งหมด
ในแอปพลิเคชัน กิจกรรมแต่ละรายการสามารถลบล้างค่าเริ่มต้นได้โดยการตั้งค่าแอตทริบิวต์
themeของตนเอง ดูข้อมูลเพิ่มเติมได้ที่สไตล์และธีม android:uiOptions- ตัวเลือกเพิ่มเติมสำหรับ UI ของกิจกรรม ซึ่งต้องเป็นค่าใดค่าหนึ่งต่อไปนี้
ค่า คำอธิบาย "none"ไม่มีตัวเลือก UI เพิ่มเติม ทั้งนี้ ตัวเลือกนี้คือค่าเริ่มต้น "splitActionBarWhenNarrow"เพิ่มแถบที่ด้านล่างของหน้าจอเพื่อแสดงรายการการทำงานในแถบแอป หรือที่เรียกว่าแถบการดำเนินการ เมื่อมีพื้นที่แนวนอนจำกัด เช่น เมื่ออยู่ในโหมดแนวตั้งบนโทรศัพท์มือถือ แถบแอปจะแบ่งออกเป็นส่วนการนำทางด้านบนและแถบด้านล่างสำหรับรายการการดำเนินการ แทนที่จะมีรายการการดำเนินการจำนวนเล็กน้อยปรากฏในแถบแอปที่ด้านบนของหน้าจอ ซึ่งหมายความว่าจะมีพื้นที่ที่เหมาะสม สำหรับรายการการดำเนินการ รวมถึงองค์ประกอบการนำทางและชื่อ ที่ด้านบน รายการในเมนูจะไม่แยกเป็น 2 แถบ โดยจะปรากฏพร้อมกันเสมอ ดูข้อมูลเพิ่มเติมเกี่ยวกับแถบแอปได้ที่เพิ่มแถบแอป
แอตทริบิวต์นี้เพิ่มเข้ามาในระดับ API 14
android:usesCleartextTraffic- ระบุว่าแอปตั้งใจที่จะใช้การเข้าชมเครือข่ายข้อความธรรมดา เช่น HTTP ข้อความธรรมดา หรือไม่
ค่าเริ่มต้นสำหรับแอปที่กำหนดเป้าหมายเป็น API ระดับ 27 หรือต่ำกว่าคือ
"true"แอปที่กำหนดเป้าหมายเป็น API ระดับ 28 ขึ้นไปจะใช้"false"เป็นค่าเริ่มต้นหมายเหตุ: เราจะเลิกใช้งานแอตทริบิวต์นี้และระบบจะไม่สนใจแอปที่กำหนดเป้าหมายเป็น API ระดับ 38 ขึ้นไป ระบุการกำหนดค่าความปลอดภัยของเครือข่ายเพื่อควบคุมการเข้าชมแบบข้อความธรรมดา (Cleartext) สำหรับ API ระดับ 24 ขึ้นไป หากแอปกำหนดเป้าหมายเป็น API ระดับ 23 และต่ำกว่า คุณต้องระบุ
android:usesCleartextTrafficนอกเหนือจากการกำหนดค่าความปลอดภัยของเครือข่ายเมื่อตั้งค่าแอตทริบิวต์เป็น
"false"คอมโพเนนต์แพลตฟอร์ม เช่น สแต็ก HTTP และ FTPDownloadManagerและMediaPlayerจะปฏิเสธคำขอของแอปที่จะใช้การรับส่งข้อความที่ไม่มีการเข้ารหัสเราขอแนะนำอย่างยิ่งให้ไลบรารีของบุคคลที่สามปฏิบัติตามการตั้งค่านี้ด้วย เหตุผลหลักที่ควรหลีกเลี่ยงการรับส่งข้อมูลข้อความธรรมดาคือการขาดการรักษาความลับ ความถูกต้อง และการป้องกันการดัดแปลง ผู้โจมตีเครือข่ายสามารถดักฟังข้อมูลที่ส่งและแก้ไขข้อมูลดังกล่าวได้โดยไม่ถูกตรวจพบ
เราจะพยายามอย่างเต็มที่ในการปฏิบัติตามค่าสถานะนี้ เนื่องจากเป็นไปไม่ได้ที่จะป้องกันไม่ให้แอปพลิเคชัน Android ทั้งหมดส่งการรับส่งข้อมูลข้อความธรรมดา เนื่องจากระดับการเข้าถึงที่แอปพลิเคชันได้รับ เช่น
SocketAPI ไม่จำเป็นต้องปฏิบัติตาม ค่าสถานะนี้ เนื่องจากไม่สามารถระบุได้ว่าการรับส่งข้อมูลเป็นข้อความที่โอนหรือจัดเก็บได้โดยไม่ต้องเข้ารหัสหรือไม่อย่างไรก็ตาม การจราจรของข้อมูลในเครือข่ายส่วนใหญ่จากแอปพลิเคชันจะได้รับการจัดการโดยสแต็กและคอมโพเนนต์เครือข่ายระดับสูงกว่า ซึ่งสามารถ ใช้แฟล็กนี้ได้โดยการอ่านจาก
ApplicationInfo.flagsหรือNetworkSecurityPolicy.isCleartextTrafficPermitted()หมายเหตุ:
WebViewจะใช้แอตทริบิวต์นี้สำหรับ แอปพลิเคชันที่กำหนดเป้าหมายเป็น API ระดับ 26 ขึ้นไปในระหว่างการพัฒนาแอป คุณสามารถใช้ StrictMode เพื่อระบุการรับส่งข้อความที่ไม่ได้เข้ารหัสจากแอปได้ ดูข้อมูลเพิ่มเติมได้ที่
StrictMode.VmPolicy.Builder.detectCleartextNetwork()แอตทริบิวต์นี้เพิ่มในระดับ API 23
ระบบจะละเว้นแฟล็กนี้ใน Android 7.0 (ระดับ API 24) ขึ้นไป หากมี Android Network Security Config
android:vmSafeMode- ระบุว่าแอปต้องการให้เครื่องเสมือน (VM) ทำงานในโหมดปลอดภัยหรือไม่
ค่าเริ่มต้นคือ
"false"แอตทริบิวต์นี้ได้รับการเพิ่มในระดับ API 8 ซึ่งค่า
"true"ปิดใช้คอมไพเลอร์ Dalvik Just-In-Time (JIT)แอตทริบิวต์นี้ได้รับการปรับในระดับ API 22 ซึ่งค่า
"true"ปิดใช้คอมไพเลอร์ล่วงหน้า (AOT) ของ ART
ตั้งแต่ AGP 4.2.0 เป็นต้นไป ตัวเลือก DSL
useLegacyPackagingจะแทนที่แอตทริบิวต์ไฟล์ Manifest ของextractNativeLibsใช้useLegacyPackagingในไฟล์build.gradleของแอป แทนextractNativeLibsในไฟล์ Manifest เพื่อกำหนดค่าลักษณะการทำงานของการบีบอัดไลบรารีแบบเนทีฟ ดูข้อมูลเพิ่มเติมได้ที่บันทึกประจำรุ่น ใช้ DSL เพื่อแพ็กเกจไลบรารีเนทีฟที่บีบอัด- เปิดตัวใน
- ระดับ API 1
- ดูเพิ่มเติม:
<activity><service><receiver><provider>
<แอปพลิเคชัน>
ตัวอย่างเนื้อหาและโค้ดในหน้าเว็บนี้ขึ้นอยู่กับใบอนุญาตที่อธิบายไว้ในใบอนุญาตการใช้เนื้อหา Java และ OpenJDK เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2026-07-01 UTC
[[["เข้าใจง่าย","easyToUnderstand","thumb-up"],["แก้ปัญหาของฉันได้","solvedMyProblem","thumb-up"],["อื่นๆ","otherUp","thumb-up"]],[["ไม่มีข้อมูลที่ฉันต้องการ","missingTheInformationINeed","thumb-down"],["ซับซ้อนเกินไป/มีหลายขั้นตอนมากเกินไป","tooComplicatedTooManySteps","thumb-down"],["ล้าสมัย","outOfDate","thumb-down"],["ปัญหาเกี่ยวกับการแปล","translationIssue","thumb-down"],["ตัวอย่าง/ปัญหาเกี่ยวกับโค้ด","samplesCodeIssue","thumb-down"],["อื่นๆ","otherDown","thumb-down"]],["อัปเดตล่าสุด 2026-07-01 UTC"],[],[]]