Tải bản đầy đủ (.pdf) (48 trang)

Xây dựng kho ứng dụng thông tin tổng hợp trên nền tảng android

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.3 MB, 48 trang )

ĐỒ ÁN TỐT NGHIỆP

LỜI CẢM ƠN
Trong suốt quá trình học tập ở Trường Viện Đại Học Mở Hà Nội, em đã được
tiếp thu và học hỏi rất nhiều kiến thức từ các thầy cô giáo. Đặc biệt là sự tận tình, ân
cần chỉ bảo của các thầy cô Khoa Điện Tử Thông Tin đã trang bị cho em những kiến
thức quý báu cũng như là hành trang và nền tảng để em vững bước hơn khi vào môi
trường làm việc đầy thử thách ngoài xã hội. Em xin gửi lời cảm ơn trân thành và sâu
sắc đến các thầy cô trong khoa, cùng thầy giáo Đặng Hải Đăng - người đã tận tình
hướng dẫn và đóng góp ý kiến cho em trong suốt thời gian thực hiện đồ án này.
Dù đã cố gắng rất nhiều nhưng cũng không tránh khỏi thiếu sót và hạn chế trong
quá trình làm đồ án. Em rất mong nhận được sự thông cảm và chỉ bảo cũng như những
đóng góp trân thành của các thầy cô và bạn bè để bài đồ án được tốt hơn.

GVHH: TS. Đặng Hải Đăng

1

SVTT: Trần Ngọc Hiếu


ĐỒ ÁN TỐT NGHIỆP

NHẬN XÉT
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................


.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
Hà Nội, tháng 5 năm 2017
Giáo viên hướng dẫn

TS. Đặng Hải Đăng
GVHH: TS. Đặng Hải Đăng

2

SVTT: Trần Ngọc Hiếu


ĐỒ ÁN TỐT NGHIỆP

LỜI NÓI ĐẦU
Thế giới ngày nay đã có nhiều tiến bộ mạnh mẽ về công nghệ thông
tin(CNTT) từ một tiềm năng thông tin đã trở thành một tài nguyên thực sự,trở
thành sản phẩm hàng hóa trong xã hội tạo ra một sự thay đổi to lớn trong lực
lượng sản xuất,cơ sở hạ tầng, cấu trúc kinh tế, tính chất lao động và cả cách thức
quản lí trong các lĩnh vực xã hội.
Trong những năm gần đây, nền công nghệ thông tin nước ta cũng đã có

phát triển trên mọi lĩnh vực trong cuộc sống cũng như lĩnh vực quản lí xã hội.
Một trong những lĩnh vực mà công nghệ thông tin sử dụng phổ biến hiện nay là
sản xuất và phát triển phần mềm trên điện thoại di động. Rất nhiều các dòng
điện thoại thông minh được phát triển một cách mạnh mẽ. Chúng ta có thể sử
dụng điện thoại để lên internet, xem phim, nghe nhạc, chơi game....và rất nhiều
việc giải trí khác. Từ lí do này em đã lên ý tưởng và xây dựng một app thông tin
trên nền tảng android.
Do kiến thức và kinh nghiệm của bản thân còn hạn chế nên đồ án không
tránh khỏi những thiếu xót. Rất mong được sự đóng góp của quý thầy cô và các
bạn. Cuối cùng xin cảm ơn thầy giáo TS. Đặng Hải Đăng và bạn bè đã giúp em
thực hiện đồ án này.

GVHH: TS. Đặng Hải Đăng

3

SVTT: Trần Ngọc Hiếu


ĐỒ ÁN TỐT NGHIỆP

MỤC LỤC
LỜI NÓI ĐẦU ............................................................................................................................... 3
CHƢƠNG I: GIỚI THIỆU CHUNG ......................................................................................... 8
CHƢƠNG II: CƠ SỞ LÝ THUYẾT ........................................................................................ 10
I.Kiến trúc của android................................................................................................................ 10
1.1 Tầng ứng dụng(Application Layer) ............................................................................... 11
1.2 Application Framework.................................................................................................. 11
1.3 Library............................................................................................................................. 12
1.4 Android runtime............................................................................................................. 12

1.5 Linux kernel..................................................................................................................... 13
II.Android studio .......................................................................................................................... 13
III.Máy ảo Genemotion ............................................................................................................... 14
IV.Các thành phần chính trong Android Project ..................................................................... 16
4.1 AndroidManifest.xml ................................................................................................... 16
4.2 File R.java ....................................................................................................................... 17
V.Chu kỳ ứng dụng android........................................................................................................ 18
5.1 Chu kì sống thành phần.................................................................................................. 19
5.2 Activity Stack................................................................................................................... 19
5.3 Các trạng thái của chu trình sống ................................................................................. 20
VI. Các thành phần của giao diện.............................................................................................. 22
6.1 Đơn vị đo kích thước trong Android.............................................................................. 22
6.2 View và ViewGroup ........................................................................................................ 23
6.3 Button .............................................................................................................................. 25
6.4 ListView ........................................................................................................................... 25
6.5 TextView .......................................................................................................................... 26

GVHH: TS. Đặng Hải Đăng

4

SVTT: Trần Ngọc Hiếu


ĐỒ ÁN TỐT NGHIỆP
6.6 Menu và Action Bar........................................................................................................ 27
6.7 Activity and intent ........................................................................................................... 29
6.8 WebView .......................................................................................................................... 30
6.9 ImageView....................................................................................................................... 31
VII. XML ....................................................................................................................................... 31

VIII.RSS ........................................................................................................................................ 32
XIX. Thư viện Picasso ................................................................................................................. 32
CHƢƠNG III: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG ................................................. 33
I.Đặc tả bài toán ........................................................................................................................... 33
II. Sơ đồ thiết kế hệ thống ........................................................................................................... 34
2.1.Màn hình chính: .............................................................................................................. 34
2.2.Phân chia từng màn hình chức năng............................................................................. 35
III.Giao diện chính của hệ thống : ............................................................................................ 37
3.1 AndroidManifest.xml ...................................................................................................... 37
3.3.Chức năng đọc báo......................................................................................................... 40
3.4.Giao diện chức năng đọc sách....................................................................................... 41
3.5 Giao diện chức năng đọc truyện tranh.......................................................................... 42
3.6. Giao diện chức năng từ Google.................................................................................... 43
3.7 Giao diện chức năng nghe nhạc .................................................................................... 44
3.8.Giao diện chức năng xem video..................................................................................... 45
3.9 Menu ................................................................................................................................ 45
3.10. Giao diện chức năng xem lại những thông tin đã xem............................................. 46
III.Kết luận ................................................................................................................................... 47
TÀI LIỆU THAM KHẢO.......................................................................................................... 48

GVHH: TS. Đặng Hải Đăng

5

SVTT: Trần Ngọc Hiếu


ĐỒ ÁN TỐT NGHIỆP

PHỤ LỤC HÌNH ẢNH

Hình 1: Cấu trúc stack của hệ thống android. ............................................................................ 10
Hình 2:Hình ảnh giao diện chính của máy ảo Genymotion ....................................................... 15
Hình 3: Hình ảnh máy ảo Samsung Galaxy S6- 5.0.0-API 21 ................................................... 15
Hình 4: Chu kì sống chu kì ........................................................................................................... 19
Hình 5: Activity Stack ................................................................................................................... 19
Hình 6: Mô tả vòng đời của Activity ............................................................................................ 20
Hình 7 : Hình ảnh kích thước đo thực tế ..................................................................................... 23
Hình 8 :Mô hình sử dụng View. ................................................................................................... 23
Hình 9: 1 số thuộc tính chung của View và ViewGroup............................................................. 24
Hình 10: Bố trí các widget sử dụng LinearLayout ..................................................................... 25
Hình 11: Danh sách ListView....................................................................................................... 26
Hình 12: Giao diện của menu ...................................................................................................... 28
Hình 13: Giao diện Action Bar .................................................................................................... 29
Hình 14 :truyền dữ liệu giữa 2 Activity ....................................................................................... 30
Hình 15: ImageView ..................................................................................................................... 31
Hình 16: Layout màn hình chức năng chính ............................................................................... 34
Hình 17: Layout chức năng bậc 2 và bậc 3................................................................................. 35
Hình 18: Nhóm chức năng web .................................................................................................... 36
Hình 19: Nhóm chức năng khác................................................................................................... 36
Hình 20: Giao diện chính của ứng dụng ..................................................................................... 38
Hình 21 :Danh sách các chuyên mục trang báo cung cấp. ........................................................ 40

GVHH: TS. Đặng Hải Đăng

6

SVTT: Trần Ngọc Hiếu


ĐỒ ÁN TỐT NGHIỆP

Hình 22: Danh sách các tin tức được cập nhật........................................................................... 40
Hình 23: Đọc tin tức ..................................................................................................................... 41
Hình 24: Giao diện màn hình đọc sách ....................................................................................... 42
Hình 25: Giao diện chính của web truyện tranh......................................................................... 42
Hinh 26 : Khung hình đọc truyện tranh....................................................................................... 43
Hinh 27 : Giao diện tìm kiếm từ google ...................................................................................... 44
Hình 28 : Giao diện chức năng nghe nhạc.................................................................................. 44
Hình 29: Giao diện chức năng xem video ................................................................................... 45
Hình 30: Giao diện của menu và ActionBar ............................................................................... 46
Hình 31 : Click lịch sử xem .......................................................................................................... 46

GVHH: TS. Đặng Hải Đăng

7

SVTT: Trần Ngọc Hiếu


ĐỒ ÁN TỐT NGHIỆP

CHƢƠNG I: GIỚI THIỆU CHUNG
Android là hệ điều hành miễn phí, mã nguồn mở, được phát triển bởi "gã khổng
lồ" Google. Android 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 như điện thoại thông minh và máy tính bảng.Phiên bản
mới nhất của Android có hỗ trợ thêm các thiết bị khác như ô-tô, đồng hồ thông minh
và TV. Ban đầu, Android được phát triển bởi Android Corporation, với sự hỗ trợ tài
chính từ Google và sau này được chính Google mua lại vào năm 2005. Android ra mắt
vào năm 2007 cùng với tuyên bố thành lập Liên minh thiết bị cầm tay mở (Open
Handset Alliance - một hiệp hội gồm các công
ty phần cứng, phần mềm, và viễn thông với mục tiêu đẩy mạnh các tiêu chuẩn mở cho

các thiết bị di động. Chiếc điện thoại đầu tiên chạy Android được bán vào tháng 10
năm 2008.
Android có mã nguồn mở và Google đã phát hành mã nguồn theo Giấy phép
Apache. Chính mã nguồn mở cùng với một giấy phép không có nhiều ràng buộc đã
cho phép các nhà phát triển thiết bị, mạng di động và các lập trình viên nhiệt huyết
được tùy biến và phân phối Android một cách tự do.
Ngoài ra, Android còn có một cộng đồng lập trình viên đông đảo, chuyên viết các
ứng dụng để mở rộng chức năng của thiết bị bằng ngôn ngữ lập trình Java có sửa đổi.
Vào tháng 7 năm 2013, có hơn một triệu ứng dụng cho thiết bị Android được công bố,
và số lượt tải ứng dụng từ Google Play, cửa hàng ứng dụng chính của Android, ước
tính đạt khoảng 50 tỷ. Một cuộc khảo sát các nhà phát triển vào tháng 4 - 5 năm 2013
cho thấy hơn 71% lập trình viên cho di động đã phát triển ứng dụng cho Android. Tại
sự kiện Google I/O 2014( "gã khổng lồ" công bố
đã có hơn một tỉ người dùng Android hàng tháng, trong khi con số này vào tháng 6
năm 2013 mới chỉ là 538 triệu.
Những yếu tố trên đã giúp Android trở thành nền tảng điện thoại thông minh phổ
biến nhất thế giới, vượt qua Symbian vào quý 4 năm 2010 (chiếm 33%), và đượ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

GVHH: TS. Đặng Hải Đăng

8

SVTT: Trần Ngọc Hiếu


ĐỒ ÁN TỐT NGHIỆP
tinh chỉnh, giá rẻ để chạy trên các thiết bị công nghệ cao thay vì xây dựng từ đầu. Kết
quả là mặc dù được thiết kế để chạy trên điện thoại và máy tính bảng, Android đã xuất
hiện trên TV, máy chơi game, đồng hồ thông minh, ô-tô và các thiết bị điện tử khác.

Bản chất mở của Android cũng khích lệ một đội ngũ đông đảo lập trình viên và những
người đam mê sử dụng mã nguồn mở tạo ra những dự án do cộng đồng quản lý.
Những dự án này bổ sung các tính năng cao cấp cho những người dùng thích tìm tòi
hoặc đưa Android vào các thiết bị ban đầu chạy hệ điều hành khác.
Android chiếm 75% thị phần điện thoại thông minh trên toàn thế giới vào thời
điểm quý 3 năm 2012, với tổng cộng 750 triệu thiết bị đã được kích hoạt. Vào tháng 4
năm 2013 đã có 1,5 triệu lượt kích hoạt mỗi ngày và tổng số thiết bị Android được
kích hoạt lên đến 1 tỷ vào tháng 9 năm 2013. Sự thành công của hệ điều hành này
cũng khiến nó trở thành mục tiêu trong các vụ kiện liên quan đến bằng phát minh, góp
mặt trong cái gọi là "cuộc chiến điện thoại thông minh" giữa các công ty công nghệ.

GVHH: TS. Đặng Hải Đăng

9

SVTT: Trần Ngọc Hiếu


ĐỒ ÁN TỐT NGHIỆP

CHƢƠNG II: CƠ SỞ LÝ THUYẾT
I.Kiến trúc của android
Mô hình sau thể hiện 1 cách tổng quát các thành phần của hệ điều hành
android.Mỗi 1 phần sẽ được đặc tả chi tiết dưới đây.

Hình 1: Cấu trúc stack của hệ thống android.

GVHH: TS. Đặng Hải Đăng

10


SVTT: Trần Ngọc Hiếu


ĐỒ ÁN TỐT NGHIỆP
1.1 Tầng ứng dụng(Application Layer)
Android được tích hợp sẵn 1 số ứng dụng cần thiết cơ bản như: contacts , browser,
camera, Phone,...Tất cả các ứng dụng chạy trên hệ điều hành android đều được viết
bằng ngôn ngữ Java.
1.2 Application Framework
Bằng cách cung cấp 1 nền tảng mở Android cung cấp các nhà phát triển khả năng
xây dựng ứng dụng cực kì phong phú và sáng tạo. Nhà phát triển được tự do tận dụng
các thiết bị phần cứng,thông tin địa điểm truy cập,các dịch vụ chạy nền, thiết lập hệ
thống thông báo, thêm các thông báo để các thanh trạng thái ,nhiều và nhiều hơn nữa.
Nhà phát triển có thể truy cập vào các API cùng 1 khuôn khổ sử dụng bởi các ứng
dụng lõi.Các kiến trúc ứng dụng được thiết kế đơn giản hóa việc sử dụng lại các thành
phần; bất kì ứng dụng có thể xuất bản khả năng của mình và ứng dụng nào khác sau đó
có thể sử dụng những khả năng(có thể hạn chế bảo mật được thực thi bởi khuôn khổ).
Cơ chế này cho phép các thành phần tương tự sẽ được thay thế bởi người sử dụng.
Cơ bản tất cả các ứng dụng là 1 bộ các dịch vụ và các hệ thống bao gồm:


Một tập hợp rất nhiều các View có khả năng thừa kế lẫn nhau dùng để thiết kế
phần giao diện ứng dụng như: gridView, tableview, linearLayout...



Một “context Provider” cho phép các ứng dụng có thể truy xuất dữ liệu từ các
ứng dụng khác(chẳng hạn như contacts) hoặc là chia sẻ dữ liệu giữa các ứng
dụng đó




Một “Resource Manager” cung cấp truy xuất tới các tài nguyên không phải là
mã nguồn,chẳng hạn như: localized strings,graphics, and layout files.



Một “Notifycation Manager” cho phép tất cả các ứng dụng hiển thị các custom
alerts trong status bar.
Activity Manager được dùng để quản lí chu trình sống của các ứng dụng và điều

hướng activity.

GVHH: TS. Đặng Hải Đăng

11

SVTT: Trần Ngọc Hiếu


ĐỒ ÁN TỐT NGHIỆP
1.3 Library
Android bao gồm 1 tập hợp các thư viện C/C++ được thực hiện bởi nhiều thành
phần khác nhau trong hệ điều hành Android.Điều này được thể hiện qua các nền tảng
ứng dụng Android.Một số các thư viện cơ bản được liệt kê dưới đây:


System C library : a BSD-derived implementation of the standrad C system
library(libc),tuned for embedded Linux-based devices.




Media Libraries-based on PacketVideo’s OpenCORE,the libraries support

playback and recording of many of popular audio and video formats, as well as
static image files, including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG.


Surface Manager-Quản lí truy xuất vào hệ thống quản lí.



LibWebCore - a modern web browser engine which powers both and android
browser and an embedbable web view.



SGL -the underlying 2D graphics engine.



3D Libraries -an implementation based on OpenGL ES 1.0 APIs;libraries use
either hardware 3D acceleration (where avaiable)

or the included, highly

optimized 3D software rasterizer.



FreeType-bitmap and vector font rendering
SQLite -a powerful and lightweight relational database engine available to all
applications
1.4 Android runtime

Android bao gồm 1 tập hợp các thư viện cơ bản mà cung cấp hầu hết các chức
năng có sẵn trong các thư viện lõi của ngôn ngữ lập trình Java. Tất cả các ứng dụng
Android đều chạy trong tiến trình riêng. Máy ảo Dalvik đã được viết để cho 1 thiết bị
có thể chạy nhiều máy ảo 1 cách hiểu quả. Các VM Dalvik thực thi các tập tin thực thi
Dalvik(dex). Định dạng cả tối ưu hóa cho bộ nhớ tối thiểu.VM là dựa trên registerbased và chạy các lớp đã đc biên dịch bởi 1 trình biên dịch Java để chuyển thành các

GVHH: TS. Đặng Hải Đăng

12

SVTT: Trần Ngọc Hiếu


ĐỒ ÁN TỐT NGHIỆP
định dạng dex.Các VM Dalvik dựa vào nhân Linux cho các chức năng cơ bản như bộ
nhờ luồng và quản lí bộ nhớ thấp.
1.5 Linux kernel
Android dựa trên Linux phiên bản 2.6 cho hệ thống dịch vụ cốt lõi như dịch vụ
security, memory management , process management, network stack, and driver
model.Kernel Linux hoạt động như một lớp trìu tượng hóa giữa phần cứng và phần
còn lại của phần mềm stack.
II.Android studio
Android Studio là môi trường phát triển tích hợp (IDE) chính thức dành cho phát
triển nền tảng Android.
Nó được ra mắt vào ngày 16 tháng 5, 2013 tại hội nghị Google I/O. Android Studio

được phát hành miễn phí theo giấy phép Apache Licence 2.0.
Android Studio ở giai đoạn truy cập xem trước sớm bắt đầu từ phiên bản 0.1 vào
tháng 5.2013, sau đó bước vào giai đoạn beta từ phiên bản 0.8 được phát hành vào
tháng 6, 2014. Phiên bản ổn định đầu tiên được ra mắt vào tháng 12, 2014, bắt đầu từ
phiên bản 1.0.


Dựa trên phần mềm IntelliJ IDEA của JetBrains, Android Studio được thiết kế
đặc biệt để phát triển ứng dụngAndroid SDK bản mới nhất. Sau khi tải về thì
bạn cài đặt thì bạn sẽ có một folder có tên "Android-sdk-xxx", hãy nhớ đường
dẫn của nó nhé. Với những bạn xài Mac với Linux thì không cần cài, chỉ cần
giải nén để có được một folder giống như trên. Nếu vẫn còn lúng túng thì mời
anh em xem qua bài viết hướng dẫn về Android SDK.



Trình máy ảo VirtualBox mới nhất, hãy lựa chọn cho phù hợp với hệ điều
hành mình đang sử dụng. Tải về xong thì cài VirtualBox như cài phần mềm
bình thường rồi chạy lên một lần.



Tải về Genymotion, cũng lựa bản phù hợp với hệ điều hành trên máy tính của
mình. Tải xong thì cài vào máy luôn. Trong lúc chờ tải thì hãy đăng kí cho
mình một tài khoản Genymotion miễn phí ở đây. Nhớ kiểm tra email sau khi

GVHH: TS. Đặng Hải Đăng

13


SVTT: Trần Ngọc Hiếu


ĐỒ ÁN TỐT NGHIỆP
đăng kí để kích hoạt tài khoản Android. Nó hỗ trợ các hệ điều
hành Windows, Mac OS Xvà Linux,và là IDE chính thức của Google để phát
triển ứng dụng Android gốc để thay thế cho Android Development
Tools (ADT) dựa trên Eclipse.
III.Máy ảo Genemotion
Để sử dụng Genymotion, trước hết các bạn cần tải những công cụ sau:
Khi đã tải và cài đặt xong Genymotion, hãy chạy ứng dụng này lên. Chúng ta sẽ đi
qua một số bước thiết lập như sau:
1. Đăng nhập vào ứng dụng Genymotion bằng tài khoản mà bạn mới vừa đăng kí ở
trên
2. Bạn sẽ được hỏi về việc chọn thiết bị giả lập môi trường Android ảo. Có rất
nhiều máy ảo, ví dụ như HTC One, Xperia Z, Samsung Galaxy S4 cho đến các máy
Nexus, có cả một số tablet ở đây nữa. Chọn lấy máy nào đó bạn thích, rồi tiếp tục nhấn
nút Add và nút Next. Đợi cho máy ảo tải về, có thể sẽ hơi lâu đấy vì đến một hai trăm
MB lận. Nên chọn những máy ảo có chữ "with Google Apps" để có sẵn những kho
Google Play.
4. Quay trở lại giao diện chính của Genymotion, nhấp vào máy ảo mà bạn muốn
chạy. Chờ một lát là máy sẽ xuất hiện lên như hình bên dưới. Tiếp đó bạn có thể dùng
chuột để tương tác với máy ảo Android, đăng nhập tài khoản Google, thiết lập màn
hình, tải app, nghịch app, vào phần settings..
5. Đừng quên là bạn có thêm một loạt nút ảo giả lập ở bên cạnh màn hình đấy nhé.
Có cả nút để truy cập vào webcam với dữ liệu địa điểm nữa.

GVHH: TS. Đặng Hải Đăng

14


SVTT: Trần Ngọc Hiếu


ĐỒ ÁN TỐT NGHIỆP

Hình 2:Hình ảnh giao diện chính của máy ảo Genymotion

Hình 3: Hình ảnh máy ảo Samsung Galaxy S6- 5.0.0-API 21

GVHH: TS. Đặng Hải Đăng

15

SVTT: Trần Ngọc Hiếu


ĐỒ ÁN TỐT NGHIỆP
IV.Các thành phần chính trong Android Project
4.1

AndroidManifest.xml

Trong bất kì một project Android nào khi tạo ra đều có một file
AndroidManifest.xml, file này được dùng để định nghĩa các screen sử dụng, các
permission cũng như các theme cho ứng dụng. Đồng thời nó cũng chứa thông tin về
phiên bản SDK cũng như main activity sẽ chạy đầu tiên.
File này được tự động sinh ra khi tạo một Android project. Trong file manifest
bao
giờ cũng có 3 thành phần chính đó là: application, permission và version.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android=" />package="com.demoproject.demoweb">
<uses-permission android:name="android.permission.INTERNET"/>

android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>

GVHH: TS. Đặng Hải Đăng

16

SVTT: Trần Ngọc Hiếu


ĐỒ ÁN TỐT NGHIỆP
4.2 File R.java

File R.java là một file tự động sinh ra ngay khi tạo ứng dụng, file này được sử dụng
để quản lý các thuộc tính được khai báo trong file XML của ứng dụng và các tài
nguyên hình ảnh.
Mã nguồn của file R.java được tự động sinh khi có bất kì một sự kiện nào xảy xa
làm thay đổi các thuộc tính trong ứng dụng. Chẳng hạn như, bạn kéo và thả một file
hình ảnh từ bên ngoài vào project thì ngay lập tức thuộc tính đường dẫn đến file đó
cũng sẽ được hình thành trong file R.java hoặc xoá một file hình ảnh thì đường dẫn
tương ứng đến hình ảnh đó cũng tự động bị xoá.
Có thể nói file R.java hoàn toàn không cần phải đụng chạm gì đến trong cả quá trình
xây dựng ứng dụng.

package dtu.k12tpm.pbs.activity;
public final class R {
public static final class array {
public static final int array_timeout=0x7f050000;
}
public static final class attr {
}
public static final class drawable {
public static final int add=0x7f020000;
public static final int backup_icon=0x7f020001;
public static final int checkall=0x7f020002;
}
public static final class id {
public static final int Button01=0x7f070006;
public static final int Button02=0x7f070007;
public static final int CheckBox01=0x7f070017;

GVHH: TS. Đặng Hải Đăng


17

SVTT: Trần Ngọc Hiếu


ĐỒ ÁN TỐT NGHIỆP
}
public static final class layout {
public static final int contact_list=0x7f030000;
public static final int content_sender=0x7f030001;
public static final int friend_list=0x7f030002;
}
public static final class menu {
public static final int context_menu=0x7f060000;
public static final int menu_options=0x7f060001;
public static final int options_menu=0x7f060002;
}
public static final class string {
public static final int app_name=0x7f040001;
public static final int context_menu_item_delete=0x7f04000b;
public static final int context_menu_item_edit=0x7f04000a;
}
}

V.Chu kỳ ứng dụng android
Một tiến trình android gói gọn 1 ứng dụng Android đã được tạo ra khi codes sẽ
được run và sẽ còn được chạy cho đến khi:
 Nó không phụ thuộc
 Hệ thống cần lấy lại bộ nhớ mà n chiếm giữ cho các ứng dụng khác
Một sự khác biệt và đặc tính cơ bản của Android là thời gian sống của tiến trình

ứng dụng không được điều khiển trực tiếp bởi chính nó. Thay vào đó,nó được xác định
bởi hệ thống qua 1 kết hợp của :

GVHH: TS. Đặng Hải Đăng

18

SVTT: Trần Ngọc Hiếu


ĐỒ ÁN TỐT NGHIỆP
 Những phần của ứng dụng mà hệ thống biết đang chạy.
 Những phần như thế nào quan trọng với người dùng, bao nhiêu vùng chiếm nhớ
trong hệ thống.
5.1 Chu kì sống thành phần
Các thành phần ứng dụng có 1 chu kì sống,tức là mỗi thành phần từ lúc bắt đầu
khởi tạo và đến thời điểm kết thúc. Giữa đó đôi lúc có thể là active hoặc inactive, hoặc
là trong trường hợp activies nó có thể visible hoặc invisible

Start

Chu kì sống 1 ứng dụng Android
active/inactive visible/invisible

End

Hình 4: Chu kì sống chu kì
5.2 Activity Stack
Bên trong hệ thống các Activity được quản lí như 1 activity stack. Khi 1 activity
mới được start ,nó được đặt ở đỉnh của stack và trở thành Activity đang chạy Activity

trước sẽ ở dưới Activity mới và sẽ không thấy trong suốt quá trình Activity mới tồn
tại. Nếu người dùng nhấn nút Back thì activity kế tiếp của stack sẽ di chuyển lên và trở
thành active.

Hình 5: Activity Stack

GVHH: TS. Đặng Hải Đăng

19

SVTT: Trần Ngọc Hiếu


ĐỒ ÁN TỐT NGHIỆP
5.3 Các trạng thái của chu trình sống

Hình 6: Mô tả vòng đời của Activity
Mỗi activity là một lớp (class) kế thừa từ lớp android.app. Activity hoặc các lớp kế
thừa từ nó. Ta xem lại Activity trong ví dụ ở chương trước:
package vn.edu.humg.android_course.HelloWorld;
import android.app.Activity;
import android.os.Bundle;
public class HelloWorldActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

GVHH: TS. Đặng Hải Đăng


20

SVTT: Trần Ngọc Hiếu


ĐỒ ÁN TỐT NGHIỆP
setContentView(R.layout.main);
}
}
Activity này sử dụng giao diện được khai báo trong file bố cục main.xml, trong
thư mục res/layout bằng cách gọi lệnh: setContentView(R.layout.main) ;
Cũng nhắc lại là mỗi Activity cần được khai báo trong file đặc tả ứng dụng (
AndroidManifest.xml ) như đã đề cập trong chương trước.
Vòng đời của mỗi Activity trải qua các trạng thái nhất định. Tại mỗi trạng thái sẽ
có sự kiện tương ứng được gọi đến. Các sự kiện này được khai báo trong lớp cơ sở (
android.app.Activity ). Chúng ta có thể nạp chồng các sự kiện này để theo dõi vòng
đời của Activity và có những tác động thích hợp. Các sự kiện như vậy bao gồm:
onCreate() – được gọi khi Activity được khởi tạo
onStart() – được gọi khi Activity bắt đầu hiện ra (chúng ta bắt đầu nhìn thấy giao
diện)
onResume() – bắt đầu nhận các tương tác với người dùng
onPause() – được gọi khi activity bi dừng lại để chuyển qua activity khác
onStop() – được gọi khi activity biến mất khỏi màn hình
onDestroy() – được gọi khi activity bị hủy (hủy chủ động hoặc bị hủy bởi hệ thống
trong trường hợp hệ điều hành xác nhận thiếu RAM)
onRestart() – được gọi khi activity được khởi động lại sau khi đã bị dừng
Theo mặc định, Android studio sẽ tạo sẵn hàm onCreate() cho mỗi Activity mới
được tạo ra. Thông thường người lập trình sẽ viết mã nguồn (code) liên quan đến việc
khởi tạo giao diện đồ họa trong thân hàm này.


GVHH: TS. Đặng Hải Đăng

21

SVTT: Trần Ngọc Hiếu


ĐỒ ÁN TỐT NGHIỆP
VI. Các thành phần của giao diện
6.1 Đơn vị đo kích thước trong Android
Các đơn vị đo kích thước trong Android bao gồm:
 dp (hoặc dip) - Density-independent pixel (điểm ảnh không phụ thuộc vào mật
độ màn hình). Một dp tương đương với một pixel trên màn hình có mật độ 160
dpi (160 điểm ảnh trên mỗi inch màn hình). Đây là đơn vị được khuyến nghị
dùng trong hầu hết các trường hợp đặt kích thước của view trong layout. Chi
tiết hơn về mật độ màn hình được đề cập ở phần sau của giáo trình.
 sp - Scale-independent pixel, đơn vị này tương tự dp, được dùng khi mô tả kích
thước font chữ (font size)
 pt - Point. 1 point = 1/72 inch, dựa trên kích thước vật lý thật của màn hình.
 px – Pixel – một pixel vật lý trên màn hình, đơn vị này không được khuyên
dùng trong thiết kế giao diện ứng dụng vìgiao diện sẽ hiển thị không đồng
nhất trên các màn hình có độ phân giải khác nhau.
Android định nghĩa 4 loại mật độ màn hình như sau:
 Mật độ thấp: Low density (ldpi) - 120 dpi
 Mật độ trung bình: Medium density (mdpi) - 160 dpi
 Mật độ cao: High density (hdpi) - 240 dpi
 Mật độ rất cao: Extra High density (xhdpi) - 320 dpi

GVHH: TS. Đặng Hải Đăng


22

SVTT: Trần Ngọc Hiếu


ĐỒ ÁN TỐT NGHIỆP

Hình 7 : Hình ảnh kích thước đo thực tế
6.2 View và ViewGroup

Hình 8 :Mô hình sử dụng View.
Như đã đề cập ở trên, mỗi Activity muốn hiển thị giao diện đồ họa cần chứa các
thành phần giao diện khác như nút bấm, các nhãn, các ô nhập liệu, checkbox, radio
button… Những thành phần như vậy trong Android được gọi chung là cácView. Tất cả
các View đều được kế thừa từ lớp android.view.View .

GVHH: TS. Đặng Hải Đăng

23

SVTT: Trần Ngọc Hiếu


ĐỒ ÁN TỐT NGHIỆP
Một hoặc nhiều View có thể được nhóm lại với nhau thành một ViewGroup. Mỗi
ViewGroup cũng là một View, được dùng để nhóm các View con bên trong nó và
hiển thị chúng theo một thứ tự hay quy luật nào đó. Mọi ViewGroup đều được kế thừa
từ lớp android.view.ViewGroup. Các loại ViewGroup phổ biến nhất trong Android
bao gồm:
LinearLayout

AbsoluteLayout
TableLayout
RelativeLayout
FrameLayout
ScrollView
Các View và ViewGroup tạo thành giao diện của Activity và thường được mô tả
ngay trong file layout của Activity, nằm trong thư mục res/layout .

Hình 9: 1 số thuộc tính chung của View và ViewGroup

GVHH: TS. Đặng Hải Đăng

24

SVTT: Trần Ngọc Hiếu


ĐỒ ÁN TỐT NGHIỆP

Hình 10: Bố trí các widget sử dụng LinearLayout
6.3 Button
Sở dĩ widget button được giới thiệu đầu tiên trong các widget khác vì đây có thể
nói là đối tượng được sử dụng nhiều nhất trong hầu hết các ứng dụng Android.
android:id="@+id/btnsearch"
style="?android:attr/buttonStyleSmall"
android:layout_width="50dp"
android:layout_height="35dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="20dp"

android:layout_weight="0.5"
android:background="@drawable/custom_button"
android:onClick="Onclick_Search"
android:text="@string/search"
android:textColor="#FFFFFF" />

6.4 ListView
Được sử dụng để thể hiện danh sách các thông tin theo từng cell. Mỗi cell thông
thường được load lên từ 1 file XML đã được cố định trên số lượng thông tin và loại
thông tin cần được thể hiện.
Để thể hiện được list thông tin lên 1 screen cần 3 yếu tố chính:

GVHH: TS. Đặng Hải Đăng

25

SVTT: Trần Ngọc Hiếu


×