[ANDROID] วิธีการทดสอบ Deep Link และ App Indexing ด้วย ADB

          วันนี้ขอมาแชร์เทคนิคการทดสอบ  Deep link และ App indexing ด้วย Android Debug Bridge (ADB) ซึ่งหากใครสงสัยว่าเจ้า Deep link และ App indexing คืออะไร? ใช้งานยังไง? ผมก็ขอส่งไม้ต่อไปที่ Deep link & App indexing โดยคุณโอ๊ตนะครับ :P

ทดสอบ Deep Link

          Deep Link คือ การทำให้เข้า Application ของเราผ่าน Application อื่นๆ ที่มี Format ตรงกับที่เรากำหนดไว้ได้ (เช่น กดลิงค์จาก Google Chrome, Facebook, Google Search เป็นต้น) ซึ่งเราจะกำหนดเงื่อนไขต่างๆ โดยการเพิ่ม Intent Filter ลงไปใน AndroidManifest.xml หน้าตาก็ประมาณนี้
<activity
    android:name="com.example.deeplink.ArticleActivity"
    android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.VIEW"/>

        <category android:name="android.intent.category.DEFAULT"/>
        <category android:name="android.intent.category.BROWSABLE"/>

        <data android:scheme="http" />
        <data android:scheme="https" />

        <data android:host="deeplink.com"
              android:pathPrefix="/article" />
    </intent-filter>
</activity>

          สมมุติว่าเข้าใจและทำได้แล้ว (ถ้ายังไม่ได้ให้กลับไปอ่านบทความที่แนะนำด้านบนนะครับ :P) ต่อไปก็มาดูวิธีการทดสอบกันดีกว่าครับ ซึ่งก่อนหน้านี้วิธีการทดสอบง่ายๆ ที่ผมทำ คือ
  1. โพสลิงค์ที่ต้องการลงบน Facebook ของตัวเองเป็นแบบ Only Me 
  2. เข้าไป Facebook ลองกดลิงค์ เพื่อดูว่าเข้ามา Application ของเราไหม
          เห็นมั้ยละง่ายนิดเดียว เดี๋ยวๆ !! ไม่น่าใช่ละ มันง่ายตรงไหนฟระ??!! จะเห็นได้ว่าวิธีการที่ผมทำอยู่ใช้ความถึกพอสมควร (Facebook feed รกมากกกกก) แต่แล้วสวรรค์ก็ทรงโปรด ผมได้อ่านบทความของคุณโอ๊ตและเข้าไปดูลิงค์ Reference ในบทความ และก็ได้พบวิธีการที่ง่ายกว่าเดิม (ง่ายจริงๆ นะ) นั่นก็คือ การเปิด Terminal ขึ้นมาแล้วพิมพ์คำสั่ง ADB ดังนี้
adb shell am start -a android.intent.action.VIEW -d "{DEEP-LINK}" {PACKAGE}
  • {DEEP-LINK} คือ ลิงค์หรือข้อความตาม format ที่เราต้องการ
  • {PACKAGE} คือ Root Package Name ของ Application ของเรา

อาจจะงงเล็กน้อย ลองมาดูตัวอย่างจริงๆ กันเลย
adb shell am start -a android.intent.action.VIEW 
          -d "http://deeplink.com/article/helloworld" com.example.deeplink
หลังจากพิมพ์คำสั่งลงไป ADB จะทำการเปิด Application ขึ้นมาโดย Activity ที่ถูกเปิดขึ้นมา คือ ArticleActivity นั่นเอง เห็นไหมละง่ายนิดเดียว :)


ทดสอบ App Indexing

          สำหรับ App Indexing การทดสอบนั้นจะเป็นการ Log เพื่อตรวจสอบข้อมูลที่จะส่งไปยัง App Indexing Api ดังนี้ครับ


มาดูวิธีกันเลย

1. ก่อนอื่นต้องเปิด Logs ด้วยคำสั่ง
adb shell setprop log.tag.AppIndexApi VERBOSE
2. ดูข้อมูลด้วยคำสั่ง
adb logcat -v time -s AppIndexApi:V
3. หลังจากพิมพ์ข้อ (1) และ (2) แล้ว ADB จะรอให้เปิด Application ของเราที่มีการเรียก App Indexing Api ถ้ามีการเรียกก็จะแสดงข้อมูลดังภาพด้านบนเลยครับ (ขอข้ามส่วนการ Implement Code นะครับ ไปดูจากบทความที่แนะนำเอง ฮี่ๆ)

          สำหรับบทความนี้ก็คงจบเพียงเท่านี้นะครับ หากมีข้อสงสัย หรือมีเทคนิคอะไรเพิ่มเติม ก็แนะนำกันเข้ามาได้เลยนะครับ ยินดีเป็นอย่างยิ่ง :) ขอบคุณครับ

ลิงค์อ้างอิง

Oatrice.wordpress.com : Deep link & App indexing
Google developers :
Test Your App Indexing Implementation
Enabling Deep Links for App Content

Teeranai P

Developer ตัวน้อยๆ ที่หลงใหลในโลกของการพัฒนา Software. รักการเขียนโปรแกรมเป็นอันดับ 2 รองลงมาจากการนอน