งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

IT411 Mobile Programming. Topics in This Section วิธีการสร้าง Android projects  โครงสร้าง program  การสร้าง layout ด้วย Java-based  การสร้าง layout.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "IT411 Mobile Programming. Topics in This Section วิธีการสร้าง Android projects  โครงสร้าง program  การสร้าง layout ด้วย Java-based  การสร้าง layout."— ใบสำเนางานนำเสนอ:

1 IT411 Mobile Programming

2 Topics in This Section วิธีการสร้าง Android projects  โครงสร้าง program  การสร้าง layout ด้วย Java-based  การสร้าง layout ด้วย XML-based  การสร้าง layout ด้วย Eclipse ADT visual layout editor  การสร้าง layout แบบ Hybrid layout  Project structure summary

3 General Structure (Common to All Approaches)  package com.companyname.projectname;  import android.app.Activity;  import android.os.Bundle;  import android.widget.SomeLayoutOrView;  public class SomeName extends Activity {  @Override  public void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  SomeLayoutOrView view = createOrGetView(); ...  setContentView(R.layout.main);  } ...  }

4 Three Main Approaches  Java-based  – เป็นการสร้าง layout ด้วยภาษา Java - เหมือน Swing programming.  XML-based  – ใช้ไฟล์ XML ในการระบุ Strings และ layout window  Hybrid  –ใช้ไฟล์ XML file ในการระบุ Strings และ layout ใช้คำสั่ง Java ในการ ควบคุมเหตุการณ์ที่เกิดขึ้นบนหน้าจอ  ตัวอย่างการทำงาน  – เมื่อกดปุ่ม Button เมื่อกดปุ่ม “Show Greeting” ระบบจะแสดงข้อความ Hello from Android ผ่านทางหน้าจอ

5 Java-Based Approach: Template  public class SomeName extends Activity {  @Override  public void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  String message = "...";  LinearLayout window = new LinearLayout(this);  window.setVariousAttributes(…);  Button b = new Button(this);  b.setText("Button Label");  b.setOnClickListener(new SomeHandler());  window.addView(b); ...  setContentView(window);  }  private class SomeHandler implements OnClickListener {  @Override  public void onClick(View clickedButton) {  doSomething(...);  }  } }

6 XML-Based Approach: Template Java  public class SomeClass extends Activity {  @Override  public void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.main);  }  public void handlerMethod(View clickedButton) {  String someName = getString(R.string.some_name);  doSomethingWith(someName);  } } XML res/values/strings.xmlres/layout/main.xml …

7 Hybrid Approach: Template  Java  public class SomeClass extends Activity {  @Override  public void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.main);  Button b = (Button)findViewById(R.id.button_id);  b.setOnClickListener(new SomeHandler());  }  private class SomeHandler implements OnClickListener {  @Override  public void onClick(View clickedButton) {  doSomething(...);  }  } }  XML  – สร้างหน้าจอ กำหนดค่า ID  – สามารถกำหนด android:onClick ลงใน file xml เพื่อตรวจสอบเหตุการณ์การเลือกวัตถุบนหน้าจอ

8 SAMPLE: Java-Based Layout  Approach  – ใช้จาวา ระบุข้อความ layout และควบคุมเหตุการณ์ต่าง ๆ ที่เกิดขึ้นกับ อุปกรณ์  Advantages  – คำสั่งคล้ายกับ Swing และ AWT ของจาวา  – เหมาะกับ layouts ที่ต้องเปลี่ยนรูปแบบการทำงานไม่ตายตัว dynamic  Disadvantages  – แก้ไขยาก  – ไม่ทำงานในลักษณะ I18N  เป็นที่ยอมรับใน App Store เนื่องจากไม่มีข้อกำหนดการทำงานในส่วนนี้

9 Code (Main Method)  public class SayHelloJava extends Activity {  @Override  public void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  String appName = "SayHello Application";  String windowText = "Press the button below to receive " + "a friendly greeting from Android.";  String buttonLabel = "Show Greeting";  LinearLayout mainWindow = new LinearLayout(this);  mainWindow.setOrientation(LinearLayout.VERTICAL);  setTitle(appName);  TextView label = new TextView(this);  label.setText(windowText);  mainWindow.addView(label);  Button greetingButton = new Button(this);  greetingButton.setText(buttonLabel);  greetingButton.setOnClickListener(new Toaster());  mainWindow.addView(greetingButton);  setContentView(mainWindow);  }

10 Code (Event Handler Method)  private class Toaster implements OnClickListener {  @Override  public void onClick(View clickedButton) {  String greetingText = "Hello from Android!";  Toast tempMessage =  Toast.makeText(SayHelloJava.this,  greetingText,  Toast.LENGTH_SHORT);  tempMessage.show();  }

11 SAMPLE: XML-Based Layout  Approach  – ใช้ XML ระบุข้อความ layout และควบคุมเหตุการณ์ต่าง ๆ ที่เกิดขึ้นกับ อุปกรณ์  ระบุ layout และการควบคุมใน res/layout/main.xml  ระบุ Strings ใน res/values/strings.xml  Advantages  – แก้ไขง่าย  – สามารถใช้ layout editor ของ Eclipse ในการสร้าง  – Standard/recommended  (along with hybrid)  Disadvantages  – ไม่สามารถจัดการ dynamic layouts

12 More Details  res/layout/main.xml  – การระบค่าใน xml เริ่มจากการกำหนด layout  Define controls  – การอ้างถึงข้อมูล String (จาก strings.xml) ใช้ @string/string_name  – การจัดการเหตุการณ์ที่เกิดขึ้นบนหน้าจอ (event handler) ใช้ android:onClick  res/values/strings.xml  – พื้นที่ในการระบุข้อความ  Java code  – ใช้อ้าง layout - R.layout.main  – ใช้อ้าง strings - getString(R.string.string_name)  – ใช้อ้าง controls - findViewById(R.id.some_id)  More info  – http://developer.android.com/guide/topics/ui/

13 Project Layout

14 Code (res/layout/main.xml)   <LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"  android:orientation="vertical"  android:layout_width="match_parent"  android:layout_height="match_parent">  <TextView  android:layout_width="match_parent"  android:layout_height="wrap_content"  android:text="@string/window_text"/>  <Button  android:text="@string/button_label"  android:layout_width="match_parent"  android:layout_height="wrap_content"  android:onClick="showToast"/> 

15 Code (res/values/strings.xml)   Say Hello Application   Press the button below to receive  a friendly greeting from Android.   Show Greeting  Hello from Android! 

16 Code (Java)  public class SayHelloXml extends Activity {  @Override  public void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.main);  }  public void showToast(View clickedButton) {  String greetingText = getString(R.string.greeting_text);  Toast tempMessage =  Toast.makeText(this, greetingText,  Toast.LENGTH_SHORT);  tempMessage.show();  }

17 Eclipse ADT Visual Layout Editor  Invoking  – เป็นการสร้าง main.xml โดยการลากวาง  Features  – สามารถควบคุมวัตถุให้วางตามนาตั้งแนวนอนได้ง่าย layout attributes  – สามารถเพิ่มเติมสีสรรบนหน้าจอ  – เห็นภาพที่ได้ชัดเจน  Warning  – อย่างไรก็ตามการฝึกหัดเบื้องต้นควรรู้เรื่องของการใช้ XML เป็นสำคัญ

18 Eclipse Visual Layout Editor

19 Hybrid Layout  Approach  –ใช้ XML ระบุข้อความ และ layout  – ใช้ Java ควบคุมเหตุการณ์ต่าง ๆ ที่เกิดขึ้นกับอุปกรณ์  Advantages  – ใช้ XML ตามความเหมาะสม  – ทำให้โปรแกรมเมอร์สามารถมองเห็นวิธีการจัดการกับเหตุการณ์ต่าง ๆ ได้ ง่ายขึ้น  Disadvantages  – ไม่สามารถจัดการ dynamic layouts

20 Code (res/layout/main.xml)   <LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"  android:orientation="vertical"  android:layout_width="match_parent"  android:layout_height="match_parent">  <TextView  android:layout_width="match_parent"  android:layout_height="wrap_content"  android:text="@string/window_text"/>  <Button  android:id="@+id/greeting_button"  android:text="@string/button_label"  android:layout_width="match_parent"  android:layout_height="wrap_content"/> 

21 Code (res/values/strings.xml)   Say Hello Application   Press the button below to receive  a friendly greeting from Android.   Show Greeting  Hello from Android! 

22 Code (Java)  public class SayHelloHybrid extends Activity {  @Override  public void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.main);  Button greetingButton =  (Button)findViewById(R.id.greeting_button);  greetingButton.setOnClickListener(new Toaster());  }  private class Toaster implements OnClickListener {  @Override  public void onClick(View clickedButton) {  String greetingText = getString(R.string.greeting_text);  Toast tempMessage =  Toast.makeText(SayHelloHybrid.this,  greetingText,  Toast.LENGTH_SHORT);  tempMessage.show();  }  }}

23 Seeing Standard Output in DDMS  Idea  – DDMS (Dalvik Debug Monitor Service) จำลองเมื่อมีการโทรมายังมือถือ  กำหนดพิกัด GPS  แสดงข้อผิดพลาดที่เกิดจากโปรแกรม  เพิ่มรูปภาพในการทดสอบการทำงาน  Simple usage now  – Start DDMS  Window  Open Perspective   Other  DDMS  ครั้งต่อมาจะปรากฏ “DDMS” ที่ตำแหน่ง  ด้านบนขวาของ Eclipse  เลือก“Java”  – See print statements

24 DDMS Output (HelloAndroid)  Code  – เพิ่มคำสั่ง System.out.println  ลงใน main onCreate method  จะปรากฏผลลัพธ์ใน LogCat Output of System.out.println Entered so it is easier to find specific output Among the many informational messages that emulator prints

25 Debug an application in android  1.) Logcat ใช้จัดการแสดงเหตุการณ์ในหลายลักษณะเช่น log informational หรือ error messages จากการที่รันโปรแกรม  2.) Eclipse Debugger การใช้ Debug เช่นเดียวกับการ Debug Java program  3.) Android Debug Bridge (adb) การใช้ command-line debugging และแสดงผลผ่าน Android phone หรือ emulator.

26 Logcat  เปิด Logcat : Window > Show view > Other, Android > Logcat.  ระบบแสดงหน้าจอ Logcat

27 Logcat  การกำหนดชนิดของ Log V - stands -hvd (lowest priority) D - stands for Debug I - stand for Info W - stands for Warning E - stands for Error  การเขียนคำสั่งเพื่อจัดการ Log  public class MyActivity extends Activity {  private static final String TAG = "MyActivity";  @Override  public void onCreate(Bundle savedInstanceState) {  Log.i(TAG,"On Create");  super.onCreate(savedInstanceState);  setContentView(R.layout.main);  }  @Override  protected void onDestroy() {  super.onDestroy();  Log.i(TAG,"On Destroy");  } }

28 Logcat  การค้นหาข้อความที่ปรากฏใน Log : กรอกข้อความที่ต้องการค้นหา  Log จะแสดง Tab ตามที่ต้องการค้นหา

29 Eclipse Debugger  Double-click เพื่อเลือกตำแหน่ง breakpoint หรือ click ขวาเลือก Toggle Breakpoint:

30 Eclipse Debugger  ตำแหน่งโปรเจคเลือก debug as ->android application หรือเลือกปุ่ม Debug ตรง tool bar:

31 Eclipse Debugger  Step Into ( ) or F5 key: เข้าไปประมวลผลในเมธอด  Step Over ( ) or F6 key: เข้าไปประมวลผลแถวถัดไป  Step Return ( ) orF7 key: กลับไปประมวลผลบรรทัดก่อนหน้า


ดาวน์โหลด ppt IT411 Mobile Programming. Topics in This Section วิธีการสร้าง Android projects  โครงสร้าง program  การสร้าง layout ด้วย Java-based  การสร้าง layout.

งานนำเสนอที่คล้ายกัน


Ads by Google