ความรู้เบื้องต้น :: การประกาศ 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 มาทำงานให้

0 ความคิดเห็น:

Copyright © 2012 DroidDevp.