Nhắm bắt được điều này, chúng em quyết định nghiên ctru dé tai “Tim hiểu ứng dụng công nghệ thông tin của doanh nghiệp” Với mong muốn vận dụng kiến thức đã học vảo thực tế, qua đó làm qu
Trang 1
TRUONG DAI HQC CONG NGHE THONG TIN VA
TRUYEN THONG VIET - HAN KHOA KHOA HOC MAY TINH
VU
BAO CAO
THUC TAP DOANH NGHIEP
DE TAI: TIM HIEU UNG DUNG CONG NGHE THONG
TIN CUA DOANH NGHIEP
Sinh vién thyc hign : PHAN THỊ THẢO MAI
Giảng viên hướng dẫn : TS TRẢN VĂN ĐẠI
Doanh nghiệp thực tập : CÔNG TY EPT SOFTWARE
Đà Nẵng, tháng 8 năm 2023
Trang 2
TRUONG DAI HQC CONG NGHE THONG TIN VA
TRUYEN THONG VIỆT - HÀN KHOA KHOA HQC MAY TINH
VU
BÁO CÁO
THỰC TẬP DOANH NGHIỆP
ĐÈ TÀI: TÌM HIỂU ỨNG DỤNG CÔNG NGHỆ THÔNG
TIN CỦA DOANH NGHIỆP
Sinh viên thực hiện : PHAN THỊ THẢO MAI
Giảng viên hướng dẫn : TS TRẢN VĂN ĐẠI
Doanh nghiệp thực tập : CÔNG TY EPT SOFTWARE
Đà Nẵng, tháng 8 năm 2023
Trang 3MO DAU
Xã hội ngày cảng phát triển, hiện đại, văn minh đã mang đến cho con
người nhiều lợi ích Mức sống của con người noảy càng nâng cao, thu nhập cũng tăng lên theo thống kê từng năm Tuy nhiên, sự phát triển nhanh chóng
của xã hội với nhiều thay đổi mang tính chất phi truyền thống đang tạo nên
nhiều áp lực, mâu thuẫn, xung đột phức tạp đang gây tác động tiêu cực đến tâm
lý con người, tạo nên nhiều hệ luy đáng lo ngại Nhiều người có nhu cầu về giải trí lựa chọn việc xem phim để giải toả những cảm xúc tiêu cực hay chỉ đơn giản
dé tận hướng nó, bởi vì phim ảnh được xem là nghệ thuật thứ bay, là thế giới rộng lớn để con người thoả sức bay bông với cảm xúc Xem phim là cách giải trí hiệu quả sau những giờ làm việc vả học tập căng thang
Tại Việt Nam thì xem phim được xem như là một nét văn hoá, đời sống
tinh thần của mỗi người Tuy nhiên, vẫn còn nhiều người có mức thu nhập còn
chưa cao, it thoi gian ranh rỗi thì việc xem phim ở rạp chiếu phim con han ché Mọi người đều muốn xem phim ngay trên các nền tảng Website, điện thoại théng minh, Smart TV, Nhu cầu của mọi người về thể loại đa dang, chat lượng phân giải và tốc độ cao cũng được đặt lên hàng đầu Chính vì thế, mà hàng trăm, hàng ngàn trang web tông hợp phim ra đời thu hút lượng lớn người xem truy cập mỗi ngày Nhắm bắt được điều này, chúng em quyết định nghiên ctru dé tai “Tim hiểu ứng dụng công nghệ thông tin của doanh nghiệp”
Với mong muốn vận dụng kiến thức đã học vảo thực tế, qua đó làm quen
và đúc kết kinh nghiệm để sau này có thể xây dựng nên các hệ thông ứng dụng
công nghệ thông tin vào cuộc sống, đáp ứng nhu câu xã hội Đồng thời qua đó, chúng tôi có thê hiểu sâu vào nội dung và nắm được ý nghĩa thực tiễn của môn
học
Trang 4LOI CAM ON
Trước hết với tình cảm chân thành nhất, cho phép em được bày tỏ lòng biết
ơn đến thầy/cô và các anh chị ở đơn vị kiến tập đã hỗ trợ em rất nhiều trong lần kiến
tập này
Với lòng biết ơn sâu sắc nhất, em xin gửi đến thầy cô ở Khoa Khoa học máy tính đã tạo điều kiện cho em được tham gia kiến tập tại một môi trường năng động
và thực tế, đặc biệt là TS Trần Văn Đại đã trực tiếp hướng dẫn và tạo điều kiện để
em có thể hoàn thành tốt bài báo cáo này
Bên cạnh đó, em xin gửi lời cảm ơn chân thành đến Công ty FPT Sofware
đã tận tỉnh hướng dẫn cũng như giải đáp những thắc mắc khi em có dịp được đến kiến tập tại đơn vị Chắc chắn những lời chỉ dẫn của anh/chị sẽ là tiền đề, là kinh
nghiệm đề em có thế phat trién sau nay
Em xin chan thanh cảm ơn!
Trang 5NHAN XET CUA GIANG VIEN HUONG DAN
Giảng viên hướng dẫn
Trang 6MUC LUC
)/.0\0:81099 (0070 c1 .ÔỎ 8 DANH MỤC HÌNH ẢNH - 2-2 2s se ©eEsseEserserscsererserzersree 9 Chương I GIỚI THIỆU THÔNG TIN THỰC TẬP - 5- 11
1.1 Thông tin sinh viên c1 21122112112 21 1511511115111 1111 11211111182 1 kg 11 1.2 Cơ quan thực tập - - 2 2222221211121 122211211 15111111211 1111112812182 tk 11 1.3 Thông tin người hướng dẫn _ 11
Chwong II GIOI THIEU VE CONG TY FPT SOFTWARE 12
2.1 Cơ quan thực tập - L2 0112112111211 1111121 1121121111111 111 111tr 12 2.2 Giới thiệu chung - 222 22212211221 12211151 1511151 11111111 1711011 H11 12 2.3 Mục tiêu hoạt động L0 120221121112 1121 11211211111111111 12101111 ky 12
2.4 Cơ cầu tô chức s- s21 t111112112112112111 11212121 12111111 nggrey 13
2.5 Lĩnh vực hoạt động 2 2 120112211211 121111111111111 101 1112221 13
2.6 Các sản phẩm - S1 1 1111211111211 1121211121 121gr 14 2.6.1 Vận hành số - 5-5 S111 221211111211 1211121211121 21 12c rey 14 2.6.2 Nền tảng trí tuệ nhân tạo FPT AI 2s 22222211122 trteg 14
2.6.3 Công nghệ xe tự láI 2 2.12122111211211 1111111 112111 111111 ng 15
Chương III GIỚI THIỆU ĐÈ TÀI 2-2 5° se©s<e ssese s2 se 17
BL TOmg 5h cecccccccccceccseesesseseessesessseseseesscseessssicsesiessnsesecsesessseseeseess 17
knN ' ca nh 7.WẶ 17 KkhVC.oaả.ỔỶỶÝỶẢ 17 KIEN ah 18
3.2 Phương pháp, kết quả -s- cS1 2E 2121121112121 12 ru 19
Chương IV TÌM HIỂU CÔNG CỤ 20
4.1 Tổng quan về hệ điều hành Android 5+ s2 Sz SE SES2212212221 x6 20
4.1.1 Giới thiệu về hệ điều hành Android 5s s2 szzzczszxze2 20 4.1.2 Lịch sử hệ điều hành Android - 2 222222 re 20 FPN)4.idđdiiiadiiaÁÁÁÁÝÁ 20 4.1.4 Kiến trúc cơ bản của hệ điều hành Android eee 22
4.1.4.1 Limux KernelÌL - - - c2 2111 H1 S1 S4 222282251 1n ra 22 4.1.4.2 Thư viện và các ø1ao diện lập trình ứng dụng 23 4.1.4.3 Android Runtime -L L c1 2222211111115 2511 11kg net 24 4.1.4.4 Khung tng dung (Application framework) 24
FT N0 l1aaaaỔdđäẢẢŸẢẢÝỶÝỶÝỶÝ 25
4.2 Giới thiệu về Android Studio s2 1212151111212 1111 11112 n xe 25 4.2.1 Lịch sử hình thành 52 5111912111111 11211111111111 1111212 xe 25 4.2.2 Lịch sử phát triỂn 5+ s 1E E11 211212111121 21122111 11g 26 4.2.3 Câu trúc dự án Android trong Android Studio 27
4.2.3.1 Tạo một proJecf mỚI c1 22 2212211152111 1 15212 ce, 27 4.2.3.2 Màn hình làm việc cua Android Studio eee 29 4.2.4 Thành phần giao diện trong Android Studio 5-5552 31
4.2.4.1 Thành phần hiễn thị 52s E1 2E18711121121 11222 x6 31 4.2.4.2 Một số nhóm hiển thị cơ bản 2-5 se S222 2x2zcceg 32
4.2.5 Bắt và xử lý sự kiện trên ø1ao diện - 522cc 222 ccssss2 33 4.2.6 Vòng đời ứng dụng Andfroid : 2c s22 22211211121 errk2 34
4.2.7 Thành phần Intent 52-52 5 211215 1271211211211111 1152 te 36
Trang 7Chuong V PHAN TICH THIET KE HỆ THÓNG 5 5 5 39
5.1 Phan tich và thiết kế hé thong cccsccecsesessesesesesesesessesteeeseres 39 SLL Plann tick cccceccccccesecssessessessresstessesesesseesansaressesssissetseseeseeeees 39 5.1.2 Thiết kế hệ thông - 5 19T 12112112112121111 1211151 xe 39
5.2 Lập sơ đồ hệ thong — 40
5.2.1 Sơ đồ ngữ cảnh hệ thống - 2 5 S2 E222121211112E2 xe 40
5.2.2 Sơ đồ phân cấp chức năng hệ thống 2 22s cEzcsez 41
5.2.3 Sơ đồ luồng đữ liệu 52s 2T 221211 1121111211222 re 41 5.2.3.1 Sơ đồ luồng phân rã cấp l 5n 2H 41 5.2.3.2 Sơ đồ luồng phân rã cấp 2 - 5S n n2 me 42 5.2.3.3 Sơ đồ luồng phân rã 2 l 22-5 SsTE 222111212 1xe 42 5.3 Thiết kế chỉ tiết hệ thống với UML - 2-52 S22 2921521271122 122 42 5.3.1 Tổng quan về UML - - 5-2292 9115121151211212121121 21 e2 42 5.3.2 Các tác nhân của hệ thống - 52 S121 E1 E1 1511151 111122 2xe 45
5.3.3 Biểu đồ Use case á.S nSn n1 21211 1211211111121111112121211 11112 2x6 45
5.3.4 Biểu đỗ lớp + s11 2211211211121 2211211121 rye 50 5.3.5 Biểu đồ tuân tự - + 22 2212211112112112112121212121212 xe 50
5.3.6 Biểu đồ hoạt ñ01 100 53
Chuong VI TRIEN KHAI XAY DUNG 56
6.1 Chive nang tng dung cece ccc ceeseeseeeeeecensesesesseeeensteeeeeees 56 6.2 Hé thong thong tit ccccccseccsessesccsesseseesseseseeseseseeseseesestseesesnseeees 56 6.3 Hinh ảnh ứng dụng - 2 2222221121112 1 12 12211181 15111111 11111211 kg 57
Chương VII KÉT QUÁ VÀ KÉT LUẬN 75 7.1 KẾT QUẢ 5 S1 T1 1111 1211112112112121 1111 Ẹ1 1 12012112121 ru 75 7.2 Kết luận - 2 21 21121121127122121112112112112111221212122222 re 75
Trang 8DANH MUC CAC BANG
Bang | Xie ly sw kiện trong Android - Một số sự kiện thường gặp trong Android
Trang 9DANH MUC HINH ANH
Hình 1 Giải pháp tự động hóa quy trinh bang Robot (RPA) .ccccccccccccccccceceseee 13
Hình 2 Nên tảng trí tuệ nhân tạo FPTLAI được FPT chính thức cho ra mắt vào
2715 /07//PPPAẼ 14
1, (EBin6o 4 6.1 ng ng ốốốốố 15
Hình 4 Kiến trúc hệ điều hàằnh ảnh Heo 21
Hình 5 Bước l: Chọn tao DFOJ€CE HHỚI à cT nn nh TT HH ra 26
0.01 302860, 1 0.i )00Nn na 26
Hình 7 Bước 3: Lựa chọn các thuộc tính cho tĩHg đỤHG à.cccc eo 27
Hình 8 Màn hình sau khi bulldl DFOJGCÍ XOHE à à nnT nnHH HH nh Hà 28
Hình 9 Các vùng làm việc của Android SIHđÌO ch HH re, 28
Hình 10 Vòng đời của HỘI ẢCHVÍHJ SH HH HH HH HH kg 35
Hình 11 Sơ đồ ngữ cảnh hệ thống - 55: 5s 2121121121 E121 1e 39
Hình 12 Sơ đồ phân cấp chức năng hệ 03 -8EEEEEEREEh 40
Hình 13 Sơ đô luong phân rã CẬP Ï, cà hHHHHHHHHHHHHhHie 40
Hình 14 Sơ đô luong phân VO COD Ö HT HH kg ng ca 4]
Hình 15 Sơ đồ luông phân rã 2 5 5S E2 12211 1 112111211211 41
Hình 16 Biểu đô se case TÔng quHÁt c5 SE E111 1111211211121 ru 44
Hình 171 Biểu đô se case Đăng nhập s1 11211111 rrg 45
Hình 1§ Biểu đô se case Quản lÿ danh thục pHẲM ảo net 46
Hình 19 Biểu đô Lise case Quản ly philm 5s 5S E222 1212k 47
Hinh 20 Biéu dé Use case Quản lý Dan Quan Fh ce ieee tenets 48
Hình 21 Biểu đô 20/00/2227 0 NNNNNgg1 49
Hình 22 Biéu đồ tuân tự chức năng Đăng HhẬP Tà Tnhh eea 49
Hình 23 Biểu đô tuần tự chức năng Quản lý danh tục phÍM cà cà 50
Hình 24 Biểu đồ tuần tự chức năng Quản lý phiId chen 51
Hình 25 Biểu đô tuân tự chức năng Quản Ìÿ ban quản tHị -cc sec sccsea 51
Hình 26 Biêu đồ hoạt động cho hoạt động Đăng n!hẬp ào cà can 52
Hình 27 Biéu dé hoat động cho hoạt động Đăng Ký ác c Tnhh re 52
Hinh 28 Biéu dé hoat động cho hoạt động Thêm dit li@t ccccccccccccccceeteeetees 53
Hình 29 Biêu đồ hoạt động cho hoạt động Hiệu chỉnh dữ HIỆu 53
Hinh 30 Biéu dé hoat động cho hoạt động Xóa dữ HU occ e cet eees 54
Hình 31 Giao diện khởi đỘnNG ỨHĐ (ỈỤ nnHnHHnnn HH nhá 56
Hình 32 Giao diện đăng rhhẬpP TS n HH TH TH HH ng ke 57
[7.8 EWN €8 00 n6 6a 58
Hình 34 Giao điện quên mật khiẩ SH HE HH HH HH na 59
Hình 35 Giao diện trang CÍHỈ (Ï) ccc n1 v12 111111111 2111111111111 ray 60
Hình 36 Giao diện trang CÍHỈ (2) cc c1 112 111111111 2111111111111 ray 61
Hình 37 Giao diện người dùng (Ì) cccccc HH HH HH ng kh 62
Hình 38 Giao diện người dùng (2) c cccc HH HH HH tre 63
Hình 39 Giao diện hiệu chính mật khẩu các TH H1 HH ra 64
Hình 40 Giao điện hiệu chỉnh eImdlÏ ccc cv ng x12 11k khen nhe 65
inh 41 XOG NQueod HUA nan ố.ố 66
1,0 /N 2.7 72 000 0n 06 ee 67
1/0 SN 2.4 72 0/0n n6 ốố ốe 68
Trang 11Chuong I GIOI THIEU THONG TIN THUC TAP
1.1 Thông tin sinh viên
Họ và tên: Phan Thị Thảo Mai Lớp: 21SEI - Chuyên ngành: Kỹ thuật phần mềm
1.3 Thông tin người hướng dẫn
Họ và tên: TS Trần Văn Đại
Địa điểm làm việc: Trường Đại học Công nghệ thông tin va Truyền
Trang 12Chương II GIOI THIEU VE CONG TY FPT SOFTWARE
2.1 Cơ quan thực tap
Tên cơ quan: Công ty TNHH FPT Software Dia chỉ: FPT Complex, đường Nam Kỷ Khởi Nghĩa, phường Hoà Hải,
quận Ngũ Hành Sơn, Đà Nẵng, Việt Nam
Email: fsoft.contact(2fsoft.com.vn Website: //fpt-software.com
2.2 Giới thiệu chung
Công ty TNHH phần mềm FPT Đả Nẵng (Gọi tắt là FSoft Da Nẵng)
được thành lập vào tháng 8/2005 tại đường số 1, khu công nghiệp Đả Nẵng,
phường An Hải Bắc Công ty TNHH phần mềm FPT tại Đà Nẵng là một thành viên thuộc tập đoàn FPT, hoạt động trong lĩnh vực gia công xuất khâu phần mềm của Việt Nam
Sau 12 năm hoạt động (từ 13/08/2005), FPT Sofware Đà Nẵng đã không ngừng lớn mạnh và trở thành công ty công nghệ thông tin có quy mô lớn
nhất miền Trung Công ty đang hướng tới mục tiêu 5000 nhân sự vào năm
2023
Đề đáp ứng nhu cầu tăng trưởng nguồn lực trong 12 năm qua, công ty đã xây dựng quan hệ với gan 30 trường Đại học, Cao đẳng có đào tạo về CNTT tại khu vực miền Trung (Vinh, Huế, Quảng Nam, Quảng Ngãi, Quy Nhơn, ) Hién tai, FPT Software Da Nang đang có 2 trụ sở làm việc là Tòa nhà FPT An Đồn, phường An Hải Bắc, quần Sơn Trà và Tòa nhà FPT Complex, đường Nam Ky Khởi Nehĩa, phường Hòa Hải, quận Ngũ Hành Sơn FPT Software tại
Đà Nẵng được xem là địa điểm làm việc hiện đại của miền Trung
2.3 Mục tiêu hoạt động
- Kinh doanh:
® - Với khách hàng là các doanh nghiệp lớn: Tập đoàn tập trung mở
rộng/thúc đây cung cấp dịch vụ, giải pháp chuyển đổi số toản
Trang 13diện từ khâu tư vấn đến triển khai Trong đó, tập trung vào cung cấp các nên tảng, giải pháp công nghệ mới như RPA, Lowcode,
AI, Blockchain va cac dich vu chuyén đối, quản trị vận hành
hạ tầng CNTT điện toán đám mây
®©- Với khách hàng là các doanh nghiệp vừa và nhỏ: FPT tiếp tục phát triển mở rộng nhóm các giải pháp Made by FPT hướng tới một nền tảng quản trị duy nhất tất cả trong một và có khả năng kết nối mở rộng với các giải pháp, dịch vụ của bên thứ 3 nhằm tối
ưu vận hành
© Với khách hàng cá nhân: FPT mong muốn đem đến những trải
nghiệm dịch vụ tốt nhất đựa trên các giải pháp và nền tảng quản tri mdi
- Céng nghé:
e FPT sé tập trung phát triên công nghệ theo hai hướng là phát triển
các nền tảng, công nghệ lõi và gia tăng trải nghiệm khách hàng,
hiệu quả vận hành dựa trên công nghệ
® Tập đoàn sẽ tiếp tục đây mạnh nghiên cứu, phát triển chuyên sâu các piải pháp dựa trên công nghệ Blockchain, Lowcode, Al,
Cloud cùng với các Nền tảng dữ liệu (Người dùng/Khách
hàng/Dữ liệu nội bộ) đem lại các giải pháp kinh doanh hiệu qua, đáng tin cậy cho các tô chức/tập đoàn lớn, doanh nghiệp vừa và
nhỏ và những trải nghiệm đột phá cho khách hàng cá nhân
Trang 14- Xuất khẩu gia công phần mềm, bá lẻ sản phâm CNTT
Hình 1 Giải pháp tự động hóa quy trình bằng Robot (RP4)
2.6.2 Nền tảng trí tuệ nhân tạo FPT.AI
EPT.AI là nên tảng trí tuệ nhân tạo toàn diện, sản phâm chiến lược của
Ban công nghệ tập đoàn FPT.FPT.AI được phát triển và ứng dụng những kỹ
thuật học máy, học sâu tiên tiến nhất hiện nay với 4 mô-đun, gồm: FPT.AI
Conversation (Nền tảng hội thoại FPT.AI) cho phép xây dựng chatbot có khả
năng xử lý ngôn ngữ tự nhiên để tương tác với khách hàng, có thé tích hợp trên
nhiều ứng dụng trò chuyện như: Facebook, Messenger, Zalo, Viber, ; FPT.AI
Speech hỗ trợ tự động nhận dạng giọng nói tiếng Việt và chuyên đổi văn bản
thành tương tác âm thanh với người dùng
Trang 15cũng đã được Bộ Giao thông Vận tải đồng ý cho thử nghiệm công nghệ xe tự
lái trong khuôn viên khu công nghệ cao Hiện FPT Software đang nghiên cứu
bố sung thêm một số tính năng mới, gia tăng độ chính xác về khả năng di
chuyền trên một nền tảng xe mới Dự kiến, FPT Software sé chạy thử nghiệm
phiên bản công nghệ xe tự hành mới trong khuôn viên của khu công nghệ cao
Trang 16
Hình 3 Công nghệ xe tự lái
Trang 17Chương III GIOI THIEU DE TAI
3.1 Téng quan
3.1.1 Tên đề tài
“TIM HIEU UNG DUNG CONG NGHE THONG TIN CUA DOANH
NGHIEP - XAY DUNG UNG DUNG XEM PHIM”
3.1.2 Giới thiệu
e Đối cảnh thực hiện dé tai: Như chúng ta đã thấy rằng tại Việt Nam thi xem phim được xem như là một nét văn hoá, đời sông tính thần của mỗi người Tuy nhiên, vẫn còn nhiều người có mức thu nhập còn chưa cao, ít thời gian rảnh rỗi thì việc xem phim ở rạp chiếu phim còn hạn chế Mọi người đều
muốn xem phim ngay trên các nền tảng Website, điện thoại thông minh,
Smart TV, Nhu cầu của mọi người về thể loại đa dang, chat lượng phân giải và tốc độ cao cũng được đặt lên hàng đầu Chính vì thế, mà hàng trăm, hàng ngan trang web tổng hợp phim ra đời thu hút lượng lớn người xem truy cập mỗi ngày Nhắm bắt được điều này, chúng em quyết định nghiên cứu đề tai “Tim hiéu ing dụng công nghệ thông tin của doanh nghiệp - Xây dựng ứng dụng xem phữm`
© Tĩnh cấp thiết của đề tài: Cùng với sự phát triển của Internet, ngay nay, việc sở hữu một ứng dụng không còn là điều xa lạ, thậm chí trong một số trường hợp còn là tiêu chuẩn bắt buộc với doanh nghiệp - công ty trong thời điểm cạnh tranh mang tính toàn cầu như hiện nay
e Vấn đề cân giải quyết: Xây dựng và phát triển một ứng dụng, nơi khách hàng có thể dễ đàng tìm kiếm những bộ phim họ yêu thích là thưởng thức chúng một cách thoải mái nhất Giải quyết được nhu cầu giải trí của mọi
nguol
Trang 183.1.3 Mục tiêu
Xây dựng được các chức năng cơ bản của một ứng dụng xem phim Ứng dụng có khả năng tự tương thích, hiển thị được trên tất cả thiết bị di động
và có thê nâng cấp trong tương lai
Giao diện đẹp, thu hút người dùng
Hỗ trợ bảo mật nhiều lớp, đảm bảo toàn bộ thông tin của người dùng đều được bảo mật
Được tích hợp các công nghệ thiết kế ứng dụng mới nhất hiện nay như:
01/06 — 15/06
Nhận công việc, viết Đề cương, lập kê hoạch, chuan
bị các yêu câu đề thực hiện công việc
Tuan lam việc từ
29/07 — 02/08 Tập duyệt trình bày Vạch ra các câu hỏi và câu trả
Trang 193.2 Phương pháp, kết quả
e Phương pháp: Sử dụng Kotlin và một vải ngôn ngữ lập trình khác để hoàn
thành ứng dụng
e Kế quả: Ứng dụng giúp người dùng có thê dễ dàng hơn trong việc tìm
kiếm và thưởng thức những bộ phim họ thích một cách thoải mái nhất
Trang 20Chuong IV TIM HIEU CONG CU
4.1 Tong quan vé hé diéu hành Android
4.1.1 Giới thiệu về hệ điều hành Android
Android là hệ điều hành trên nền tảng đi động được phát triển dựa trên
hệ điều hành Linux bởi Google, được sử dụng chủ yếu trong các thiết bị mản hình cảm ứng, điện thoại di động và máy tính bảng Nó cho phép người dùng thao tác với các thiết bị một cách trực quan thông qua chuyên động của ngón tay như: chạm, vuốt Google cũng sử dụng phần mềm Android trên tivi, ô tô và
đồng hồ đeo tay Kế từ khi ra mắt, Android đã ngày càng trở nên phô biến với
lượng người dùng ngày một tăng
4.1.2 Lịch sử hệ điều hành Android
Hệ điều hành này đầu tiên được Android.Inc - một công ty phan mém dat tai Thung ling Silicon - phat triển, sau đó được Google mua lại vào ngày
17 tháng 8 năm 2005 Kế từ đó, các nhà phát triển phần mềm có thể sử dụng công nghệ Android đề phát triển các ứng dụng dành cho thiết bị di động, được bán trên các cửa hàng ứng dụng Bởi vì nó được phát triển như một sản phẩm của Google, nên người dùng Android có cơ hội liên kết thiết bị di động của họ với các sản phâm khác của Google, chăng hạn như nền tảng email, Google Dnve
Tính đến tháng | nam 2020, Android là hệ điều hành phổ biến nhất được
sử dụng trên các thiết bị di động, với 74,3% thị phần toàn cầu IOS của Apple đứng thứ hai với 24,8%
4.1.3 Đặc điểm
—_ Tính mở: Hệ điều hành Android là một nền tảng mã nguồn mở, cho
phép các lập trình viên có thê điều chỉnh và thiết kế các ứng dụng
một cách linh hoạt và để dàng Android hoàn toàn mở, một ứng dụng
20
Trang 21có thể ĐỌI tỚI bất kế một chức năng lõi của điện thoại như tạo cuộc gol, su dung tin nhan hay máy ảnh, Thêm vào đó, nó sử dụng một máy ảo đã được tối ưu hoá bộ nhớ và phần cứng vơi mô trường di động Nền tảng này sẽ tiếp tục phát triển bởi cộng đồng để tạo ra các ứng dụng di động hoàn hảo
Tính ngang bằng của các ứng dụng: Với Android, không có sự khác nhau giữa ứng dụng điện thoại cơ bản với ứng dụng bên thứ ba Chúng được xây dựng để truy cập như nhau tới các ứng dụng và dịch
vụ của điện thoại
Xây dựng ứng dụng dễ dàng và nhanh chóng: Android cung cấp
bộ thư viện giao diện lập trình ứng dụng đỗ sộ và các công cụ để viết các ứng dụng phức tạp
21
Trang 224.1.4 Kiến trúc cơ bản của hệ điều hành Android
Hệ điều hành Android là ] ngăn xếp các thành phần phần mềm, được
chia thành 5 phan như hình dưới
——=_— Á ma
Application Framework
Linux Kernel là lớp thấp nhất Android sử dụng nhân Linux làm nhân
cho các dịch vụ hệ thống như bảo mật, quản lý bộ nhớ, quản lý tiến trình, ngăn xếp mạng và điều khiến thiết bị (giao tiếp USB, giao tiếp hồng ngoại, không dây )
22
Trang 234.1.4.2 Thư viện va các giao diện lập trình ứng dụng
Thư viện android khá phong phú, cung cấp sẵn cho người lập trình có thể sử dụng Android có một tập các thư viện nòng cốt để cung cấp hầu hết các chức năng sẵn có trong thư viện cốt lõi của ngôn ngữ lập trình Kotlin/Java
Danh sách các API cơ bản cho phát trién ứng dụng:
— Android.util: Gói tiện ích cơ bản gồm nhiều lớp cấp thấp như lớp quản
lý, lớp xử lý chuỗi, lớp xử lý XML
— Android.os: Gói hệ điều hành cung cấp truy cập đến các dịch vụ cơ bản
— Android.sraphics: Cung cấp các lớp đồ hoạ mức thấp thực hiện các chức năng đồ hoạ, vẽ, màu cơ bản
— Android.text: Hién thi va xt ly van ban
— Android.database: Cung cap các lớp mức thấp bắt buộc cho việc điều
khiển cursor khi làm việc với các cơ sở dữ liệu
— Android.content: Cac giao tiếp lập trình nội dung được dùng để quản lý truy cập dữ liệu và xuất bản bằng cách cung cấp dịch vụ thao tác với tải nguyên và các 201
- Android.view: View là lớp giao diện người dung cơ bản nhất Tất cả giao điện người dùng tạo ra đều phải sử dụng một tập các View để cung cấp cho các thành phần tương tác người dùng
— Android.widset: Xây dựng dựa trên gói View Những lớp Widpet là những thành phần giao điện được tạo sẵn dé xây đựng giao diện
—_ com.øoogle.android.maps: Bộ API mức cao cung cấp truy cập đến điều khiến bản đỗ sẵn trong Android
—_ Android.app: Một gói thư viện bậc cao, cung cấp truy cập đến dữ liệu của ứng dụng Gói ứng dụng cũng bao gồm lớp Activity và Service là thành phần cơ bản của mọi ứng dụng Android
23
Trang 24- Android.provider: Tao thuan loi cho nguoi phat trién truy cap đến các Content Provider tiéu chuan
— Android.telephony: Các API điện đàm cung cấp khả năng tương tác trực tiếp với tầng điện thoại trong các thiết bị, cho phép tạo, nhận, theo dõi các cuéc gol va tin nhan SMS
4.1.4.3 Android Runtime
Đây là phần thứ 3 của kiến trúc và nằm ở lớp thứ 2 từ dưới lên Phần
nảy cung cấp 1 bộ phận quan trọng là Dalvik Virtual Machine - là 1 loại Java
Virtual Machine được thiết kế đặc biệt để tối ưu cho Android
DVM sử dụng các đặc trưng của nhân Linux như quản lý bộ nhớ và đa luồng, những thứ mà đã có sẵn trong Kotlin/Java DVM giúp mở ứng dụng Android chạy trong tiến trình riêng của nó, với các thể hiện riêng của DVM
Android Runtime cũng cung cấp l1 tập các thư viện chính giúp các nhà phát triển ứng dụng Android có thế viết ứng dụng Android bằng Kotlin/Java
4.1.4.4 Khung wng dung (Application framework)
Kiến trúc của Android khuyến khích các khái niệm Thành phần sử dụng
lại, cho phép công bồ và chia sé cac Activity, Service, dit ligu voi các ứng dụng khác với quyền truy cập được quản lý bởi khai báo
Cơ chế đó cho phép người lập trình tạo ra một trình quản lý danh bạ hoặc trình quay số điện thoại mà có các thành phần người khác có thê tạo mới giao diện và mở rộng chức năng thay vì viết lại chúng
Những dịch vụ sau là dịch vụ kiến trúc cơ bản nhất của tất cả các ứng dụng, được cung cấp mot framework cho moi phan mém duoc xay dung:
— Activity Manager: Diéu khiến vòng đời của các Activity
— Views: Duoc str dung để lập các giao diện người dùng của các Activity
24
Trang 25— Notification Manager: Cung cap mot co ché cé dinh va quy cu cho việc gửi các thông báo đến người dùng
— Content Provider: Cho phép chia sẻ dữ liệu p1ữa các ứng dụng
- Resource Manager: H6 cac thanh phan khéng thudc ma nguén nhw 1a
chuỗi ký tự, đồ hoạ được đặt bên ngoài
4.1.4.5, Ứng dụng
Đây là lớp trên cùng của kiến trúc nền tảng Android Android sẽ hoạt
động với một bộ các ứng dụng bao gồm các ứng dụng như thư điện tử, gửi tin nhắn, lịch, bản đồ, trình duyệt web, danh bạ, Tất cả các ứng dụng được viết bằng ngôn ngữ Kotlin/Java Các ứng dụng này có thể được cung cấp sẵn hoặc
được phát triên bởi những lập trình viên
4.2 Giới thiệu về Android Studio
tháng 12 năm 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ụng Android Nó hỗ trợ các hệ điều hành Windows, Mac OS X và 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
25
Trang 264.2.2 Lịch sử phát triển
Lịch sử phiên bản của hệ điều hành di động Android bắt đầu với bản
Android beta vào tháng 11 năm 2007 Phiên bản thương mại đầu tiên, Android 1.0, được phát hành vào tháng 9 năm 2008 Android đang được phát triển
boi Google va Open Handset Alliance (OHA), va da co mét số bản cập nhật cho hệ điều hành này kể từ khi ra mắt
Từ tháng 4 năm 2009, phiên bản Android được phát triển dưới tên mã là
chủ đề bánh kẹo và phát hành theo thứ tự bảng chữ cái Kế từ Android 10,
phiên bản Android không còn được phát triển dưới tên mã là chủ đề bánh kẹo
nữa: Cupcake (1.5), Donut (1.6), Eclair (2.0-2.1), Froyo (2.2— 2.2.3), Gingerbread (2.3-2.3.7), Honeycomb (3.0—3.2.6), Ice Cream Sandwich (4.0-4.0.4), Jelly Bean (4.1-4.3), KitKat (4.4), Lollipop (5.0-
5.1.1), Marshmallow (6.0), Nougat (7.0), Oreo (8.0), Pie (9.0),Q (10.0),R
(11.0), S (12.0)/S (12L), Tiramisu (13.0) va sap toi la Upside Down Cake
Trang 274.2.3 Cau tric du an Android trong Android Studio
4.2.3.1 Tạo một project mới
om [EG Edit View Navigate Code Refactor Build Run Tools VCS Window Help
% Open Import Project
5 ™' 1 Profile or Debug APK Project from Version Control
š Open Recent > New Module
g Close Project Import Module
3 Add C++ to Module Import Sample
Hình 5 Bước l: Chọn tạo project mới
Chọn File ở trên thanh công cụ, sau đó chọn New —> New Project
Hình 6 Bước 2: Chọn loại Acfivity
- Màn hình này hiển thị cho phép chọn loại Activity mặc định và ứng dụng sẽ
được viết cho những thiết bị nào (Phone and Tablet, Wear, TV, )
- Chon Empty Activity roi bam Next
Trang 28Empty Activity Creates a new empty activity Name My Application Package name com.example.myapplication Save location C\Users\ DELL\AndroidStudioProjects\MyApplication2
Minimum SDK — API 33: Android 13.0 (Tiramisu) =
© Your app will run on approximately 5.2% of devices
Help me choose
Previous Cancel Ey Hình 7 Bước 3: Lựa chọn các thuộc tính cho ứng dụng
- Ở hộp thoại trên cho phép ta lựa chọn các thuộc tính cho ứng dụng:
+
+
Name: Tên ứng dụng muốn đặt
Package name: No sé tự động đặt theo tên của ứng dụng
Save location: Nơi lưu trữ ứng dụng
Languape: Chọn ngôn ngữ ing dung (Kotlin, Java)
Minimum SDK: chọn phiên bản android tối thiểu để chạy ứng dụng Hiện
nay phiên bản cao nhất là API 33: Android 13.0 (Tiramisu)
- Bam Next dé hoàn thành
28
Trang 29Khi build xong mac định có màn hình như dưới đây:
ae Bie Ect View Navigate Cote fehdeí Build Run Took WS Window ĐeỌp M: o x
mele myapelcation ẤÈManAchiy Ấ xe v LÍ DNewscanasy b> e668 #2%20
Activity { lđinstarceState: Bunđte?) {
Hình 8 Màn hình sau khi build project xong
4.2.3.2 Màn hình làm việc của Android Studio
Theo mặc định Android Studio hiến thị các ñles trong project theo góc nhìn Android Góc nhìn này Android Studio sẽ tổ chức các files theo 3 module
- Mamifests: chứa file AndroidManifest.xml
- Java: chứa các file mã nguồn Kotlin/Java
- Res: chứa tất cả các file layout, xml, giao điện người dùng (UI), ảnh
Mở ProJect mặc định activity_main.xml sẽ được chọn, ta có màn hình làm việc được chia thành 6 vùng như sau:
AE Be ớt Wem MeSyee Coức Đo BúG N Swede i 2
= i
He BLO, GH1=~ =32- @Meeglesos- Odean eras ® nin ae-}
Trang 30e Vung 1: Là nơi cấu trúc hệ thống thông tin của ứng dụng Ta có thể thay đổi cầu trúc hiển thị (thường để mặc định là Android)
Ta có thể thay AndroidManifest.xml nam ở đây File nảy vô cùng quan trọng
trong việc cấu hình ứng dụng
Các thư mục:
- drawable: chứa các file hình ảnh và xml trong ứng dụng
- layout: chứa các p1ao diện màn hình được thiết kế dưới dang xml
- values: chứa các file lưu g1á trị màu sắc, kích thước, chuỗi,
e Vùng 2; Là vùng khá quan trọng cho những bạn mới bắt đầu lập trình, nó
là nơi hiển thị các View mà Android hỗ trợ, cho phép bạn kéo thả trực tiếp
vào vùng 3 (Giao điện thiết bị) đề thiết kế
Ở vùng số 2 này nó có 2 tab: Desien và Text ở góc trái đưới cùng
- Tab Design la tab ma ta đang nhìn vào và thao tác với nó (cho phép thiết kế
giao diện bằng cách kéo thả)
- Tab Text là tab cho phép ta thiết kế giao diện bằng viết thẻ XML
e Vùng 3: Là vùng giao diện cho thiết bị, cho phép các kéo thả View vào đây và đồng thời cho ta hiệu chỉnh View
e Vùng 4: Khi màn hình có nhiều View thì vùng 4 này trở nên hữu ích, nó
cho phép hiến thị giao điện theo dạng cấu trúc cây, nên ta đễ dàng quan sat
và lựa View bị chồng lập trên giao diện (vùng 3)
e Vùng 5: Vùng này rất quan trọng, đây là vùng cho phép thiết lập trạng thái hay thuộc tính cho các View trên ø1ao diện
e Vùng 6; Là vùng các chức năng quan trọng thường dùng trong Android Studio:
- Chạy ứng dụng và Debug ứng dụng
- Quản ly may ao
- Quan ly Android SDK Manager
- Quan ly Android Device Manager
30
Trang 314.2.4 Thành phần giao điện trong Android Studio
4.2.4.1 Thành phần hiển thi
Một thành phần hiến thị trên màn hình đó là một view Trong Android
có rất nhiều loại view, phủ hợp với nhiều nhu cầu Bản thân lập trình viên cũng
có thế tự tạo ra view của riêng mình bằng cách code các lớp Kotlin/Java extends từ lớp view
Một số loại view tiêu biểu là:
- TextView: Hiến thị chữ Có thể thay đổi nội dung chữ, màu sắc, kích cỡ, kiểu dam/gach chan,
- Button: Nut c6 thé thay đôi độ rong, cao, mau nền nút, kiểu viền, đồ bóng
- Switch: Công tắc có 2 chế độ gat qua gat lai nhu chơi điện tử, những mà chỉ
Các View có những thuộc tính khác nhau, gọi là các attributes
- Ví dụ như EditText thì có attributes là MaxLength (số ký tự tối đa) và MaxLines (số dòng tôi đa) TextView thì có fontSize (cỡ chữ) và inputType (kiểu nhập: số/ chữ/ email )
- Tuy nhiên các View đều có một số attributes chung như:
+_ Layout_width: Độ đài chiều ngang của View Có thể là con số cụ thể hoặc
là wrap_content (Bao đủ nội dung bên trong thì thôi), hay match_parent (bằng với chiều ngang của View chứa nó)
+_ Layout heipht: Độ dải chiều đọc của View Có thể là con số cụ thể hoặc là wrap_content (Bao đủ nội dung bên trong thì thôi), hay match_parent (bằng với chiều dọc của View chứa no)
+ ID: Cai nay rat quan trong, mỗi một View trong một layout đều được gan với một định danh (¡d) này để gắn chức nắng với code Kotlin/Java ở trong
31
Trang 324.2.4.2 Một số nhóm hiển thị cơ bản
LinearLayout
Quá nôi tiếng, được sử dụng rất nhiều Các View con cấp | trong Layout này sẽ được sắp xếp chỉ theo I hướng: dọc hoặc ngang (Vertical/Horizontal), chỉ định bằng thuộc tính android:orIentation
Trong LinearLayout nhiều khả năng là bạn sẽ thấy có các thuộc tính sau hay được dùng:
- Android:gravity: Căn lề của nội dung của View (hướng nội, giống thuộc tính text-align trong CSS)
- Android:layout_gravity: Căn lề hướng ngoại, so với ViewGroup chứa nó,
giống thuộc tính float trong CSS
- Android:layout_welepht: Tỉ lệ của View đó so với View mẹ Mặc định View
mẹ nếu không đặt trong thuộc tính weight_sum thì sẽ là | va View con sé co ti
lệ nằm trong khoảng từ 0 đến 1 (chấp nhận số thập phân)
RelativeLayout
Khác với LinearLayout, RelativeLayout và các Layout con của nó hiển thị bằng các quan hệ với các Layout trong cùng một Layout mẹ, hoặc với chính Layout mẹ
- VỊ trí dựa trên quan hé: layout_above, layout_below, layout_toLeftOf, layout_toRightOf
-Vi trí dựa trên Layout me: android:layout centerHorizontal, android:layout_centerVertical
-Căn chỉnh dựa trên quan hé: layout_alignTop, layout _alignBottom, layout_alignLeft, layout_alignRight, layout_alignBaseline
-Caén chinh dựa trên Layout me: layout_alignParentTop, layout_alignParentBottom, layout_alignParentLeft, layout_alignParentRight FrameLayout
FrameLayout là dạng layout rất đơn giản: Tất cả những View nằm trong đều được nhồi nhét phía trong nó Và nếu bạn cần một layout sắp xếp theo trục tọa độ Z (giống z-index trong CSS) thì đây chính là lựa chọn phù hợp cho bạn
32
Trang 33CoordinatorLayout
Được thêm gan day vao thu vién hé tro thiét ké, lớp CoordinatorLayout
sử dụng một đối tuong Behavior để xác định cách các phần tir View con sé được sắp xếp và di chuyển khi người dùng tương tác với ứng dụng
4.2.5 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 nhu bấm vào một nút hoặc chạm vào mản hình cảm ứng,v.v 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 Listener là một Interface Event Listener được sử dụng để đăng ký sự kiện cho các thành phần trong UI (Đăng ký sự kiện)
“ Event Handlers là phương thức xử lý khi phát sinh sự kiện (Xử lý sự kiện)
33
Trang 34Bang 1 Xử lp sự kiện trong Android - Một số sự kiện thường gặp rong
onClick() đề xử lý sự kiện
onLongClick() OnLongClickListener()
Dang ký sự kiện khi người dùng hoặc click hoặc chạm hoặc focus trên bất ky widget nhu button, text, imape, v.v trong một hoặc nhiều giây Chúng ta sẽ
sử dụng phương thức onLongClick() để xử lý sự kiện
onFocusChange() OnFocusChangeListener()
Sự kiện phát sinh khi widget mat focus
onKey() OnKeyListener()
Sự kiện phát sinh khi người dùng focus trên widget
và nhấp hoặc thả một phím trên thiết bị
onTouch() OnTouchListener()
Sự kiện phát sinh khi người dùng nhắn phím, nhả phím hoặc bắt kỳ cử chỉ chuyển động trên màn hình onMenultemClick() OnMenultemClickListener()
Sự kiện phát sinh khi người dùng chọn một mục
và sẽ không trở nên visible cho đến khi activity ở trên thoát ra khỏi ngăn xếp
34
Trang 35
M6ét Activity gồm 4 trạng thái chính:
- Néu activity 6 phía trên của mản hình (hay ở trên cùng của ngăn xếp), thi nó
đang ở trang thai active/running Vi dụ khi ta cần goi dién thi activity bam sé
do dang 6 trang thai active
- Nếu activity không thể tương tác những vẫn nhin thay thi activity nay dang 6 trang thai paused Khi 6 trang thai này activity có thể bị xoá bỏ bởi hệ thống
khi thiết bị thiếu bộ nhớ Ví dụ khi có 1 activity khác dạng đialog hiện lên che
di 1 phan cua activity hién tai thi activity vao trang thai paused
- Nếu activity hoàn toàn bị che khuất bởi activity khác thì nó đang ở trạng thái
stopped Activity này vẫn giữ được tất cả trạng thái và thông tin, những không còn hiển thị với người dùng và thường xuyên bị xoá bỏ bởi hệ thông khi thiếu
bộ nhớ Ví dụ khi ta tắt màn hình thì khi đó activity vao trang thai stopped
- Néu activity 6 trang thai paused hay stopped, hé théng co thé xoa bo activity
đó khỏi bộ nhớ bằng cách yêu cầu nó tự kết thúc hoặc xoá bỏ tiến trình của nó Khi activity đó hiển thị lại với người dùng thì sẽ được khởi tạo lại và khôi phục trạng thái trước đó
Hinh ảnh sau đây minh hoạ cho vòng đời của 1 Activity cùng với các trạng thái của nó:
35
Trang 36The activity being destroye
† onDestroy()
‡
=
Hinh 10 Vong doi cua mét Activity
4.2.7 Thanh phan Intent
Trong Android, kha nang gtri tin nhan di xung quanh được thực hiện bởi đối tượng Intent Với sự trợ giúp của Intents, các thành phần của Android có
thể yêu cầu chức năng từ các thành phần khác Khi bạn mở ứng dụng Instagram
trên điện thoại của bạn và sử dụng nó để chụp ảnh, bạn chỉ cần sử dụng một Intent
Intent cũng giúp liên lạc giữa các phần của một ứng dụng dé dang Di chuyển từ một màn hình sang một màn hình khác được thực hiện thông qua Intents
Ban hãy nhìn nhận theo cách này: tất cả các thành phần (ứng dung va màn hình) của thiết bị Android đều bị cô lập Cách duy nhất chúng giao tiếp với nhau là thông qua Intents
36
Trang 37Như đã đề cập trước đó, bạn có thế sử dung Intents dé khoi chay cac thành phần khác: activities, services và broadcast receivers
Đề khởi chạy một Activity, bạn sẽ sử dụng phương thức startActivity Đoạn code sau mô tả cách khởi chay mot Activity tu Intent
Intent numbersIntent = new Intent(MainActivity.this,
NumbersActivity.class);
startActivity(numbersIntent) ;
Dau tién, chúng ta tạo mới một đối tượng Intent va truyén va no tén class sẽ được khởi chạy NumbersActivity Sau đó, chúng ta bat dau Activity str dung Intent do
Cac loai Intent
Android hỗ trợ hai loại Intent: minh bạch và ngầm Khi một ứng dụng định nghĩa thành phần dich cua no trong mot Intent, đó là một Intent minh bạch Khi ứng dụng không đặt tên cho một thành phân đích, đó là một Intent
ngam
e Intent minh bach
Đoạn code nêu trên chính là ví du cua Intent minh bach
Intent numbersIntent = new Intent(MainActivity.this,
NumbersActivity.c1ass) ;
startActivity(numbersIntent) ;
Ở đây, NumbersActivity là mục đích rõ ràng từ MainActivity Điều này có nghĩa là NumbersActivrty là thành phần được xác định sẽ được gọi bởi hệ thông Android Điều quan trọng cần lưu ý, các Intent minh bạch thường được
sử dụng trong một ứng dụng, bởi vì nó cho phép nhà phát triên kiếm soát nhiều nhất về lớp nào sẽ được khởi chạy
Trang 38Nếu bạn thực hiện đoạn code trên, ứng dụng của bạn sẽ khởi chạy một thành phần trình duyệt cho một URL nhất định thông qua Intent Nhưng hệ thông Android xác định các thành phần có thể phản ứng với một Intent nhất