1 / 143

Lập trình Android

Lập trình Android. Nguyen Ha Giang FIT – Hutech nguyenha.giang@yahoo.com. Nội dung. Tổng quan hệ điều hành Android Đặc điểm Kiến trúc Phiên bản Lập trình trên môi trường Android Môi trường lập trình AVD Quá trình phát triển ứng dụng Android. Ứng dụng cơ bản Android

questa
Télécharger la présentation

Lập trình Android

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lập trình Android Nguyen Ha Giang FIT – Hutech nguyenha.giang@yahoo.com

  2. Nội dung • Tổng quan hệ điều hành Android • Đặc điểm • Kiến trúc • Phiên bản • Lập trình trên môi trường Android • Môi trường lập trình • AVD • Quá trình phát triển ứng dụng Android. • Ứng dụng cơ bản Android • Tìm hiểu Android project • Các cách tiếp cận trong lập trình Android.

  3. Google Android ? • Tập phần mềm dành cho thiết bị di động bao gồm • Một hệ điều hành • Midleware • Các ứng dụng cơ sở • Sử dụng Linux để cung cấp dịch vụ hệ thống lõi • Security • Memory management • Process management • Power management • Hardware drivers • Hệ điều hành mã nguồn mở

  4. Android architechture http://developer.android.com/guide/basics/what-is-android.html

  5. Android vesioning • Vesion code và version name  không giống nhau. • Mỗi version name (platform level) thì có duy nhất một version code (API level) đi kèm.

  6. Version distribution • Nguồn: Android developer, Oct 3, 2011 http://developer.android.com/resources/dashboard/platform-versions.html

  7. Installling Android SDK • Chuẩn bị môi trường trên PC • Cài đặt JDK http://www.oracle.com/technetwork/java/javase/downloads/index.html • Nếu dùng Eclipse để phát triển ứng dụng thì download một phiên bản Eclipse http://www.eclipse.org/downloads/ • Download SDK Start package • http://developer.android.com/sdk/index.html • Giải nén thư mục này vào ổ đĩa, nhớ note lại thư mục để tham chiếu trong bước cài đặt Eclipse.

  8. Installling Android SDK • Cài đặt ADT plugin cho Eclipse • Plugin này gọi là Android Development Tool, hỗ trợ công cụ để phát triển ứng dụng Android • Mở rộng Eclipse với chức năng • Tạo mới Android project • Tạo ứng dụng UI Android • Test ứng dụng trên emulator Android SDK • Debug ứng dụng dùng Android SDK Tool. • Nếu dùng IDE khác thì không cần cài Eclipse + ADT plugin!

  9. Installling Android SDK • Cài đặt ADT plugin cho Eclipse: Install New Software

  10. Installling Android SDK • Bước Install

  11. Installling Android SDK • Add Site, có 2 lựa chọn • Nếu download file zip chứa ADT rồi thì chọn Archive browse đến file zip (vd: ADT-12.0.0.zip) • Nếu chưa download và muốn cài trực tiếp thì nhập URL sau vào location • https://dl-ssl.google.com/android/eclipse/ • Cuối cùng chọn OK, để thực hiện install ADT • Sau khi cài xong ADT thì restart lại Eclipse!

  12. Installling Android SDK • Configuring the ADT Plugin • Bước này cài đặt ADT tham chiếu đến Android SDK mà ở bước trước đã download và install vào thư mục trên đĩa. • Chọn Window > Preferences trong Eclipse, trong SDK location, browse đến thư mục Android SDK Sau bước này hoàn tất việc tạo môi trường để xây dựng Android app

  13. Android Emulator & AVD • Emulator là thành phần quan trọng để test ứng dụng nhưng không thể thay thế hoàn toàn thiết bị thật! • Emulator trên Android được gọi là Android Virtual Devices (AVDs) • Android SDK và AVD manager cho phép tạo các AVDs hướng tới bất kỳ phiên bản Android API. • AVD cho phép cấu hình: • Resolution • RAM • SD card • Skin • Hardware khác

  14. Android Emulator: 1.6 Device Device 1.6

  15. Android Emulator: 2.2 Device Device 2.2

  16. Android Emulator: 3.0 Device Device 3.0

  17. Emulator basic • Sử dụng bàn phím của máy tính • Sử dụng pointer máy tính như "finger" • Sử dụng kết nối internet của máy tính • Các button: Home, Menu, Back, Search… • Ctrl + F11: landscape  portrait • Alt + Enter: full screen mode Hãy bỏ ra ít thời gian để làm quen với Android Emulator!!!

  18. Emulation limitations • Không hỗ trợ việc gọi và nhận thật sự cuộc gọi • Giả lập cuộc gọi và tin nhắn qua emulator console • Không hỗ trợ • USB connection • Camera/video (input) • Headphone • Battery charge level & AC charging state • Bluetooth Test your app on an actual device!

  19. Setting up an Emulator • Mở chức năng Android SDK và AVD manager trong Eclipse SDK/AVD Manager

  20. Setting up an Emulator • Mở chức năng Android SDK và AVD manager trong Eclipse

  21. Setting up an Emulator • Chọn New virtual device Đặt tên Chọn platform Chọn SD card nếu cần Chọn skin HVGA

  22. Running the app in the emulator • Với project Android đang làm việc, chọn Run (Ctrl +F11), lúc này emulator đã thiết lập sẽ khởi động. • Lần đầu tiên thời gian khởi động emulator khá lâu (vài phút ) do phải tạo môi trường virtual Linux system. Port number AVD name

  23. Running the app: emulator • Để thuận tiện cho việc coding, build & run thì emulator khởi động một lần trong suốt quá trình làm việc. • Ta cứ việc code, build và run, khi đó emulator tự động cập nhật mã lệnh mới, không cần phải restart lại emulator! Run Emulator 1 lần cho suốt phiên làm việc!

  24. Mobile Devices: Advantages • Always with the user • Typically have Internet access • Typically GPS enabled • Typically have accelerometer & compass • Many have cameras & microphones • Many apps are free or low-cost

  25. Mobile Devices: Disadv • Limited screen size • Limited battery life • Limited processor speed • Limited and sometimes slow network access • Limited or awkward input: soft keyboard, phone keypad, touch screen, or stylus • Limited web browser functionality • Range of platforms & configurations across devices

  26. Android Apps • Được xây dựng trên Java và SDK mới • Không support một số thư viện Java như Swing & AWT • Oracle đang kiện Google vi phạm bản quyền! • Java code được biên dịch vào Dalvik byte code (.dex) • Được tối ưu cho thiết bị di động (memory, battery…) • Dalvik VM chạy những file .dex Mã Java được biên dịch sang Dalvik byte code!

  27. Producing an Android App Java code Byte code javac Dalvik exe dx .class .java aapt classes.dex Byte code <xml> Other .class files AndroidManifest.xml .apk <str> Resources

  28. First Android Application • Trong Eclipse chọn Alt +Shift + N.

  29. First Android Application • New Android Project • Chọn tên project, build target (platform) và package name Tên project Scroll down để thấy phần package name platform Package name: ký tự đầu tiên phải chữ thường, phải có dấu chấm (2 định danh)

  30. First Android Application • Toàn bộ Adroid project được khởi tạo từ Eclipse Chọn Package Explorer để xem cấu trúc của ứng dụng Code Java Chứa resource File cấu hình app

  31. First Android Application

  32. Important Files • src/NguyenhagiangActivity.java • Activity của ứng dụng, hiển thị khi ứng dụng chạy • res/layout/main.xml • Định nghĩa layout & widgets cho activity • res/values/strings.xml • Khai báo hằng chuỗi dùng trong chương trình • gen/R.java(Don’t touch!) • File được tạo tự động các ID từ các file *.xml • AndroidManifest.xml • Khai báo tất cả thành phần của app (tất cả các activity). • Tên thư viện cần thiết được dùng trong ứng dụng • Xác định những permission mà ứng dụng được cấp. • Phiên bản, cấu hình…

  33. src/NguyenhagiangActivity.java • Activity là thành phần sẽ hiển thị khi chạy ứng dụng. • Do ứng dụng này đơn giản chỉ có 1 activity nên là activity chính của ứng dụng!

  34. res/layout/main.xml • Khai báo layouts & widgets cho activity

  35. res/values/string.xml • Khai báo hằng chuỗi dùng trong app • Hỗ trợ Localization • res/values-es/values/strings.xml (Spanish) • res/values-fr/values/strings.xml (French) • … Nội dung chuỗi Tên truy cập chuỗi

  36. gen/R.java • File được tự động khởi tạo với các định danh từ main.xml, string.xml và các phần khác. Không được chỉnh sửa!

  37. AndroidManifest.xml • Khai báo tất cả các thành phần của app với system • Phiên bản: version code, version name • Application: icon, name, label… • Tham chiếu đến tên các thư viện mà app có sử dụng • Quy định các permission mà ứng dụng được phép.

  38. Create UI • Thiết lập UI cho một activity • public class HelloWorldActivity extendsActivity{ • /** Called when the activity is first created. */ • @Override • public void onCreate(BundlesavedInstanceState) { • super.onCreate(savedInstanceState); • setContentView(R.layout.main); • } • } main.xml chứa trong thư mục res/layout

  39. Create UI • Tạo một nội dung trực tiếp từ code không dùng XML • public class HelloWorldActivity extendsActivity{ • /** Called when the activity is first created. */ • @Override • public void onCreate(BundlesavedInstanceState) { • super.onCreate(savedInstanceState); • TextViewtv = newTextView(this); • tv.setText("Hello, Android"); • setContentView(tv); • } • }

  40. Basic Event handler • Tạo button đáp ứng sự kiện click • public class HelloWorldActivity extendsActivity{ • /** Called when the activity is first created. */ • @Override • public void onCreate(BundlesavedInstanceState) { • super.onCreate(savedInstanceState); • Buttonbtn = newButton(this); • btn.setText("Click me!"); • setContentView(tv); • } • }

  41. Basic Event handler (2) • Khai báo listener để xử lý sự kiện click // thiết lập event click handler btn.setOnClickListener(newOnClickListener() { @Override public void onClick(View v) { Toast.makeText( getApplicationContext(), "Hello World", Toast.LENGTH_LONG).show(); } });

  42. Three Main Approaches forAndroid programming

  43. Three Main Approaches • Java-based • Sử dụng Java để định nghĩa String, layout window, tạo các GUI, gán event handler, giống như lập trình Swing • XML-based • Sử dụng file XML để định nghĩa String, layout window, tạo các GUI, gán event handler. Phương thức Java chỉ đọc layout từ file XML và truyền vào setContentView. • Hybrid • Sử dụng file XML định nghĩa String, layout window, và tạo GUI control. Sử dụng Java để gán event handler.

  44. Java-based approach public class NguyenHaGiangActivity extendsActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); String message="Message 1"; LinearLayout window = new LinearLayout(this); TextView txt = newTextView(this); txt.setText(message); Button btn = newButton(this); btn.setText("Button Label"); btn.setOnClickListener(new SomeHandler()); window.addView(txt); window.addView(btn); setContentView(window); }// end onCreate … //(next page) Code Java

  45. Java-based approach ... //(previous page) private class SomeHandlerimplementsOnClickListener{ @Override public void onClick(View clickedButton) { // doSomething();... Toast.makeText(getApplicationContext(), "Hello World", Toast.LENGTH_LONG).show(); } // end onClick } // end class SomeHandler } // end class NguyenHaGiangActivity Code Java

  46. XML-based approach • Java • XML public class SomeClassextendsActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public void handlerMethod(View clickedButton) { String someName = getResources().getString(R.string.name); doSomethingWith(someName); } }

  47. Hybrid approach • Java • XML • Lấy control thông qua IDs • Không sử dụng android:onClick để gán handler 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 SomeHandlerimplements OnClickListener { @Override public void onClick(View clickedButton) { doSomething(...); } } }

  48. Java-based Layout

  49. Main idea • Approach • Sử dụng Java để định nghĩa chuỗi, layout window, tạo GUI control, gán trình xử lý sự kiện. • Avantages • Thân thiện với giới Java desktop developer. Giống cách tiếp cận để xây dựng Swing, SWT, và AWT. • Thuận tiện cho việc xây dựng layout động, tuỳ biến vào logic lập trình. • Disadvantages • Phần code và phần UI xen lẫn với nhau. • Chỉ thấy được giao diện khi chạy ứng dụng.

  50. Code (Main Method) • Phần code trong onCreate String appName = "Demo Java-baed Application"; String windowText = "Press the button"; String buttonLabel = "Show Greeting"; LinearLayout mainWindow = new LinearLayout(this); mainWindow.setOrientation(LinearLayout.VERTICAL); setTitle(appName); TextView label = new TextView(this); label.setText(windowText); label.setText(windowText); mainWindow.addView(label); Button greetingButton = new Button(this); greetingButton.setText(buttonLabel); greetingButton.setOnClickListener(new Toaster()); mainWindow.addView(greetingButton); setContentView(mainWindow);

More Related