You are on page 1of 41

Lập trình ứng dụng Android

 Thông tin giảng viên: Nguyễn Thái Sơn


 Đơn vị: Viện Công nghệ thông tin và truyền thông CDiT,
Học viện Công nghệ Bưu chính Viễn thông
 Thông tin liên hệ:
• Mobile: 0915371154
• Email: sonnt@cdit.com.vn
 Mục tiêu khóa học: Cung cấp cho học viên cái nhìn tổng
quan và những kỹ thuật then chốt trong lập trình ứng dụng
Android
Tài liệu tham khảo
 Brian Fling, Mobile design and development. 1st edition. O’Reilly
Media, 2009
 Wei-Meng Lee, Beginning Android 4 Application Development.
John Wiley & Sons, Inc, 2012
 Reto Meier, Professional Android 4 Application Developmemt. John
Wiley & Sons, Inc,2012
 Scott Olson, John Hunter, Ben Horgen, Kenny Goers, Professional
Cross-Platform Mobile Development in C#. John Wiley & Sons,Inc,
2012
 Greg Shackles, Mobile Development with C#. O’Reilly Media,
2012
 Trần Đình Quế, Lập trình hướng đối tượng, Học Viện Công Nghệ
Bưu Chính Viễn Thông
Nội dung chi tiết
 Chương 1: Tổng quan về hệ điều hành và ứng dụng
Android: Trình bày một cách tổng quát về hệ điều hành
Android, cách thiết lập môi trường lập trình ứng dụng, các loại
ứng dụng và activity trong Android.
 Chương 2: Lập trình ứng dụng Android: Trình bày về các
kỹ thuật cốt lõi trong lập trình ứng dụng Android.
 Chương 3: Lập trình Android sử dụng SamSung SDK:
Giới thiệu tổng quan về Samsung SDK, giới thiệu cách thức
lập trình Android sử dụng Samsung S PEN SDK
Chương 1: Tổng quan về hệ điều hành
và ứng dụng Android

1.1. Hệ điều hành Android là gì?


1.2. Quá trình phát triển của hệ điều hành Android
1.3. Kiến trúc của hệ điều hành Android
1.4. Các thành phần tạo nên ứng dụng Android
1.5. Thiết lập môi trường lập trình
1.6. Ứng dụng và Activity
1.1. Hệ điều hành Android là gì?
 Android là một hệ điều hành dựa trên nền tảng Linux được
thiết kế dành cho các thiết bị di động có màn hình cảm ứng (ví
dụ: điện thoại thông minh, máy tính bảng,…)
 Android ra mắt vào năm 2007
 Android là hệ điều hành mã nguồn mở do Google phát hành
 Được các công ty công nghệ lựa chọn khi họ cần một hệ điều
hành không nặng nề, có khả năng tinh chỉnh và giá rẻ chạy
trên các thiết bị công nghệ cao thay vì tạo dựng từ đầu.
 Được thiết kế để chạy trên điện thoại, máy tính bảng và các
thiệt bị điện tử khác.
 Android trở thành nền tảng điện thoại thông minh phổ biến
nhất thế giới quý 4-2010
1.1. Hệ điều hành Android là gì?

Thị phần của các hệ điều hành di động trên thế giới
tới hết năm 2013
1.2. Quá trình phát triển của hệ điều hành Android
Phiên bản Tên mã Ngày phát hành Cấp API Phân bố (04/06/2014)

4.4 KitKat 10/2013 19 13.6%

4.3 Jelly Bean 25/7/2013 18 10.3%

4.2.x 13/11/2012 17 19.1%

4.1.x 9/7/2012 16 29%

4.0.3-4.0.4 Ice Cream Sandwich 16/12/2011 15 12.3%

2.3.3-2.3.7 Gingerbread 9/2/2011 10 14.9%

2.2 Froyo 20/5/2010 8 0.8%

Các phiên bản Android tính đến 04/06/2014


1.3. Kiến trúc của hệ điều hành Android

Kiến trúc tổng quát hệ điều hành Android


1.3. Kiến trúc của hệ điều hành Android
 Nhân Linux (Linux Kernel): cung cấp chức năng hệ thống cơ
bản như giao tiếp với tầng trên, bảo mật, quản lý bộ nhớ, quản lý
các tiến trình, ngăn xếp mạng và trình điều khiển thiết bị
 Bộ thư viện (Libraries): tập các thư viện C/C++
 OpenGL: thư viện dùng để tạo ra các đồ họa 3D dựa vào chuẩn
OpenGLES 1.0.
 FreeType: thư viện hỗ trợ xử lý bitmap, font, vector.
 SGL: thư viện cơ bản cung cấp các engine đồ họa 2D.
 Libc: thư viện C chuẩn, được tối ưu cho các thiết bị Linux-based.
 SQLite: thư viện thao tác với cơ sở dữ liệu quan hệ nhỏ gọn
SQLite.
 SSL: thư viện hỗ trợ sử dụng giao thức mã hóa SSL (Secure
Sockets Layer) trong bảo mật truyền thông Internet.
1.3. Kiến trúc của hệ điều hành Android
 Android runtime: Cung cấp tập các thư viện lõi cho phép các
nhà phát triển viết các ứng dụng sử dụng ngôn ngữ lập trình Java
 Khung ứng dụng (Application Framework): chạy trên hệ
điều hành di động, cung cấp và chia sẻ các dịch vụ cho các ứng
dụng di động phía trên nó như các dịch vụ: tin nhắn, đồ họa, vị
trí, bảo mật, xác thực, giao tiếp
 Ứng dụng (Application):
 Mặc định Android tích hợp sẵn một số ứng dụng cần thiết cơ bản
như: home, contacts, phone, camera…
 Tất cả các ứng dụng được viết bằng ngôn ngữ Java và được quản
lý bởi máy ảo Dalvik.
 Ứng dụng được phát hành trên các kho ứng dụng, người dùng đầu
cuối có thể vào kho tải ứng dụng về máy
1.4. Các thành phần tạo nên ứng dụng Android
 Các thành phần chính
Thành phần Mô tả
Activities • Quản lý màn hình giao diện, xử lý tương tác của người dùng.

• Trong một ứng dụng Android có thể có một hoặc nhiều Activity,
trong đó có một main Activity để khởi chạy ứng dụng, Activity
này sẽ gọi các Activity khác trong quá trình ứng dụng hoạt động.
Services Chạy ngầm trong hệ thống mà người sử dụng không thấy được.
Service sử dụng để cập nhật dữ liệu, đưa ra thông báo (Notification).
Broadcast Quản lý sự kiện, chuyển tiếp sự kiện trong hệ thống (Ví dụ: xử lý
Receivers truyền thông giữa hệ điều hành và ứng dụng Android).
Content Cung cấp cách thức quản lý và chia sẻ tài nguyên giữa các ứng dụng.
Provider
1.4. Các thành phần tạo nên ứng dụng Android
 Các thành phần không bắt buộc
Thành phần Mô tả
Fragments Là thành phần giao diện được nhúng vào Activity. Fragment được
thêm vào phiên bản Android 3.0 (API level 11).
Views Là các đối tượng hiển thị trên giao diện ứng dụng (Ví dụ: button, list,
textbox…). View chỉ được hiển thị lên màn hình khi được đặt trong
Activity.
Layouts Cho phép bố trí sắp xếp các views lên giao diện ứng dụng theo nhu
cầu.
Intents Dùng để truyền các thông báo (message) từ Activity này tới service
hoặc Activity khác
Resources Lưu trữ tài nguyên của ứng dụng như strings, constants, drawables
pictures.
Manifest File cấu hình của ứng dụng.
1.5. Thiết lập môi trường lập trình
 Cài đặt
 Tải và cài đặt Java JDK
http://java.sun.com/javase/downloads/index.jsp
 Tải và cài đặt Android SDK (gói ADT Bundle for Windows)
http://developer.android.com/sdk/index.html
 Cập nhật ADT plugin mới nhất cho Eclipse
• Vào menu Help / chọn Install New Software
• Nhập đường dẫn: https://dl-ssl.google.com/android/eclipse/ và bấm
nút Add ở góc bên phải
• Chọn các thông số thích hợp để tiến hành cập nhật.
1.5. Thiết lập môi trường lập trình
 Cập nhật API (vào menu Windows/ Android SDK Manager)
1.5. Thiết lập môi trường lập trình
 Tạo Android Emulator
 Bước 1: Vào menu Windows/ Android Virtual Device Manager

 Bước 2: Để tạo một Android Emulator chọn New


1.5. Thiết lập môi trường lập trình
 Tạo Android Emulator (tt)
 Bước 3: thiết lập các thông số: Tên máy ảo, độ phân giải, API, bộ
nhớ trong, bộ nhớ ngoài (SD Card)...
1.5. Thiết lập môi trường lập trình
 Tạo Android Emulator (tt)
 Bước 4: Từ màn hình Android Virtual Device Manager, chọn tên
máy ảo cần chạy rồi nhấn Start
1.5. Thiết lập môi trường lập trình
 Sử dụng Android Emulator
 Mỗi một máy ảo được khởi động sẽ đi với một port nào đó (ví dụ
5554). Port này chính là đại diện cho số điện thoại của máy ảo đó
 Các phím chức năng: tương tự thiết bị thật
 Nhấn tổ hợp phím Ctrl + F11 để xoay màn hình
1.5. Thiết lập môi trường lập trình
 Sử dụng Android Emulator (tt)
 Cách gửi tin nhắn/gọi điện thoại trong máy ảo
• Cách 1: Tạo thêm một máy ảo Android khác
• Cách 2: Sử dụng Emulator Control trong DDMS
1.5. Thiết lập môi trường lập trình
 Sử dụng Android Emulator (tt)
 Cách sử dụng File Explorer
• Để lấy 1 tập tin từ SD Card ra: chọn tập tin đó rồi nhấn vào biểu
tượng ổ đĩa mềm
• Để đưa một tập tin từ Máy tính vào SD card: nhấn vào biểu tượng
điện thoại rồi chọn tập tin cần đưa, Hoặc bạn kéo thả trực tiếp một
tập tin nào đó vào màn hình
1.6. Ứng dụng và Activity
 Các loại ứng dụng trong Android
1.6. Ứng dụng và Activity
 Các loại ứng dụng trong Android (tt)
 Ứng dụng dạng native
• Có file cài dưới dạng mã nhị phân, được tải từ kho ứng dụng di động và
cài đặt trực tiếp vào thiết bị.
• Có thể gọi trực tiếp tất cả các thư viện API được cung cấp riêng cho thiết
bị
• Ưu điểm: Sử dụng trực tiếp tài nguyên của thiết bị nên cho hiệu năng
cao, khai thác được các đặc tính của thiết bị thông qua thư viện API
chuyên biệt của nền tảng di động mà ứng dụng hoạt động.
• Nhược điểm: việc phát triển ứng dụng là riêng rẽ cho mỗi nền tảng di
động khác nhau do đó cần nhiều thời gian phát triển, bảo trì và ngân quĩ
cho việc phát triển ứng dụng.
1.6. Ứng dụng và Activity
 Các loại ứng dụng trong Android (tt)
 Ứng dụng dạng web
• Được triển khai trên các máy chủ web và được người dùng truy cập qua
mạng sử dụng trình duyệt web của thiết bị
• Ưu điểm: Sử dụng chủ yếu tài nguyên máy chủ web và tốc độ truy cập và
tải dữ liệu từ mạng, có giao diện web, thời gian phát triển và triển khai
ứng dụng nhanh chóng, ứng dụng được phát triển một lần nhưng có thể
hoạt động trên tất cả các thiết bị.
• Nhược điểm: ứng dụng chỉ hoạt động khi có kết nối mạng từ thiết bị tới
máy chủ web, hạn chế trong việc truy cập tới tài nguyên của thiết bị.
1.6. Ứng dụng và Activity
 Các loại ứng dụng trong Android (tt)
 Ứng dụng dạng hybrid
 Có file cài dưới dạng mã nhị phân, được tải từ kho ứng dụng di động và
cài đặt trực tiếp vào thiết bị.

 Có thể hiển thị nội dung web sử dụng các công nghệ như HTML,
JavaScript, CSS,…, đồng thời truy cập các thư viện API được cung cấp
riêng cho nền tảng di động mà ứng dụng cài đặt.

 Ưu điểm: việc phát triển ứng dụng thường nhanh và hiệu quả đặc biệt khi
phát triển ứng dụng có khả năng chạy trên nhiều nền tảng khác nhau.

 Nhược điểm: trải nghiệm người dùng có thể kém tối ưu so với ứng dụng
native.
1.6. Ứng dụng và Activity
 Các loại ứng dụng trong Android (tt)
Đặc tính Ứng dụng dạng native Ứng dụng dạng hybrid Ứng dụng dạng web
Ngôn ngữ lập trình Native Native, web Web
Tính linh động và tối ưu của mã Không Cao Cao
nguồn
Truy cập các đặc tính của thiết bị Cao Trung bình Thấp

Kế thừa nền tảng kiến thức đã có Thấp Cao Cao

Hỗ trợ đồ họa Cao Trung bình Trung bình


Cập nhật linh động Thấp (Luôn thông qua Trung bình (Thường thông Cao
kho ứng dụng) qua kho ứng dụng)
Kinh nghiệm cài đặt Cao (Từ kho ứng dụng) Cao (Từ kho ứng dụng) Trung bình (thông
qua trình duyệt web
trên di động)
1.6. Ứng dụng và Activity
 Cấu trúc của một Project ứng dụng Android
 Tạo Android Project bằng cách chọn menu File/ New/ Android
Application Project
1.6. Ứng dụng và Activity
 Cấu trúc của một Project ứng dụng Android (tt)
1.6. Ứng dụng và Activity
 Cấu trúc của một Project ứng dụng Android (tt)
 MainActivity.java và activity_main.xml: Khi một Ứng dụng được
tạo ra thì thông thường sẽ có một Activity để khởi chạy ứng dụng.
MainActivity.java là class chứa toàn bộ source code, còn
activity_main.xml là phần giao diện
1.6. Ứng dụng và Activity
 Cấu trúc của một Project ứng dụng Android (tt)
 Bất kỳ một Activity nào muốn được triệu gọi thành công trong
Android Project thì bắt buộc nó phải được khai báo trong tập tin
AndroidManifest.xml. Phần tử activity chứa phần tử con <intent-
filter> cho biết activity này được thực thi đầu tiên khi chạy ứng
dụng
1.6. Ứng dụng và Activity
 Cấu trúc của một Project ứng dụng Android (tt)
 Thư mục gen là thực mục do Android tự động tạo ra. Các resource
của ứng dụng sẽ được sinh ra bên trong R.java. Dựa vào đây ta có
thể truy suất các đối tượng khi coding.
1.6. Ứng dụng và Activity
 Cấu trúc của một Project ứng dụng Android (tt)
 Trong hàm onCreate của MainActivity.java có các lệnh:
 setContentView(R.Layout.activity_main): thiết lập giao diện cho
Activity, với activity_main lấy từ R.java

 findViewById(R.id.btnXinChao): truy suất control là Button trên


giao diện, với btnXinChao lấy từ R.java
1.6. Ứng dụng và Activity
 Cấu trúc của một Project ứng dụng Android (tt)
 Các thư mục: Drawable-hdpi, Drawable-ldpi, Drawable-
mdpi, Drawable-xdpi
 Chứa các đối tượng drawable được thiết kế dành cho các màn hình
có độ phân giải màn hình khác nhau. Tùy thuộc vào độ phân giải
màn hình, chương trình sẽ tải các tài nguyên (Resource) trong thư
mục tương ứng

 Có thể tự tạo thêm một thư mục cùng cấp tên là Drawable và kéo thả
các tập tin trực tiếp vào trong thư mục này. Khi chương trình load
các Resource sẽ tự động vào đây lấy.
1.6. Ứng dụng và Activity
 Activity
 Thông thường trong một ứng dụng sẽ có một hoặc nhiều Activity.
Mỗi một Activity này sẽ có một vòng đời riêng độc lập hoàn toàn
với các Activity khác
 Activity Stack
1.6. Ứng dụng và Activity
 Có 2 kiểu mở Activity mới
 Mở Activity mới lên làm che khuất toàn bộ Activity cũ (không
nhìn thấy Activity cũ): xảy ra sự kiện onPause rồi onStop đối với
Activity cũ
 Mở Activity mới lên làm che khuất một phần Activity cũ (vẫn nhìn
thấy Activity cũ): xảy ra sự kiện onPause với Activity cũ. Khi quay
trở về Activity cũ thì sau khi thực hiện xong các hàm cần thiết,
hàm onResume sẽ được gọi để phục hồi lại trạng thái ứng dụng
=> thường lưu lại trạng thái của ứng dụng trong sự kiện onPause và
đọc lại trạng thái ứng dụng trong sự kiện onResume
1.6. Ứng dụng và Activity
 Task: khả năng thực hiện một công việc nào đó giữa các ứng
dụng với nhau
1.6. Ứng dụng và Activity
 Trạng thái của Activity
1.6. Ứng dụng và Activity
 Trạng thái của Activity (tt)
 Running (đang kích hoạt): Khi màn hình là Foreground (Activity
nằm trên cùng của ứng dụng và cho phép người sử dụng tương tác)
 Paused (tạm dừng) : Activity mất focus nhưng vẫn nhìn thấy được
Activity này (ví dụ mở một Activity mới lên dưới dạng Dialog).
 Stopped (dừng): Activity mất focus và không nhìn thấy được (ví
dụ mở một Activity mới lên ở chế độ full màn hình).
1.6. Ứng dụng và Activity
 Vòng đời của ứng dụng Android
1.6. Ứng dụng và Activity
 Vòng đời của ứng dụng Android (tt)
 Visible Lifetime: xảy ra từ sau khi gọi onStart cho tới lúc gọi
onStop. Trong trường hợp này có thể thấy màn hình Activity (có
thể tương tác khi nó là foreground, không tương tác được khi nó
không phải foreground)
 Foreground Lifetime: xảy ra từ khi gọi onResume cho tới lúc gọi
onPause: trong suốt thời gian này Activity luôn nằm ở trên cùng
của ứng dụng và người dùng có thể tương tác được với nó
1.6. Ứng dụng và Activity
 Các tài nguyên trong ứng dụng Android
Directory Resource Type
animator/ Các tệp tin XML để định nghĩa Property Animations.
anim/ Các tệp tin XML để định nghĩa Tween Animations.
color/ Các tệp tin XML dùng để định nghĩa màu sắc.
Các tệp tin ảnh (.png, .9.png, .jpg, .gif) hoặc các tệp tin XML thuộc vào nhóm:
• Các file ảnh
• File ảnh Nine-Patches (File ảnh có đuôi 9.png)
drawable/
• Các tập tin XML định nghĩa trạng thái
• Các tập tin XML định nghĩa Shapes
• Các tập tin drawable khác
layout/ Các tâp tin XML định nghĩa Layout
menu/ Các tệp tin XML định nghĩa các Tuỳ Chọn của ứng dụng.
raw/ Các tập tin không giới hạn định dạng
values/ Các tệp tin XML có chứa các dữ liệu mẫu ví dụ như các chuỗi, các số nguyên và các màu.
Các file XML tùy ý có thể được đọc trong lúc chương trình đang chạy với phương thức
xml/
Resources.getXML().
Bài tập thực hành
 Tạo ứng dụng CheckLifeTimeCycle
 Chọn menu Source/ Override/Implement methods để
override các phương thức onStart, onRestart, onResume,
onPause, onStop, onDestroy
 Trong các hàm trên Viết lệnh hiển thị message cho mỗi sự
kiện
Toast.makeText(this,”onResume”, Toast.LENGTH_SHORT).show();

You might also like