Tiểu luận Lập trình hướng đối tượng - Đề tài: Cơ bản về lập trình Android và ứng dụng

BỘ THÔNG TIN VÀ TRUYỀN THÔNG  
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG  
---------------------------------------  
Đề tài: “Cơ bản về lập trình ANDROID và ứng dụng”  
Môn:Lập trình hướng đối tượng  
Thầy:Nguyễn Mạnh Sơn  
1
MỤC LỤC  
LỜI NÓI MỞ ĐẦU  
CHƯƠNG 1:TỔNG QUAN VỀ ANDROID  
I.Android và lịch sử phát triển  
II.Các phiên bản của Android  
III.Các thành phần của Android  
3.1.Thành phần của 1 chương trinh Android  
3.2. Thành phần giao diện một Widget.  
CHƯƠNG 2: LẬP TRÌNH CƠ BẢN ANDROID  
I.Cấu trúc một ứng dụng Android  
II.Activity Life-Cycle  
III.Android Layout  
1.RelativeLayout  
2. LinearLayout  
3.GridLayout  
4.TableLayout  
5. FrameLayout  
6.ConstraintLayout  
CHƯƠNG 3:DEMO ỨNG DỤNG  
I.Phân tích chương trình  
II.Nội dung chương trình  
TÀI LIỆU THAM KHẢO  
2
LỜI NÓI MỞ ĐẦU  
Mạng điện thoại di động xuất hiện tại Việt Nam từ đầu năm 1990 và theo thời gian số  
lượng các thuê bao cũng như các nhà cung cấp dịch vụ di động tại Việt Nam ngày càng  
tăng.Do nhu cầu trao đổi thông tin ngày càng tăng và nhu cầu sử dụng sản phẩm công  
nghệ cao nhiều tính năng,cấu hình cao,chất lượng tốt,kiểu dáng mẫu đẹp,phong phú  
nên nhà cung cấp phải luôn luôn cải thiện, nâng cao những sản phẩm của mình.Do đó việc  
xây dựng mới đầy tiềm năng hứa hẹn nhiều sphát triển vượt bậc của ngành khoa học  
kĩ thuật.  
Cùng với sự phát triển của thị trường điện thoại dị động sự phát triển mạnh mẽ của xu  
hướng lập trình phần mềm ứng dụng cho các thiết bị di động.Phần mềm,ứng dụng cho  
điện thoại di động hiện nay rất đa dạng và phong phú trên các hệ điều hành di động cũng  
phát triển mạnh mẽ đang thay đổi từng ngày. Các hệ điều hành J2ME,  
Android,IOS,Hybrid,Web dased Mobile Application đã rất phát triển trên thị trường  
truyền thống di dộng  
Trong vài năm trở lại đây, hệ điều hành Android ra đời với sự kế thừa những ưu việt của  
các hệ điều hành ra đời trước sự kết hợp của nhiều công nghệ tiên tiến nhất hiện nay,đã  
được nhà phát triển công nghệ rất nổi tiếng hiện nay là Google .Android đã nhanh chóng  
đối thủ cạnh tranh mạnh mẽ với các hệ điều hành trước đó đang hệ điều hành di  
động của tương lai và được nhiều người ưa chuộng nhất.  
3
CHƯƠNG 1:TỔNG QUAN VỀ ANDROID  
I. Android và lịch sử phát triển:  
Adroid là hệ điều hành trên điện thoại di động (và hiện nay là cả trên một số đầu  
phát HD, HD Player, TV) phát triển bởi Google và dựa trên nền tảng Linux. Lập trình  
android là một lập trình ứng dụng di động phổ biến. Trước đây, Android được phát triển  
bởi công ty liên hợp Android ( sau đó được Google mua lại vào năm 2005).  
Các nhà phát triển viết ứng dụng cho Android dựa trên ngôn ngữ Java. Sự ra mắt  
của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành lập của liên minh thiết bị  
cầm tay mã nguồn mở, bao gồm 78 công ty phần cứng, phần mềm viễn thông nhằm  
mục đính tạo nên một chuẩn mở cho điện thoại di động trong tương lai.  
4
II.Các phiên bản HĐH Android:  
Android đã trải qua một số các cập nhập kể từ lần đầu phát hành.Những cập nhập này  
nhìn chung có nhiệm vụ vá các lỗ hổng và thêm các tính năng mới vào hệ điều hành  
Android những thế hệ đầu tiên 1.0(9/2008) và 1.1(2/2009) chưa có tên gọi chính thức  
.Từ thế hệ tiếp theo,mỗi bản nâng cấp đều được đặt với những mã tên riêng dựa theo tên  
các bánh ngọt theo thứ tự bảng chữ cái từ “C-D-E-F-G-H-IHiện nay phiên bản mới nhất  
là Android 10.  
5
III. Các thành phần của Android:  
3.1 Thành phần của 1 chương trinh Android:  
1. Activity:  
Hiểu một cách nôm na thì Activity tương tự như khái niệm Window (cửa sổ hay Form)  
trong hệ điều hành Windows. Khi khởi động một ứng dụng, bao giờ cũng một Activity  
được gọi, hiển thị màn hình giao diện của ứng dụng cho phép người dùng tương tác.  
2. Intent:  
Được sử dụng để truyền các thông báo nhằm khởi tạo một Activity hoặc Service để thực  
hiện công việc bạn mong muốn  
– Ví dụ: khi mở một trang web, bạn sẽ gửi một intent đi để tạo một Activity mới hiển thị  
trang web đó  
6
Dưới đây là vòng hoạt động của 1 ứng dụng android:  
Quá trình hoạt động của Itent  
7
3. Broadcast Receiver:  
– Thành phần thu nhận các intent từ bên ngoài gửi tới  
– Ví dụ: bạn viết một chương trình thay thế cho phần gọi điện thoại mặc định của  
Android, khi đó, bạn cần 1 Broadcast Receiver để nhận các intent là các cuộc gọi đến  
4. Content Provider:  
– Kho dữ liệu chia sẻ, được dùng để quản lý và chia sẽ dữ liệu giữa các ứng dụng  
– Ví dụ: thông tin người dùng lưu trong contact, dữ liệu lưu trữ trên SQL Lite, dữ liệu lưu  
trữ trong các tận tin  
5. Manifest File  
Trước khi Android có thể khởi động một thành phần ứng dụng, phải  
biết rằng thành phần đó tồn tại. vậy, ứng dụng khai báo những thành phần của  
mình trong một manifest file được gắn vào Android package, file.apk này cũng  
giữ chứa của ứng dụng và các tài nguyên.  
thực hiện một số bổ sung để khai báo các thành phần của ứng dụng, như là nêu  
tên các thư viện ứng dụng cần đến, và xác định các quyền hạn của ứng dụng muốn được  
cấp.  
dụ như nó khai báo các Activity trong chương trình của chúng ta, khi  
khởi động chương trình thì Activity nào sẽ được thực hiện đầu tiên, các quyền  
truy cập Internet, SDCard, hay các vấn đề về gửi nhận tin nhắn, cuộc gọi...  
6. Giao diện người dùng trong Android:  
Trong một ứng dụng Android, giao diện người dùng được xây dựng bằng  
cách sử dụng View và ViewGroup đối tượng. nhiều loại quan điểm và các  
nhóm view, mỗi một trong số đó hậu duệ của lớp View. View objects là các  
đơn vị cơ bản của biểu hiện giao diện người dùng trên nền tảng Android.  
– Ví dụ: thông tin người dùng lưu trong contact, dữ liệu lưu trữ trên SQL Lite, dữ liệu lưu  
trữ trong các tận tin  
8
7. Notification:  
Đưa ra các cảnh báo mà không làm cho các Activity phải ngừng hoạt động  
Activity, Service, Broadcast Receiver và Content Provider là những thành phần chính cấu  
thành nên ứng dụng Android, bắt buộc phải khai báo trong AndroidManifest.  
3.2 Các thành phần giao diện Widget:  
rất nhiều cách bố trí giao diện.Sử dụng nhiều hơn và các loại khác nhau của các view  
group, bạn thể cấu trúc views con và view groups trong vô số cách.Xác định các nhóm  
xem được cung cấp bởi android bao gồm LinearLayout,  
RelativeLayout,TableLayout,GrildLayout và khác.  
Widget là một object View phục vụ như một giao diện để tương tác với người  
dùng.Android cung cấp một tập các widgets thực hiện đầy đủ, giống như các  
button,checkbox, và text_entry,do đó bạn thể nhanh chóng xây dựng giao diện người  
dùng của bạn. Một số widgets được cung cấp bởi Android phức tạp hơn, giống như một  
date picker,clock,và zoom control.Nhưng nó không giới hạn trong các loại widgets được  
cung cấp bởi các nền tảng Android.  
9
CHƯƠNG II: LẬP TRÌNH CƠ BẢN ANDROID.  
I.Cấu trúc của một ứng dụng Android:  
Java Source: tập tin MainActivity kế thừa class Activity.Activity một class, mà  
lớp lại tạo ra một window mặc định trên màn hình. Ở đây chúng ta có thể đặt thêm  
các thành phần (components) khác: Button, EditText, TextView, Spinner v.v. Nó  
giống như Frame của Java AWT.Activity có các phương thức tạo ra vòng đời  
: onCreate, onStop, OnResume v.v.  
10  
Generated R.java: Tập tin R.java được tạo ra một cách tự động, chứa cá ID của  
tất cả các tài nguyên trong thư mục res. Bất cứ khi nào bạn tạo một componet  
trong activity_main, thì một ID được tạo ra trong tập tin R.java. ID này sẽ được sử  
dụng trong source Java sau này.  
Contains apk file: tập tin được tạo tự động nhằm giúp ứng dụng chạy trên thiết bị  
di động.  
Thư mục Resources: chứa tập tin các tài nguyên activity_main, string,styles,..Hay cụ  
thể chứa các giao thức của ứng dụng như giao diện, hiển thị dữ liệu.  
o drawable: Đây chính là thư mục chứa các file hình ảnh, config xml… trong  
dự án android.  
o layout: Đây chính là thư mục lưu các file xml về giao diện của các màn  
hình ứng dụng của bạn.Ở trên phần số 1 bạn có các package lưu các class,  
các class này sẽ kết nối với các file xml trong thư mục layout nào để tạo nên  
một màn hình có giao diện cho người dùng thao tác.  
11  
o values: để lập trình viên định nghĩa ra các thuộc tính, giao diện, các  
config… để sử dụng cho đồng nhất đồng thời sẽ giúp người dùng tối ưu  
code khi chỉnh sửa sau này.Tập tin values gồm:  
color.xml: đây là file định nghĩa các mã màu trong dự án android  
của ban, khi sử dụng màu nào bạn chỉ cần gọi tên tên mã màu đã  
định nghĩa trong đây ra là xong.  
dimens.xml: đây là file mà bạn sẽ định nghĩa ra các kích thước như  
cỡ chữ, chiều cao, chiều rộng các view.  
strings.xml: đây là file định nghĩa các đoạn văn bản trong ứng dụng  
Android của bạn dụ như bạn có 1 đoạn văn bản sử dụng đi sử  
dụng lại trong các màn hình khác nhau, khi bạn set cứng ở nhiều nơi  
thì khi cần chỉnh sửa thì phải tìm hết tất cả sửa lại.Bây giờ bạn  
định nghĩa đoạn văn bản đó trong đây và khi dùng thì gọi ra sử dụng  
và sau này chỉnh sữa bạn chỉ cần sửa trong đây là xong, nó sẽ apply  
tất cả mọi nơi.  
styles.xml: đây chính là nơi định nghĩa các giao diện của các file  
layout trong thư mục layout mình đã nói phía trên.Kiểu như thế này  
nhé, bạn muốn chỉnh một nút Button chiều cao 10dp, chiều rộng  
10dp, màu xanh… và bạn lại sử dụng kiểu thiết kế này 5 màn hình  
khác nhau.Bạn không thể mỗi màn hình lại định nghĩa lại như thế sẽ  
làm duplicate code (lặp lại) sẽ không tối ưu tí nào cả.Thay vào đó  
bạn chỉ cần định nghĩa một file giao diện như trên và ở mỗi màn hình  
bạn chỉ cần gọi là xong.  
Mainfest: là tập tin AndroidManifest.xml chứa thông tin về package của ứng dụng,  
bao gồm các thành phần của ứng dụng như activities, services, broadcast receivers,  
content providers v.v. Có chức năng:  
o Cấp quyền một số phần trong ứng dụng.  
o Khai báo các API mà ứng dụng sẽ sử dụng.  
o Khai báo các thông tin về ứng dụng.  
II.Activity Life-Cycle:  
Android Project khi được thực hiện thành công sẽ được đóng gói thành tập tin  
*.apk, tập tin này được gọi là Application. Một Application có thể một hoặc nhiều  
Activity, mỗi Activity là một vòng đời riêng và độc lập với các Activity khác.  
Khi tạo mới một Activity nào đó cần phải khai báo, và trong nhiều Activity sẽ có  
một Activity chạy chính (Activity xuất hiện đầu tiên). Các phần khai báo này được khai  
báo trong AndroidMainifest.xml.  
12  
Quá trình xử lý các Activity.  
Mỗi Activity được kích hoạt được hệ thống đẩy vào BlackStack. Sau khi kích hoạt  
lần lượt gọi đến các callback onCreate(), onStart(), onResume() sẽ được hthng gi đến.  
Sau khi gi đến các callback trên, thì Activity mi chính thc được xem là đang  
chy (Activity running). Sơ đồ vòng đời mt Activity:  
13  
Lúc này, nếu có bt kActivity nào khác chiếm quyn hin th, thì Activity hin ti  
srơi vào trng thái onPause(). Nếu shin thca Activity khác làm cho Activity mà  
chúng ta đang nói đến không còn nhìn thy na thì onStop() sẽ được gi ngay sau đó Nếu  
Acvitity đã vào onPause() ri, tc là đang bActivity khác đè lên, mà người dùng sau đó  
quay vli Activity cũ, thì onResume() được gi. Còn nếu Activity đã vào onStop() ri,  
mà người dùng quay vli Activity cũ thì onRestart() được gi. Trong chai trường hp  
Activity rơi vào onPause() hoc onStop(), nó srt dbhthng thu hi (tc là bhy) để  
gii phóng tài nguyên, khi này nếu quay li Activity cũ, onCreate() sẽ được gi chkhông  
phi onResume() hay onRestart(). Và cui cùng, nếu mt Activity bhy mt cách có chủ  
14  
đích, chng hn như người dùng nhn nút Back System Bar, hay hàm finish() được  
gi,… thì onDestroy() sẽ được kích hot và Activity kết thúc vòng đời ca nó.  
Các trạng thái chính trong vòng đời activity  
*Running: Trng thái này khá đặc  
bit. Trng thái tm dng. Như bn  
đã làm quen trên kia, trng thái này  
xy ra khi mà Activity ca bn vn  
đang chy, người dùng vn nhìn thy,  
nhưng Activity khi này li bche mt  
phn bi mt thành phn nào đó.  
Chng hn như khi bmt dialog đè  
lên. Cái sche Activity này không  
phi hoàn toàn. Chính vì vy mà  
Activity đó tuy được người dùng  
nhìn thy nhưng không tương tác  
được.  
*Stop: Trng thái này khá ging vi  
trng thái tm dng trên kia. Nhưng  
khi này Activity bche khut hoàn  
toàn bi mt thành phn giao din  
nào đó, hoc bi mt ng dng khác.  
Và tt nhiên lúc này người dùng  
không thnhìn thy Activity ca bn  
được na.  
Hành động mà khi người dùng nhn  
nút Home System Bar để đưa ng  
dng ca bn vbackground, cũng  
khiến Activity đang hin thtrong  
ng dng rơi vào trng thái dng  
này.  
Dead: Nếu Activity được ly ra khi BackStack, chúng sbhy và rơi vào trng thái này.  
Trường hp này xy ra khi user nhn nút Back System Bar để thoát mt Activity. Hoc  
li gi hàm finish() tmt Activity để “kill chính nó”. Cũng có khi ng dng trng thái  
background quá lâu, hthng có thsthu hi tài nguyên bng cách dng hn các Activity  
trong ng dng, làm cho tt ccác Activity đều vào trng thái này.  
Khi vào trng thái dead, Activity skết thúc vòng đời ca nó.  
Nhng ý trên giúp bn nm được tng quan các trng thái mà mt Activity có thtri qua.  
III.Android Layout:  
15  
Để trình bày nên các Activity tạo thành các chương trình hoàn chỉnh thì Android được  
phát tiển một số giao diện Layout tương tự như GUI trong Java.  
Android hỗ trợ 6 loại Layout gồm:  
RelativeLayout, LinearLayout,GridLayout, TableLayout, FrameLayout, ConstraintLayout  
1.RelativeLayout: loại Layout mà trong Layout vị trí của mỗi view con sẽ được xác  
định so với view khác hoặc so với thành phần cha của chúng thông qua ID. Bạn thể sắp  
xếp 1 view bên trái, bên phải view khác hoặc ở giữa màn hình.  
xml version="1.0" encoding="utf-8"?>  
<RelativeLayout  
ndroid"  
auto"  
xmlns:tools="http://schemas.android.com/tools"  
android:layout_width="match_parent"  
android:layout_height="match_parent"  
tools:context="com.tuandc.project1.project1.MainActi  
vity">  
<TextView  
android:layout_width="150dp"  
android:layout_height="50dp"  
android:text="@string/_1"  
android:textColor="#fff"  
android:id="@+id/hop1"  
android:textSize="10pt"  
android:textAlignment="center"  
android:background="@color/colorAccent"  
/>  
<TextView  
android:layout_width="150dp"  
android:layout_height="50dp"  
android:text="@string/_2"  
16  
android:textColor="#fff"  
android:id="@+id/hop2"  
android:textSize="10pt"  
android:textAlignment="center"  
android:layout_toRightOf="@+id/hop1"  
android:background="@color/colorPrimary"  
android:layout_toEndOf="@+id/hop1" />  
<TextView  
android:layout_width="150dp"  
android:layout_height="50dp"  
android:text="@string/_3"  
android:textColor="#fff"  
android:id="@+id/hop3"  
android:background="#8e0917"  
android:textSize="10pt"  
android:textAlignment="center"  
android:layout_below="@+id/hop1"  
/>  
<TextView  
android:layout_width="150dp"  
android:layout_height="50dp"  
android:text="@string/_4"  
android:textColor="#fff"  
android:id="@+id/hop4"  
android:textSize="10pt"  
android:textAlignment="center"  
android:background="#edcb25"  
android:layout_below="@+id/hop2"  
android:layout_toRightOf="@+id/hop3"  
android:layout_toEndOf="@+id/hop3" />  
</RelativeLayout>  
Ngoài cách biểu thị trên ta có thể code giao diện RelativeLayout bằng Java. Tất nhiên nó  
sẽ khác so với trình XML của Android.  
17  
2.LinearLayout: loại layout sẽ sắp xếp các view theo chiều dọc hoặc ngang theo thứ tự  
của các view.  
Layout theo chiều dọc:  
<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout  
xmlns:android1="http://schemas.android.com/apk/res/android"  
android1:layout_width="match_parent"  
android1:layout_height="match_parent"  
android1:orientation="horizontal"  
>
<TextView  
android1:layout_width="80dp"  
android1:layout_height="80dp"  
android1:text="1"  
android1:textColor="#fff"  
android1:textSize="15pt"  
18  
android1:textAlignment="center"  
android1:textStyle="bold"  
android1:background="@color/colorAccent"  
/><TextView  
android1:layout_width="80dp"  
android1:layout_height="80dp"  
android1:text="1"  
android1:textColor="#fff"  
android1:textSize="15pt"  
android1:textAlignment="center"  
android1:textStyle="bold"  
android1:background="@color/colorPrimary"  
/><TextView  
android1:layout_width="80dp"  
android1:layout_height="80dp"  
android1:text="3"  
android1:textColor="#fff"  
android1:textSize="15pt"  
android1:textAlignment="center"  
android1:textStyle="bold"  
android1:background="#8c0520"  
/>  
<TextView  
android1:layout_width="80dp"  
android1:layout_height="80dp"  
android1:background="#efcd21"  
android1:text="4"  
android1:textAlignment="center"  
19  
android1:textColor="#fff"  
android1:textSize="15pt"  
android1:textStyle="bold" />  
</LinearLayout>  
Layout theo chiều ngang:  
<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout  
"
android1:layout_width="match_parent"  
android1:layout_height="match_parent"  
android1:orientation="vertical"  
>
<TextView  
android1:layout_width="80dp"  
android1:layout_height="80dp"  
android1:text="1"  
android1:textColor="#fff"  
android1:textSize="15pt"  
android1:textAlignment="center"  
android1:textStyle="bold"  
android1:background="@color/colorAccent"  
/><TextView  
android1:layout_width="80dp"  
android1:layout_height="80dp"  
android1:text="1"  
android1:textColor="#fff"  
android1:textSize="15pt"  
20  
Tải về để xem bản đầy đủ
docx 29 trang yennguyen 336740
Bạn đang xem 20 trang mẫu của tài liệu "Tiểu luận Lập trình hướng đối tượng - Đề tài: Cơ bản về lập trình Android và ứng dụng", để 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:

  • docxtieu_luan_lap_trinh_huong_doi_tuong_de_tai_co_ban_ve_lap_tri.docx