android-command-line-00
ในการพัฒนา Android application นั้นส่วนใหญ่จะทำงานอยู่บน Android Studio
แต่ในการทำงานจริง ๆ นั้น สิ่งที่นักพัฒนาต้องใช้งานเป็นคือ command line
ใน Android Studio ก็มี command line หรือ terminal ให้ใช้นะ
ลองหัดใช้งานดูกันได้

แต่สิ่งที่ยากคือ มีคำสั่งอะไรให้ใช้งานบ้าง ?
ดังนั้นมาดูกัน

เริ่มด้วยสิ่งแรกที่น่าจะต้องใช้กันบ้างคือ Gradle

ใครบ้างที่ไม่เคยพิมพ์คำสั่ง gradlew ใน command line ?
ถ้าไม่เคยนี่ ถือว่าบาปมาก ๆ
ดังนั้นทำก่อนเลย

คำสั่ง gradlew คืออะไร ?
มันคือ Gradle Wrapper หรือสิ่งที่มาหุ้มการทำงานของ gradle นั่นเอง
จะทำการอ่านข้อมูลจากไฟล์ /gradle/wrapper/gradle-wrapper.properties

ดังนั้นถ้าไม่เคยใช้งาน จะทำการ download gradle
ตามสิ่งที่กำหนดไว้ใน distributionUrl

อาจจะเจอปัญหาเรื่อง JAVA_HOME และ ANDROID_HOME กันอีก
ก็ต้องแก้ไขกันต่อไป

android-command-line-02

คำสั่งที่ควรต้องรู้เช่น

$gradlew tasks //สำหรับแสดง task ทั้งหมดที่ใช้ได้
$gradlew test //สำหรับทดสอบในระดับ unit test
$gradlew cAT //สำหรับทดสอบ Instrumentation test
$gradlew assemble //สำหรับสร้างไฟล์ APK
$gradlew install //สำหรับติดตั้ง app บน device
$gradlew test --offline //สำหรับการ run ใน offline mode

ต่อมาเป็นสิ่งที่ผมใช้บ่อย ๆ คือ การค้นหา library ด้วย ALFI

ซึ่งสามารถ copy มาใส่ในไฟล์ build.gradle ได้เลย
เช่นค้นหา library ชื่อ glide

android-command-line-01

ต่อมาทำการทดสอบ Library ต่าง ๆ ผ่าน DryRun

ปกติการนำ library ที่ developer คนอื่น ๆ ทำไว้นั้น
บ่อยครั้งเราต้อง

  • ทำการ download จาก github
  • ทำการ sync และ download library
  • ทำการ run project หรือ sample project ดู
  • ทำการทดสอบตามที่ต้องการ
  • ทำการลบทิ้งไปเมื่อมันไม่ใช่

ขั้นตอนการทำงานเหล่านี้สามารถลดด้วยการใช้ DryRun นั่นเอง
ด้วยคำสั่งง่าย ๆ คือ

$dryrun <url ของ project>

ต่อมาสำหรับคนที่เขียน Unit test

ปกติแล้วนั้นถ้าสังเกตุให้ดี ๆ ในการ run unit test นั้น
จะไม่แสดงผลการทำงานใด ๆ ออกมา
ยกเว้นผลการทำงานรวมว่า ผ่าน หรือ ไม่ผ่าน
คำถามคือ ถ้าอยากเห็นว่าแต่ละ test case เป็นอย่างไร ?
คำตอบคือ ก็ไปดูใน report ไงล่ะ !!
แต่มันไม่น่าจะใช่นะ
สิ่งที่ต้องการคือ แสดงผลการทำงานใน command line หรือ terminal นี่แหละ

ดังนั้นสิ่งที่แนะนำคือ การ configuration ในไฟล์ build.gradle ดังนี้

ผลการทำงานเป็นดังนี้

$gradlew test

android-command-line-04

สิ่งสุดท้ายคือ การจัดการ logcat ให้ดูง่าย ๆ

ถ้าใช้งานผ่าน Android Studio
น่าจะต้องเข้ามา custom ที่ Preference กันบ้าง

android-command-line-05

สำหรับ command line ก็มีนะคือ pidcat
ใช้งานง่าย ๆ คือ

$pidcat <package name ของ app>

แสดงผลการทำงานดังรูป

android-command-line-07

 

สุดท้ายแล้ว Developer ที่ดีควรต้องเรียนรู้การใช้งาน command line
เพื่อเพิ่ม productivity ของการพัฒนานะ

ปล. ยังมี adb อีกนะ !!