Introduction to Android

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โครงสร้างโปรแกรมภาษา JAVA
Advertisements

ความรู้เบื้องต้นเกี่ยวกับซอฟต์แวร์คอมพิวเตอร์
ข้อมูลทั่วไป รุ่น : iPad mini Wi-Fi Cellular ปี : 2012 รูปแบบ : แท่ง ขนาด : 200 x x 7.2 มม. น้ำหนัก : 312 กรัม ระบบปฏิบัติการ (OS) : iOS 6 ระบบเครือข่ายที่รองรับ.
C# เบื้องต้น ก่อนการเขียนเกมด้วย XNA
Introduction to C Introduction to C.
โครงสร้างโปรแกรมภาษา C
Mr.Ukrit Marang Chapter 1 : Multimedia Mr.Ukrit Marang Multimedia Chapter 1.
ระบบปฏิบัติการ (Operating System : OS )
โครงสร้างของระบบปฏิบัติการ Operating System Structure
วงจรพัฒนาระบบ (System Development Life Cycle)
Accessing Web Application Data at Any Time 1. 2 อาจารย์ที่ปรึกษาโครงการ ผศ. กานดา สายแก้ว อาจารย์ผู้ร่วมประเมินโครงการ ผศ. อนัตต์ เจ่าสกุล รศ. วนิดา แก่นอากาศ.
หัวข้อนำเสนอ ที่มาและความสำคัญของโครงการ วัตถุประสงค์ของโครงการ
COE เครื่องตรวจวัด และเตือนภัยระดับน้ำ ด้วย Image Processing
การพัฒนาระบบการส่งคำสั่งล้างข้อมูล ระยะไกล
สภาวะแวดล้อมในขณะโปรแกรมทำงาน
Accessing Web Application Data at Any Time
Software คือ ชุดคำสั่งหรือ ขั้นตอนการทำงานของคอมพิวเตอร์
Software.
วิชา การเขียนโปรแกรมบนเว็บ (Web-based Programming)
วิชา การเขียนโปรแกรมบนเว็บ (Web-based Programming)
องค์ประกอบพื้นฐาน ของโปรแกรม Visual Basic
บทที่ 6 สถาปัตยกรรมเครือข่ายคอมพิวเตอร์
ระบบสารสนเทศ เพื่อการจัดการ และกรณีศึกษา
(1) สำนักงานกองทุนสนับสนุนการวิจัย คณะวิศวกรรมศาสตร์ กำแพงแสน มหาวิทยาลัยเกษตรศาสตร์
Creating Effective Web Pages
ความรู้เบื้องต้นเกี่ยวกับ JAVA
ระบบเครือข่ายคอมพิวเตอร์
Operating System ฉ NASA 4.
Chapter 1 Introduction to Information Technology
แนะนำรายวิชา ระบบปฏิบัติการ ภาคเรียนที่ 1/2557
ผู้ช่วยศาสตราจารย์ ดร. ปริศนา มัชฌิมา
การใช้ Google App เพื่อสร้างเครือข่าย
Chapter 2 Database systems Architecture
องค์ประกอบของคอมพิวเตอร์
Introduction to ASP.NET
Alfresco รัฐชัย ชาวอุทัย
การออกแบบสถาปัตยกรรมแอปพลิเคชั่น
การเขียนโปรแกรมบน Android
Charter 11 1 Chapter 11 ระบบปฏิบัติการ Operation System : OS.
องค์ประกอบทางด้านซอฟต์แวร์
เครื่องมือในการพัฒนา Android App
พื้นฐานการรับค่า จากผู้ใช้งานด้วย EDITTEXT ง การเขียนโปรแกรมบนระบบไร้ สาย.
การสร้างเหตุการณ์ click ให้กับปุ่มกด Button
“What OS you chose to use”
กิจกรรมที่ 1 ซอฟต์แวร์ระบบ จุดประสงค์ 1. บอกความหมายของซอฟต์แวร์
สนุกกับ Activity ใน Android
การพัฒนาโปรแกรมบนอุปกรณ์เคลื่อนที่
ระบบคอมพิวเตอร์และการประมวลผล
บทที่ 3 การทำงานกับฟอร์ม (Form)
บทที่ 3 การทำงานกับฟอร์ม (Form)
การตั้งค่าระบบปฏิบัติการ Android
การจัดการฐานข้อมูล.
ระบบรายงานสภาพจราจรโดย เครือข่ายผู้ใช้งาน. สร้างเครือข่ายสำหรับการรายงานสภาพจราจร โดยมุ่งเน้นที่ กลุ่มผู้ใช้โทรศัพท์เคลื่อนที่ประเภท PDA และมีอายุประมาณ.
เทคโนโลยีสารสนเทศเบื้องต้น
กิจกรรมที่ 1 ซอฟต์แวร์ระบบ จุดประสงค์ 1. บอกความหมายของซอฟต์แวร์
ความรู้พื้นฐานเกี่ยวกับ Microsoft Visual C#
การพัฒนาแอพพลิเคชัน Android (Android Programming).
ระบบปฏิบัตการ Operating System.
Java Network Programming 1
คอมพิวเตอร์และระบบปฏิบัติการเบื้องต้น
ระบบคอมพิวเตอร์ (computer system)
อ.วิวัฒน์ ชินนาทศิริกุล
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
ระบบคอมพิวเตอร์ และ การสื่อสาร กนกวรรธน์ เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร วิทยาเขต สารสนเทศพะเยา.
2 มิ. ย 2547 โดย วชิราวุธ ธรรมวิเศษ 1 บทที่ 1 แนะนำเทคโนโลยีจาวา Introduction to Java Technology.
วิชาเทคโนโลยีคอมพิวเตอร์และระบบปฏิบัติการ รหัสวิชา Computer Technology and Operating System บทที่ 1 เทคโนโลยีคอมพิวเตอร์ อ.รจนา วานนท์ Master.
ระบบปฏิบัติการคอมพิวเตอร์ Operating System
IT411 Mobile Programming. Topics in This Section วิธีการสร้าง Android projects  โครงสร้าง program  การสร้าง layout ด้วย Java-based  การสร้าง layout.
Software Architecture. (Android Architecture) สถาปัตยกรรมของแอนดรอยด์ (Android Architecture) แอนดรอยด์เป็นซอฟต์แวร์ที่มีโครงสร้างแบบเรียงทับซ้อนหรือ แบบสแต็ก.
Mobile Application Development
ใบสำเนางานนำเสนอ:

Introduction to Android อ.สุพจน์ สิงหัษฐิต

What is Android ? แอนดรอยด์ (Android) เป็นระบบปฏิบัติการสำหรับอุปกรณ์พกพา เช่น โทรศัพท์มือถือ แท็บเล็ตคอมพิวเตอร์ เน็ตบุ๊ก เป็นต้น ซึ่งพัฒนามาจากระบบปฏิบัติการลินุกซ์ (Linux) แอนดรอยด์ ถูกพัฒนาโดยบริษัทแอนดรอยด์ (Android Inc.) จากนั้นบริษัทแอนดรอยด์ถูกซื้อโดยกูเกิล และกูเกิลได้ร่วมมือกับกลุ่มบรษัททางด้านฮาร์ดแวร์ ซอร์ฟแวร์ และ การสื่อสาร เพื่อจัดตั้งองค์กรความร่วมมือชื่อว่า Open Handset Alliance

What is Android ? Open Handset Alliance จัดตั้งขึ้นเพื่อวัตถุประสงค์ในการสร้างแพลตฟอร์ม (Platform) สำหรับอุปกรณ์พกพาที่มีพื้นฐานอยู่บนมาตรฐานเปิด (Open Standard) นักพัฒนาสามารถพัฒนาแอพพลิเคชั่นที่รันบนแอนดรอยด์ ได้โดยใช้ภาษาจาวา โดยการเข้าถึงความสามารถต่างๆของแอนดรอยด์ จะกระทำผ่านทางชุด Java libraries ที่กูเกิลได้จัดเตรียมไว้ให้ใน Android SDK

Who was control the portal ?

The rumor

Android version history 2008 Aug 18 2008 Sep 23 2009 Feb 9 2009 Apr 30 Android 0.9 320x480 HVGA Android 1.0 Apple pie API 1.0 320x480 HVGA Android 1.1 Banana bread API 2.0 320x480 HVGA Android 1.5 Cupcake API 3.0 Bluetooth A2DP, AVRCP support Soft-keyboard with text-prediction Record/watch videos 320x480 HVGA Talk about codename

Android version history 2009 Sep 15 2009 Oct 26 2010 May 20 Android 1.6 Donut API 4.0 Gesture framework Turn-by-turn navigation 800×480 WVGA Android 2.0 Éclair API 5.0 Digital zoom Live Wallpapers Updated UI 800×480 WVGA Android 2.2 Froyo API 8.0 Flash 10.1 JIT implementation USB Tethering Applications installation to the expandable memory Upload file support in the browser Animated GIFs 800×480 WVGA

Android version history 2010 Dec 6 2011 Feb 22 Android 2.3 Gingerbread API 9.0 Near Field Communication support Native VoIP/SIP support Video call support 1366×768 WXGA Android 3.0 Honeycomb API 11.0 Multi core support Better tablet support Updated 3D UI "Private browsing“ Open Accessory API USB host API Mice, joysticks, gamepads... support

Android version history 2011 Oct 19 Android 4.0 Ice Cream Sandwich API 14.0 Facial recognition (Face Unlock) UI use Hardware acceleration Web browser, allows up to 16 tabs Updated launcher Android Beam exchange data through NFC Resizable widgets Video stabilization GoogleNow Android 4.1 Jelly Bean Triple buffering in the graphics pipeline Extends vsync timing across all drawing and animation CPU input boost Bi-Directional Text and Other Language Support Android Beam Google Cloud Messaging for Android App Encryption Smart App Updates

Android Handsets SJU 2004-04 Android

Android Architecture แอนดรอยด์เป็นซอฟต์แวร์ที่มีโครงสร้างแบบเรียงทับซ้อนหรือ แบบสแต็ก (Stack) ซึ่งรวมเอาระบบปฏิบัติการ (Operating System) , มิดเดิลแวร์ (Middleware) และแอพพลิเคชันที่สำคัญเข้าไว้ด้วยกัน เพื่อใช้สำหรับทำงานบนอุปกรณ์พกพาเคลื่อนที่ (Mobile Devices) เช่น โทรศัพท์มือถือ เป็นต้น การทำงานของแอนดรอยด์มีพื้นฐานอยู่บนระบบลีนุกซ์ เคอร์เนล (Linux Kernel) ซึ่งใช้ Android SDK (Software Development Kit) เป็นเครื่องมือสำหรับการพัฒนา แอพพลิเคชันบนระบบปฏิบัติการ Android และใช้ภาษา Java ในการพัฒนา

The Kernel

Linux kernel • ทำหน้าที่เป็น Hardware Abstraction Layer คือเป็นตัวกลางระหว่าง ฮาร์ดแวร์ กับส่วนของซอร์ฟแวร์ที่อยู่ถัดขึ้นไป • ทำหน้าที่บริหารจัดการทรัพยากรต่างๆของเครื่อง เช่น การจัดการหน่วยความจำ (Memory Management) การจัดการโพรเซส (Process Management) การเชื่อมต่อเครือข่าย (Networking) เป็นต้นฯลฯ • ผู้ผลิตอุปกรณ์สามารถพอร์ต (port) แอนดรอยด์ให้ไปรันบนฮาร์ดแวร์ แบบต่างๆได้โดยเปลี่ยนแปลงในส่วนของ Linux kernel นี้

Libraries

Libraries Android ได้รวบรวมกลุ่มของไลบรารีต่างๆ ที่สำคัญและมีความจำเป็นเอาไว้มากมาย เพื่ออำนวยความสะดวกให้กับนักพัฒนาและง่ายต่อการพัฒนาโปรแกรม โดยตัวอย่างของไลบรารีที่สำคัญเช่น System C library เป็นกลุ่มของไลบรารีมาตรฐานที่อยู่บนพื้นฐาน ของภาษา C ไลบรารี (libc) สำหรับ embedded system ที่มีพื้นฐานมาจาก Linux Media Libraries เป็นกลุ่มการทำงานมัลติมีเดีย เช่น MPEG4, H.264, MP3, AAC, AMR, JPG, และ PNG Surface Manager เป็นกลุ่มการจัดการรูปแบบหน้าจอ การวาดหน้าจอ

Libraries 3D/3D library เป็นกลุ่มของกราฟิกแบบ 2 มิติ หรือ SGL (Scalable Graphics Library) และแบบ 3 มิติ หรือ OpenGL FreeType เป็นกลุ่มของบิตแมป (Bitmap) และเวคเตอร์ (Vector) สำหรับ การเรนเดอร์ (Render) ภาพ SQLite เป็นกลุ่มของฐานข้อมูล โดยนักพัฒนาสามารถใช้ฐานข้อมูลนี้เก็บข้อมูล แอพพลิเคชันต่างๆ ได้ Browser Engine เป็นกลุ่มของการแสดงผลบนเว็บเบราเซอร์โดยอยู่บนพื้นฐานของ Webkit ซึ่งจะมีลักษณะคล้ายกับ Google Chrome

Dalvik Virtual Machine 20 Android Runtime Dalvik Virtual Machine

Android Runtime เป็นชั้นย่อยที่อยู่ในชั้นไลบรารี ซึ่งจะประกอบด้วย 2 ส่วนหลักคือ Dalvik VM (Virtual Machine)  ส่วนนี้ถูกเขียนด้วยภาษา Java เพื่อใช้เฉพาะการใช้งานในอุปกรณ์เคลื่อนที่ Dalvik VM จะแตกต่างจาก Java VM (Virtual Machine) คือ Dalvik VM จะรันไฟล์ .dex ที่คอมไพล์ มาจากไฟล์ .class และ .jar โดยมี tool ที่ชื่อว่า dx ทำหน้าที่ในการบีบอัดคลาส Java

Android Runtime ทั้งนี้ไฟล์ .dex จะมีขนาดกะทัดรัดและเหมาะสมกับอุปกรณ์เคลื่อนที่มากกว่า .class เพื่อต้องการใช้พลังงานจากแบตเตอรี่อย่างมีประสิทธิภาพสูงสุด

Android Runtime Core Java Library ส่วนนี้เป็นไลบรารีมาตรฐาน แต่ก็มีความแตกต่างจากไลบรารีของ Java SE (Java Standard Edition) และ Java ME (Java Mobile Edition)

Application Framework & Toolkit

Application Framework ในชั้นนี้จะอนุญาตให้นักพัฒนาสามารถเข้าเรียกใช้งาน โดยผ่าน API (Application Programming Interface) ซึ่ง Android ได้ออกแบบไว้เพื่อลดความซ้ำซ้อนในการ ใช้งาน application component โดยในชั้นนี้ประกอบด้วยแอพพลิเคชันเฟรมเวิร์คดังนี้

Application Framework View System เป็นส่วนที่ใช้ในการควบคุมการทำงานสำหรับการ สร้างแอพพลิเคชัน เช่น lists, grids, text boxes, buttons และ embeddable web browser Location Manager เป็นส่วนที่จัดการเกี่ยวกับค่าต่ำแหน่งของ เครื่องอุปกรณ์พกพาเคลื่อนที่ Content Provider เป็นส่วนที่ใช้ควบคุมการเข้าถึงข้อมูลที่ มีการใช้งานร่วมกัน (Share data) ระหว่างแอพพลิเคชันที่แตกต่างกัน เช่น ข้อมูลผู้ติดต่อ (Contact)

Application Framework Resource Manager เป็นส่วนที่จัดการข้อมูลต่างๆ ที่ไม่ใช่ส่วนของ โค้ดโปรแกรม เช่น รูปภาพ, localized strings, layout ซึ่งจะอยู่ ในไดเร็คทอรี res/ Notification Manager เป็นส่วนที่ควบคุมอีเวนต์ (Event) ต่างๆ ที่แสดงบนแถบสถานะ (Status bar) เช่น ในกรณีที่ได้รับข้อความหรือ สายที่ไม่ได้รับและการแจ้งเตือนอื่นๆ เป็นต้น Activity Manager เป็นส่วนควบคุม Life Cycle ของแอพพลิเคชัน

Android Application

Application Building Blocks ชั้นนี้จะเป็นชั้นที่อยู่บนสุดของโครงสร้างสถาปัตยกรรม Android ซึ่งเป็นส่วนของแอพพลิเคชันที่พัฒนาขึ้นมาใช้งาน เช่น แอพพลิเคชันรับ/ส่งอีเมล์, SMS, ปฏิทิน, แผนที่, เว็บเบราเซอร์, รายชื่อผู้ติดต่อ เป็นต้น ซึ่งแอพพลิเคชันจะอยู่ในรูปแบบของไฟล์ .apk

User Interface SJU 2004-04 Android

Android Apps Sleep as android Run keeper

Android Apps Shazam gStrings

Android Apps Google skymap Games

Android software development J2se JDK Android SDK SDK Platform SDK Platform tools SDK Tools Emulator & Images Example Eclipse IDE ADT Plug-in ADB USB Driver Internet connection for online install

Emulator limitation No support for placing or receiving actual phone calls. No support for USB connections No support for camera/video capture (input). No support for device-attached headphones No support for determining connected state No support for determining battery charge level No support for determining SD card insertion/removal No support for Bluetooth No support for Multitouch

Android Open Accessory Development Kit (ADK)

IOIO for Android -Chainable LED -Joystick -PIR Motion Sensor -Ultra Sonic range finder -Temp&Humi Sensor -125Khz RFID Card Reader -Relay -High Sensitive Mini Servo

การสร้าง AlertDialog

การสร้าง AlertDialog

การสร้าง AlertDialog 1). import android. app. AlertDialog; 2) การสร้าง AlertDialog 1) import android.app.AlertDialog; 2) AlertDialog.Builder adb = new AlertDialog.Builder(this); EditText edt1 = (EditText)this.findViewById(R.id.editText1) Button but1 = (Button)this.findViewById(id.button1); 3) but1.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { 4) AlertDialog ad = adb.create(); String aaa = edt1.getText().toString(); ad.setMessage("Sawatdee khun : " + aaa); ad.show(); } });

การสร้าง Alert Text

การสร้าง Alert Text

การสร้าง Alert Text 1). import android. widget. Toast; 2) การสร้าง Alert Text 1) import android.widget.Toast; 2) EditText editT1 = (EditText)findViewById(R.id.editText1); Button btn1 = (Button)findViewById(R.id.button1); 3) but1.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { 4) Toast.makeText(MainActivity.this, String.valueOf("Your Input : " + editT1.getText().toString()), Toast.LENGTH_SHORT).show(); } });

การIntent ที่มีการส่งค่า Result

การIntent ที่มีการส่งค่า Result

การIntent ที่มีการส่งค่า Result

การIntent ที่มีการส่งค่า Result 1) Import android.content.Intent; 2) public void onClick(View v) { Intent i = new Intent(MainActivity.this,Input.class); startActivityForResult(i,13); } 3) protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode){ case(13): if(resultCode==Activity.RESULT_OK) { textview.setText(data.getStringExtra("radius")); } break; }}

การIntent ที่มีการส่งค่า Result 1) Import android.content.Intent; 2) public void onClick(View v) { Intent i = new Intent(); i.putExtra("radius", edittext1.getText().toString()); Input.this.setResult(RESULT_OK,i); finish(); } 3) protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); }

GPS 1). ต้องขอสิทธิ์ACCESS_FINE_LOCATION จาก AndroidManifest GPS 1) ต้องขอสิทธิ์ACCESS_FINE_LOCATION จาก AndroidManifest.xml <uses-permission ndroid:name="android.permission.ACCESS_FINE_LOCATION"/> 2) import android.location.Location; 3) private LocationManager lm; private TextView txtv; protected void onCreate(Bundle savedInstanceState) { txtv =(TextView)this.findViewById(R.id.textView1); lm = (LocationManager)this.getSystemService(LOCATION_SERVICE); } 4) protected void onResume() { super.onResume(); lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,1500,1,this); }

GPS 5). protected void onPause() {. super. onPause();. lm GPS 5) protected void onPause() { super.onPause(); lm.removeUpdates(this); } 6) public void onLocationChanged(Location arg0) { if(arg0 == null) txtv.append("***ไม่สามารถระบุตำแหน่งได้***"+ "\n"); else{ txtv.append("ละติจด:"+ arg0.getLatitude()+ "\n"); txtv.append("ลองติจด:"+ arg0.getLongitude()+ "\n"); } }

การขอ Google Maps API Key 1). หาไฟล์ debug. keystore ให้เจอ 2) การขอ Google Maps API Key 1) หาไฟล์ debug.keystore ให้เจอ 2) keytool -list -alias androiddebugkey -keystore <path_to_debug_keystore>.keystore -storepass android -keypass android D:\ >keytool -list -alias androiddebugkey -keystore D:\.android\debug.keystore -storepass android -keypass android 3) ผลลัพธ์ Certificate fingerprint (MD5): 82:48:6B:DE:82:84:8D:E0:AC:0A:6F:09:94:4F:5F:07 4) ไปที่ http://code.google.com/intl/th/android/maps-api-signup.html 5) Your key is 0ZI4J5um4YUPUcW4rqP2CulDXvicUXanHTZ2JPg