รับทําเว็บไซต์ รับทําseo
บทความที่น่าสนใจ

บทความ ที่น่าสนใจ

การใช้งาน Android Manifest File

      เนื่องจากระบบปฏิบัติการ Android ถูกนำไปใช้บนหลากหลาย Device และแต่ละ Device ก็มีคุณสมบัติ (Feature) และความสามารถ (Capability) ที่ไม่เหมือนกัน ดังนั้นเพื่อป้องกันไม่ใช้ Application ที่พัฒนาขึ้นมาถูกติดตั้งบน Device ที่ขาดคุณสมบัติ (Feature) หรือความสามารถ (Capability) ที่ Application ต้องการ จึงจำเป็นต้องประกาศไว้ใน Manifest File ว่า Application ที่พัฒนาขึ้นมาต้องการคุณสมบัติ (Feature) หรือความสามารถ (Capability) อะไรบ้าง ซึ่งการประกาศเหล่านี้จะถูก Google Play อ่านค่า เมื่อผู้ใช้ได้ค้นหา Application ผ่าน Google Play บน Device ของผู้ใช้ และถ้า Device ของผู้ใช้ไม่มีคุณสมบัติ (Feature) หรือความสามารถ (Capability) ที่ Application ต้องการ แล้ว Google Play ก็จะไม่อนุญาติให้ Device ติดตั้ง Application นั้น

     

      ตัวอย่างเช่น ถ้า Application ประกาศ Manifest File ว่าต้องการ Device ที่มี Camera และ API อย่างน้อย Level 2.1 แล้วถ้า Device ใดที่ไม่มี Camera หรือใช้ API Level ที่น้อยกว่า 2.1 จะทำให้ Device นั้นไม่สามารถติดตั้ง Application นั้นผ่าน Google Play ได้

     

      อย่างไรก็ตาม ถ้าไม่มีการประกาศที่ Manifest File ว่า Application ต้องการ Device ที่มี Camera ก็สามารถทำได้ และจะทำให้ Device ที่ไม่มี Camera สามารถติดตั้ง Application นั้นได้ ซึ่งในกรณีนี้ควรมีการตรวจสอบใน Code ว่า เมื่อ Application ต้องการใช้ Camera และ Device นั้นไม่มี Camera จะทำให้ Device นั้นไม่สามารถใช้งานความสามารถในส่วนนั้นของ Application ได้

     

    ทั้งนี้คุณสมบัติ (Feature) และความสามารถ (Capability) หลัก ๆ ที่ควรจะพิจารณาถึง เพื่อประกาศไว้ใน Manifest File มีดังนี้

     

      - Screen Size และ Density เป็นการประกาศว่า Application ต้องการ Device ที่มีขนาดหน้าจอเป็นอย่างไร โดยให้ประกาศ element <supports-screens> ไว้ภายใน Manifest File ซึ่ง Android มีทางเลือกให้สามารถระบุได้ใน 2 ลักษณะ คือ ลักษณะของ Screen Size (ได้แก่ small, normal, large, และ extra large) และลักษณะของ Density (ได้แก่ low density, medium density, high density, และ extra high density) ทั้งนี้ถ้าไม่มีการประกาศในส่วนนี้ จะทำให้ Application รองรับขนาดหน้าจอทุกรูปแบบ

     

      - Input Configuration เป็นการประกาศว่า Application ต้องการ Device ที่มี Input Mechanism อะไรบ้าง เช่น Hardware Keyboard, Trackball, หรือ Five-way navigation pad เป็นต้น โดยให้ประกาศ element <uses-configuration> ไว้ภายใน Manifest File

     

      - Device Feature เป็นการประกาศว่า Application ต้องการ Device ที่มี Hardware หรือ Software อะไรบ้าง เช่น Camera, Light Sensor, Bluetooth เป็นต้น โดยให้ประกาศ element <uses-feature> ไว้ภายใน Manifest File

     

      - Platform Version เป็นการประกาศว่า Application ต้องการ Device ที่ใช้ API Level อย่างน้อยเท่าใด โดยให้ประกาศ element <uses-sdk> ไว้ภายใน Manifest File

     

    Application Component ที่สร้างขึ้นจะต้องประกาศไว้ในไฟล์ AndroidManifest.xml เสมอ ทั้งนี้เพื่อให้ system รู้จัก Application Component นั้น ๆ แล้วจึงสามารถ Run Application Component นั้น ๆ ได้

     

    นอกจากนี้ไฟล์ AndroidManifest.xml ยังใช้สำหรับประกาศคุณสมบัติอื่น ๆ อีก ได้แก่

      - ประกาศว่า Application ขอใช้งาน Permission อะไรบ้างใน Device เช่น การเข้าถึง Internet, การเข้าถึงข้อมูลรายชื่อผู้ติดต่อในโทรศัพท์ เป็นต้น

      - ประกาศว่า Application นั้นจะสามารถทำงานได้ โดยต้องการ API Level อย่างน้อยเท่าใด

      - ประกาศว่า Application ต้องการใช้งาน Hardware หรือ Software ใดบ้าง เช่น Camera, Bluetooth เป็นต้น

     

    ตัวอย่างการประกาศ Manifest File

    <?xml version="1.0" encoding="utf-8"?>
    <manifest ... >
    <application android:icon="@drawable/app_icon.png" ... >
    <activity android:name="nutt.me.ExampleActivity" ... >
    <intent-filter>
    <action android:name="android.intent.action.SEND" />
    </intent-filter>
    </activity>
    ...
    </application>
    </manifest>

     

    จากตัวอย่าง ใน element <application> มี attribute android:icon ซึ่งเป็นการระบุ icon ของ application, ใน element <activity> มี attribute android:name ซึ่งเป็นการระบุชื่อ Class ของ Activity โดยให้ระบุตั้งแต่ Package ของ Class นั้น, และใน element <action> มี attribute android:name ซึ่งเป็นการระบุประเภทของ Action ของ Component

     

    สำหรับการประกาศ Application Component ประเภทต่าง ๆ ไว้ภายในไฟล์ Manifest File จะใช้ element ดังต่อไปนี้

      - Activity ใช้ element <activity>

      - Service ใช้ element <service>

      - BroadcastReceiver ใช้ element <receiver>

      - ContentProvider ใช้ element <provider>

     

    ในการกระตุ้น Activity, Service หรือ Broadcast Receiver ให้ทำงานนั้นทำได้โดยการใช้ Object Intent ซึ่งสามารถระบุเป็นชื่อ Component ที่ต้องการ หรือระบุเป็นประเภทของ Action ของ Component ที่ต้องการก็ได้ ซึ่งถ้าระบุเป็นประเภทของ Action ของ Component จะทำให้ System ไปหา Component ทั้งหมดบน Device ที่ได้ประกาศประเภทของ Action ตรงกับที่ต้องการมาให้

     

    ทั้งนี้การประกาศว่า Component มีประเภทของ Action เป็นอะไร สามารถทำได้โดยการประกาศไว้ที่ Manifest File โดยให้ประกาศ Intent Filter ไว้ภายใน Component ตัวอย่างเช่น Application หนึ่ง มี Activity ที่ใช้ในการส่งอีเมล์ และได้ประกาศ Intent Filter ให้กับ Activity นั้นว่าเป็น Action ประเภท Send (ACTION_SEND) และเมื่อมี Application อื่นต้องการใช้งานการส่งอีเมล์ โดยส่ง Object Intent ที่ระบุ Action ประเภท Send (ACTION_SEND) มา จะทำให้ System ไปเลือก Activity ที่ประกาศ Action ว่าเป็นประเภท Send มาทำงานให้