- ไวยากรณ์:
<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:enabledOnBackInvokedCallback=["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
ระบุว่ากิจกรรมที่อยู่ด้านล่างกิจกรรมนี้ในภารกิจสามารถเริ่มกิจกรรมอื่นๆ หรือทํางานให้เสร็จสิ้นได้หรือไม่
ตั้งแต่วันที่
Build.VERSION_CODES.VANILLA_ICE_CREAM
เป็นต้นไป แอปอาจถูกบล็อกไม่ให้เริ่มกิจกรรมใหม่หรือทำงานให้เสร็จสิ้น เว้นแต่กิจกรรมหลักของงานดังกล่าวจะเป็นของ UID เดียวกันเพื่อเหตุผลด้านความปลอดภัยการตั้งค่า Flag นี้เป็น
true
จะช่วยให้แอปที่เปิดใช้งานละเว้นข้อจำกัดได้หากกิจกรรมนี้อยู่ด้านบน แอปที่ตรงกับ UID ของกิจกรรมนี้จะได้รับการยกเว้นเสมอดูข้อมูลเพิ่มเติมได้ที่การเปิดกิจกรรมเบื้องหลังที่ปลอดภัย
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
- บ่งบอกว่าการดำเนินการการสํารองข้อมูลอัตโนมัติสามารถดําเนินการในแอปนี้ได้แม้ว่าแอปจะอยู่ในสถานะที่เทียบเท่าเบื้องหน้า ระบบจะปิดแอประหว่างการดำเนินการสำรองข้อมูลอัตโนมัติ ดังนั้นโปรดใช้แอตทริบิวต์นี้ด้วยความระมัดระวัง การตั้งค่า Flag นี้เป็น
"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
- Flag นี้ช่วยให้คุณเลือกไม่ใช้ภาพเคลื่อนไหวของระบบแบบคาดเดาที่ระดับแอปได้
การตั้งค่า
android:enableOnBackInvokedCallback=false
จะปิดภาพเคลื่อนไหวย้อนกลับแบบคาดการณ์ที่ระดับกิจกรรมหรือระดับแอป ทั้งนี้ขึ้นอยู่กับตำแหน่งที่คุณตั้งค่าแท็ก และสั่งให้ระบบไม่สนใจการเรียก API ของแพลตฟอร์มOnBackInvokedCallback
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 แอปอาจโหลดไม่สำเร็จพร็อพเพอร์ตี้นี้ต้องพิจารณาโค้ดที่รวมอยู่ในแอปพลิเคชันโดยพิจารณาจากข้อกําหนดของโค้ด หากแอปพลิเคชันใช้ 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 ของเฟรมเวิร์กอย่างชัดเจน
การดำเนินการ 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"
แอปรองรับ Use Case ที่ไม่ได้ระบุไว้ในตารางนี้ 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"
โดยปกติแล้วแอปพลิเคชันจะไม่ตั้งค่า Flag นี้ โหมดถาวรมีไว้สําหรับแอปพลิเคชันระบบบางรายการเท่านั้น android:process
- ชื่อกระบวนการที่คอมโพเนนต์ทั้งหมดของแอปพลิเคชันทำงาน
คอมโพเนนต์แต่ละรายการจะลบล้างค่าเริ่มต้นนี้ได้โดยการกําหนด
process
แอตทริบิวต์ของตัวเองโดยค่าเริ่มต้น Android จะสร้างกระบวนการสําหรับแอปพลิเคชันเมื่อคอมโพเนนต์แรกต้องทํางาน จากนั้นคอมโพเนนต์ทั้งหมดจะทํางานในกระบวนการนั้น ชื่อของกระบวนการเริ่มต้นจะตรงกับชื่อแพ็กเกจที่องค์ประกอบ
<manifest>
กำหนดการตั้งค่าแอตทริบิวต์นี้เป็นชื่อกระบวนการที่แชร์กับแอปพลิเคชันอื่นจะช่วยให้คุณจัดเรียงคอมโพเนนต์ของแอปพลิเคชันทั้ง 2 รายการให้ทำงานในกระบวนการเดียวกันได้ แต่จะใช้งานได้ก็ต่อเมื่อแอปพลิเคชันทั้ง 2 รายการใช้รหัสผู้ใช้เดียวกันและลงนามด้วยใบรับรองเดียวกัน
หากชื่อที่กำหนดให้กับแอตทริบิวต์นี้ขึ้นต้นด้วยโคลอน (
:
) ระบบจะสร้างกระบวนการใหม่ที่เป็นส่วนตัวสำหรับแอปพลิเคชันเมื่อจำเป็น หากชื่อกระบวนการขึ้นต้นด้วยอักขระตัวพิมพ์เล็ก ระบบจะสร้างกระบวนการส่วนกลางที่มีชื่อนั้น กระบวนการส่วนกลางสามารถแชร์กับแอปพลิเคชันอื่นๆ ซึ่งจะช่วยลดการใช้ทรัพยากร android:restoreAnyVersion
- บ่งบอกว่าแอปพลิเคชันพร้อมที่จะพยายามกู้คืนชุดข้อมูลที่สำรองข้อมูลไว้ แม้ว่าการสำรองข้อมูลจะจัดเก็บโดยแอปพลิเคชันเวอร์ชันที่ใหม่กว่าเวอร์ชันที่ติดตั้งอยู่ในอุปกรณ์ก็ตาม การตั้งค่าแอตทริบิวต์นี้เป็น
"true"
จะช่วยให้เครื่องมือจัดการข้อมูลสำรองพยายามกู้คืนแม้ว่าเวอร์ชันจะไม่ตรงกันซึ่งบ่งชี้ว่าข้อมูลใช้ร่วมกันไม่ได้ โปรดใช้ด้วยความระมัดระวังค่าเริ่มต้นของแอตทริบิวต์นี้คือ
"false"
android:requestLegacyExternalStorage
-
แอปพลิเคชันต้องการเลือกไม่ใช้พื้นที่เก็บข้อมูลที่กำหนดขอบเขตหรือไม่
หมายเหตุ: ระบบอาจไม่ดำเนินการตามคำขอเลือกไม่ใช้นี้ ทั้งนี้ขึ้นอยู่กับการเปลี่ยนแปลงที่เกี่ยวข้องกับนโยบายหรือความเข้ากันได้ของแอป
android:requiredAccountType
- ระบุประเภทบัญชีที่จําเป็นสําหรับให้แอปพลิเคชันทํางานได้
หากแอปต้องใช้
Account
ค่าของแอตทริบิวต์นี้ต้องตรงกับประเภทโปรแกรมตรวจสอบสิทธิ์ของบัญชีที่แอปใช้ตามที่ระบุโดยAuthenticatorDescription
เช่น"com.google"
ค่าเริ่มต้นคือ Null และบ่งบอกว่าแอปพลิเคชันทำงานได้โดยไม่ต้องมีบัญชีใดๆ
เนื่องจากโปรไฟล์ที่ถูกจำกัดไม่สามารถเพิ่มบัญชีได้ การระบุแอตทริบิวต์นี้จะทำให้แอปของคุณไม่พร้อมใช้งานจากโปรไฟล์ที่ถูกจำกัด เว้นแต่คุณจะประกาศ
android:restrictedAccountType
ด้วยค่าเดียวกันด้วยข้อควรระวัง: หากข้อมูลบัญชีอาจเปิดเผยข้อมูลที่ระบุตัวบุคคลได้ คุณควรประกาศแอตทริบิวต์นี้และปล่อย
android:restrictedAccountType
เป็นค่าว่าง เพื่อให้โปรไฟล์ที่ถูกจํากัดใช้แอปของคุณเพื่อเข้าถึงข้อมูลส่วนบุคคลที่เป็นของผู้ใช้ที่เป็นเจ้าของไม่ได้แอตทริบิวต์นี้เพิ่มเข้ามาใน API ระดับ 18
android:resizeableActivity
-
ระบุว่าแอปรองรับโหมดหลายหน้าต่างหรือไม่ คุณตั้งค่าแอตทริบิวต์นี้ได้ในองค์ประกอบ
<activity>
หรือ<application>
หากคุณตั้งค่าแอตทริบิวต์นี้เป็น
"true"
ผู้ใช้จะเปิดกิจกรรมในโหมดแยกหน้าจอและโหมดอิสระได้ หากคุณตั้งค่าแอตทริบิวต์เป็น"false"
ระบบจะทดสอบหรือเพิ่มประสิทธิภาพแอปสำหรับสภาพแวดล้อมแบบหลายหน้าต่างไม่ได้ ระบบจะยังคงแสดงกิจกรรมในโหมดหลายหน้าต่างได้เมื่อใช้โหมดความเข้ากันได้การตั้งค่าแอตทริบิวต์นี้เป็น
"true"
ไม่ได้รับประกันว่าจะไม่มีแอปอื่นๆ ในโหมดหลายหน้าต่างที่แสดงบนหน้าจอ เช่น การแสดงภาพซ้อนภาพ หรือบนจอแสดงผลอื่นๆ ดังนั้น การตั้งค่า Flag นี้ไม่ได้หมายความว่าแอปของคุณมีสิทธิ์เข้าถึงทรัพยากรแบบพิเศษสำหรับแอปที่กำหนดเป้าหมายเป็น 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 ขึ้นไป ระบบจะเปิดใช้งานและใช้ RTL API ต่างๆ เพื่อให้แอปแสดงเลย์เอาต์ RTL ได้ หากตั้งค่าเป็น"false"
หรือตั้งค่าtargetSdkVersion
เป็น 16 หรือต่ำกว่า ระบบจะไม่สนใจหรือ API แบบ RTL จะไม่มีผล และแอปจะทำงานเหมือนเดิมไม่ว่าจะกำหนดทิศทางเลย์เอาต์อย่างไรซึ่งเชื่อมโยงกับตัวเลือกภาษาของผู้ใช้ กล่าวคือ เลย์เอาต์ของคุณจะเป็นแบบจากซ้ายไปขวาเสมอค่าเริ่มต้นของแอตทริบิวต์นี้คือ
"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"
เมื่อตั้งค่าแอตทริบิวต์เป็น
"false"
คอมโพเนนต์ของแพลตฟอร์ม เช่น สแต็ก HTTP และ FTP,DownloadManager
และMediaPlayer
จะปฏิเสธคำขอของแอปในการใช้การรับส่งข้อมูลแบบข้อความธรรมดาเราขอแนะนำอย่างยิ่งให้ไลบรารีของบุคคลที่สามปฏิบัติตามการตั้งค่านี้ด้วย เหตุผลหลักที่ควรหลีกเลี่ยงการรับส่งข้อมูลแบบข้อความธรรมดาคือไม่มีการรักษาข้อมูลเป็นความลับ ความถูกต้อง และการปกป้องจากการแทรกแซง ผู้โจมตีเครือข่ายสามารถดักฟังข้อมูลที่ส่งและแก้ไขข้อมูลดังกล่าวได้โดยที่ไม่มีใครตรวจพบ
ระบบจะดำเนินการตามการแจ้งนี้อย่างดีที่สุด เนื่องจากการป้องกันการรับส่งข้อมูลแบบข้อความธรรมดาทั้งหมดจากแอปพลิเคชัน Android นั้นเป็นไปไม่ได้เมื่อพิจารณาจากระดับการเข้าถึงที่มอบให้ ตัวอย่างเช่น ไม่มีใครคาดหวังว่า
Socket
API จะดำเนินการตาม Flag นี้ เนื่องจากไม่สามารถระบุได้ว่าการเข้าชมอยู่ในรูปแบบข้อความธรรมดาหรือไม่อย่างไรก็ตาม การเข้าชมเครือข่ายส่วนใหญ่จากแอปพลิเคชันจะจัดการโดยสแต็กและคอมโพเนนต์เครือข่ายระดับที่สูงขึ้น ซึ่งสามารถดำเนินการตาม Flag นี้ได้โดยอ่านจาก
ApplicationInfo.flags
หรือNetworkSecurityPolicy.isCleartextTrafficPermitted()
หมายเหตุ:
WebView
จะใช้แอตทริบิวต์นี้กับแอปพลิเคชันที่กําหนดเป้าหมายเป็น API ระดับ 26 ขึ้นไปในระหว่างการพัฒนาแอป คุณสามารถใช้ StrictMode เพื่อระบุการเข้าชมแบบข้อความธรรมดา (Cleartext) จากแอปได้ ดูข้อมูลเพิ่มเติมที่
StrictMode.VmPolicy.Builder.detectCleartextNetwork()
แอตทริบิวต์นี้เพิ่มเข้ามาใน API ระดับ 23
ระบบจะไม่สนใจ Flag นี้ใน Android 7.0 (API ระดับ 24) ขึ้นไปหากมี Android Network Security Config อยู่
android:vmSafeMode
- ระบุว่าแอปต้องการให้เครื่องเสมือน (VM) ทํางานในโหมดปลอดภัยหรือไม่ ค่าเริ่มต้นคือ
"false"
แอตทริบิวต์นี้เพิ่มเข้ามาใน API ระดับ 8 โดยค่า
"true"
จะปิดใช้คอมไพเลอร์แบบทันท่วงที (JIT) ของ Dalvikแอตทริบิวต์นี้ได้รับการปรับใช้ใน API ระดับ 22 โดยค่า
"true"
จะปิดใช้คอมไพเลอร์ ART แบบล่วงหน้า (AOT)
ตั้งแต่ AGP 4.2.0 เป็นต้นไป ตัวเลือก DSL
useLegacyPackaging
จะแทนที่แอตทริบิวต์ไฟล์ ManifestextractNativeLibs
ใช้useLegacyPackaging
ในไฟล์build.gradle
ของแอปแทนextractNativeLibs
ในไฟล์ Manifest เพื่อกำหนดค่าลักษณะการบีบอัดไลบรารีแบบเนทีฟ ดูข้อมูลเพิ่มเติมได้ที่บันทึกประจำรุ่น ใช้ DSL เพื่อแพ็กเกจไลบรารีเนทีฟที่บีบอัด- เปิดตัวใน
- API ระดับ 1
- ดูข้อมูลเพิ่มเติมได้ที่
<activity>
<service>
<receiver>
<provider>
ตัวอย่างเนื้อหาและโค้ดในหน้าเว็บนี้ขึ้นอยู่กับใบอนุญาตที่อธิบายไว้ในใบอนุญาตการใช้เนื้อหา Java และ OpenJDK เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2025-01-23 UTC
[null,null,["อัปเดตล่าสุด 2025-01-23 UTC"],[],[]]