Giáo trình Lập trình Java
Lập trình Java
Trung tâm tin học – ĐH KHTN TP.HCM
Bài 1: Tổng quan về lập trình Android
và Môi trường phát triển
I. Tổng quan
1. Hệ điều hành Android
a. Lịch sử phát triển
Năm 2003, Android Inc. được thành lập bởi Andy Rubin, Rich Miner,
Nick Sears và Chris White tại California.
Năm 2005, Google mua lại Android Inc và bắt đầu nuôi ý tưởng tự
sản xuất điện thoại di động.
Năm 2007, tổ chức OHA (Open Handset Alliance) được thành hơn
80 công ty trong lĩnh vực kỹ thuật điện tử bao gồm các công ty
chuyên về phần cứng, phân phối thiết bị di động đến các công ty
phần mềm, sản xuất chất bán dẫn… Có thể kể đến một số công ty
nổi tiếng như Samsung, Motorola, LG, HTC, T-Mobile, Vodafone,
ARM và Qualcomm…
Trong tương tai, OHA hi vọng sẽ có thể mang đến cho người tiêu
dùng những trải nghiệm tốt nhất bằng việc không ngừng phát triển
và mở rộng nền tảng cũng như tích hợp các tiện ích phục vụ đa dạng
nhu cầu của người dùng. Nhưng điều quan trọng nhất, bạn sẽ không
phải tốn bất ký chi phí nào cho các công cụ lập trình của các lập
trình viên phần mềm hay các hãng phát triển thiết bị di động của
OHA.
Năm 2008, Google ra mắt chiếc di động đầu tiên đồng thời open
source bản SDK (Software Development Kit) phiên bản 1.0.
Năm 2010, Google khởi đầu dòng thiết bị Nexus với thiết bị đầu tiên
của HTC là Nexus One.
Năm 2013, ra mắt loạt thiết bị phiên bản GPE.
Trang 1
Lập trình Java
Trung tâm tin học – ĐH KHTN TP.HCM
Năm 2014, Google công báo Android Wear, hệ điều hành dành cho
các thiết bị đeo được.
b. Các phiên bản hệ điều hành
Hình 1 – 1. Các phiên bản của Android
2. Tại sao nên lập trình trên Android?
a. Xu thế phát triển công nghệ di động
Theo nhận định của nhiều chuyên gia công nghệ từ các hãng công
nghệ hàng đầu như Microsoft, Google, IBM, … Ba xu hướng tất trên
toàn cầu hiện nay là: Social and Security (mạng xã hội và bảo mật),
Mobility (công nghệ di động), Analytics Big Data (phân tích dữ liệu
lớn), Cloud (Điện toán đám mây).
Trên thế giới:
Tháng 01/2014, trang WeAreSocial đã đưa ra báo cáo về “Bối cảnh
dữ liệu toàn cầu” với những chỉ số phát triển rất đang kinh ngạc của
Thế Giới Số. Cụ thể số liệu thống kê của WeAreSocial cho thấy:
- Số lượng đăng kí sử dụng di động đang hoạt động vào khoảng 93%
của dân số thế giới.
Trang 2
Lập trình Java
Trung tâm tin học – ĐH KHTN TP.HCM
- Tỉ lệ người kết nối Internet toàn cầu đạt 35%, tương đương 2,5 tỉ
người.
- Các kênh Mạng xã hội tiếp tục phát triển mạnh mẽ trong 12 tháng
qua, khi đạt tỉ lệ thâm nhập người dùng là 26%.
Hình 1 – 2. Bối cảnh dữ liệu toàn cầu - Nguồn: We Are Social
Hơn 4 tỉ người trên khắp thế giới hiện đang sở hữu ít nhất một chiếc
điện thoại di động.
Tại Việt Nam:
Trong giai đoạn 2014 - 2016, xu hướng Mobile và lượng người dùng
Internet 3G sẽ tiếp tục tăng mạnh. Các dịch vụ kết nối OTT và truyền
thông xã hội đóng góp hơn 80% phương thức giao tiếp online, video
online và nội dung số mobile. Điều này góp phần đẩy mạnh xu
hướng truyền thông số đa phương tiện, đa màn hình sẽ bùng nổ với
độ phủ hơn 50% dân số Việt Nam.
Doanh thu điện thoại thông minh và máy tính bảng giờ đây đã vượt
qua PC và laptop. Các doanh nghiệp hoạt động trong lĩnh vực sản
Trang 3
Lập trình Java
Trung tâm tin học – ĐH KHTN TP.HCM
xuất công nghệ cũng đang cố gắng hướng tới các dịch vụ như
“thanh toán di động, nội dung di động, dịch vụ xác định địa điểm
hay khai thác dữ liệu sử dụng của người dùng thiết bị di động”.
Hình 1 – 3. Chỉ số về Internet trên di động tại Việt Nam năm 2014 -
Nguồn: Theo thống kê Cục Thương mại điện tử và công nghệ thông
tin (VECITA), Bộ Côn g thương.
Tỉ lệ truy cập Internet qua các thiết bị di động: 36% tổng số
dân
Tỉ lệ truy cập Internet có tham gia mua sắm online 57%
Một người Việt Nam truy cập Internet 5,6 giờ/ngày, 6,4
ngày/tuần - Tổng số thời gian 36 giờ/tuần.
Trang 4
Lập trình Java
Trung tâm tin học – ĐH KHTN TP.HCM
Hình 1 – 4. Thống kê các chỉ số người dùng smartphone tại Việt Nam
năm 2014 - Nguồn: Theo thống kê Cục Thương mại điện tử và công
nghệ thông tin (VECITA), Bộ Công thương.
Hình 1 – 5. Thống kê tỷ lệ tăng trưởng của thị trường iOS và Android
của Việt Nam - Nguồn: Flury Analytics
Trang 5
Lập trình Java
Trung tâm tin học – ĐH KHTN TP.HCM
Hình 1 – 6. Thống kê chỉ số điện thoại di động và các loại hình thanh
toán tại Việt Nam năm 2014 - Nguồn: Theo thống kê Cục Thương
mại điện tử và công nghệ thông tin(VECITA), Bộ Công thương.
b. Thị trường thiết bị Android
Trong tất cả các hệ điều hành dành cho di động hiện nay, có thể nói:
Android đã mang lại một cuộc cách mạng thật sự cho các lập trình
viên. Nổi bật với tính mở, đơn giản nhưng mạnh mẽ, không tốn phí
cho bất cứ bản quyền nào và đặc biệt cộng đồng lập trình viên vô
cùng lớn mạnh. Android thật sự là một nền tảng mạnh mẽ cho phép
các lập trình viên, những người chưa từng lập trình trên thiết bị di
động có thể tạo ra các ứng dụng một cách nhanh chóng và dễ dàng.
Có thể nói Android đang dần mang lại phong cách mới trong thói
quen sử dụng điện thoại của người dùng.
Kể từ khi bắt đầu được thương mại hóa, ước tính mỗi ngày có
khoảng 850 ngàn thiết bị Android được kích hoạt. Nhiều cuộc
nghiên cứu đã chỉ ra rằng phần lớn các thiết bị smartphone mới
được xuất xưởng chạy hệ điều hành Android.
Trang 6
Lập trình Java
Trung tâm tin học – ĐH KHTN TP.HCM
Có tới 53 triệu thiết bị sử dụng mã nguồn mở Android (AOSP) được
bán ra, chiếm tới 11% tổng số smartphone trong quý 1/2014. Điều
này một lần nữa cho thấy, Android đã có được một địa vị cực kỳ
vững chắc trên thị trường smartphone.
Công ty nghiên cứu thị trường Strategy Analytics công bố hôm
31/10/2014 cho biết, số lượng smartphone chạy Android bán ra
trên phạm vi toàn cầu đạt 268 triệu chiếc, tăng mạnh so với thành
tích 206 triệu chiếc của cùng kỳ năm ngoái. Nếu xét về thị phần, chú
robot xanh của đại gia công nghệ Google đang giữ 84% thị phần.
c. Nhu cầu tuyển dụng lập trình viên Android
Với xu thế phát triển công nghệ di động nhanh và mạnh như hiện
nay, thị trường thiết bị Anroid chiếm vị trí cao nhất không chỉ ở Việt
Nam mà trên toàn thế giới, thì nhu cầu sử dụng các ứng dụng cho
các thiết bị Android là rất lớn. Vì vậy, nhu cầu tuyển dụng lập trình
viên Android cũng rất lớn và sẽ tăng nhanh.
II. Kiến trúc Android
Có thể hiểu Android Software Stack bao gồm nhân Linux, tập các
thư viện C/C++ được truy xuất bởi tầng ứng dụng để sử dụng các
dịch vụ, các bộ quản lý thực thi và quản lý ứng dụng. Mỗi tầng đều
có chức năng vai trò riêng biệt với nhau:
1. Linux kernel – lõi chính của toàn hệ thống bao gồm các điều
khiển phần cứng, bộ quản lý xử lý và bộ nhớ, bảo mật, kết nối
mạng, bộ quản lý năng lượng.
2. Libraries – thực thi trên tầng nhân Linux, bao gồm các thư
viện lõi khác nhau của C/C++ như libc và SSL. Có các dạng sau:
Thư viện hổ trợ phát các tập tin đa truyền thông.
Bộ quản lý hiển thị
Thư viện hổ trợ đồ họa OpenGL 2D và 3D
SQLite hổ trợ lưu trữ cơ sở dữ liệu
Trang 7
Lập trình Java
Trung tâm tin học – ĐH KHTN TP.HCM
SSL và WebKit cho phép tương tác với trình duyệt và
bảo mật Internet.
3. Android Run Time – đây chính là điểm làm nên sự khác biệt
giữa thiết bị Android và thiết bị Linux. Bên trong thành phần
này bao gồm máy ảo Dalvik và thư viện lõi. Android Run Time
ngoài tăng tốc độ cho ứng dụng còn làm nền cho tầng
Application Framework kết nối đến.
Core Libraries – mặc dù hầu hết các ứng dụng Android
viết bằng ngôn ngữ Java nhưng Dalvik không phải là
máy ảo Java. Các thư viện lõi Android sẽ cung cấp hầu
hết các chức năng chính có thể có trong thư viện Java
cũng như thư viên riêng biệt của Android.
Dalvik VM – dạng máy ảo cho phép tối ưu hóa để có thể
chạy được nhiều tiến trình một các hiệu quả, dựa trên
nhân Linux các máy ảo cho phép quản lý các tiểu trình
và quản lý bộ nhớ ở bậc thấp.
4. Application Framework – cung cấp các lớp cho việc tạo ra các
ứng dụng. Bên cạnh đó nó cũng chứa các lớp trừu tượng cho
phép truy nhập phần cứng, quản lý giao diện người dùng và
tài nguyên của ứng dụng.
5. Application Layer – gồm các ứng dụng được tích hợp sẵn và
các ứng dụng của hãng thứ ba. Tầng ứng dụng trong Android
Run Time sử dụng các lớp từ tầng Application Framework để
thực thi ứng dụng.
Trang 8
Lập trình Java
Trung tâm tin học – ĐH KHTN TP.HCM
Hình 1 – 7. Kiến trúc Android
III. Môi trường phát triển ứng dụng Android
1. Giới thiệu và cài đặt Java JDK, Android SDK
Android SDK (Software Development Kit) và JDK (Java Development
Kit) là hai công cụ cần thiết để chúng ta có thể lập trình nên các ứng
dụng Android. Và tất nhiên nếu bạn không muốn lập trình trên phần
mềm soạn thảo văn bản thì một công cụ lập trình IDE (Integrated
development environment) sẽ rất hữu ích và tiện lợi. Eclipse được
xem là một công cụ hỗ trợ rất tốt trong việc lập trình ứng dụng
Android.
Android SDK, JDK và Eclipse đều có mặt trên một số phiên bản hệ
điều hành Windows, Mac OS và Linux do đó chúng ta có thể lập
trình trên hệ điều hành mà chúng ta đã quen sử dụng. Thêm nữa,
Android được thực thi trên máy ảo Dalvik nên việc phát triển ứng
dụng là như nhau trên cả 3 môi trường.
Thiết lập môi trường phát triển:
Trang 9
Lập trình Java
Trung tâm tin học – ĐH KHTN TP.HCM
Như đã nói ở trên, ứng dụng Android được thực thi trên máy ảo
Dalvik nên chúng ta có thể lập trình trên nhiều phiên bản của các hệ
điều hành. Cụ thể như sau:
Microsoft Windows (XP, Vista, Windows 7, Windows 8)
Mac OS X từ phiên bản 10.5.8 trở đi (chip xử lý Intel)
Linux (bao gồm các hệ điều hành tích hợp thư viện GNU 2.7
trở lên)
Để bắt đầu viết ứng dụng, chúng ta cần tải và cài đặt hai bộ phần
mềm sau:
trước hết và nên chọn phiên bản mới nhất).
gói ADT Bundle (Android Developer Tools Bundle), gói này sẽ chứa
các thành phần:
Eclipse và ADT plugin.
Android SDK Tools.
Android Flatform tools
Android API mới nhất.
Android System image mới nhất cho Emulator.
2. Cập nhật Android API
Khi cài đặt xong ta sẽ có thư mục android-sdk chứa một số các thư
mục như hình. Việc đầu tiên cần làm với bộ SDK này là ta sẽ tải các
phiên bản SDK kèm theo mã nguồn của hệ điều hành đã được
Google phát hành chính thức bằng cách khởi chạy trình SDK
Manager.
Chúng ta sẽ đánh dấu vào mỗi phiên bản Android tương ứng cần tải
và mở rộng mục này để xem các thành phần đi kèm phiên bản bao
gồm phiên bản mới nhất của các công cụ hỗ trợ, thư viện tích hợp,
tài liệu hướng dẫn và các ví dụ minh họa.
Trang 10
Lập trình Java
Trung tâm tin học – ĐH KHTN TP.HCM
Để sử dụng cac hàm API của Google (bao gồm cả Maps API) chúng
ta nên chọn cả mục Google APIs.
Sau khi cài Plugin ADT, ta sẽ thấy xuất hiện 2 biểu tượng trên thanh
công cụ của Eclipse.
Biểu tượng đầu tiên là Android SDK Manager, biểu tượng thứ hai là
Android Virtual Device.
Android SDK Manager quản lí các phiên bản Android. Ứng với từng
phiên bản là các tài liệu hướng dẫn, các ví dụ minh họa và các hàm
API...Nhấn vào biểu tượng để khởi động Android SDK
Manager và ADT sẽ tượng động cập nhật các gói mới, bạn có thể
lựa chọn phiên bản Android hoặc các công cụ cần thiết và ấn Install
Pakages.
Trang 11
Lập trình Java
Trung tâm tin học – ĐH KHTN TP.HCM
Hình 1 – 8. Tải và cài đặt bộ SDK với SDK Manager.
3. Cài đặt và sử dụng Android Virtual Device (AVD)
Android Virtual Device (AVD), cho phép lập trình viên tạo và quản lí
các thiết bị ảo. Để tạo thiết bị ảo ta khởi động AVD, ta chọn New,
một hộp thoại mới hiện ra và điền vào các thông tin sau:
a. Name: tên thiết ảo cần tạo (thường đặt tên theo phiên
bản).
b. Target: phiên bản Android muốn thực thi trên thiết bị ảo
này.
Trang 12
Lập trình Java
Trung tâm tin học – ĐH KHTN TP.HCM
c. CPU/ABI: giả lập chip xử lý cho thiết bị ảo, mặc định là ARM
(armeabi-v7a) hoặc Intel Atom đối với từng phiên bản khác
nhau.
d. SD Card: cấp phát bộ lưu trữ ngoài cho thiết bị hoặc trỏ
đến tập tin ảnh có sẵn.
e. Snapshot: bật tắt chế độ chụp màn hình.
f. Skin: định nghĩa độ phân giải cũng như kích thước màn
hình cho thiết bị ảo.
g. Hardware: bổ sung các thuộc tính phụ về phần cứng cho
thiết bị. Ở đây ta cần bổ sung thêm thuộc tính Keyboard
Support để có thể nhập liệu vào thiết bị ảo từ bàn phím
máy tính cá nhân.
Trang 13
Lập trình Java
Trung tâm tin học – ĐH KHTN TP.HCM
Hình 1 – 10. Cửa sổ thiết lập máy ảo (AVD).
Nhấn Create AVD để kết thúc quá trình tạo thiết bị ảo. Danh sách
các thiết bị ảo được liệt kê trên bảng bên tay phải, ta có nhấn chọn
để khởi động (Start) hoặc các tuỳ chỉnh (Edit), xoá (Delete) và xem
lại thông số thiết bị (Details).
Trang 14
Lập trình Java
Trung tâm tin học – ĐH KHTN TP.HCM
IV. Xây dựng đề án Android
Sau khi đã tìm hiểu về kiến trúc Android và môi trường phát triển
của ứng dụng Android, ta tiến hành xây dựng đề án Android.
Để tạo đề án Android ta sẽ dùng công cụ Android New Project
Wizard theo các bước sau:
1. Từ thanh tác vụ của Eclipse chọn File New Android
Application Project.
2. Trong hộp thoại mới xuất hiện điền các thông tin sau:
Project Name là tên của đề án.
Application Name là tên ứng dụng mà chúng ta sẽ tạo.
Package Name là tên định danh của gói phần mềm được
hệ thống lưu trữ trên thiết bị khi cài đặt ứng dụng.
Thường sẽ được đặt theo tên của một tổ chức hoặc cá
nhân tạo ra ứng dụng. Bắt buộc phải có 2 trường dữ liệu
trở lên và ngăn nhau bởi dấu chấm.
Ví dụ: “com.your-company.demoapplication”.
Build SDK: chính là phiên bản mà lập trình viên sẽ phát
triển ứng dụng, mặc nhiên các hàm hỗ trợ sẽ được tích
hợp nhằm tối ưu hoá ứng dụng trên phiên bản này.
Minimum Required SDK: phiên bản thấp nhất được chỉ
định để chạy ứng dụng. Một số các hàm API sẽ được gọi
bổ sung trong phần thư viện hỗ trợ.
Create custom launcher icon: đánh dấu vào phần này để
thiết lập biểu tượng cho ứng dụng bằng công cụ có sẵn
trong ADT.
Mark this project as a library: đánh dấu cho biết chúng ta
đang cần tạo ra một đề án mới dạng thư viện để sử dụng.
Location: nơi dùng để lưu trữ đề án. Có thể để mặc định
hoặc tạo ra nơi lưu trữ mới bằng cách đánh dấu hoặc huỷ
đánh dấu phần Create Project in Workspace.
3. Nhấn Next qua hộp thoại tiếp theo sẽ là nơi để chúng ta tạo ra
biểu tượng cho ứng dụng nếu như hộp thoại trước chúng ta
Trang 15
Lập trình Java
Trung tâm tin học – ĐH KHTN TP.HCM
có đánh dấu vào phần “Create custom launcher icon”. Ở đây
ta có thể chọn Image để chọn các tập tin ảnh, hoặc Clipart là
các biểu tượng có sẵn và Text nếu muốn hiển thị thông tin lên
biểu tượng.
4. Tiếp tục nhấn Next ta sẽ qua hộp thoại tạo Activity (có thể
tạm hiểu là màn hình ứng dụng đầu tiên). Ở đây, chúng ta nên
chọn Empty Actitvity.
5. Trong hộp thoại cuối cùng, ta sẽ thiết lập thêm một số các
thông số cho Activity như tên, giao diện sẽ dùng, các điều
hướng trên (chỉ hỗ trợ từ phiên bản Android 4.0). Nhấn Finish
để hoàn thành việc tạo đề án.
Trang 16
Lập trình Java
Trung tâm tin học – ĐH KHTN TP.HCM
Hình 1 – 9. Cấu trúc một đề án Android.
Trang 17
Lập trình Java
Trung tâm tin học – ĐH KHTN TP.HCM
Trong đề án vừa tạo trong thư mục src sẽ có một tập tin Java, đó
chính là tập tin chứa Activity mà chúng ta đã tạo ra trong phần tạo
mới đề án.Về cơ bản Activity có khái niệm giống Form trong lập
trình .NET.
1/ src: Thư mục này chứa các file mã nguồn .java cho dự án của
bạn.
2/ gen: Thư mục này chứa file R.java - 1 file được trình biên
dịch sinh ra có khả năng tham chiếu tới tất cả các tài nguyên
trong dự án. Bạn không nên chỉnh sửa file này.
3/ bin: Thư mục này chứa các file *.apk (Android Package file)
được build bởi ADT.
4/ res/drawable-hdpi: Đây là thư mục chứa các đối tượng
drawble được thiết kế dành cho các màn hình có độ phân giải
cao.
5/ res/layout: Đây là thư mục chứa các file layout cho việc thiết
kế giao diện.
6/ res/values: Đây là thư mục dành cho các file XML khác chứa
1 tập hợp các tài nguyên, ví dụ như: các định nghĩa về strings,
colors.
7/ AndroidManifest.xml: Đây là file manifest mô tả các đặc
điểm cô bản của ứng dụng và định nghĩa các components.
Ngoài ra còn có thư mục assets chứa tất cả các tập tin không biên
dịch như : âm thanh, hình ảnh, tập tin CSDL của ứng dụng…
Trang 18
Lập trình Java
Trung tâm tin học – ĐH KHTN TP.HCM
Bài 2: Layout và các điều khiển cơ bản.
I. Layout
Các điều khiển được chứa trong Layout.
Để thiết kế giao diện tốt cho Android thì trước tiên chúng ta phải
biết sử dụng một số Layout cơ bản trong Android, đồng thời chúng
ta phải biết kết hợp các Layout này lại với nhau để cho ra được giao
diện phức tạp như ý muốn.
1. Cách tạo một Layout mới
Chọn File New Android XML File Linear Layout (layout bạn
muốn tạo – bạn có thể chọn Relative Layout, Table Layout, …).
Hình 2 – 1. Tạo layout
Trang 19
Lập trình Java
Trung tâm tin học – ĐH KHTN TP.HCM
Hình 2 - 2. Tạo layout
2. Code kết nối layout vào Activity
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_man_hinh_chinh);
}
3. HierarchyViewer
Một Layout phải được kết nối vào Activity nào đó thông qua hàm
setContentView, Android sẽ có cơ chế dịch XML thành Java code.
Trang 20
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Lập trình Java", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
- giao_trinh_lap_trinh_java.pdf