<แอปพลิเคชัน>

ไวยากรณ์:
<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

เริ่มต้นด้วย AGP 4.2.0 ซึ่งเป็นตัวเลือก DSL useLegacyPackaging แทนที่แอตทริบิวต์ไฟล์ Manifest ของ extractNativeLibs ใช้ useLegacyPackaging ในไฟล์ build.gradle ของแอป แทน extractNativeLibs ในไฟล์ Manifest เพื่อกำหนดค่าไลบรารีเนทีฟ ลักษณะการบีบอัด ดูข้อมูลเพิ่มเติมได้ในบันทึกประจำรุ่น ใช้ DSL เพื่อสร้างแพ็กเกจไลบรารีแบบเนทีฟที่บีบอัด

แอตทริบิวต์นี้ระบุว่าโปรแกรมติดตั้งแพ็กเกจแยกไลบรารีเนทีฟออกจาก 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

หมายเหตุ: ระบบจะใช้ค่ากิจกรรมรูทของงานกับ กิจกรรมเพิ่มเติมที่เปิดในงาน กล่าวคือ หากกิจกรรมรากของ งานสามารถปรับขนาดได้ จากนั้น ระบบจะจัดการกับกิจกรรมอื่นๆ ทั้งหมดใน ที่ปรับขนาดได้ หากกิจกรรมรากไม่สามารถปรับขนาดได้ กิจกรรมในงานนั้นปรับขนาดไม่ได้

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)

เปิดตัวใน
API ระดับ 1
ดูเพิ่มเติม
<activity>
<service>
<receiver>
<provider>