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 đủ
pdf 40 trang baolam 66060 Free
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:

  • pdfgiao_trinh_lap_trinh_java.pdf