MỞ ĐẦU .vn



??I H?C ?? N?NGKHOA C?NG NGH? TH?NG TIN V? TRUY?N TH?NG?? ?N C? S? 3?? T?I: X?Y D?NG ?NG D?NG NGHE NH?C TR?N N?N T?NG ANDROID Sinh viên th?c hi?n : NGUY??N TH?NH ??T L?p : 18IT4 Gi?ng viên h??ng d?n: ThS. NGUY??N V?N BI?NH ?à N?ng, tháng 08 n?m 2020??I H?C ?? N?NGKHOA C?NG NGH? TH?NG TIN V? TRUY?N TH?NG?? ?N C? S? 3X?Y D?NG ?NG D?NG NGHE NH?C TR?N N?N T?NG ANDROID?à N?ng, tháng 08 n?m 2020M? ??Uleft231140M?ng ?i?n tho?i di ??ng xu?t hi?n t?i Vi?t Nam t? ??u nh?ng 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 m? ??p, phong phú nên nhà cung c?p ph?i 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 các ?ng d?ng cho ?i?n tho?i di ??ng ?ang là m?t ngành c?ng nghi?p m?i ??y ti?m n?ng và h?a h?n nhi?u s? phát tri?n v??t b?t 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 di ??ng là 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? và ?ang thay ??i t?ng ngày. Các h? ?i?u hành J2ME, Android, IOS, Hybrid, Web based Mobile Application ?? có và r?t phát tri?n trên th? tr??ng truy?n th?ng di ??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 và 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 nh?t hi?n nay là Google. Android ?? nhanh chóng là ??i th? c?nh tranh m?nh m? v?i các h? ?i?u hành tr??c ?ó và ?ang là h? ?i?u hành c?a t??ng lai và ???c nhi?u ng??i ?a chu?ng nh?t.Ngày nay, v?i s? phát tri?n nhanh chóng c?a x? h?i, nhu c?u gi?i trí, th? gi?n m?i lúc m?i n?i là r?t c?n thi?t, vì v?y em ?? ch?n ?? tài “X?y d?ng ?ng d?ng nghe nh?c trên n?n t?ng Andoird” v?i m?c ?ích nhiên c?u tìm hi?u v? h? ?i?u hành Andoird và x?y d?ng ?ng d?ng nghe nh?c online ?? có th? ?áp ?ng ???c nhu c?u gi?i trí, th? gi?n hi?n nay m?t cách nhanh chóng và ti?n l?i.00M?ng ?i?n tho?i di ??ng xu?t hi?n t?i Vi?t Nam t? ??u nh?ng 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 m? ??p, phong phú nên nhà cung c?p ph?i 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 các ?ng d?ng cho ?i?n tho?i di ??ng ?ang là m?t ngành c?ng nghi?p m?i ??y ti?m n?ng và h?a h?n nhi?u s? phát tri?n v??t b?t 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 di ??ng là 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? và ?ang thay ??i t?ng ngày. Các h? ?i?u hành J2ME, Android, IOS, Hybrid, Web based Mobile Application ?? có và r?t phát tri?n trên th? tr??ng truy?n th?ng di ??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 và 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 nh?t hi?n nay là Google. Android ?? nhanh chóng là ??i th? c?nh tranh m?nh m? v?i các h? ?i?u hành tr??c ?ó và ?ang là h? ?i?u hành c?a t??ng lai và ???c nhi?u ng??i ?a chu?ng nh?t.Ngày nay, v?i s? phát tri?n nhanh chóng c?a x? h?i, nhu c?u gi?i trí, th? gi?n m?i lúc m?i n?i là r?t c?n thi?t, vì v?y em ?? ch?n ?? tài “X?y d?ng ?ng d?ng nghe nh?c trên n?n t?ng Andoird” v?i m?c ?ích nhiên c?u tìm hi?u v? h? ?i?u hành Andoird và x?y d?ng ?ng d?ng nghe nh?c online ?? có th? ?áp ?ng ???c nhu c?u gi?i trí, th? gi?n hi?n nay m?t cách nhanh chóng và ti?n l?i.L?I C?M ?N-98425191770Em xin ch?n thành c?m ?n giáo viên h??ng d?n : th?y Ths Nguy?n V?n Bình – B? m?n ?? án c? s? 3 – tr??ng ??i h?c C?ng Ngh? Th?ng Tin và Truy?n Th?ng Vi?t – Hàn?? t?n tình giúp em hoàn thành th?c t?p chuyên ngành này.M?c dù em ?? c? g?ng hoàn thi?n th?t t?t ?? án nh?ng do ki?n th?c có h?n do ?ó kh?ng th? tránh kh?i nh?ng sai sót, em r?t mong nh?n ???c s? c?m th?ng, ? ki?n ?óng góp c?a các qu? th?y c? và các b?n !Em xin ch?n thành c?m ?n ! 00Em xin ch?n thành c?m ?n giáo viên h??ng d?n : th?y Ths Nguy?n V?n Bình – B? m?n ?? án c? s? 3 – tr??ng ??i h?c C?ng Ngh? Th?ng Tin và Truy?n Th?ng Vi?t – Hàn?? t?n tình giúp em hoàn thành th?c t?p chuyên ngành này.M?c dù em ?? c? g?ng hoàn thi?n th?t t?t ?? án nh?ng do ki?n th?c có h?n do ?ó kh?ng th? tránh kh?i nh?ng sai sót, em r?t mong nh?n ???c s? c?m th?ng, ? ki?n ?óng góp c?a các qu? th?y c? và các b?n !Em xin ch?n thành c?m ?n ! NH?N X?T .........................................................................................................................................…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………............................................................................................................................................... M?C L?C TOC \o "1-3" \h \z \u M? ??U PAGEREF _Toc47558671 \h 3Ch??ng 1 : GI?I THI?U H? ?I?U H?NH ANDROID PAGEREF _Toc47558672 \h 81.1Gi?i thi?u h? ?i?u hành Android PAGEREF _Toc47558673 \h 81.2L?ch s? phát tri?n PAGEREF _Toc47558674 \h 91.3?ng d?ng Android PAGEREF _Toc47558675 \h 101.4Qu?n l? b? nh? Android PAGEREF _Toc47558676 \h 101.5L?ch n?ng c?p PAGEREF _Toc47558677 \h 111.6Nh?ng ??c tr?ng c?a h? ?i?u hành Android PAGEREF _Toc47558678 \h 111.7Ki?n trúc trong h? ?i?u hành Android PAGEREF _Toc47558679 \h 121.7.1. Nh?n Linux Kernel PAGEREF _Toc47558680 \h 131.7.2. Th? vi?n PAGEREF _Toc47558681 \h 131.7.3. Th?c thi ?ng d?ng Android PAGEREF _Toc47558682 \h 131.7.4. Khung ?ng d?ng PAGEREF _Toc47558683 \h 131.7.5. T?ng ?ng d?ng PAGEREF _Toc47558684 \h 13Ch??ng 2 : M?I TR??NG L?P TR?NH ANDROID STUDIO PAGEREF _Toc47558685 \h 142.1 S? l??c v? Android Studio PAGEREF _Toc47558686 \h 142.2 Thi?t l?p m?i tr??ng PAGEREF _Toc47558687 \h 142.2.1 Cài ??t Andoid Studio PAGEREF _Toc47558688 \h 152.3. C?u trúc d? án Android Studio PAGEREF _Toc47558689 \h 182.3.1. T?o m?i m?t project PAGEREF _Toc47558690 \h 182.3.2 T?o m?t project PAGEREF _Toc47558691 \h 192.3.3. Các thành ph?n trong m?t ?ng d?ng Android PAGEREF _Toc47558692 \h 20CH??NG 3: C?C K? THU?T H? TR? PAGEREF _Toc47558693 \h 233.1. Webservice PAGEREF _Toc47558694 \h 233.1.1. Gi?i thi?u v? Webservice PAGEREF _Toc47558695 \h 233.1.2. ??c ?i?m c?a Webservice PAGEREF _Toc47558696 \h 233.1.3. Ki?n trúc c?a Webservice PAGEREF _Toc47558697 \h 243.1.4. ??nh d?ng d? li?u JSON PAGEREF _Toc47558698 \h 253.2. D?ch v? web và k? thu?t c? s? d? li?u trên internet PAGEREF _Toc47558699 \h 263.2.1. Hosting PAGEREF _Toc47558700 \h 263.2.2. X?y d?ng webservice PAGEREF _Toc47558701 \h 283.3. MediaPlayer trong Android PAGEREF _Toc47558702 \h 303.4. Các th? vi?n s? d?ng thêm PAGEREF _Toc47558703 \h 313.5. K? thu?t l?p trình trên Android PAGEREF _Toc47558704 \h 323.5.1. K? thu?t x?y d?ng t?p khai báo Manifest PAGEREF _Toc47558705 \h 323.5.2. S? d?ng retrofit ?? l?y d? li?u t? API PAGEREF _Toc47558706 \h 333.5.3. Các Activity trong ?ng d?ng PAGEREF _Toc47558707 \h 35CH??NG 4: CH??NG TR?NH TH?C NGHI?M PAGEREF _Toc47558708 \h 394.1. Phát bi?u bài toán : PAGEREF _Toc47558709 \h 394.1.1 Các ch?c n?ng c?a ch??ng trình : PAGEREF _Toc47558710 \h 394.2 S? ?? Use-Case c?a ch??ng trình : PAGEREF _Toc47558711 \h 394.3 C? s? d? li?u : PAGEREF _Toc47558712 \h 424.4. Giao di?n c?a ch??ng trình : PAGEREF _Toc47558713 \h 43Ch??ng 5 K?t lu?n và H??ng phát tri?n PAGEREF _Toc47558714 \h 46T?I LI?U THAM KH?O PAGEREF _Toc47558715 \h 47Ch??ng 1 : GI?I THI?U H? ?I?U H?NH ANDROID Gi?i thi?u h? ?i?u hành AndroidAndroid 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 tính n?ng cao c?p cho nh?ng ng??i dùng thích tìm tòi ho?c ??a Android vào các thi?t b? ban ??u ch?y h? ?iê?u hành khác. Android chi?m 75% th? ph?n ?i?n tho?i th?ng minh trên toàn th? gi?i vào th?i ?i?m qu? 3 n?m 2012, v?i t?ng c?ng 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 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?. L?ch s? phát tri?nT?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), 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 di ??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. 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 tính n?ng ph?n c?ng và ph?n mê?m m?i nh?t c?a Androi. ?ng d?ng AndroidAndroid 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ê?, ho?c 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ê? 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 ho?c 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 th?y 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 ho?c ph?n m? r?ng vi?t b?ng C ho?c 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ú. Qu?n l? b? nh? AndroidVì H? ?iê?u hành 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. H? ?iê?u hành 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 ph?i qu?n l? b? nh? ho?c t? tay t?t các ?ng d?ng. L?ch n?ng c?pGoogle ??a ra các b?n n?ng c?p l?n Cho Android theo chu k? t? 6 ??n 9 tháng, mà ph?n l?n thi?t b? ?ê?u có th? nh?n ???c qua sóng kh?ng d?y. B?n n?ng c?p l?n m?i nh?t là Android 6.0 Marshmallow. So v?i các h? ?iê?u hành c?nh tranh khác, nh? iOS, các b?n n?ng c?p Android th??ng m?t th?i gian l?u h?n ?? ??n v?i các thi?t b?. V?i nh?ng thi?t b? kh?ng thu?c dòng Nexus, các b?n n?ng c?p th??ng ??n sau vài tháng k? t? khi phiên b?n ???c chính th?c phát hành. Nguyên nh?n c?a vi?c này m?t ph?n là do s? phong phú vê? ph?n c?ng c?a các thi?t b? Android, nên ng??i ta ph?i m?t th?i gian ?iê?u ch?nh b?n n?ng c?p Cho phù h?p, vì m? ngu?n chính th?c c?a Google ch? ch?y ???c trên nh?ng thi?t b? Nexus ch? l?c c?a h?. Chuy?n Android sang nh?ng ph?n c?ng c? th? là m?t quy trình t?n th?i gian và c?ng s?c c?a các nhà s?n xu?t thi?t b?, nh?ng ng??i lu?n ?u tiên các thi?t b? m?i nh?t và th??ng b? r?i các thi?t b? c? h?n. Do ?ó, nh?ng chi?c ?i?n tho?i th?ng minh th? h? c? th??ng kh?ng ???c n?ng c?p n?u nhà s?n xu?t quy?t ??nh r?ng nó kh?ng ?áng ?? b? th?i gian, b?t k? chi?c ?i?n tho?i ?ó có kh? n?ng ch?y b?n n?ng c?p hay kh?ng. V?n ?ê? này còn tr?m tr?ng h?n khi nh?ng nhà s?n xu?t ?iê?u ch?nh Android ?? ??a giao di?n và ?ng d?ng c?a h? vào, nh?ng th? này c?ng s? ph?i làm l?i Cho m?i b?n n?ng c?p. S? ch?m tr? còn ???c ?óng góp b?i nhà m?ng, sau khi nh?n ???c b?n n?ng c?p t? nhà s?n xu?t, h? còn ?iê?u ch?nh thêm Cho phù h?p v?i nhu c?u r?i th? nghi?m k? l??ng trên h? th?ng m?ng c?a h? tr??c khi chuy?n nó ??n ng??i dùng. Vi?c thi?u các h? tr? h?u m?i c?a nhà s?n xu?t và nhà m?ng ?? b? nh?ng nhóm ngu?i dùng và các trang tin c?ng ngh? ch? trích r?t nhiê?u. Nh?ng ??c tr?ng c?a h? ?i?u hành AndroidApplication framework: cho phép s? d?ng l?i và thay th? các thành ph?n trong l?p trình ?ng d?ng.Dalvik virtual machine: t?i ?u hóa cho thi?t b? di ??ng.Intergrated browser: trình duy?t tích h?p, d?a trên c? ch? WebKit m? ngu?n m?.SQLite: c? s? d? li?u trong m?i tr??ng di ??ng.Media support: h? tr? các ??nh d?ng audio, video và hình ?nh th?ng d?ng.GSM Telephony: m?ng ?i?n tho?i di ??ng (ph? thu?c vào ph?n c?ng).Bluetooth, EDGE, 3G, 4G và WiFi : các chu?n k?t n?i d? li?u (ph? thu?c vào ph?n c?ng).Camera, GPS, la bàn, và gia t?c k?: (ph? thu?c vào ph?n c?ng).M?i tr??ng phát tri?n phong phú: bao g?m thi?t b? m? ph?ng, c?ng c? cho vi?c dò tìm l?i, b? nh? và ??nh hình hi?u n?ng và m?t plugin cho Android Studio. Ki?n trúc trong h? ?i?u hành AndroidH? ?iê?u hành Android có th? coi nh? m?t ng?n x?p ch?a các thành ph?n c?a ph?n mê?m, ???c chia làm các ph?n nh? sau:Hình 1.1: Ki?n trúc c?a Android1.7.1. Nh?n Linux Kernel ? d??i cùng c?a các l?p là Linux-Linux 2.6. Nh?n Linux cung c?p ch?c n?ng c? b?n nh? h? th?ng qu?n l? ti?n trình, qu?n l? b? nh?, qu?n l? thi?t b? nh? máy ?nh, bàn phím, màn hình hi?n th?, vv… 1.7.2. Th? vi?nPh?n ??u c?a nh?n Linux có m?t t?p h?p các th? vi?n bao g?m c? m? ngu?n m? trình duy?t web WebKit, các th? vi?n ph? bi?n, c? s? d? li?u SQLite có th? ???c coi nh? m?t kho l?u tr? h?u ích cho vi?c l?u tr? và chia s? d? li?u ?ng d?ng, th? vi?n ?? ch?y các ?ng d?ng nh? ghi ?m và video, SSL th? vi?n ch?u trách nhi?m vê? an ninh Internet, vv...1.7.3. Th?c thi ?ng d?ng Android??y là ph?n th? ba c?a ki?n trúc và có s?n trên l?p th? hai t? d??i lên. Ph?n này cung c?p m?t thành ph?n quan tr?ng ???c g?i là Dalvik (có th? ?? thay ??i theo phiên b?n) còn ???c g?i là máy ?o. Máy ?o là m?t lo?i máy Java ???c thi?t k? ??c bi?t và t?i ?u hóa cho Android. Máy ?o Dalvik s? d?ng các tính n?ng c?t l?i Linux nh? qu?n l? b? nh? và ?a lu?ng, n?i t?i trong ng?n ng? Java. Máy ?o Dalvik cho phép t?t c? các ?ng d?ng Android ch?y trong ti?n trình riêng c?a nó, v?i tr??ng h?p riêng c?a các máy ?o Dalvik. Th?c thi Android c?ng cung c?p m?t t?p h?p các th? vi?n l?i cho phép các nhà phát tri?n ?ng d?ng Android s? d?ng ng?n ng? l?p trình Java ?? vi?t các ?ng d?ng c?a mình.1.7.4. Khung ?ng d?ng Khung ?ng d?ng cung c?p nhiê?u d?ch v? c?p cao h?n cho các ?ng d?ng d??i d?ng các l?p Java. Nhà phát tri?n ?ng d?ng ???c phép s? d?ng các d?ch v? này trong các ?ng d?ng c?a h?. 1.7.5. T?ng ?ng d?ng Ng??i dùng s? tìm th?y t?t c? các ?ng d?ng Android ? l?p trên cùng. Ng??i dùng s? vi?t ?ng d?ng và các ?ng d?ng ?ó ph?i ???c cài ??t trên l?p này.Ch??ng 2 : M?I TR??NG L?P TR?NH ANDROID STUDIO2.1 S? l??c v? Android Studio Google cung c?p m?t c?ng c? phát tri?n ?ng d?ng Android trên Website chính th?c d?a trên nê?n t?ng IntelliJ IDEA g?i là Android Studio. Android studio d?a vào IntelliJ IDEA, là m?t IDE t?t cho nh?t Java hi?n nay. Do ?ó Android Studio s? là m?i tr??ng phát tri?n ?ng d?ng t?t nh?t cho ?ng d?ng Android.2.2 Thi?t l?p m?i tr??ng Hai thành ph?n c? b?n nh?t mà chúng ta c?n ph?i có ?? l?p trình Android là B? phát tri?n Java(Java Development Kit) và B? phát tri?n ph?n mê?m(Software Development Kit).B? phát tri?n Java dùng ?? t?o ra m?i tr??ng th?c thi máy ?o cho h? ?iê?u hành mà chúng ta ?ang s? d?ng. M?i khi Google ra phiên b?n Android m?i thì B? phát tri?n ph?n mê?m c?ng ???c c?p nh?t t??ng ?ng. Cài ??t Java :?? cài ??t B? phát tri?n Java(JDK), ta c?n truy c?p vào trang Oracle JDK và t?i phiên b?n m?i nh?t ?? tang tính ?n ??nh và t?n d?ng ???c nhiê?u tính n?ng h? tr? t?t nh?t.Hình 2.1: Cài ??t JDK2.2.1 Cài ??t Andoid Studio a) Yêu c?u ph?n c?ng máy tính - Microsoft? Windows? 10/8/7 (32 or 64-bit) - 4 GB RAM tr? lên. - 400 MB hard disk space + ít nh?t 1GB cho Android SDK, emulator system images và caches - ?? ph?n gi?i t?i thi?u 1280 x 800 - Java Development Kit b) Ph?n m?m android studio - Vào ???ng d?n: "" - ?? download b?n m?i nh?t và ti?n hành cài ??t click nh? hình :Hình 2.2: Download android studio- Khi cài ??t chú ? ch?n c? SDK và trình gi? l?p thi?t b? android ?o nh? hình: Hình 2.3: Cài ??t SDK- Ti?p t?c ch?n Next và Agree cho ??n khi hoàn t?t.Hình 2.4: K?t thúc cài ??t - Màn hình kh?i ??ng Android Studio :Hình 2.5: Màn hình android studio- Chúng ta có th? s? d?ng tr?c ti?p máy ?o trên android studio ho?c k?t n?i tr?c ti?p máy ?i?n tho?i có h? ?iê?u hành Android ?? ch?y ch??ng trình th?c nghi?m.2.3. C?u trúc d? án Android Studio 2.3.1. T?o m?i m?t project Hình 2.6: T?o m?i project- AppZingMP3: Tên ?ng d?ng mu?n ??t.- Package name: Nó s? t? ??ng n?i ng??c Company Domain v?i Application name. - Save location: Là n?i l?u tr? ?ng d?ng. Sau ?ó nh?p Finish ?? k?t thúc.- ? m?c Minium SDK, quy ??nh phiên b?n android t?i thi?u ?? ch?y ?ng d?ng.2.3.2 T?o m?t project ? h?p tho?i trên cho phép ta l?a ch?n là ?ng d?ng s? ???c vi?t cho nh?ng thi?t b? nào (Phone and Tablet, TV, Wear). ? m?c Minium SDK, quy ??nh phiên b?n android t?i thi?u ?? ch?y ?ng d?ng.Màn hình này hi?n th? cho phép ch?n lo?i Activity m?c ??nh.Hình 2.7: Màn hình hi?n th? Activity m?c ??nhCh?n Empty Activity r?i b?m Next :Hình 2.8: Màn hình làm vi?c c?a Android Studio2.3.3. Các thành ph?n trong m?t ?ng d?ng Android Thành ph?n ?ng d?ng là các kh?i c? b?n ?? x?y d?ng m?t ?ng d?ng Android. Các thành ph?n này ???c liên k?t v?i các ?ng d?ng b?i t?p tin AndroidManifest.xml, t?p tin AndroidManifest.xml m? t? m?i thành ph?n c?a ?ng d?ng và cách chúng t??ng tác v?i nhau. Có 7 thành ph?n chính có th? ???c s? d?ng trong m?t ?ng d?ng Android: B?ng 2.1: Các thành ph?n trong ?ng d?ng Android Thành ph?n ??c t?ActivitiesG?i giao di?n ng??i dùng và x? l? các t??ng tác ng??i dùng v?i màn hình ?i?n tho?i.Services X? l? nê?n k?t h?p v?i m?t ?ng d?ng. Broadcast Receivers X? l? th?ng tin liên l?c gi?a h? ?iê?u hành Android và các ?ng d?ng.Broadcast ReceiversX? l? th?ng tin liên l?c gi?a h? ?iê?u hành Android và các ?ng d?ng.Content ProvidersX? l? d? li?u và các v?n ?ê? qu?n l? c? s? d? li?u.ViewN?i hi?n th? gia di?n ng??i dùng.IntentCung c?p kh? n?ng giao ti?p gi?a các màn hình v?i nhau.T?p tin khai báo (Manifest File)Khai báo các thành ph?n c?a c?a ?ng d?ng.a) Activities M?t Activities ??i di?n cho m?t màn hình duy nh?t v?i m?t giao di?n ng??i dùng. Ví d?, m?t ?ng d?ng email có th? có m?t ho?t ??ng cho th?y m?t danh sách các email m?i, m?t ho?t ??ng ?? so?n m?t email, và m?t ho?t ??ng ?? ??c email. N?u m?t ?ng d?ng có nhiê?u h?n m?t ho?t ??ng, sau ?ó m?t trong s? chúng ???c ?ánh d?u là ho?t ??ng ???c hi?n th? khi ?ng d?ng ???c kh?i ch?y. V?i m?i Activity th??ng vòng ??i có 3 tr?ng thái sau: - Running (?ang kích ho?t) - Paused (t?m d?ng) - Stopped (d?ng – kh?ng ph?i Destroyed)Hình 2.9: Vòng ??i c?a ?ng d?ng Android1. Running (?ang kích ho?t): Khi màn hình là Foreground( Activity n?m trên cùng ?ng d?ng và cho phép ng??i s? d?ng t??ng tác). 2. Paused (t?m d?ng) : Activity b? m?t focus nh?ng mà v?n nhìn th?y ???c Activity này (Ví d? b?n m? m?t Activity m?i lên d??i d?ng Dialog). Tr??ng h?p này nó v?n có kh? n?ng b? h? th?ng t? ??ng Destroy trong tình hu?ng b? nh? quá ít.3. Stopped (d?ng – kh?ng ph?i Destroyed): Activity m?t focus và kh?ng nhìn th?y ???c (ví d? b?n m? m?t Activity m?i lên mà Full màn hình ch?ng h?n). Trong tr??ng h?p này nó có th? b? h? th?ng Destroy trong b?t k? tình hu?ng nào. Nh? v?y c? Paused hay Stopped ?ê?u có kh? n?ng b? Destroyed (h?y) khi b? nh? c?n cho vi?c khác ?u tiên h?n.b) ServicesM?t Service là m?t thành ph?n ???c ch?y bên trong n?n ?? x? l? các c?ng vi?c trong th?i gian dài. M?t ?ng d?ng nghe nh?c có th? phát nh?c, trong khi ?ó ng??i dùng ?ang ? giao di?n c?a ?ng d?ng khác. Ho?c ?ng d?ng download có th? t?i d? li?u trên m?ng v? máy mà kh?ng ng?n ch?n ng??i dùng t??ng tác v?i các ?ng d?ng khác.c) MediaplayerAndroid cung c?p nhi?u cách ?? phát l?i quy?n ?i?u khi?n file audio.video và ?m thanh. M?t trong cách này là g?i l?p MediaPlayer. Android ?ang cung c?p cho l?p MediaPlayer quy?n truy c?p ???c x?y d?ng trong các d?ch v? MediaPlayer nh? ch?i nh?c, video,…d) View Trong m?t ?ng d?ng Android, giao di?n ng??i dùng ???c x?y d?ng t? các ??i t??ng View và ViewGroup. Có nhiê?u ki?u View và ViewGroup. M?i m?t ki?u là m?t con c?a class View và t?t c? các ki?u ?ó ???c g?i là các Widget. T?t c? m?i widget ?ê?u có chung các thu?c tính c? b?n nh? là cách trình bày v? trí, background, kích th??c, lê?,… T?t c? nh?ng thu?c tính chung này ???c th? hi?n h?t ? trong ??i t??ng View. Hình 2.10: M? hình ViewGroupe) Intent Là m?t miêu t? v? m?t ho?t ??ng c?n ???c th?c hi?n. Còn nói m?t cách ??n gi?n và d? hi?u h?n, Intent là m?t c? c?u cho phép truy?n th?ng ?i?p gi?a các thành ph?n c?a 1 ?ng d?ng và gi?a các ?ng d?ng v?i nhau.CH??NG 3: C?C K? THU?T H? TR?3.1. Webservice 3.1.1. Gi?i thi?u v? Webservice Theo ??nh ngh?a c?a W3C (World Wide Web Consortium), d?ch v? Web là m?t h? th?ng ph?n mê?m ???c thi?t k? ?? h? tr? kh? n?ng t??ng tác gi?a các ?ng d?ng trên các máy tính khác nhau th?ng qua m?ng Internet, giao di?n chung và s? g?n k?t c?a nó ???c m? t? b?ng XML. D?ch v? Web là tài nguyên ph?n mê?m có th? xác ??nh b?ng ??a ch? URL, th?c hi?n các ch?c n?ng và ??a ra các th?ng tin ng??i dùng yêu c?u. M?t d?ch v? Web ???c t?o nên b?ng cách l?y các ch?c n?ng và ?óng gói chúng sao cho các ?ng d?ng khác d? dàng nhìn th?y và có th? truy c?p ??n nh?ng d?ch v? mà nó th?c hi?n, ??ng th?i có th? yêu c?u th?ng tin t? d?ch v? Web khác. Nó bao g?m các m? ?un ??c l?p cho ho?t ??ng c?a khách hàng và doanh nghi?p và b?n th?n nó ???c th?c thi trên server. 3.1.2. ??c ?i?m c?a Webservice Theo ??nh ngh?a c?a W3C (World Wide Web Consortium), d?ch v? Web là m?t h? th?ng ph?n mê?m ???c thi?t k? ?? h? tr? kh? n?ng t??ng tác gi?a các ?ng d?ng trên các máy tính khác nhau th?ng qua m?ng Internet, giao di?n chung và s? g?n k?t c?a nó ???c m? t? b?ng XML. D?ch v? Web là tài nguyên ph?n mê?m có th? xác ??nh b?ng ??a ch? URL, th?c hi?n các ch?c n?ng và ??a ra các th?ng tin ng??i dùng yêu c?u. M?t d?ch v? Web ???c t?o nên b?ng cách l?y các ch?c n?ng và ?óng gói chúng sao cho các ?ng d?ng khác d? dàng nhìn th?y và có th? truy c?p ??n nh?ng d?ch v? mà nó th?c hi?n, ??ng th?i có th? yêu c?u th?ng tin t? d?ch v? Web khác. Nó bao g?m các m? ?un ??c l?p cho ho?t ??ng c?a khách hàng và doanh nghi?p và b?n th?n nó ???c th?c thi trên server. 3.1.3. Ki?n trúc c?a Webservice D?ch v? Web có 3 chu?n chính:- SOAP (Simple Object Access Protocol): cách mà Web Service s? d?ng ?? truyê?n t?i d? li?u. - WSDL (Web Service Description Language): dùng ?? m? t? các th?ng tin c?n thi?t c?a m?t web service. Nó ???c t? ch?c thành 1 file có c?u trúc ???c th?ng nh?t, kh?ng ph?n bi?t ng?n ng? s? d?ng. - UDDI (Universal Description, Discovery, and Integration). UDDI ???c s? d?ng ?? ??ng k? và khám phá d?ch v? Web ?? ???c miêu t? c? th? trong WSDL. Giao tác UDDI s? d?ng SOAP ?? nói chuy?n v?i UDDI server, sau ?ó các ?ng d?ng SOAP yêu c?u m?t d?ch v? Web. Các th?ng ?i?p SOAP ???c g?i ?i chính xác b?i HTTP và TCP/IP. Webservice có 4 thành ph?n chính: Hình 3.1: Ki?n trúc c?a Web ServiceTrong ?ó, t?ng giao th?c t??ng tác d?ch v? (Service Communication Protocol) v?i c?ng ngh? chu?n là SOAP. SOAP là giao th?c n?m gi?a t?ng v?n chuy?n và t?ng m? t? th?ng tin vê? d?ch v?, cho phép ng??i dùng tri?u g?i m?t d?ch v? t? xa th?ng qua m?t th?ng ?i?p XML. Ngoài ra, ?? các d?ch v? có tính an toàn, toàn v?n và b?o m?t th?ng tin, trong ki?n trúc d?ch v? Web, ng??i dùng có thêm các t?ng Policy, Security, Transaction, Management. 3.1.4. ??nh d?ng d? li?u JSON a) Khái ni?m JSON - JSON là m?t ki?u ??nh d?ng d? li?u trong ?ó s? d?ng v?n b?n thu?n tu?, ??nh d?ng JSON s? d?ng các c?p key - value ?? d? li?u s? d?ng. b) Gi?ng nhau và khác nhau gi?a JSON và XML Gi?ng nhau: - ?ê?u là v?n b?n tr?n (kh?ng có ??nh d?ng (màu s?c, c? ch?,…)). - ?ê?u là “t? m? t?” (ng??i dùng có th? hi?u ???c). - ?ê?u là ph?n c?p (có c?u trúc c?y). - ?ê?u có th? ???c ph?n tích cú pháp (parse) b?i JavaScript. - D? li?u JSON và XML có th? ???c truyê?n ?i b?ng AJAX.Khác nhau: - JSON kh?ng có th? k?t thúc. - JSON ng?n h?n. - JSON nhanh h?n ?? ??c và ghi. - JSONcóth????c ph?ntích cú phápb?nghàm d?ngs?n trongJavaScript làeval(). - JSON s? d?ng m?ng (Array). - JSON kh?ng dùng các t? reserve. c) Cú pháp JSON Hình 3.2: Cú pháp JSONCác quy lu?t cú pháp JSON: Cú pháp JSON là m?t t?p h?p con c?a cú pháp ??i t??ng JavaScript. - D? li?u là các c?p tên/giá tr? (name/values). - D? li?u ???c ph?n cách b?ng d?u ph?y. - ??i t??ng n?m trong c?p ngo?c nh?n ‘{}’. - D?u ngo?c vu?ng gi? m?ng ‘[]’. 3.2. D?ch v? web và k? thu?t c? s? d? li?u trên internet Trong th?i ??i c?a x? h?i c?ng ngh? th?ng tin và nê?n kinh t? tri th?c, m?i ho?t ??ng c?a các cá nh?n, t? ch?c, doanh nghi?p ?ê?u mong mu?n ??t hi?u qu? cao, giành ???c th?ng l?i trong s? c?nh tranh gay g?t thì ?òi h?i ph?i có nh?ng ph??ng pháp ?? có th? cung c?p, trao ??i nh?ng th?ng tin, tri th?c c?n thi?t m?t cách nhanh chính xác, thu?n ti?n và d? dàng. Chính vì v?y vi?c t?o l?p x?y d?ng l?u tr? th?ng tin, c? s? d? li?u chung trên m?i tr??ng Internet là m?t vi?c v? cùng c?n thi?t ?? các cá nh?n, t? ch?c, doanh nghi?p d? dàng làm vi?c, thao tác v?i c? s? d? li?u m?i lúc, m?i n?i, m?i thi?t b? khi có Internet thay vì thao tác v?i c? s? d? li?u c?c b? trên máy tính t?i m?t v? trí. ?u ?i?m c?a vi?c t?o l?p c? s? d? li?u trên Internet : - C?u trúc ph?n tán d? li?u thích h?p cho b?n ch?t ph?n tán c?a nhiê?u ng??i dùng. - D? li?u ???c chia s? trên m?ng nh?ng v?n cho phép qu?n tr? d? li?u ??a ph??ng (d? li?u ??t t?i m?i tr?m). Nh??c ?i?m: - Vi?c thi?t k? t?o l?p c? s? d? li?u ph?c t?p h?n. - Chi phí cao h?n. 3.2.1. Hosting Hosting là d?ch v? l?u tr? d? và chia s? li?u tr?c tuy?n, là kh?ng gian trên máy ch? có cài ??t các d?ch v? Internet nh? world wide web (www), truyê?n file (FTP), Mail… , ta có th? ch?a n?i dung trang web hay d? li?u trên kh?ng gian ?ó. a) Các lo?i hosting : - Shared hosting: là m?t d?ch v? l?u tr? r?t nhiê?u các trang web trên m?t máy ch? k?t n?i Internet. M?i trang web có ph?n vùng riêng c?a mình. D?ch v? này là m?t l?a ch?n kinh t? cho nhiê?u ng??i chia s? t?ng chi phí b?o trì thuê máy ch?. - Free web hosting: là m?t d?ch v? l?u tr? mi?n phí, th??ng ???c qu?ng cáo h? tr?. Free Hosting th??ng s? cung c?p m?t tên miê?n ph? (yoursite.) ho?c m?t th? m?c ( ~ Yourname) ho?c ta có th? s? d?ng tên miê?n c?a chính mình và c?n m?t vài ?iê?u ki?n kèm theo. Ng??c l?i, d?ch v? thu phí th??ng s? cung c?p m?t tên miê?n c?p th? hai cùng v?i các máy ch? (). b) Các th?ng s? c?n bi?t trong hosting H? ?iê?u hành (OS) c?a máy ch?: hi?n t?i có hai lo?i OS th?ng d?ng là Linux và Windows.- Hosting Linux: là Hosting chuyên h? tr? ng?n ng? l?p trình PHP, Joomla, các m? ngu?n m?… - Hosting Windows: Hosting Windows chuyên h? tr? vê? ng?n ng? l?p trình ASP, , HTML …. vì các Ng?n ng? này, ch?y chuyên trên Hosting Windows, do v?y khi load Web s? h? tr? t?t h?n, Hosting Windows có h? tr? ng?n ng? PHP, nh?ng ch? y?u là h? tr? chính là ASP … c) ??ng k? mua và s? d?ng hosting. Tùy vào m?c ?ích s? d?ng c?a m?i cá nh?n, t? ch?c và doanh nghi?p có th? ch?n các hình th?c ??ng k? mua, thuê hosting khác nhau t?i r?t nhiê?u các nhà cung c?p hosting t?i Vi?t Nam nh?: - M?t B?o – ODS - PA Vi?t Nam - DIGISTAR - Nh?n Hòa - Viettel ...Hi?n nay c?ng có m?t s? hosting mi?n phí ph?c v? cho quá trình h?c t?p nghiên c?u nh?: - HOSTINGER.VN - d). Các b??c ??ng k? và s? d?ng hosting free. VD: S? d?ng host mi?n phí t?i "". e) Upload c? s? d? li?u lên hosting.Click vào Qu?n l? files: Hình 3.3: Qu?n l? fileT?i ??y chúng ta s? upload file lên: Hình 3.4: Upload file3.2.2. X?y d?ng webservice Trên th?c t? ?ng d?ng trên Android mu?n trao ??i th?ng tin ???c v?i c? s? d? li? trên Internet thì ph?i th?ng qua Webservice. Vì v?y vi?c x?y d?ng Websevice là r?t quan tr?ng cho vi?c vi?t ch??ng trình ?ng d?ng Android v?i c? s? d? li?u Internet. Mu?n x?y d?ng ???c Websever ta c?n n?m ???c k? n?ng l?p trình backend ? ??y s? d?ng PHP và các k? thu?t k?t n?i liên quan ??n CSDL. Ta ti?n hành t?o Webservice theo các b??c sau: a) X?y d?ng ch?c n?ng k?t n?i CSDL v?i Android cho Websevice. Hình 3.5: X?y d?ng code k?t n?i c? s? d? li?ub) X?y d?ng ch?c n?ng truy v?n CSDL và xem CSDL cho Websevice r?i chuy?n sang d?ng m? JSON. Hình 3.6: Code truy v?n c? s? d? li?uc) Upload Webservice lên hosting sau ?ó l?y ???ng d?n ?? ch?y Hình 3.7: Upload file lên hostNh? v?y ta ?? t?o d?ng xong m?t Webservice v?i các ch?c n?ng c? b?n nh?: k?t n?i, truy v?n l?y d? li?u vê? xem d? li?u trên CSDL internet.3.3. MediaPlayer trong Android Media Player trong Android là m?t framework h? tr? ?? play nh?ng ??nh d?ng nh? video, nh?c, ?nh trong ?ng d?ng c?a mình. MediaPlayer có th? h? tr? vi?c play offline ho?c là online tùy ch?nh nh? vào nh?ng API MediaPlayer. Tr?ng thái phát nh?c D??i ??y là tr?ng thái c?a MediaPlayer s? d?ng ?? có th? h? tr? vi?c play các media m?t cách t?t nh?t:Hình 3.8: Tr?ng thái c?a MediaPlayerChúng ta có th? th?y ???c các tr?ng thái sau là các tr?ng thái mà media có th? ? ?ó:- Idle : Tr?ng thái ban ??u c?a Media Player. Khi mu?n tr? vê? tr?ng thái ban ??u c?a MediaPlayer thì có th? s? d?ng ph??ng th?c reset(). - Initialized: tr?ng thái ?? kh?i t?o ???c d? li?u bên trong Media Player b?ng ph??ng th?c setDataSource(Uri uri). Vi?c truyê?n vào Uri này có th? là ? local ho?c là ? server ?ê?u có th? play ???c. - End: Tr?ng thái k?t thúc MediaPlayer khi hàm release() ???c g?i. ??n ??y MediaPlayer hoàn toàn b? h?y b? khi kh?ng s? d?ng n?a - Error: Tr?ng thái l?i n?u vi?c play có v?n ?ê? gì ?ó v?i Uri ho?c vi?c t??ng tác v?i nh?c trên internet g?p v?n ?ê?. L?ng nghe listener OnErrorListener ?? x? l? khi kh?ng th? play nh?c. - Prepared: Tr?ng thái ?? ???c chu?n b? ?? s?n sàng ?? có th? play ho?c là tr?ng thái khi stop ho?c là seekTo() ??n kho?ng nào ?ó trong toàn b? ?? dài c?a media. Vi?c ??n ???c tr?ng thái này chúng ta ph?i tr?i qua hàm ??ng b? prepareAsync() ho?c là kh?ng ??ng b? prepare(). N?u g?i hàm ??ng b? prepareAsync() thì s? có 1 listener ???c tr? vê? n?u mà quá trình chu?n b? thành c?ng thì s?n sàng ?? play. Ch? này có th? g?i s? ki?n chu?n b? xong ra ngoài giao di?n ?? c?p nh?t ???c giao di?n phù h?p. - Started: Tr?ng thái khi mà media ?ang ???c ch?y, lúc này có th? s? d?ng pause() ?? t?m d?ng nh?c ho?c stop() ?? d?ng h?n nh?c c?a media. G?i isPlaying() ?? bi?t ???c media có ?ang ???c ch?y kh?ng. - Pause: Khi media ?ang ch?y, g?i hàm pause() ?? d?ng media khi ?ang phát nh?c. Lúc này tr?ng thái media ?ang t?m d?ng. Có th? d?ng h?n b?ng hàm stop() ho?c start() ?? ch?y media. Th??ng dùng cho nút play/pause g?i hàm này ?? th?c hi?n vi?c qu?n l? media. - Stop: Khi ?ang ? tr?ng thái d?ng h?n, có th? ch?y l?i media b?ng prepareAsync() ho?c là prepare() ?? có th? tr? vê? tr?ng thái Prepared và chu?n b? ?? play l?i t? ??u. - Playback Complete: Tr?ng thái mà ch?y xong media s? nh?y vào ??y, có th? l?ng nghe s? ki?n OnCompletionListener c?a nó ?? có th? th?c hi?n chuy?n bài ho?c là v?n play bài ?ó v?i các tr??ng h?p c?a loop media. Ngoài ra còn hàm seekTo() ?? có th? chuy?n ??n ph?n mà b?n ch?n khi play media. Hàm này có th? ???c g?i ? nhiê?u tr?ng thái khác nhau nên ph?i chú ? t?i t?ng tr?ng thái c?a Media khi g?i hàm này. Vi?c cho bi?t ch?y ??n ??u c?a t?ng s? th?i gian ???c tr? vê? th?ng qua hàm getCurrentPosition().3.4. Các th? vi?n s? d?ng thêm - Glide 4.7.1: Th? vi?n h? tr? load ?nh t? url trên Android. - Gson 2.8.5: Th? vi?n java cho phép ng??i s? d?ng có th? chuy?n ??i t? m?t ??i t??ng Java sang JSON và c?ng có th? chuy?n ??i t? m?t ??i t??ng JSON sang java. - Retrofit 2.4.0: là m?t HTTP client type-safe cho Android và Java. Retrofit giúp d? dàng k?t n?i ??n m?t d?ch v? REST trên web b?ng cách chuy?n ??i API thành Java Interface. - NoInternetDialog: 1.1.3 ki?m tra m?ng di ??ng 3.5. K? thu?t l?p trình trên Android 3.5.1. K? thu?t x?y d?ng t?p khai báo Manifest Khai báo các Activity trong ?ng d?ng và các permission liên quan (INTERNET) Hình 3.9: Khai báo Activity trong ?ng d?ng3.5.2. S? d?ng retrofit ?? l?y d? li?u t? API a) S? d?ng Annotations Annotations ?? m? t? yêu c?u HTTP và h? tr? tham s? các URL và truyê?n tham s? truy v?n M?i ph??ng th?c ph?i có Annotation HTTP cung c?p request method và URL. ? ?ng d?ng này, s? d?ng annotations có s?n là: @GET và @POSTHình 3.10: Annotation trong Androidb) T?o instance Retrofit và x? l? k?t qu? tr? v?: Khai báo và t?o instance c?a retrofit v?i domain API : Hình 3.11: Khai báo và t?o instance c?a retrofitTh?c hi?n Request ??n API và x? l? k?t qu? tr? vê?, ? ??y là x? l? API listSong, tr? vê? ArrayList các bài hát : Hình 3.12: Th?c hi?n Request ??n API3.5.3. Các Activity trong ?ng d?ng Danh sách các Activity có trong app :Hình 3.13: Danh sách các Activity?ng d?ng g?m 2 activity chính: a) MainActivity và các Fragment: - Load d? li?u listBaiHat và ?? d? li?u vào recyclerview :Hình 3.14: L?y d? li?u listBaiHat - Fragment_Ca_Nhan này g?m 2 nhi?m v?: - Tìm ki?m bài hát (n?u click vào khung tìm ki?m ? MainActivity) - Hi?n th? danh sách bài hátHình 3.15: X? l? hàm Ion ?? l?c bàib) PlayActivity :Nh?n d? li?u bài hát t? ListSongActivity và phát bài hát v?i MediaPlayer - Kh?i t?o MediaPlayer v?i URL bài hát và phát : Hình 3.16: Kh?i t?o MediaPlayer- X? l? thanh SeekBar ch?y theo th?i gian bài hát b?ng hàm TimeSong: Hình 3.17: Code x? l? thanh SeekBar- X? l? event khi ?n download bài hát: Khi click vào nút download bài hát s? ???c t?i v? ?i?n tho?i. Hình 3.18: Code cho download bài hát- X? l? event khi ?n login Facebook : Khi clink vào nút login thì s? ??a ra màn hình ??ng nh?p Facebook n?u ch?a có tài kho?n thì có th? ??ng k?.Hình 3.19: Code cho login Facebook CH??NG 4: CH??NG TR?NH TH?C NGHI?M4.1. Phát bi?u bài toán : Nghe nh?c trên ?i?n tho?i là m?t trong các nhu c?u gi?i trí ph? bi?n c?a ng??i dùng, nó giúp th? gi?n và làm vi?c hi?u qu? h?n. Ch??ng trình nghe nh?c th??ng ???c tích h?p s?n trên ?i?n tho?i, tuy nhiên nó th??ng ch? ???c phát ???c các file bài hát l?u tr? c?c b? trên ?i?n tho?i. Vi?c l?u tr? kho nh?c c?c b? có th? d?n ??n: t?n d?ng l??ng b? nh?, các bài hát nhanh chóng tr? nên c? và kh?ng mu?n nghe… Vi?c x?y d?ng ?ng d?ng nghe nh?c online giúp ng??i dùng có th? nghe tho?i mái các bài hát m?i liên t?c và kh?ng ph?i b?n kho?n vê? kh?ng gian l?u tr?. 4.1.1 Các ch?c n?ng c?a ch??ng trình :Ch??ng trình x?y d?ng s? ??m b?o các ch?c n?ng chính sau:- Hi?n th? các bài hát, ca s?. - Tìm ki?m các bài hát hay, nh?c m?i n?i hi?n nay- Phát bài hát theo bài hát tìm ki?m.- T?i nh?c kh?ng gi?i h?n v? ?i?n tho?i.- ??ng nh?p Facebook.4.2 S? ?? Use-Case c?a ch??ng trình : - S? ?? Use-Case t?ng quát :Hình 4.1: Use-Case t?ng quát- S? ?? ho?t ??ng c?a app :Hình 4.2: S? ?? ho?t ??ng c?a appM? t?: ng??i dùng truy c?p app có th? search bài hát theo ? thích c?a mình và nghe bài hát.S? ?? tìm ki?m bài hát :Hình 4.3: S? ?? tìm ki?m bài hátS? ?? ??ng nh?p Facebook :Hình 4.4: S? ?? ??ng nh?p Facebook4.3 C? s? d? li?u :B?ng bài hátHình 4.5: B?ng bài hátHình 4.6: B?ng insert d? li?u bài hát4.4. Giao di?n c?a ch??ng trình :Ch??ng trình hi?n th? danh sách bài bát t? webservice, cho phép tìm ki?m bài hát yêu thích và nghe bài hát ng??i dùng ch?n.- Giao di?n màn hình chính ch??ng trình phát nh?c: l?a ch?n bài hát tùy thích ?? phát nh?c.Hình 4.7: Giao di?n màn hình chính- Giao di?n tìm ki?m bài hát: Ng??i dùng g? vào ? tìm ki?m ?ng d?ng s? hi?n th? ra danh sách bài hát g?n ?úng v?i t? khóa ng??i dùng g? vào Hình 4.8: Màn hình tìm ki?m bài hát- Khi ch?n vào bài hát s? hi?n th? ra màn hình phát nh?c :Hình 4.9: Màn hình phát nh?c- Ch?c n?ng d?ng phát: Khi ch?n ch?c n?ng d?ng phát bài hát s? d?ng phát- Ch?c n?ng l?p l?i m?t bài hát ?ang phát: Ch?n vào nút L?p l?i bên trái - Ch?c n?ng Phát ng?u nhiên m?t bài hát: Ch?n vào nút phát ng?u nhiên bên ph?i - Ch?c n?ng Phát t?t c? các bài hát: Ch?n vào nút phát t?t c? các bài hátCh??ng 5 K?t lu?n và H??ng phát tri?nSau m?t th?i gian tìm hi?u ?ê? tài “X?y d?ng ?ng d?ng nghe nh?c trên n?n t?ng Android” em ?? th?c hi?n ???c n?i dung ?ê? tài c?a theo yêu c?u ??t ra.V?i m?c ?ích là tìm hi?u vê? h? ?iê?u hành Android, hi?u bi?t vê? ng?n ng? l?p trình m?i cho ?i?n tho?i di ??ng và tìm hi?u các ?ng d?ng c?a h? ?iê?u hành Android trong th? gi?i di ??ng ngày nay. Th?ng qua vi?c tìm hi?u và n?m b?t l? thuy?t vê? h? ?iê?u hành Android, b??c ??u ?? x?y d?ng thành c?ng ch??ng trình th?c nghi?m v?i các ch?c n?ng c? b?n. Trong quá trình tìm hi?u l? thuy?t vê? h? ?iê?u hành Android và x?y d?ng ?ng d?ng nghe nh?c online em ?? thu ???c k?t qu? sau: - Hi?u và s? d?ng ???c các l?p ??i t??ng, ph??ng th?c h? tr? l?p trình trên nê?n h? ?iê?u hành Android. - Hi?u ???c ??nh d?ng d? li?u và c? ch? làm vi?c v?i JSON. - Hi?u ???c các thành ph?n c?a Webservice. - X?y d?ng thành c?ng ?ng d?ng Demo v?i các ch?c n?ng nghe nh?c tr?c tuy?n, tìm ki?m bài hát và hi?n th? bài hát theo các m?c. - ?óng gói ?ng d?ng thành file .apk cho phép cài ??t trên ?i?n tho?i Android. Do th?i gian có h?n cùng v?i ki?n th?c c?a b?n th?n còn h?n ch? nên em ch?a tìm hi?u s?u vê? các ki?n th?c liên quan t?i h? ?iê?u hành Android nên ch??ng trình v?n còn r?t nhiê?u h?n ch?, em s? c? g?ng phát tri?n thêm ?? ch??ng trình th?n thi?n, d? s? d?ng và nhiê?u ch?c n?ng h?n.T?I LI?U THAM KH?O[1]. (h?_?iê?u_hành) [2]. [3]. [4]. [5]. ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download