Link tải luận văn miễn phí cho ae Kết Nối
NHIỆM VỤ ĐỀ TÀI
1. Nội dung và các yêu cầu cần giải quyết trong nhiệm vụ đề tài tốt nghiệp
a. Nội dung:
- Tìm hiểu về hệ điều hành android
- Tìm hiểu về môi trƣờng lập trình Android Studio
- Tìm hiểu về cụng cụ tạo lập thiết bị di động ảo Genymotion
- Tìm hiểu về hệ quản trị cơ sở dữ liệu cho thiết bị di động SQLite
- Xây dựng chƣơng trình ứng dụng thử nghiệm quản lý chi tiêu cá nhân
b. Các yêu cầu cần giải quyết:
- Nắm đƣợc một số khái niệm cơ bản của hệ điều hành Android.
- Cài đặt, cấu hình môi trƣờng lập trình ứng dụng cho thiết bị di động Android Studio.
- Cài đặt, cấu hình thiết bị di động ảo cho chạy thử nghiệm chƣơng trình.
- Thực hiện đƣợc các thao tác cơ bản với dữ liệu trên hệ quản trị cơ sở dữ liệu SQLite.
- Xây dựng đƣợc chƣơng trình ứng dụng, đóng gói ứng dụng thành file *.apk cho phép
cài và chạy trên thiết bị di động Android thật.
2. Các số liệu cần thiết để thiết kế, tính toán
- Số liệu giả lập
3. Địa điểm thực tập
Mục Lục
LỜI CẢM ƠN............................................................................................. 11
Chƣơng 1: HỆ ĐIỀU HÀNH ANDROID .................................................. 12
1.1 Giới thiệu HĐH Android .................................................................. 12
1.2 Lịch sử phát triển ............................................................................. 13
1.3 Ứng dụng Android............................................................................ 14
1.4 Giao diện Android ............................................................................ 15
1.5 Nhân Linux ....................................................................................... 16
1.6 Bộ nhớ Android ................................................................................ 18
1.7 Bảo mật của Android........................................................................ 18
Chƣơng 2: MÔI TRƢỜNG LẬP TRÌNH ANDROID STUDIO ............... 21
2.1 Sơ lƣợc về Android Studio ............................................................... 21
2.2 Cài đặt android studio .................................................................... 21
2.3 Cấu trúc dự án android studio........................................................... 26
2.4 Tạo giao diện chương trình trong android studio ....................... 35
CHƢƠNG 3 : SQLITE ............................................................................... 41
3.1 Giới thiệu ......................................................................................... 41
3.2 Cài đặt SQLite trên Windows ......................................................... 43
3.3 Kiểu dữ liệu trong SQLite ............................................................... 47
3.4 Lệnh SQLite...................................................................................... 49
3.5 Toán tử trong SQLite ...................................................................... 53
3.6 Biểu thức trong SQLite ................................................................... 55
3.7 Các lệnh liên quan đến CSDL.......................................................... 56
3.8 Các lệnh liên quan đến cấu trúc của TABLE ................................. 58
3.9 Lệnh Insert Into............................................................................... 60
3.10 Lệnh truy vấn dữ liệu ................................................................... 6110
3.11 Update............................................................................................ 66
3.12 Delete ............................................................................................. 66
3.13 Lệnh VACUUM............................................................................... 66
3.14 Sub Queries.................................................................................... 67
3.15 Views.............................................................................................. 69
3.16 Trigger ........................................................................................... 69
3.17 Transactions.................................................................................. 71
3.18 Indexes........................................................................................... 72
3.19 Các hàm thường dùng trong SQLite ............................................ 74
Chƣơng 4: CHƢƠNG TRÌNH THỰC NGHIỆM ...................................... 80
4.1 Bài Toán ........................................................................................... 80
4.2 Phân tích và thiết kế :...................................................................... 80
4.3 CSDL SQLite ..................................................................................... 81
4.4 Giao diện chương trình................................................................... 82
4.5. Kết quả đạt được ............................................................................ 86
KẾT LUẬN................................................................................................. 87
TÀI LIỆU THAM KHẢO .......................................................................... 88
Chƣơng 1: HỆ ĐIỀU HÀNH ANDROID
1.1 Giới thiệu HĐH Android
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 nhƣ điện thoại thông minh và
máy tính bảng. Ban đầu, Android đƣợc phát triển bởi Tổng công ty Android, 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ở: 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 điều chỉnh 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 một loại ngôn ngữ lập trình Java có sửa đổi.
Vào tháng 10 năm 2012, có khoảng 700.000 ứng dụng trên Android, 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
khoảng 25 tỷ lƣợt.
Những yếu tố này đã 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, 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 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. 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 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 chức năng cao cấp cho những
ngƣời dùng thích tìm tòi hay đƣ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 500 triệu thiết bị đã đƣợc kích hoạt và
1,3 triệu lƣợt kích hoạt mỗi ngày. Sự thành công của hệ điều hành cũng khiến
Ket-noi.com kho tai lieu mien phi Ket-noi.com kho tai lieu mien phi13
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ệ.
1.2 Lịch sử phát triển
Tổng công ty Android (Android, Inc.) đƣợc thành lập tại Palo Alto,
California vào tháng 10 năm 2003 bởi Andy Rubin (đồng sáng lập công ty
Danger),[20] Rich Miner (đồng sáng lập Tổng công ty Viễn thông Wildfire),
Nick Sears (từng là Phó giám đốc T-Mobile), và Chris White (trƣởng thiết kế và
giao diện tại WebTV) để phát triển, theo lời của Rubin, "các thiết bị di động
thông minh hơn có thể biết đƣợc vị trí và sở thích của ngƣời dùng". Dù những
ngƣời thành lập và nhân viên đều là những ngƣời có tiếng tăm, Tổng công ty
Android hoạt động một cách âm thầm, chỉ tiết lộ rằng họ đang làm phần mềm
dành cho điện thoại di động. Trong năm đó, Rubin hết kinh phí. Steve Perlman,
một ngƣời bạn thân của Rubin, mang cho ông 10.000 USD tiền mặt nhƣng từ
chối tham gia vào công ty.
Google mua lại Tổng công ty Android vào ngày 17 tháng 8 năm 2005, biến
nó thành một bộ phận trực thuộc Google. Những nhân viên của chủ chốt của
Tổng công ty Android, gồm Rubin, Miner và White, vẫn tiếp tục ở lại công ty
làm việc sau thƣơng vụ này. Vào thời điểm đó không có nhiều thông tin về
Tổng công ty, nhƣng nhiều ngƣời đồn đoán rằng Google dự tính tham gia thị
trƣờng điện thoại di động sau bƣớc đi này. Tại Google, nhóm do Rubin đứng
đầu đã phát triển một nền tảng thiết bị di động phát triển trên nền nhân Linux.
Google quảng bá nền tảng này cho các nhà sản xuất điện thoại và các nhà mạng
với lời hứa sẽ cung cấp một hệ thống uyển chuyển và có khả năng nâng cấp.
Google đã liên hệ với hàng loạt hãng phần cứng cũng nhƣ đối tác phần mềm,
bắn tin cho các nhà mạng rằng họ sẵn sàng hợp tác với các cấp độ khác nhau.
Ngày càng nhiều suy đoán rằng Google sẽ tham gia thị trƣờng điện thoại di
động xuất hiện trong tháng 12 năm 2006. Tin tức của BBC và Nhật báo phố
Wall chú thích rằng Google muốn đƣa công nghệ tìm kiếm và các ứng dụng của
họ vào điện thoại di động và họ đang nỗ lực làm việc để thực hiện điều này. Các
phƣơng tiện truyền thông truyền thống lẫn online cũng viết về tin đồn rằng
Google đang phát triển một thiết bị cầm tay mang thƣơng hiệu Google. Một vài
tờ báo còn nói rằng trong khi Google vẫn đang thực hiện những bản mô tả kỹ
thuật chi tiết, họ đã trình diễn sản phẩm mẫu cho các nhà sản xuất điện thoại di14
động và nhà mạng. Tháng 9 năm 2007, InformationWeek đăng tải một nghiên
cứu của Evalueserve cho biết Google đã nộp một số đơn xin cấp bằng sáng chế
trong lĩnh vực điện thoại di động.
Ngày 5 tháng 11 năm 2007, Liên minh thiết bị cầm tay mở (Open Handset
Alliance), một hiệp hội bao gồm nhiều công ty trong đó có Texas Instruments,
Tập đoàn Broadcom, Google, HTC, Intel, LG, Tập đoàn Marvell Technology,
Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel và T-Mobile
đƣợc thành lập với mục đích phát triển các tiêu chuẩn mở cho thiết bị di động.
Cùng ngày, Android cũng đƣợc ra mắt với vai trò là sản phẩm đầu tiên của Liên
minh, một nền tảng thiết bị di động đƣợc xây dựng trên nhân Linux phiên bản
2.6. Chiếc điện thoại chạy Android đầu tiên đƣợc bán ra là HTC Dream, phát
hành ngày 22 tháng 10 năm 2008. Biểu trƣng của hệ điều hành Android mới là
một con rôbốt màu xanh lá cây do hãng thiết kế Irina Blok tại California vẽ.
Từ năm 2008, Android đã trải qua nhiều lần cập nhật để dần dần cải tiến hệ điều
hành, bổ sung các chức năng mới và sửa các lỗi trong những lần phát hành trƣớc.
Mỗi bản nâng cấp đƣợc đặt tên lần lƣợt theo thứ tự bảng chữ cái, theo tên của
một món ăn tráng miệng; ví dụ nhƣ phiên bản 1.5 Cupcake (bánh bông lan nhỏ
có kem) tiếp nối bằng phiên bản 1.6 Donut (bánh vòng). Phiên bản mới nhất
hiện nay là 5.0 Lollipop. Vào năm 2010, Google ra mắt loạt thiết bị Nexus—
một dòng sản phẩm bao gồm điện thoại thông minh và máy tính bảng chạy hệ
điều hành Android, do các đối tác phần cứng sản xuất. HTC đã hợp tác với
Google trong chiếc điện thoại thông minh Nexus đầu tiên, Nexus One. Kể từ đó
nhiều thiết bị mới hơn đã gia nhập vào dòng sản phẩm này, nhƣ điện thoại
Nexus 4 và máy tính bảng Nexus 10, lần lƣợt do LG và Samsung sản xuất.
Google xem điện thoại và máy tính bảng Nexus là những thiết bị Android chủ
lực của mình, với những chức năng phần cứng và phần mềm mới nhất của
Android.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.
1.3 Ứng dụng Android
Android có lƣợng ứng dụng của bên thứ ba ngày càng nhiều, đƣợc chọn
lọc và đặt trên một cửa hàng ứng dụng nhƣ Google Play hay Amazon Appstore
để ngƣời dùng lấy về, hay bằng cách tải xuống rồi cài đặt tập tin APK từ trang
web khác. Các ứng dụng trên Cửa hàng Play cho phép ngƣời dùng duyệt, tải về
Ket-noi.com kho tai lieu mien phi Ket-noi.com kho tai lieu mien phi15
và cập nhật các ứng dụng do Google và các nhà phát triển thứ ba phát hành. Cửa
hàng Play đƣợc cài đặt sẵn trên các thiết bị thỏa mãn điều kiện tƣơng thích của
Google. Ứng dụng sẽ tự động lọc ra một danh sách các ứng dụng tƣơng thích
với thiết bị của ngƣời dùng, và nhà phát triển có thể giới hạn ứng dụng của họ
chỉ dành cho những nhà mạng cố định hay những quốc gia cố định vì lý do
kinh doanh. Nếu ngƣời dùng mua một ứng dụng mà họ cảm giác không thích,
họ đƣợc hoàn trả tiền sau 15 phút kể từ lúc tải về, và một vài nhà mạng còn có
khả năng mua giúp các ứng dụng trên Google Play, sau đó tính tiền vào trong
hóa đơn sử dụng hàng tháng của ngƣời dùng. Đến tháng 9 năm 2012, có hơn
675.000 ứng dụng dành cho Android, và số lƣợng ứng dụng tải về từ Cửa hàng
Play ƣớc tính đạt 25 tỷ.
Các ứng dụng cho Android đƣợc phát triển bằng ngôn ngữ Java sử dụng
Bộ phát triển phần mềm Android (SDK). SDK bao gồm một bộ đầy đủ các công
cụ dùng để phát triển, gồm có công cụ gỡ lỗi, thƣ viện phần mềm, bộ giả lập
điện thoại dựa trên QEMU, tài liệu hƣớng dẫn, mã nguồn mẫu, và hƣớng dẫn
từng bƣớc. Môi trƣờng phát triển tích hợp (IDE) đƣợc hỗ trợ chính thức là
Eclipse sử dụng phần bổ sung Android Development Tools (ADT). Các công cụ
phát triển khác cũng có sẵn, gồm có Bộ phát triển gốc dành cho các ứng dụng
hay phần mở rộng viết bằng C hay C++, Google App Inventor, một môi
trƣờng đồ họa cho những nhà lập trình mới bắt đầu, và nhiều nền tảng ứng dụng
web di động đa nền tảng phong phú.
1.4 Giao diện Android
Giao diện ngƣời dùng của Android dựa trên nguyên tắc tác động trực tiếp,
sử dụng cảm ứng chạm tƣơng tự nhƣ những động tác ngoài đời thực nhƣ vuốt,
chạm, kéo giãn và thu lại để xử lý các đối tƣợng trên màn hình. Sự phản ứng với
tác động của ngƣời dùng diễn ra gần nhƣ ngay lập tức, nhằm tạo ra giao diện
cảm ứng mƣợt mà, thƣờng dùng chức năng rung của thiết bị để tạo phản hồi rung
cho ngƣời dùng. Những thiết bị phần cứng bên trong nhƣ gia tốc kế, con quay
hồi chuyển và cảm biến khoảng cách đƣợc một số ứng dụng sử dụng để phản
hồi một số hành động khác của ngƣời dùng, ví dụ nhƣ điều chỉnh màn hình từ
chế độ hiển thị dọc sang chế độ hiển thị ngang tùy theo vị trí của thiết bị, hoặc
cho phép ngƣời dùng lái xe đua bằng xoay thiết bị, giống nhƣ đang điều khiển
vô-lăng.16
Các thiết bị Android sau khi khởi động sẽ hiển thị màn hình chính, điểm
khởi đầu với các thông tin chính trên thiết bị, tƣơng tự nhƣ khái niệm desktop
(bàn làm việc) trên máy tính để bàn. Màn hính chính Android thƣờng gồm
nhiều biểu tƣợng (icon) và tiện ích (widget); biểu tƣợng ứng dụng sẽ mở ứng
dụng tƣơng ứng, còn tiện ích hiển thị những nội dung sống động, cập nhật tự
động nhƣ dự báo thời tiết, hộp thƣ của ngƣời dùng, hay những mẩu tin thời sự
ngay trên màn hình chính. Màn hình chính có thể gồm nhiều trang xem đƣợc
bằng cách vuốt ra trƣớc hay sau, mặc dù giao diện màn hình chính của Android
có thể tùy chỉnh ở mức cao, cho phép ngƣời dùng tự do sắp đặt hình dáng cũng
nhƣ hành vi của thiết bị theo sở thích. Những ứng dụng do các hãng thứ ba có
trên Google Play và các kho ứng dụng khác còn cho phép ngƣời dùng thay đổi
"chủ đề" của màn hình chính, thậm chí bắt chƣớc hình dáng của hệ điều hành
khác nhƣ Windows Phone chẳng hạn. Phần lớn những nhà sản xuất, và một số
nhà mạng, thực hiện thay đổi hình dáng và hành vi của các thiết bị Android của
họ để phân biệt với các hãng cạnh tranh.
Ở phía trên cùng màn hình là thanh trạng thái, hiển thị thông tin về thiết bị
và tình trạng kết nối. Thanh trạng thái này có thể "kéo" xuống để xem màn hình
thông báo gồm thông tin quan trọng hay cập nhật của các ứng dụng, nhƣ email
hay tin nhắn SMS mới nhận, mà không làm gián đoạn hay khiến ngƣời dùng
cảm giác bất tiện. Trong các phiên bản đời đầu, ngƣời dùng có thể nhấn vào
thông báo để mở ra ứng dụng tƣơng ứng, về sau này các thông tin cập nhật đƣợc
bổ sung theoe chức năng, nhƣ có khả năng lập tức gọi ngƣợc lại khi có cuộc gọi
nhỡ mà không cần mở ứng dụng gọi điện ra. Thông báo sẽ luôn nằm đó
cho đến khi ngƣời dùng đã đọc hay xóa nó đi.
1.5 Nhân Linux
Android có một hạt nhân dựa trên nhân Linux phiên bản 2.6, kể từ Android
4.0 Ice Cream Sandwich (bánh ngọt kẹp kem) trở về sau, là phiên bản 3.x, với
middleware, thƣ viện và API viết bằng C, còn phần mềm ứng dụng chạy trên
một nền tảng ứng dụng gồm các thƣ viện tƣơng thích với Java dựa trên Apache
Harmony. Android sử dụng máy ảo Dalvik với một trình biên dịch động để chạy
'mã dex' (Dalvik Executable) của Dalvik, thƣờng đƣợc biên dịch sang Java
bytecode. Nền tảng phần cứng chính của Android là kiến trúc ARM. Ngƣời ta
Ket-noi.com kho tai lieu mien phi Ket-noi.com kho tai lieu mien phi17
cũng hỗ trợ x86 thông qua dự án Android x86, và Google TV cũng sử dụng một
phiên bản x86 đặc biệt của Android.
Một số chức năng cũng đƣợc Google đóng góp ngƣợc vào nhân Linux, đáng
chú ý là chức năng quản lý nguồn điện có tên wakelock, nhƣng bị những ngƣời
lập trình chính cho nhân từ chối vì họ cảm giác Google không có định sẽ tiếp
tục bảo trì đoạn mã do họ viết. Google thông báo vào tháng 4 năm 2010 rằng họ
sẽ thuê hai nhận viên để làm việc với cộng đồng nhân Linux, nhƣng Greg
Kroah-Hartman, ngƣời bảo trì nhân Linux hiện tại của nhánh ổn định, đã nói
vào tháng 12 năm 2010 rằng ông ta lo ngại rằng Google không còn muốn đƣa
những thay đổi của mình vào Linux dòng chính nữa. Một số lập trình viên
Android của Google tỏ ý rằng "nhóm Android thấy chán với quy trình đó," vì
nhóm họ không có nhiều ngƣời và có nhiều việc khẩn cấp cần làm với Android
hơn.
Vào tháng 8 năm 2011, Linus Torvalds rằng "rốt cuộc thì Android và
Linux cũng sẽ trở lại với một bộ nhân chung, nhƣng điều đó có thể sẽ không
xảy ra trong 4 hay 5 năm nữa". Vào tháng 12 năm 2011, Greg Kroah-Hartman
thông báo kích hoạt Dự án Dòng chính Android, nhắm tới việc đƣa một số
driver, bản vá và chức năng của Android ngƣợc vào nhân Linux, bắt đầu từ
Linux 3.3. Linux cũng đƣa chức năng autosleep (tự nghỉ hoạt động) và
wakelocks vào nhân 3.5, sau nhiều nỗ lực phối trộn trƣớc đó. Tƣơng tác thì vẫn
vậy nhƣng bản hiện thực trên Linux dòng chính cho phép hai chế độ nghỉ: bộ
nhớ (dạng nghỉ truyền thống mà Android sử dụng), và đĩa (là ngủ đông trên máy
tính để bàn). Việc trộn sẽ hoàn tất kể từ nhân 3.8, Google đã công khai kho mã
nguồn trong đó có những đoạn thử nghiệm đƣa Android về lại nhân 3.8.
Bộ lƣu trữ flash trên các thiết bị Android đƣợc chia thành nhiều phân vùng,
nhƣ "system" dành cho hệ điều hành và "/data" dành cho dữ liệu ngƣời dùng và
cài đặt ứng dụng. Khác với các bản phân phối Linux cho máy tính để bàn, ngƣời
sở hữu thiết bị Android không đƣợc trao quyền truy cập root vào hệ điều hành
và các phân vùng nhạy cảm nhƣ /system đƣợc thiết lập chỉ đọc. Tuy nhiên,
quyền truy cập root có thể chiếm đƣợc bằng cách tận dụng những lỗ hổng bảo
mật trong Android, điều mà cộng đồng mã nguồn mở thƣờng xuyên sử dụng để
nâng cao chức năng thiết bị của họ, kể cả bị những ngƣời ác ý sử dụng để cài
virus và phần mềm ác ý.18
Việc Android có đƣợc xem là một bản phân phối Linux hay không vẫn còn
là vấn đề gây tranh cãi, tuy đƣợc Linux Foundation và Chris DiBona, trƣởng
nhóm mã nguồn mở Google, ủng hộ. Một số khác, nhƣ linux-magazine.com thì
không đồng ý, do Android không không hỗ trợ nhiều công cụ GNU, trong đó có
glibc.
1.6 Bộ nhớ Android
Vì các thiết bị Android đƣợc thiết kế để quản lý bộ nhớ (RAM) để giảm tối
đa mức tiêu thụ điện năng, trái với hệ điều hành máy tính để bàn luôn cho rằng
máy tính sẽ có nguồn điện không giới hạn. Khi một ứng dụng Android không
còn đƣợc sử dụng, hệ thống sẽ tự động ngƣng nó trong bộ nhớ - trong khi ứng
dụng về mặt kỹ thuật vẫn "mở", những ứng dụng này sẽ không tiêu thụ bất cứ
tài nguyên nào (nhƣ năng lƣợng pin hay năng lƣợng xử lý) và nằm đó cho đến
khi nó đƣợc cần đến. Cách làm nhƣ vậy có lợi kép là vừa làm tăng khả năng
phản hồi nói chung của thiết bị Android, vì ứng dụng không nhất phải đóng rồi
mở lại từ đầu, vừa đảm bảo các ứng dụng nền không làm tiêu hao năng lƣợng
một cách không cần thiết.
Android quản lý các ứng dụng trong bộ nhớ một cách tự động: khi bộ nhớ
thấp, hệ thống sẽ bắt đầu diệt ứng dụng và tiến trình không hoạt động đƣợc một
thời gian, sắp theo thời điểm cuối mà chúng đƣợc sử dụng (tức là cũ nhất sẽ bị
tắt trƣớc). Tiến trình này đƣợc thiết kế ẩn đi với ngƣời dùng, để ngƣời dùng
không cần quản lý bộ nhớ hay tự tay tắt các ứng dụng. Tuy nhiên, sự che
giấu này của hệ thống quản lý bộ nhớ Android đã dẫn đến sự thịnh hành của các
ứng dụng tắt chƣơng trình của bên thứ ba trên cửa hàng Google Play; những
ứng dụng kiểu nhƣ vậy đƣợc đánh giá là có hại nhiều hơn có lợi.
1.7 Bảo mật của Android
Các ứng dụng Android chạy trong một "hộp cát", là một khu vực riêng rẽ
với hệ thống và không đƣợc tiếp cận đến phần còn lại của tài nguyên hệ thống,
trừ khi nó đƣợc ngƣời dùng trao quyền truy cập một cách công khai khi cài đặt.
Trƣớc khi cài đặt ứng dụng, Cửa hàng Play sẽ hiển thị tất cả các quyền mà ứng
dụng đòi hỏi: ví dụ nhƣ một trò chơi cần kích hoạt bộ rung hay lƣu dữ liệu
vào thẻ nhớ SD, nhƣng nó không nên cần quyền đọc tin nhắn SMS hay tiếp
cận danh bạ điện thoại. Sau khi xem xét các quyền này, ngƣời dùng có thể chọn
đồng ý hay từ chối chúng, ứng dụng chỉ đƣợc cài đặt khi ngƣời dùng đồng ý.
Ket-noi.com kho tai lieu mien phi Ket-noi.com kho tai lieu mien phi19
Hệ thống hộp cát và hỏi quyền làm giảm bớt ảnh hƣởng của lỗi bảo mật
hay lỗi chƣơng trình có trong ứng dụng, nhƣng sự bối rối của lập trình viên và
tài liệu hƣớng dẫn còn hạn chế đã dẫn tới những ứng dụng hay đòi hỏi những
quyền không cần thiết, do đó làm giảm đi hiệu quả của hệ thống này. Một số
công ty bảo mật, nhƣ Lookout Mobile Security, AVG Technologies, và
McAfee, đã phát hành những phần mềm diệt virus cho các thiết bị Android.
Phần mềm này không có hiệu quả vì cơ chế hộp cát vẫn áp dụng vào các ứng
dụng này, do vậy làm hạn chế khả năng quét sâu vào hệ thống để tìm nguy cơ.
Một nghiên cứu của công ty bảo mật Trend Micro đã liệt kê tình trạng lạm
dụng dịch vụ trả tiền là hình thức phần mềm ác ý phổ biến nhất trên Android,
trong đó tin nhắn SMS sẽ bị gửi đi từ điện thoại bị nhiễm đến một số điện thoại
trả tiền mà ngƣời dùng không hề hay biết. Loại phần mềm ác ý khác hiển thị
những quảng cáo không mong muốn và gây khó chịu trên thiết bị, hay gửi
thông tin cá nhân đến bên thứ ba khi chƣa đƣợc phép. Đe dọa bảo mật trên
Android đƣợc đánh giá là tăng rất nhanh theo cấp số mũ; tuy nhiên, các kỹ sƣ
Google phản bác rằng hiểm họa từ phần mềm ác ý và virus đã bị thổi phồng bởi
các công ty bảo mật nhằm mục đích thƣơng mại, và buộc tội ngành công nghiệp
bảo mật đang lợi dụng sự sợ hãi để bán phần mềm diệt virus cho ngƣời dùng.
Google vẫn giữ quan điểm rằng phần mềm ác ý thật sự nguy hiểm là cực kỳ
hiếm, và một cuộc điều tra do F-Secure thực hiện cho thấy chỉ có 0,5% số phần
mềm ác ý Android là len vào đƣợc cửa hàng Google Play.
Google hiện đang sử dụng bộ quét phần mềm ác ý Google Bouncer để theo
dõi và quét các ứng dụng trên Cửa hàng Google Play. Nó sẽ đánh dấu các phần
mềm bị nghi ngờ và thông báo ngƣời dùng về những vấn đề có thể xảy ra trƣớc
khi họ tải nó về máy. Android phiên bản 4.2 Jelly Bean đƣợc phát hành vào năm
2012 cùng với các chức năng bảo mật đƣợc cải thiện, bao gồm một bộ quét phần
mềm ác ý đƣợc cài sẵn trong hệ thống, hoạt động cùng với Google Play nhƣng
cũng có thể quét các ứng dụng đƣợc cài đặt từ nguồn thứ ba, và một hệ thống
thông báo sẽ thông báo cho ngƣời dùng khi một ứng dụng cố gắng gửi một tin
nhắn vào số tính tiền, chặn tin nhắn đó lại trừ khi ngƣời dùng công khai cho
phép nó.
Điện thoại thông minh Android có khả năng báo cáo vị trí của điểm truy
cập Wi-Fi, phát hiện ra việc di chuyển của ngƣời dùng điện thoại, để xây dựng20
những cơ sở dữ liệu có chứa vị trí của hàng trăm triệu điểm truy cập. Những cơ
sở dữ liệu này tạo nên một bản đồ điện tử để tìm vị trí điện thoại thông minh,
cho phép chúng chạy các ứng dụng nhƣ Foursquare, Google Latitude, Facebook
Places, và gửi những đoạn quảng cáo dựa trên vị trí. Phần mềm theo dõi của bên
thứ ba nhƣ TaintDroid, một dự án nghiên cứu trong trƣờng đại học, đôi khi có
thể biết đƣợc khi nào thông tin cá nhân bị gửi đi từ ứng dụng đến các máy chủ
đặt ở xa.
Bản chất mã nguồn mở của Android cho phép những nhà thầu bảo mật lấy
những thiết bị sẵn có rồi điều chỉnh để sử dụng ở mức độ bảo mật cao hơn.
2.4.2 Giới thiệu một số android View cơ bản
TextView: là view sử dụng để hiển thị text màn hình. TextView đƣợc định
nghĩa bởi thẻ trong xml.
EditText: là view dùng để lấy giá trị từ ngƣời dùng nhập vào. EditText
đƣợc định nghĩa bởi thẻtrong xml.
ImageView: là một view sử dụng rất nhiều trong ứng dụng android,
ImageView sử dụng để hiển thị hình ảnh.
Button: là view đƣợc sử dụng khá nhiều trong android, hầu nhƣ sử dụng ở
mọi nơi cùng với EditText, TextView. Button có chức năng là làm nhiệm
vụ nào đó khi mà ngƣời dùng click trong phƣơng thức onClick.
ListView: đƣợc tạo từ một danh sách các ListItem. ListItem là một dòng
(row) riêng lẻ trong listview nơi mà dữ liệu sẽ đƣợc hiển thị. Bất kỳ dữ liệu
nào trong listview chỉ đƣợc hiển thị thông qua listItem. Có thể coi listview
nhƣ là một nhóm cuộn của các ListItem.
2.4.3 Bắt và xử lý sự kiện trên giao diện.
Sự kiện là một cách hữu ích để thu thập dữ liệu về sự tƣơng tác của ngƣời
dùng với các thành phần tƣơng tác của ứng dụng. Giống nhƣ bấm vào một nút
hay chạm vào màn hình cảm ứng, vv. Ta có thể nắm bắt những sự kiện trong
chƣơng trình và có những xử lý thích hợp theo yêu cầu.
Có hai khái niệm liên quan đến quản lý sự kiện Android:
- Event Listeners là một interface. Event Listeners đƣợc sử dụng để đăng
ký sự kiện cho các thành phần trong UI. (Đăng ký sự kiện). Trong các giao
tiếp event listener có những phƣơng thức sau đây:
onClick(): Thuộc View.OnClickListener. Nó được gọi khi người dùng hoặc
chạm vào item (khi ở chế độ cảm ứng), hay lựa chọn vào item với các
phím điều hướng và nhấn nút "enter" phù hợp.
onLongClick(): Thuộc View.OnLongClickListener. Nó được gọi khi người dùng chạm và giữ item (khi
ở chế độ cảm ứng), hay lựa chọn vào item với các phím điều hướng sau đó nhấn và giữ phím
"enter".
onFocusChange(): Thuộc View.OnFocusChangeListener. Nó được gọi khi người dùng điều hướng ra
khỏi item, bằng cách sử dụng phím điều hướng.
onKey(): Thuộc View.OnKeyListener. Nó được gọi khi người dùng lựa chọn và nhấn lên item.
Do Drive thay đổi chính sách, nên một số link cũ yêu cầu duyệt download. các bạn chỉ cần làm theo hướng dẫn.
Password giải nén nếu cần: ket-noi.com | Bấm trực tiếp vào Link để tải:
NHIỆM VỤ ĐỀ TÀI
1. Nội dung và các yêu cầu cần giải quyết trong nhiệm vụ đề tài tốt nghiệp
a. Nội dung:
- Tìm hiểu về hệ điều hành android
- Tìm hiểu về môi trƣờng lập trình Android Studio
- Tìm hiểu về cụng cụ tạo lập thiết bị di động ảo Genymotion
- Tìm hiểu về hệ quản trị cơ sở dữ liệu cho thiết bị di động SQLite
- Xây dựng chƣơng trình ứng dụng thử nghiệm quản lý chi tiêu cá nhân
b. Các yêu cầu cần giải quyết:
- Nắm đƣợc một số khái niệm cơ bản của hệ điều hành Android.
- Cài đặt, cấu hình môi trƣờng lập trình ứng dụng cho thiết bị di động Android Studio.
- Cài đặt, cấu hình thiết bị di động ảo cho chạy thử nghiệm chƣơng trình.
- Thực hiện đƣợc các thao tác cơ bản với dữ liệu trên hệ quản trị cơ sở dữ liệu SQLite.
- Xây dựng đƣợc chƣơng trình ứng dụng, đóng gói ứng dụng thành file *.apk cho phép
cài và chạy trên thiết bị di động Android thật.
2. Các số liệu cần thiết để thiết kế, tính toán
- Số liệu giả lập
3. Địa điểm thực tập
Mục Lục
LỜI CẢM ƠN............................................................................................. 11
Chƣơng 1: HỆ ĐIỀU HÀNH ANDROID .................................................. 12
1.1 Giới thiệu HĐH Android .................................................................. 12
1.2 Lịch sử phát triển ............................................................................. 13
1.3 Ứng dụng Android............................................................................ 14
1.4 Giao diện Android ............................................................................ 15
1.5 Nhân Linux ....................................................................................... 16
1.6 Bộ nhớ Android ................................................................................ 18
1.7 Bảo mật của Android........................................................................ 18
Chƣơng 2: MÔI TRƢỜNG LẬP TRÌNH ANDROID STUDIO ............... 21
2.1 Sơ lƣợc về Android Studio ............................................................... 21
2.2 Cài đặt android studio .................................................................... 21
2.3 Cấu trúc dự án android studio........................................................... 26
2.4 Tạo giao diện chương trình trong android studio ....................... 35
CHƢƠNG 3 : SQLITE ............................................................................... 41
3.1 Giới thiệu ......................................................................................... 41
3.2 Cài đặt SQLite trên Windows ......................................................... 43
3.3 Kiểu dữ liệu trong SQLite ............................................................... 47
3.4 Lệnh SQLite...................................................................................... 49
3.5 Toán tử trong SQLite ...................................................................... 53
3.6 Biểu thức trong SQLite ................................................................... 55
3.7 Các lệnh liên quan đến CSDL.......................................................... 56
3.8 Các lệnh liên quan đến cấu trúc của TABLE ................................. 58
3.9 Lệnh Insert Into............................................................................... 60
3.10 Lệnh truy vấn dữ liệu ................................................................... 6110
3.11 Update............................................................................................ 66
3.12 Delete ............................................................................................. 66
3.13 Lệnh VACUUM............................................................................... 66
3.14 Sub Queries.................................................................................... 67
3.15 Views.............................................................................................. 69
3.16 Trigger ........................................................................................... 69
3.17 Transactions.................................................................................. 71
3.18 Indexes........................................................................................... 72
3.19 Các hàm thường dùng trong SQLite ............................................ 74
Chƣơng 4: CHƢƠNG TRÌNH THỰC NGHIỆM ...................................... 80
4.1 Bài Toán ........................................................................................... 80
4.2 Phân tích và thiết kế :...................................................................... 80
4.3 CSDL SQLite ..................................................................................... 81
4.4 Giao diện chương trình................................................................... 82
4.5. Kết quả đạt được ............................................................................ 86
KẾT LUẬN................................................................................................. 87
TÀI LIỆU THAM KHẢO .......................................................................... 88
Chƣơng 1: HỆ ĐIỀU HÀNH ANDROID
1.1 Giới thiệu HĐH Android
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 nhƣ điện thoại thông minh và
máy tính bảng. Ban đầu, Android đƣợc phát triển bởi Tổng công ty Android, 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ở: 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 điều chỉnh 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 một loại ngôn ngữ lập trình Java có sửa đổi.
Vào tháng 10 năm 2012, có khoảng 700.000 ứng dụng trên Android, 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
khoảng 25 tỷ lƣợt.
Những yếu tố này đã 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, 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 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. 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 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 chức năng cao cấp cho những
ngƣời dùng thích tìm tòi hay đƣ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 500 triệu thiết bị đã đƣợc kích hoạt và
1,3 triệu lƣợt kích hoạt mỗi ngày. Sự thành công của hệ điều hành cũng khiến
Ket-noi.com kho tai lieu mien phi Ket-noi.com kho tai lieu mien phi13
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ệ.
1.2 Lịch sử phát triển
Tổng công ty Android (Android, Inc.) đƣợc thành lập tại Palo Alto,
California vào tháng 10 năm 2003 bởi Andy Rubin (đồng sáng lập công ty
Danger),[20] Rich Miner (đồng sáng lập Tổng công ty Viễn thông Wildfire),
Nick Sears (từng là Phó giám đốc T-Mobile), và Chris White (trƣởng thiết kế và
giao diện tại WebTV) để phát triển, theo lời của Rubin, "các thiết bị di động
thông minh hơn có thể biết đƣợc vị trí và sở thích của ngƣời dùng". Dù những
ngƣời thành lập và nhân viên đều là những ngƣời có tiếng tăm, Tổng công ty
Android hoạt động một cách âm thầm, chỉ tiết lộ rằng họ đang làm phần mềm
dành cho điện thoại di động. Trong năm đó, Rubin hết kinh phí. Steve Perlman,
một ngƣời bạn thân của Rubin, mang cho ông 10.000 USD tiền mặt nhƣng từ
chối tham gia vào công ty.
Google mua lại Tổng công ty Android vào ngày 17 tháng 8 năm 2005, biến
nó thành một bộ phận trực thuộc Google. Những nhân viên của chủ chốt của
Tổng công ty Android, gồm Rubin, Miner và White, vẫn tiếp tục ở lại công ty
làm việc sau thƣơng vụ này. Vào thời điểm đó không có nhiều thông tin về
Tổng công ty, nhƣng nhiều ngƣời đồn đoán rằng Google dự tính tham gia thị
trƣờng điện thoại di động sau bƣớc đi này. Tại Google, nhóm do Rubin đứng
đầu đã phát triển một nền tảng thiết bị di động phát triển trên nền nhân Linux.
Google quảng bá nền tảng này cho các nhà sản xuất điện thoại và các nhà mạng
với lời hứa sẽ cung cấp một hệ thống uyển chuyển và có khả năng nâng cấp.
Google đã liên hệ với hàng loạt hãng phần cứng cũng nhƣ đối tác phần mềm,
bắn tin cho các nhà mạng rằng họ sẵn sàng hợp tác với các cấp độ khác nhau.
Ngày càng nhiều suy đoán rằng Google sẽ tham gia thị trƣờng điện thoại di
động xuất hiện trong tháng 12 năm 2006. Tin tức của BBC và Nhật báo phố
Wall chú thích rằng Google muốn đƣa công nghệ tìm kiếm và các ứng dụng của
họ vào điện thoại di động và họ đang nỗ lực làm việc để thực hiện điều này. Các
phƣơng tiện truyền thông truyền thống lẫn online cũng viết về tin đồn rằng
Google đang phát triển một thiết bị cầm tay mang thƣơng hiệu Google. Một vài
tờ báo còn nói rằng trong khi Google vẫn đang thực hiện những bản mô tả kỹ
thuật chi tiết, họ đã trình diễn sản phẩm mẫu cho các nhà sản xuất điện thoại di14
động và nhà mạng. Tháng 9 năm 2007, InformationWeek đăng tải một nghiên
cứu của Evalueserve cho biết Google đã nộp một số đơn xin cấp bằng sáng chế
trong lĩnh vực điện thoại di động.
Ngày 5 tháng 11 năm 2007, Liên minh thiết bị cầm tay mở (Open Handset
Alliance), một hiệp hội bao gồm nhiều công ty trong đó có Texas Instruments,
Tập đoàn Broadcom, Google, HTC, Intel, LG, Tập đoàn Marvell Technology,
Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel và T-Mobile
đƣợc thành lập với mục đích phát triển các tiêu chuẩn mở cho thiết bị di động.
Cùng ngày, Android cũng đƣợc ra mắt với vai trò là sản phẩm đầu tiên của Liên
minh, một nền tảng thiết bị di động đƣợc xây dựng trên nhân Linux phiên bản
2.6. Chiếc điện thoại chạy Android đầu tiên đƣợc bán ra là HTC Dream, phát
hành ngày 22 tháng 10 năm 2008. Biểu trƣng của hệ điều hành Android mới là
một con rôbốt màu xanh lá cây do hãng thiết kế Irina Blok tại California vẽ.
Từ năm 2008, Android đã trải qua nhiều lần cập nhật để dần dần cải tiến hệ điều
hành, bổ sung các chức năng mới và sửa các lỗi trong những lần phát hành trƣớc.
Mỗi bản nâng cấp đƣợc đặt tên lần lƣợt theo thứ tự bảng chữ cái, theo tên của
một món ăn tráng miệng; ví dụ nhƣ phiên bản 1.5 Cupcake (bánh bông lan nhỏ
có kem) tiếp nối bằng phiên bản 1.6 Donut (bánh vòng). Phiên bản mới nhất
hiện nay là 5.0 Lollipop. Vào năm 2010, Google ra mắt loạt thiết bị Nexus—
một dòng sản phẩm bao gồm điện thoại thông minh và máy tính bảng chạy hệ
điều hành Android, do các đối tác phần cứng sản xuất. HTC đã hợp tác với
Google trong chiếc điện thoại thông minh Nexus đầu tiên, Nexus One. Kể từ đó
nhiều thiết bị mới hơn đã gia nhập vào dòng sản phẩm này, nhƣ điện thoại
Nexus 4 và máy tính bảng Nexus 10, lần lƣợt do LG và Samsung sản xuất.
Google xem điện thoại và máy tính bảng Nexus là những thiết bị Android chủ
lực của mình, với những chức năng phần cứng và phần mềm mới nhất của
Android.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.
1.3 Ứng dụng Android
Android có lƣợng ứng dụng của bên thứ ba ngày càng nhiều, đƣợc chọn
lọc và đặt trên một cửa hàng ứng dụng nhƣ Google Play hay Amazon Appstore
để ngƣời dùng lấy về, hay bằng cách tải xuống rồi cài đặt tập tin APK từ trang
web khác. Các ứng dụng trên Cửa hàng Play cho phép ngƣời dùng duyệt, tải về
Ket-noi.com kho tai lieu mien phi Ket-noi.com kho tai lieu mien phi15
và cập nhật các ứng dụng do Google và các nhà phát triển thứ ba phát hành. Cửa
hàng Play đƣợc cài đặt sẵn trên các thiết bị thỏa mãn điều kiện tƣơng thích của
Google. Ứng dụng sẽ tự động lọc ra một danh sách các ứng dụng tƣơng thích
với thiết bị của ngƣời dùng, và nhà phát triển có thể giới hạn ứng dụng của họ
chỉ dành cho những nhà mạng cố định hay những quốc gia cố định vì lý do
kinh doanh. Nếu ngƣời dùng mua một ứng dụng mà họ cảm giác không thích,
họ đƣợc hoàn trả tiền sau 15 phút kể từ lúc tải về, và một vài nhà mạng còn có
khả năng mua giúp các ứng dụng trên Google Play, sau đó tính tiền vào trong
hóa đơn sử dụng hàng tháng của ngƣời dùng. Đến tháng 9 năm 2012, có hơn
675.000 ứng dụng dành cho Android, và số lƣợng ứng dụng tải về từ Cửa hàng
Play ƣớc tính đạt 25 tỷ.
Các ứng dụng cho Android đƣợc phát triển bằng ngôn ngữ Java sử dụng
Bộ phát triển phần mềm Android (SDK). SDK bao gồm một bộ đầy đủ các công
cụ dùng để phát triển, gồm có công cụ gỡ lỗi, thƣ viện phần mềm, bộ giả lập
điện thoại dựa trên QEMU, tài liệu hƣớng dẫn, mã nguồn mẫu, và hƣớng dẫn
từng bƣớc. Môi trƣờng phát triển tích hợp (IDE) đƣợc hỗ trợ chính thức là
Eclipse sử dụng phần bổ sung Android Development Tools (ADT). Các công cụ
phát triển khác cũng có sẵn, gồm có Bộ phát triển gốc dành cho các ứng dụng
hay phần mở rộng viết bằng C hay C++, Google App Inventor, một môi
trƣờng đồ họa cho những nhà lập trình mới bắt đầu, và nhiều nền tảng ứng dụng
web di động đa nền tảng phong phú.
1.4 Giao diện Android
Giao diện ngƣời dùng của Android dựa trên nguyên tắc tác động trực tiếp,
sử dụng cảm ứng chạm tƣơng tự nhƣ những động tác ngoài đời thực nhƣ vuốt,
chạm, kéo giãn và thu lại để xử lý các đối tƣợng trên màn hình. Sự phản ứng với
tác động của ngƣời dùng diễn ra gần nhƣ ngay lập tức, nhằm tạo ra giao diện
cảm ứng mƣợt mà, thƣờng dùng chức năng rung của thiết bị để tạo phản hồi rung
cho ngƣời dùng. Những thiết bị phần cứng bên trong nhƣ gia tốc kế, con quay
hồi chuyển và cảm biến khoảng cách đƣợc một số ứng dụng sử dụng để phản
hồi một số hành động khác của ngƣời dùng, ví dụ nhƣ điều chỉnh màn hình từ
chế độ hiển thị dọc sang chế độ hiển thị ngang tùy theo vị trí của thiết bị, hoặc
cho phép ngƣời dùng lái xe đua bằng xoay thiết bị, giống nhƣ đang điều khiển
vô-lăng.16
Các thiết bị Android sau khi khởi động sẽ hiển thị màn hình chính, điểm
khởi đầu với các thông tin chính trên thiết bị, tƣơng tự nhƣ khái niệm desktop
(bàn làm việc) trên máy tính để bàn. Màn hính chính Android thƣờng gồm
nhiều biểu tƣợng (icon) và tiện ích (widget); biểu tƣợng ứng dụng sẽ mở ứng
dụng tƣơng ứng, còn tiện ích hiển thị những nội dung sống động, cập nhật tự
động nhƣ dự báo thời tiết, hộp thƣ của ngƣời dùng, hay những mẩu tin thời sự
ngay trên màn hình chính. Màn hình chính có thể gồm nhiều trang xem đƣợc
bằng cách vuốt ra trƣớc hay sau, mặc dù giao diện màn hình chính của Android
có thể tùy chỉnh ở mức cao, cho phép ngƣời dùng tự do sắp đặt hình dáng cũng
nhƣ hành vi của thiết bị theo sở thích. Những ứng dụng do các hãng thứ ba có
trên Google Play và các kho ứng dụng khác còn cho phép ngƣời dùng thay đổi
"chủ đề" của màn hình chính, thậm chí bắt chƣớc hình dáng của hệ điều hành
khác nhƣ Windows Phone chẳng hạn. Phần lớn những nhà sản xuất, và một số
nhà mạng, thực hiện thay đổi hình dáng và hành vi của các thiết bị Android của
họ để phân biệt với các hãng cạnh tranh.
Ở phía trên cùng màn hình là thanh trạng thái, hiển thị thông tin về thiết bị
và tình trạng kết nối. Thanh trạng thái này có thể "kéo" xuống để xem màn hình
thông báo gồm thông tin quan trọng hay cập nhật của các ứng dụng, nhƣ email
hay tin nhắn SMS mới nhận, mà không làm gián đoạn hay khiến ngƣời dùng
cảm giác bất tiện. Trong các phiên bản đời đầu, ngƣời dùng có thể nhấn vào
thông báo để mở ra ứng dụng tƣơng ứng, về sau này các thông tin cập nhật đƣợc
bổ sung theoe chức năng, nhƣ có khả năng lập tức gọi ngƣợc lại khi có cuộc gọi
nhỡ mà không cần mở ứng dụng gọi điện ra. Thông báo sẽ luôn nằm đó
cho đến khi ngƣời dùng đã đọc hay xóa nó đi.
1.5 Nhân Linux
Android có một hạt nhân dựa trên nhân Linux phiên bản 2.6, kể từ Android
4.0 Ice Cream Sandwich (bánh ngọt kẹp kem) trở về sau, là phiên bản 3.x, với
middleware, thƣ viện và API viết bằng C, còn phần mềm ứng dụng chạy trên
một nền tảng ứng dụng gồm các thƣ viện tƣơng thích với Java dựa trên Apache
Harmony. Android sử dụng máy ảo Dalvik với một trình biên dịch động để chạy
'mã dex' (Dalvik Executable) của Dalvik, thƣờng đƣợc biên dịch sang Java
bytecode. Nền tảng phần cứng chính của Android là kiến trúc ARM. Ngƣời ta
Ket-noi.com kho tai lieu mien phi Ket-noi.com kho tai lieu mien phi17
cũng hỗ trợ x86 thông qua dự án Android x86, và Google TV cũng sử dụng một
phiên bản x86 đặc biệt của Android.
Một số chức năng cũng đƣợc Google đóng góp ngƣợc vào nhân Linux, đáng
chú ý là chức năng quản lý nguồn điện có tên wakelock, nhƣng bị những ngƣời
lập trình chính cho nhân từ chối vì họ cảm giác Google không có định sẽ tiếp
tục bảo trì đoạn mã do họ viết. Google thông báo vào tháng 4 năm 2010 rằng họ
sẽ thuê hai nhận viên để làm việc với cộng đồng nhân Linux, nhƣng Greg
Kroah-Hartman, ngƣời bảo trì nhân Linux hiện tại của nhánh ổn định, đã nói
vào tháng 12 năm 2010 rằng ông ta lo ngại rằng Google không còn muốn đƣa
những thay đổi của mình vào Linux dòng chính nữa. Một số lập trình viên
Android của Google tỏ ý rằng "nhóm Android thấy chán với quy trình đó," vì
nhóm họ không có nhiều ngƣời và có nhiều việc khẩn cấp cần làm với Android
hơn.
Vào tháng 8 năm 2011, Linus Torvalds rằng "rốt cuộc thì Android và
Linux cũng sẽ trở lại với một bộ nhân chung, nhƣng điều đó có thể sẽ không
xảy ra trong 4 hay 5 năm nữa". Vào tháng 12 năm 2011, Greg Kroah-Hartman
thông báo kích hoạt Dự án Dòng chính Android, nhắm tới việc đƣa một số
driver, bản vá và chức năng của Android ngƣợc vào nhân Linux, bắt đầu từ
Linux 3.3. Linux cũng đƣa chức năng autosleep (tự nghỉ hoạt động) và
wakelocks vào nhân 3.5, sau nhiều nỗ lực phối trộn trƣớc đó. Tƣơng tác thì vẫn
vậy nhƣng bản hiện thực trên Linux dòng chính cho phép hai chế độ nghỉ: bộ
nhớ (dạng nghỉ truyền thống mà Android sử dụng), và đĩa (là ngủ đông trên máy
tính để bàn). Việc trộn sẽ hoàn tất kể từ nhân 3.8, Google đã công khai kho mã
nguồn trong đó có những đoạn thử nghiệm đƣa Android về lại nhân 3.8.
Bộ lƣu trữ flash trên các thiết bị Android đƣợc chia thành nhiều phân vùng,
nhƣ "system" dành cho hệ điều hành và "/data" dành cho dữ liệu ngƣời dùng và
cài đặt ứng dụng. Khác với các bản phân phối Linux cho máy tính để bàn, ngƣời
sở hữu thiết bị Android không đƣợc trao quyền truy cập root vào hệ điều hành
và các phân vùng nhạy cảm nhƣ /system đƣợc thiết lập chỉ đọc. Tuy nhiên,
quyền truy cập root có thể chiếm đƣợc bằng cách tận dụng những lỗ hổng bảo
mật trong Android, điều mà cộng đồng mã nguồn mở thƣờng xuyên sử dụng để
nâng cao chức năng thiết bị của họ, kể cả bị những ngƣời ác ý sử dụng để cài
virus và phần mềm ác ý.18
Việc Android có đƣợc xem là một bản phân phối Linux hay không vẫn còn
là vấn đề gây tranh cãi, tuy đƣợc Linux Foundation và Chris DiBona, trƣởng
nhóm mã nguồn mở Google, ủng hộ. Một số khác, nhƣ linux-magazine.com thì
không đồng ý, do Android không không hỗ trợ nhiều công cụ GNU, trong đó có
glibc.
1.6 Bộ nhớ Android
Vì các thiết bị Android đƣợc thiết kế để quản lý bộ nhớ (RAM) để giảm tối
đa mức tiêu thụ điện năng, trái với hệ điều hành máy tính để bàn luôn cho rằng
máy tính sẽ có nguồn điện không giới hạn. Khi một ứng dụng Android không
còn đƣợc sử dụng, hệ thống sẽ tự động ngƣng nó trong bộ nhớ - trong khi ứng
dụng về mặt kỹ thuật vẫn "mở", những ứng dụng này sẽ không tiêu thụ bất cứ
tài nguyên nào (nhƣ năng lƣợng pin hay năng lƣợng xử lý) và nằm đó cho đến
khi nó đƣợc cần đến. Cách làm nhƣ vậy có lợi kép là vừa làm tăng khả năng
phản hồi nói chung của thiết bị Android, vì ứng dụng không nhất phải đóng rồi
mở lại từ đầu, vừa đảm bảo các ứng dụng nền không làm tiêu hao năng lƣợng
một cách không cần thiết.
Android quản lý các ứng dụng trong bộ nhớ một cách tự động: khi bộ nhớ
thấp, hệ thống sẽ bắt đầu diệt ứng dụng và tiến trình không hoạt động đƣợc một
thời gian, sắp theo thời điểm cuối mà chúng đƣợc sử dụng (tức là cũ nhất sẽ bị
tắt trƣớc). Tiến trình này đƣợc thiết kế ẩn đi với ngƣời dùng, để ngƣời dùng
không cần quản lý bộ nhớ hay tự tay tắt các ứng dụng. Tuy nhiên, sự che
giấu này của hệ thống quản lý bộ nhớ Android đã dẫn đến sự thịnh hành của các
ứng dụng tắt chƣơng trình của bên thứ ba trên cửa hàng Google Play; những
ứng dụng kiểu nhƣ vậy đƣợc đánh giá là có hại nhiều hơn có lợi.
1.7 Bảo mật của Android
Các ứng dụng Android chạy trong một "hộp cát", là một khu vực riêng rẽ
với hệ thống và không đƣợc tiếp cận đến phần còn lại của tài nguyên hệ thống,
trừ khi nó đƣợc ngƣời dùng trao quyền truy cập một cách công khai khi cài đặt.
Trƣớc khi cài đặt ứng dụng, Cửa hàng Play sẽ hiển thị tất cả các quyền mà ứng
dụng đòi hỏi: ví dụ nhƣ một trò chơi cần kích hoạt bộ rung hay lƣu dữ liệu
vào thẻ nhớ SD, nhƣng nó không nên cần quyền đọc tin nhắn SMS hay tiếp
cận danh bạ điện thoại. Sau khi xem xét các quyền này, ngƣời dùng có thể chọn
đồng ý hay từ chối chúng, ứng dụng chỉ đƣợc cài đặt khi ngƣời dùng đồng ý.
Ket-noi.com kho tai lieu mien phi Ket-noi.com kho tai lieu mien phi19
Hệ thống hộp cát và hỏi quyền làm giảm bớt ảnh hƣởng của lỗi bảo mật
hay lỗi chƣơng trình có trong ứng dụng, nhƣng sự bối rối của lập trình viên và
tài liệu hƣớng dẫn còn hạn chế đã dẫn tới những ứng dụng hay đòi hỏi những
quyền không cần thiết, do đó làm giảm đi hiệu quả của hệ thống này. Một số
công ty bảo mật, nhƣ Lookout Mobile Security, AVG Technologies, và
McAfee, đã phát hành những phần mềm diệt virus cho các thiết bị Android.
Phần mềm này không có hiệu quả vì cơ chế hộp cát vẫn áp dụng vào các ứng
dụng này, do vậy làm hạn chế khả năng quét sâu vào hệ thống để tìm nguy cơ.
Một nghiên cứu của công ty bảo mật Trend Micro đã liệt kê tình trạng lạm
dụng dịch vụ trả tiền là hình thức phần mềm ác ý phổ biến nhất trên Android,
trong đó tin nhắn SMS sẽ bị gửi đi từ điện thoại bị nhiễm đến một số điện thoại
trả tiền mà ngƣời dùng không hề hay biết. Loại phần mềm ác ý khác hiển thị
những quảng cáo không mong muốn và gây khó chịu trên thiết bị, hay gửi
thông tin cá nhân đến bên thứ ba khi chƣa đƣợc phép. Đe dọa bảo mật trên
Android đƣợc đánh giá là tăng rất nhanh theo cấp số mũ; tuy nhiên, các kỹ sƣ
Google phản bác rằng hiểm họa từ phần mềm ác ý và virus đã bị thổi phồng bởi
các công ty bảo mật nhằm mục đích thƣơng mại, và buộc tội ngành công nghiệp
bảo mật đang lợi dụng sự sợ hãi để bán phần mềm diệt virus cho ngƣời dùng.
Google vẫn giữ quan điểm rằng phần mềm ác ý thật sự nguy hiểm là cực kỳ
hiếm, và một cuộc điều tra do F-Secure thực hiện cho thấy chỉ có 0,5% số phần
mềm ác ý Android là len vào đƣợc cửa hàng Google Play.
Google hiện đang sử dụng bộ quét phần mềm ác ý Google Bouncer để theo
dõi và quét các ứng dụng trên Cửa hàng Google Play. Nó sẽ đánh dấu các phần
mềm bị nghi ngờ và thông báo ngƣời dùng về những vấn đề có thể xảy ra trƣớc
khi họ tải nó về máy. Android phiên bản 4.2 Jelly Bean đƣợc phát hành vào năm
2012 cùng với các chức năng bảo mật đƣợc cải thiện, bao gồm một bộ quét phần
mềm ác ý đƣợc cài sẵn trong hệ thống, hoạt động cùng với Google Play nhƣng
cũng có thể quét các ứng dụng đƣợc cài đặt từ nguồn thứ ba, và một hệ thống
thông báo sẽ thông báo cho ngƣời dùng khi một ứng dụng cố gắng gửi một tin
nhắn vào số tính tiền, chặn tin nhắn đó lại trừ khi ngƣời dùng công khai cho
phép nó.
Điện thoại thông minh Android có khả năng báo cáo vị trí của điểm truy
cập Wi-Fi, phát hiện ra việc di chuyển của ngƣời dùng điện thoại, để xây dựng20
những cơ sở dữ liệu có chứa vị trí của hàng trăm triệu điểm truy cập. Những cơ
sở dữ liệu này tạo nên một bản đồ điện tử để tìm vị trí điện thoại thông minh,
cho phép chúng chạy các ứng dụng nhƣ Foursquare, Google Latitude, Facebook
Places, và gửi những đoạn quảng cáo dựa trên vị trí. Phần mềm theo dõi của bên
thứ ba nhƣ TaintDroid, một dự án nghiên cứu trong trƣờng đại học, đôi khi có
thể biết đƣợc khi nào thông tin cá nhân bị gửi đi từ ứng dụng đến các máy chủ
đặt ở xa.
Bản chất mã nguồn mở của Android cho phép những nhà thầu bảo mật lấy
những thiết bị sẵn có rồi điều chỉnh để sử dụng ở mức độ bảo mật cao hơn.
2.4.2 Giới thiệu một số android View cơ bản
TextView: là view sử dụng để hiển thị text màn hình. TextView đƣợc định
nghĩa bởi thẻ
EditText: là view dùng để lấy giá trị từ ngƣời dùng nhập vào. EditText
đƣợc định nghĩa bởi thẻ
ImageView: là một view sử dụng rất nhiều trong ứng dụng android,
ImageView sử dụng để hiển thị hình ảnh.
Button: là view đƣợc sử dụng khá nhiều trong android, hầu nhƣ sử dụng ở
mọi nơi cùng với EditText, TextView. Button có chức năng là làm nhiệm
vụ nào đó khi mà ngƣời dùng click trong phƣơng thức onClick.
ListView: đƣợc tạo từ một danh sách các ListItem. ListItem là một dòng
(row) riêng lẻ trong listview nơi mà dữ liệu sẽ đƣợc hiển thị. Bất kỳ dữ liệu
nào trong listview chỉ đƣợc hiển thị thông qua listItem. Có thể coi listview
nhƣ là một nhóm cuộn của các ListItem.
2.4.3 Bắt và xử lý sự kiện trên giao diện.
Sự kiện là một cách hữu ích để thu thập dữ liệu về sự tƣơng tác của ngƣời
dùng với các thành phần tƣơng tác của ứng dụng. Giống nhƣ bấm vào một nút
hay chạm vào màn hình cảm ứng, vv. Ta có thể nắm bắt những sự kiện trong
chƣơng trình và có những xử lý thích hợp theo yêu cầu.
Có hai khái niệm liên quan đến quản lý sự kiện Android:
- Event Listeners là một interface. Event Listeners đƣợc sử dụng để đăng
ký sự kiện cho các thành phần trong UI. (Đăng ký sự kiện). Trong các giao
tiếp event listener có những phƣơng thức sau đây:
onClick(): Thuộc View.OnClickListener. Nó được gọi khi người dùng hoặc
chạm vào item (khi ở chế độ cảm ứng), hay lựa chọn vào item với các
phím điều hướng và nhấn nút "enter" phù hợp.
onLongClick(): Thuộc View.OnLongClickListener. Nó được gọi khi người dùng chạm và giữ item (khi
ở chế độ cảm ứng), hay lựa chọn vào item với các phím điều hướng sau đó nhấn và giữ phím
"enter".
onFocusChange(): Thuộc View.OnFocusChangeListener. Nó được gọi khi người dùng điều hướng ra
khỏi item, bằng cách sử dụng phím điều hướng.
onKey(): Thuộc View.OnKeyListener. Nó được gọi khi người dùng lựa chọn và nhấn lên item.
Do Drive thay đổi chính sách, nên một số link cũ yêu cầu duyệt download. các bạn chỉ cần làm theo hướng dẫn.
Password giải nén nếu cần: ket-noi.com | Bấm trực tiếp vào Link để tải:
You must be registered for see links
Last edited by a moderator: