- ไวยากรณ์:
<application android:allowTaskReparenting=["true" | "false"] android:allowBackup=["true" | "false"] android:allowClearUserData=["true" | "false"] android:allowCrossUidActivitySwitchFromBelow=["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: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>
- description:
การประกาศแอปพลิเคชัน องค์ประกอบนี้มีองค์ประกอบย่อย ที่ประกาศคอมโพเนนต์ของแอปพลิเคชันแต่ละรายการและมีแอตทริบิวต์ ที่ส่งผลต่อคอมโพเนนต์ทั้งหมด
แอตทริบิวต์เหล่านี้หลายรายการ เช่น
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:allowCrossUidActivitySwitchFromBelow
ระบุว่ากิจกรรมที่อยู่ใต้กิจกรรมนี้ในงานสามารถเริ่มต้นกิจกรรมอื่นๆ ได้หรือไม่ หรือทำงานให้เสร็จ
เริ่มต้นจาก SDK เป้าหมายระดับ
Build.VERSION_CODES.VANILLA_ICE_CREAM
, แอป อาจถูกบล็อกไม่ให้เริ่มกิจกรรมใหม่หรือทำงานเสร็จ เว้นแต่กิจกรรมยอดนิยม ของงานดังกล่าวเป็น UID เดียวกันด้วยเหตุผลด้านความปลอดภัยการตั้งค่าแฟล็กนี้เป็น
true
จะทำให้แอปที่เปิดแอปไม่สนใจข้อจำกัด กิจกรรมนี้อยู่ด้านบนสุด แอปที่ตรงกับ UID ของกิจกรรมนี้จะได้รับการยกเว้นเสมอดูข้อมูลเพิ่มเติมได้ที่การเปิดตัวกิจกรรมในเบื้องหลังที่ปลอดภัย
android:allowNativeHeapPointerTagging
แอปเปิดใช้ฟีเจอร์การติดแท็กเคอร์เซอร์ฮีปหรือไม่ ค่าเริ่มต้นคือ แอตทริบิวต์นี้คือ
"true"
หมายเหตุ: การปิดฟีเจอร์นี้จะไม่ได้ช่วยแก้ไข ปัญหาประสิทธิภาพของโค้ดที่เกี่ยวข้อง อุปกรณ์ฮาร์ดแวร์ในอนาคตอาจไม่รองรับแท็กไฟล์ Manifest นี้
ดูข้อมูลเพิ่มเติมได้ที่เคอร์เซอร์ที่ติดแท็ก
android:appCategory
ประกาศหมวดหมู่ของแอปนี้ มีการใช้หมวดหมู่เพื่อจัดกลุ่มแอปหลายรายการ ออกเป็นกลุ่มที่มีความหมาย เช่น เมื่อสรุปแบตเตอรี่ เครือข่าย หรือ การใช้งานดิสก์ กำหนดค่านี้สำหรับแอปที่เหมาะกับหนึ่งใน หมวดหมู่ที่เจาะจง
ต้องเป็นค่าคงที่ค่าใดค่าหนึ่งต่อไปนี้
ค่า คำอธิบาย accessibility
แอปที่เป็นแอปการช่วยเหลือพิเศษเป็นหลัก เช่น โปรแกรมอ่านหน้าจอ audio
แอปที่ทำงานกับเสียงหรือเพลงเป็นหลัก เช่น โปรแกรมเล่นเพลง game
แอปที่เป็นเกมเป็นหลัก image
แอปที่ทำงานกับรูปภาพเป็นหลัก เช่น แอปกล้องถ่ายรูปหรือแอปแกลเลอรี maps
แอปที่เป็นแอปแผนที่เป็นหลัก เช่น แอปนำทาง news
แอปที่เป็นแอปข่าวเป็นหลัก เช่น หนังสือพิมพ์ นิตยสาร หรือแอปกีฬา productivity
แอปที่เป็นแอปเพื่อการทำงานเป็นหลัก เช่น พื้นที่เก็บข้อมูลระบบคลาวด์หรือแอปที่ทำงาน social
แอปที่เป็นแอปโซเชียลเป็นหลัก เช่น แอปการรับส่งข้อความ การสื่อสาร อีเมล หรือแอปโซเชียลเน็ตเวิร์ก video
แอปที่ทำงานกับวิดีโอหรือภาพยนตร์เป็นหลัก เช่น แอปสตรีมวิดีโอ android:backupAgent
- ชื่อคลาสที่ใช้งาน Agent สำรองของแอปพลิเคชัน
คลาสย่อยของ
BackupAgent
ค่าแอตทริบิวต์คือ ชื่อคลาสที่มีคุณสมบัติครบถ้วน เช่น"com.example.project.MyBackupAgent"
แต่ถ้าอักขระตัวแรกของชื่อเป็นเครื่องหมายจุด ตัวอย่างเช่น".MyBackupAgent"
จะนำไปต่อท้าย ชื่อแพ็กเกจที่ระบุใน วันที่<manifest>
ไม่มีค่าเริ่มต้น โดยชื่อต้องเฉพาะเจาะจง
android:backupInForeground
- ระบุว่า
การทำงานของการสำรองข้อมูลอัตโนมัติ
สามารถดำเนินการในแอปนี้ได้แม้ว่าแอปจะทำงานในเบื้องหน้าที่เทียบเท่ากัน
ระบบจะปิดแอปในระหว่างการสำรองข้อมูลอัตโนมัติ
ดังนั้นโปรดใช้แอตทริบิวต์นี้ด้วยความระมัดระวัง การตั้งค่าแฟล็กนี้เป็น
"true"
อาจส่งผลต่อแอป พฤติกรรมขณะแอปทำงานอยู่ค่าเริ่มต้นคือ
"false"
ซึ่งหมายความว่าระบบปฏิบัติการจะหลีกเลี่ยง การสำรองข้อมูลแอปขณะที่แอปทำงานอยู่ในเบื้องหน้า เช่น แอปเพลง ที่กำลังเล่นเพลงโดยใช้บริการใน รัฐstartForeground()
android:banner
- แหล่งข้อมูลที่ถอนได้
แสดงแบนเนอร์กราฟิกแบบขยายสำหรับรายการที่เกี่ยวข้อง ใช้กับ
<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: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 แอปอาจโหลดไม่สำเร็จพร็อพเพอร์ตี้นี้ต้องยอมรับโค้ดที่อยู่ในแอปพลิเคชันโดย ทรัพยากร Dependency ได้ หากแอปพลิเคชันต้องใช้ 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 และกล้องถ่ายรูปจะได้รับการเร่ง
ทำให้ภาพเคลื่อนไหวลื่นไหลขึ้น การเลื่อนลื่นไหลขึ้น และปรับปรุงขึ้น การตอบสนองโดยรวม แม้แต่สำหรับแอปพลิเคชันที่ไม่ได้ใช้ ไลบรารี OpenGL ของเฟรมเวิร์ก
ไม่ใช่การเร่งการดำเนินการ OpenGL 2D ทั้งหมด หากเปิดใช้ เพื่อเร่งการแสดงผลด้วยฮาร์ดแวร์ ให้ทดสอบแอปพลิเคชันของคุณ สามารถใช้ตัวแสดงผลโดยไม่มีข้อผิดพลาด
สำหรับข้อมูลเพิ่มเติม โปรดอ่าน การเร่งฮาร์ดแวร์
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>
ตั้งค่าแอตทริบิวต์นี้เป็นชื่อกระบวนการที่แชร์กับคนอื่น คุณสามารถจัดเรียงคอมโพเนนต์ของแอปพลิเคชันทั้งสองได้ กระบวนการเดียวกัน แต่เฉพาะเมื่อแอปพลิเคชันทั้งสองใช้ User ID และลงนามด้วยใบรับรองเดียวกัน
หากชื่อที่กำหนดให้กับแอตทริบิวต์นี้ขึ้นต้นด้วยเครื่องหมายโคลอน (
:
) ซึ่งเป็นแบบส่วนตัวสำหรับแอปพลิเคชัน จะสร้างขึ้นเมื่อจำเป็น หากชื่อกระบวนการขึ้นต้นด้วยอักขระตัวพิมพ์เล็ก แสดงว่าเป็นกระบวนการส่วนกลาง ของชื่อนั้นขึ้นมา สามารถแชร์กระบวนการส่วนกลางกับผู้อื่นได้ แอปพลิเคชัน ช่วยลดการใช้ทรัพยากร android:restoreAnyVersion
- ระบุว่าแอปพลิเคชันพร้อมที่จะพยายามกู้คืนข้อมูล
ชุดข้อมูลที่สำรองไว้ แม้ว่าข้อมูลสำรองจะได้รับการจัดเก็บไว้โดยเวอร์ชันที่ใหม่กว่าก็ตาม
ของแอปพลิเคชันมากกว่าที่ติดตั้งบนอุปกรณ์ในปัจจุบัน การเกริ่นนำ
"true"
จากแอตทริบิวต์นี้จะอนุญาตให้เครื่องมือจัดการการสำรองข้อมูล พยายามกู้คืนแม้ว่าเวอร์ชันจะไม่ตรงกัน จะบ่งชี้ว่าข้อมูล ใช้ร่วมกันไม่ได้ โปรดใช้ด้วยความระมัดระวังค่าเริ่มต้นของแอตทริบิวต์นี้คือ
"false"
android:requestLegacyExternalStorage
-
แอปพลิเคชันต้องการเลือกไม่ใช้หรือไม่ พื้นที่เก็บข้อมูลที่กำหนดขอบเขต
หมายเหตุ: ขึ้นอยู่กับการเปลี่ยนแปลงที่เกี่ยวข้องกับนโยบายหรือแอป ระบบอาจไม่ดำเนินการตามคำขอเลือกไม่ใช้นี้
android:requiredAccountType
- ระบุประเภทบัญชีที่แอปพลิเคชันจำเป็นต้องใช้ในการทำงาน
หากแอปต้องใช้
Account
ค่าสำหรับแอตทริบิวต์นี้ต้อง สอดคล้องกับตัวตรวจสอบสิทธิ์บัญชี ประเภทที่แอปของคุณใช้ ตามที่กำหนดโดยAuthenticatorDescription
เช่น"com.google"
ค่าเริ่มต้นคือ Null และระบุว่าแอปพลิเคชัน สามารถทำงานได้โดยไม่ต้องใช้บัญชีใดๆ
เนื่องจากโปรไฟล์ที่ถูกจำกัด เพิ่มบัญชีไม่ได้ การระบุแอตทริบิวต์นี้จะทำให้แอปของคุณ ไม่พร้อมใช้งานจากโปรไฟล์ที่ถูกจำกัด เว้นแต่คุณจะประกาศ
android:restrictedAccountType
ที่มี ค่าเดียวกันข้อควรระวัง: หากข้อมูลบัญชีอาจเปิดเผยข้อมูลส่วนบุคคลที่ระบุตัวบุคคลนั้นได้ สิ่งสำคัญคือ ที่คุณประกาศแอตทริบิวต์นี้และปล่อยให้
android:restrictedAccountType
เป็น Null เพื่อให้โปรไฟล์ที่ถูกจำกัดไม่สามารถใช้ แอปเพื่อเข้าถึงข้อมูลส่วนบุคคลของผู้ใช้ที่เป็นเจ้าของแอตทริบิวต์นี้เพิ่มขึ้นใน 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 ระดับ 31 ได้ พฤติกรรมของคุณ
แอตทริบิวต์นี้มีการเพิ่มใน 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 แบบ cleartext หรือไม่
ค่าเริ่มต้นสำหรับแอปที่กำหนดเป้าหมายเป็น API ระดับ 27 หรือต่ำกว่าคือ
"true"
แอปที่ API เป้าหมายระดับ 28 ขึ้นไปจะมีค่าเริ่มต้นเป็น"false"
เมื่อตั้งค่าแอตทริบิวต์เป็น
"false"
คอมโพเนนต์ของแพลตฟอร์ม เช่น HTTP และ FTP สแต็ก,DownloadManager
และMediaPlayer
ปฏิเสธ คำขอใช้การเข้าชมแบบข้อความธรรมดา (Cleartext) ของแอปขอแนะนําอย่างยิ่งให้ไลบรารีของบุคคลที่สามปฏิบัติตาม ของ Google ได้เช่นกัน สาเหตุหลักในการหลีกเลี่ยงการรับส่งข้อความธรรมดาก็คือ การขาดการรักษาข้อมูลที่เป็นความลับ ความถูกต้องอย่างแท้จริง และการป้องกันการปลอมแปลง ผู้โจมตีเครือข่ายสามารถดักฟังข้อมูลที่ ข้อมูลและแก้ไขโดยไม่ถูกตรวจพบได้
เราจะยึดถือธงนี้อย่างเต็มความสามารถเพราะเป็นไปไม่ได้ที่จะป้องกันข้อความที่ชัดเจนทั้งหมด การเข้าชมจากแอปพลิเคชัน Android ตามระดับการเข้าถึงที่ให้ไว้ ตัวอย่างเช่น มี ไม่มีความคาดหวังที่
Socket
API จะได้รับ Flag นี้ เนื่องจากระบุไม่ได้ว่าการเข้าชมเป็นข้อความธรรมดาหรือไม่อย่างไรก็ตาม การจราจรของข้อมูลในเครือข่ายจากแอปพลิเคชันได้รับการจัดการโดยสแต็กและคอมโพเนนต์เครือข่ายในระดับที่สูงกว่า ซึ่งสามารถ แสดงธงนี้ด้วยการอ่านค่าจาก
ApplicationInfo.flags
หรือNetworkSecurityPolicy.isCleartextTrafficPermitted()
หมายเหตุ
WebView
ยอมรับแอตทริบิวต์นี้สำหรับ แอปพลิเคชันที่กำหนดเป้าหมายเป็น API ระดับ 26 ขึ้นไปในระหว่างการพัฒนาแอป คุณสามารถใช้ StrictMode เพื่อระบุการเข้าชมแบบข้อความธรรมดา (Cleartext) จากแอปได้ สำหรับข้อมูลเพิ่มเติม โปรดดู
StrictMode.VmPolicy.Builder.detectCleartextNetwork()
แอตทริบิวต์นี้มีการเพิ่มใน API ระดับ 23
ระบบจะไม่สนใจแฟล็กนี้ใน Android 7.0 (API ระดับ 24) ขึ้นไปหากความปลอดภัยด้านเครือข่ายของ Android มีการกำหนดค่า
android:vmSafeMode
- ระบุว่าแอปต้องการให้เครื่องเสมือน (VM) ทำงานหรือไม่
ในโหมดปลอดภัย ค่าเริ่มต้นคือ
"false"
มีการเพิ่มแอตทริบิวต์นี้ใน API ระดับ 8 ซึ่งมีค่า
"true"
ปิดใช้งานคอมไพเลอร์ Just-In-Time (JIT) ของ Dalvikแอตทริบิวต์นี้ปรับเปลี่ยนใน API ระดับ 22 ซึ่งมีค่า
"true"
ปิดใช้งานคอมไพเลอร์ ART ล่วงหน้า (AOT)
เริ่มต้นด้วย AGP 4.2.0 ซึ่งเป็นตัวเลือก DSL
useLegacyPackaging
แทนที่แอตทริบิวต์ไฟล์ Manifest ของextractNativeLibs
ใช้useLegacyPackaging
ในไฟล์build.gradle
ของแอป แทนextractNativeLibs
ในไฟล์ Manifest เพื่อกำหนดค่าไลบรารีเนทีฟ ลักษณะการบีบอัด ดูข้อมูลเพิ่มเติมได้ในบันทึกประจำรุ่น ใช้ DSL เพื่อสร้างแพ็กเกจไลบรารีแบบเนทีฟที่บีบอัด- เปิดตัวใน
- API ระดับ 1
- ดูเพิ่มเติม
<activity>
<service>
<receiver>
<provider>
ตัวอย่างเนื้อหาและโค้ดในหน้าเว็บนี้ขึ้นอยู่กับใบอนุญาตที่อธิบายไว้ในใบอนุญาตการใช้เนื้อหา Java และ OpenJDK เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2024-09-12 UTC
[null,null,["อัปเดตล่าสุด 2024-09-12 UTC"],[],[]]