introduction to android

Post on 25-Feb-2016

81 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Introduction to Android. อ . สุ พจน์ สิง หัษ ฐิต. What is Android ?. แอน ดรอยด์ ( Android) เป็นระบบปฏิบัติการสำหรับอุปกรณ์พกพา เช่น โทรศัพท์มือถือ แท็บเล็ต คอมพิวเตอร์ เน็ตบุ๊ก เป็นต้น ซึ่งพัฒนามาจากระบบปฏิบัติการลิ นุกซ์ (Linux) - PowerPoint PPT Presentation

TRANSCRIPT

อ. สพจน สงหษฐต

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

Android 0.9320x480 HVGA

2008 Aug 18

Android 1.0Apple pieAPI 1.0320x480 HVGA

2008 Sep 23

Android 1.1Banana breadAPI 2.0320x480 HVGA

2009 Feb 9

Android 1.5

2009 Apr 30

CupcakeAPI 3.0Bluetooth A2DP, AVRCP supportSoft-keyboard with text-predictionRecord/watch videos320x480 HVGA

Android version history

Android 1.6DonutAPI 4.0Gesture frameworkTurn-by-turn navigation800×480 WVGA

2009 Sep 15

Android 2.0ÉclairAPI 5.0Digital zoomLive WallpapersUpdated UI800×480 WVGA

2009 Oct 26

Android 2.2FroyoAPI 8.0Flash 10.1JIT implementationUSB TetheringApplications installation to the expandable memoryUpload file support in the browserAnimated GIFs800×480 WVGA

2010 May 20

Android version history

Android 2.3GingerbreadAPI 9.0Near Field Communication supportNative VoIP/SIP supportVideo call support1366×768 WXGA

2010 Dec 6

Android 3.0HoneycombAPI 11.0Multi core supportBetter tablet supportUpdated 3D UI"Private browsing“Open Accessory APIUSB host APIMice, joysticks, gamepads... support

2011 Feb 22

Android version history

Android 4.0Ice Cream SandwichAPI 14.0Facial recognition (Face Unlock)UI use Hardware accelerationWeb browser, allows up to 16 tabsUpdated launcher Android Beam exchange data through NFCResizable widgetsVideo stabilization GoogleNow

2011 Oct 19

Android 4.1Jelly Bean

Android version history

Triple buffering in the graphics pipelineExtends vsync timing across all drawing and animationCPU input boostBi-Directional Text and Other Language SupportAndroid BeamGoogle Cloud Messaging for AndroidApp EncryptionSmart App Updates

Android Handsets

10SJU 2004-04 Android

Motorola CliqHTC G1 HTC HeroSamsung i7500

Samsung MomentMotorola DroidHTC Magic HTC Tattoo

Sony X10

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

Android Runtime Dalvik Virtual Machine

20

เปนชนยอยทอยในชนไลบราร ซงจะประกอบดวย 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)

Android Runtime

Application Framework & Toolkit

ในชนนจะอนญาตใหนกพฒนาสามารถเขาเรยกใชงาน โดยผาน 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 ของแอพพลเคชน

Application Framework

Android Application

Application Building Blocks ชนนจะเปนชนทอยบนสดของโครงสรางสถาปตยกรรม Android

ซงเปนสวนของแอพพลเคชนทพฒนาขนมาใชงาน เชน แอพพลเคชนรบ/สงอเมล, SMS, ปฏทน, แผนท, เวบเบราเซอร,

รายชอผตดตอ เปนตน ซงแอพพลเคชนจะอยในรปแบบของไฟล .apk

User Interface

30SJU 2004-04 Android

Sleep as android

Run keeper

Android Apps

Shazam

gStrings

Android Apps

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 connectionsNo support for camera/video capture (input).No support for device-attached headphonesNo support for determining connected stateNo support for determining battery charge levelNo support for determining SD card insertion/removalNo support for BluetoothNo 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

การสราง AlertDialog1) 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 Text1) 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); }

GPS1) ตองขอสทธ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);

}

GPS5) 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 Key1) หาไฟล 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

top related