Showing posts with label Android. Show all posts
Showing posts with label Android. Show all posts

Friday, 8 June 2012

Packaging an App with PhoneGap Build in Dreamweaver CS6

Dreamweaver CS6 รองรับการใช้งาน PhoneGap Build Service ซึ่งจะช่วย Build Web Application เป็น Hybrid Application ในแต่ละ Platform อาทิเช่น iPhone, Android, Blackberry, Symbian เป็นต้น ลองดู Video แนะนำการใช้งานได้ที่นี่ครับ http://tv.adobe.com/watch/learn-dreamweaver-cs6/packaging-and-uploading-phone-gap-apps/

Thursday, 7 June 2012

About SQLite

SQLite เป็น Open Source Database ที่ค่อนข้าง Stable และเป็นที่นิยมใช้กันในบรรดา Small Devices เจ้าต่างๆ รวมถึง Android ด้วยเช่นกัน เหตุผลหลักๆที่ SQLite เหมาะสมสำหรับใช้ในการพัฒนา Android Application ได้แก่

Monday, 4 June 2012

Resource Folder Overview

Category: Android Development

ในทุก Android Project จะมี folder ที่ชื่อว่า "res" ซึ่งภายในยังมี folder ย่อยๆลงไปอีก ซึ่งในแต่ละ folder ย่อยๆนี้จะทำหน้าที่เก็บข้อมูลที่แตกต่างกันออกไป

folder ที่มีชื่อว่า "drawable" (drawable-hdpi, drawable-mdpi และ drawable-ldpi) จะเก็บ images (ส่วนมากเป็น PNG files) และ XML (ระบุถึงสิ่งที่เราจะวาด อย่างเช่น Shapes, Gradients และ Colors)

folder ที่มีชื่อว่า "values" จะทำหน้าที่เก็บข้อมูลที่เป็นข้อคววามทั้งหมด ได้แก่ Strings (ข้อความต่างๆ อย่างเช่น Application Title, Copyright), Arrays, Colors (จะเก็บ Color Constant ต่างๆ),  Dimensions (ไว้สำหรับเก็บขนาดต่างๆของ View ที่เราใช้)

folder ที่มีชื่อว่า "layout" จะทำหน้าที่เก็บ layout ในรูปแบบของ XML files ที่ระบุถึงการแสดงผลบนหน้าจอ

ในตอนที่เราสั่ง Compile Android จะอ่านข้อมูลทั้งหมดใน folder "res" และ สร้างเป็น R.java file ซึ่ง file นี้จะถูกสร้างขึ้นโดยอัตโนมัติ และจะเก็บอยู่ใน folder ที่มีชื่อว่า "gen" เราไม่ควรเข้าไปแก้ไขไฟล์ R.java นี้ เพราะว่าทุกครั้งที่เรา Compile ไฟล์นี้ก็จะถูกสร้างขึ้นมาใหม่ เราใช้ค่า ID ต่างๆใน R.java ในการอ้างถึง resource ต่างๆ อย่างเช่น textView1.setText(R.string.hello) หรือตอนที่เรากำหนด layout สำหรับ Activity เช่น this.setContentView(R.layout.main)

การแยกเก็บข้อมูลไว้ใน resource จะช่วยให้เราแก้ไขข้อมูลได้ง่าย โดยเฉพาะเวลาที่เราต้อง Localize Application ให้ support หลายภาษา เราก็เพียงเข้าไปแก้ใน strings.xml แล้วก็ compile ใหม่ ซึ่งจะช่วยประหยัดเวลาได้มาก

สำหรับการอ้างถึง resource ภายใน XML files (อย่างเช่น ใน layout file) เราจะใช้รูปแบบ @folder/object_id ยกตัวอย่างเช่น android:text="@string/hello" แทนที่จะใช้ R.string.hello

แหล่งที่มา: Creating Android Applications ของ Chris Haseman

How can i receive intents ?

Category: Android Development

การรับ Intents แบ่งออกเป็น 2 วิธีหลักๆ ด้วยกัน ได้แก่

  1. Register เพื่อรับ intent ใน Manifest File โดยใช้ <intent-filter>
  2. Register IntentFilter Object ในขณะ RunTime
  ทั้ง 2 กรณี ดังกล่าว เราต้องระบุด้วยว่า Events ไหนที่เราต้องการ

การเลือกใช้แบบไหน ขึ้นอยู่กับความต้องการ อย่างเช่น ถ้าหากเราต้องการให้  Application อื่น สามารถเรียกใช้งาน Application เราได้ ในขณะที่ Application ของเราอาจจะไม่ได้ Run อยู่ ก็ต้องใช้แบบ Register ไว้ใน Manifest File แต่ถ้าต้องการให้เรียก Application ของเราได้เฉพาะในขณะที่ Application กำลัง Run อยู่ ก็ให้ใช้วิธี Register IntentFilter ในขณะ RunTime

แหล่งที่มา: หนังสือ Creating Android Applications ของ Chris Haseman

Speed Up Screen Rotation Transition

Category: Android Development


เมื่อ User ทำการ Rotate Device สิ่งที่เกิดขึ้นตามมาก็คือ Activity จะถูก Destroyed และ Instance ใหม่ของ Activity นั้นจะถูก Created ขึ้นมาแทน

เมื่อ Activity ถูก Destroyed และ Created ขึ้นมาใหม่ อันเป็นผลเนื่องมาจากการเปลี่ยน Configuration (อย่างเช่นในกรณีของการ Rotate Device) การ implement onRetainNonConfigurationInstance() จะช่วยให้เราสามารถคืนกลับ Object อะไรก็ตาม ที่เราจะสามารถเรียกใช้งานจาก Instance ใหม่ของ Activity ที่ถูก Created ขึ้นได้ในภายหลัง โดยการเรียก getLastNonConfigurationInstance

Save State Before Killed!

Category: Android Development

Application ที่ Run อยู่ อาจถูก Killed ตอนไหนก็ได้ ถ้าหากว่า System อยู่ในสภาวะ Low Resources แล้วเราจะรู้ได้อย่างไรว่าเมื่อไหร่ที่ Application ของเราจะถูก Killed ? แล้วเราบันทึกข้อมูลตอนไหน ?

Android เตรียม Event Handler พิเศษมาไว้สำหรับในการบันทึก State ก่อนที่ Application จะถูก Killed ไว้ให้ดังนี้

The Short Life Activity

Category: Android Development

คุณรู้หรือไม่ว่า Activity หนึ่งๆ นั้น มีชีวิตที่แสนสั้นอย่างไม่น่าเชื่อ มันจะถูก Create และ Destroy อยู่เรื่อยๆ เมื่อ Activity ถูก Destroy ข้อมูลทั้งหมดที่อยู่ใน Memory ของ Application ในช่วงเวลานั้นก็จะหายไปด้วย แต่ถ้าเราเข้าใจพฤติกรรมดังกล่าวของ Activity เราก็จะสามารถบันทึกข้อมูลก่อนที่ Activity จะถูก Destroy และเมื่อเราสั่ง start Activity ขึ้นมาใหม่ เราก็สามารถสั่งให้เริ่ม Activity ตรงจุดเดิมก่อนที่จะถูก Destroy ทำให้ Flow ของ Application มีความต่อเนื่อง ไม่สะดุด ซึ่งถ้าหากเราไม่มีการบันทึกข้อมูลดังกล่าวไว้ก่อน Destroy นั่นหมายความว่าหาก Application ของเราถูก Interrupt และถูก Destroy เวลาที่เรา start Application ใหม่อีกครั้งก็จะต้องกลับมาเริ่มใหม่ที่จุดเริ่มต้นของ Application ทุกครั้ง แล้วเหตุการณ์ไหนบ้างที่ทำให้ Activity ของเราถูก Destroy ?

When to use Intent ? For What ?

Category: Android Development

เราใช้ Intent เมื่อเราต้องการสั่ง start Activity หรือ Service และเรายังใช้ Intent สำหรับรับ/ส่ง ข่าวสารจาก System ยกตัวอย่างเช่น เราสามารถรับ Notification เกี่ยวกับสถานะของ Battery ที่มีการเปลี่ยนแปลง โดยการ register เพื่อรับ intent (widely published intent) ถ้าหาก Activity ไหนก็ตาม มีการ register เพื่อรับ Intent ไว้ใน Manifest File (ยกตัวอย่างเช่น com.yahoo.www.ShowMe) นั่นหมายความว่า Application ใดก็ตามที่อยู่บนโทรศัพท์สามารถสั่ง start Activity ของเราได้ (ถ้าเราประกาศให้ Activity เป็นแบบ Public) โดยการใช้คำสั่ง startActivity(new Intent("com.yahoo.www.ShowMe"));

แหล่งที่มา : หนังสือ Creating Android Applications ของ Chris Haseman

Sunday, 3 June 2012

Introduction to Intents & Intent Filters

Category: Android Development

Android Application ประกอบไปด้วย Components หลักๆ 3 ตัว ได้แก่ Activities, Services และ Broadcast Receivers ซึ่งเราสามารถสั่ง Activate Components เหล่านี้ ผ่าน Messages หรือตามศัพท์ในการพัฒนา Android เรียกว่า Intents  เราสามารถใช้ Intents ในการสั่ง Activate Components ดังกล่าวได้ ไม่ว่า Components ดังกล่าวจะอยู่ใน Application เดียวกัน หรือแม้กระทั่งต่าง Application กัน ก็สามารถทำได้

Android Activity Life Cycle

Category: Android Development
 
Android Activity Life Cycle

What is Android ?

Category: Android Development
 
Android คือ Mobile Operating System ที่นำระบบปฏิบัติการ Linux มาดัดแปลงเป็น Kernel หลักในการทำงาน 

Android เริ่มพัฒนาขึ้นเมื่อปี 2005 ซึ่งต่อมาภายหลัง Google ก็ได้มาซื้อกิจการไป Google ต้องการให้ Android เป็นระบบปฏิบัติการแบบ Open Source และสามารถ download ไปใช้งานได้ฟรี ดังนั้น Code ของระบบปฏิบัติการ Android ส่วนใหญ่จึงปล่อยให้ download ไปใช้งานได้ฟรี ภายใต้ Open Source Apache License