1 UBND TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA: CÔNG NGHỆ THÔNG TIN ----- ----- KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Tên đề tài: XÂY DỰNG ỨNG DỤNG TIN TỨC COVID - 19 TRÊN HỆ ĐIỀU HÀNH ANDROID Sinh viên thực hiện TRẦN QUỐC SINH TÀI MSSV: 2116100132 CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN KHÓA: 2016 – 2020 Cán bộ hướng dẫn ThS NGUYỄN VĂN KHƯƠNG MSCB:…… Quảng Nam, tháng 5 năm 2020 2 Phần 1 MỞ ĐẦU 1 1 Lý do chọn đề tài Trong thời đại công nghệ thông tin phát triển như hiện nay, điện thoại di động là một thiết bị không thể thiếu trong đời sống con người và ngày càng có sự phát triển mạnh mẽ Các dòng điện thoại thông minh được tích họp nhiều chức năng, cấu hình mạnh và kích thước ngày càng nhỏ gọn đang dần chiếm lĩnh thị trường Đáp ứn g xu thế phát triển đó, 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 phát triển vượt bậc Có rất nhiều nền tảng di động phổ biến như IOS, WindowPhone, Android, Symbia nhưng Android củ a Google đang là hệ điều hành phổ biến nhất thế giới Do Android có mã nguồn mở nên 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 Những ưu điểm dễ thấy của Android chính là khả năng tùy biến nhanh chóng, dễ làm quen, ứng dụng hỗ ữợ phong phú tương thích với đa cấu hình phần cứng của các nhà sản xuất Bên cạnh đó nhu càu sử dụng các ứng dụng trên hệ điều hành Android trên khắp thế giới là rất cao Cùng với sự phát triển mạnh mẽ của hệ điều hành Android và nhu cầu xem thông tin tin tức dịch bệnh covid - 19 mọi lúc mọi nơi của người sử dụng, đã có nhiều ứng dụng tin tức được xây dựng trên hệ điều hành Android Bên cạnh những ưu điểm thì một số ứng dụng vẫn còn những mặt hạn chế như chỉ dừng lại ở mức tra cứu tin tức, tìm kiếm tin tức, xem vị trí những nơi có khả năng chữa trị mà chưa đáp ứng được những đòi hỏi cao hơn của người sử dụng Ngoài việc tra các khu vực y tế ở các thành phố lớn , nhiều người sử dụng muốn toàn bộ các khu vực trên cả nước , ngoài ra còn muốn xem cả các nước trên thế giới Xuất phát từ ý tưởng xây dựng một ứng dụng tin tức phát huy những ưu điểm của những ứng dụng trước và hoàn thiện, phát triển thêm các chức năng mà người dùng mong muốn, em đã chọ n đề tài “ Xây dựng ứng dụng tin tức covid - 19 trên hệ điều hành Android ” làm khóa luận tốt nghiệp 1 2 Tính mới của đề tài - Sử dụng cơ sở dữ liệu trên website để xây dựng ứng dụng Android 1 3 Mục tiêu của đề tài - Tìm hiểu hệ điều hành Android - Tìm hiểu môi trường lập trình Android Studio - Tạo lập cơ sở dữ liệu trên internet 1 4 Đối tượng và phạm vi nghiên cứu - Ngôn ngữ lập trình di động Android - Cơ sở dữ liệu trên internet 1 5 Phương pháp nghiên cứu 3 - Tìm hiểu môi trường lập trình Android Studio - Thực nghiệm l ập trình web - service 1 6 Đóng góp của đề tài - Giải quyết được vấn đề người dùng chọn lọc tin tức covid - 19 từ các ứng dụng tin tức thông thường - Người dùng có thể trực tiếp xem vị trí khu vực có khả năng chữa trị bệnh covid - 19 1 7 Cấu trúc đề tài Cấu trúc của bài báo cáo này bao gồm các phần: Mục lục, Lời cảm ơn, Phần mở đầu, Phần nội dung nghiên cứu, Phần kết luận và tài liệu tham khảo Trong đó, ph ần nội dung nghiên cứu gồm các nội dung chính sau - CHƯƠNG 1: TỔNG QUAN HỆ ĐIỀU HÀNH ANDROID Tìm hiểu hệ điều hành Android mã nguồn mở dựa trên nền tảng Linux để quản lý ứng dụng là nội dung quan trọng trong việc xây dựng hệ thống - CHƯƠNG 2 : KỸ TH UẬT LẬP TRÌNH CƠ SỞ DỮ LIỆU VỚI ANDROID STUDIO Nghiên cứu cách sử dụng và kỹ thuật lập trình cơ sở dữ liệu internet để lưu trữ dữ liệu hệ thống Sử dụng kiểu dịnh dạng dữ liệu JSON đọc dữ liệu từ database và truyền tải đến ứng dụng - CHƯƠNG 3 : CHƯƠNG TRÌNH THỰC NGHIỆM Là kết quả đạt được từ việc phân tích thiết kế hệ thống kết hợp với lý thuyết để hoàn thành ứng dụng 4 Phần 2 NỘI DUNG NGHIÊN CỨU Chương 1: TỔNG QUAN HỆ ĐIỀU HÀNH ANDROID 1 1 Giới thiệu hệ điều hành 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 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 5 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), 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í Stev e 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 t hự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, 6 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, M otorola, 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 Bl ok 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 tính 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 tính 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ề, 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 Go ogle 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 7 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ú 1 4 Quản lý 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 phải quản lý bộ nhớ hoặc 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ứ 8 ba trên cửa hàng Google Play; những ứng dụng kiểu như vậy được cho là có hại nhiều hơn có lợ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 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ố tính năng cũng được Google đóng góp ngược vào nhân Linux, đáng c hú ý là tính 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 thấy 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 hoặc 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à tính năng của Android ngược vào nhân Linux Linux cũng đưa tính 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 9 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ác h 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 tính 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 ý 1 6 Bảo mật và tính riêng 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 phải kích hoạt bộ rung hoặc 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 hoặc 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 ý hoặc từ chối chúng, ứng dụng chỉ được cài đặt khi người dùng đồng ý 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 hoặc 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ị, hoặc 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 cho 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 10 đã 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 đa ng 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à cảnh 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 tính 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 cảnh 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ựng 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 1 7 Các phiên bản của Android Qua 12 năm phát triển, Google đã ghi được những bước tiến đáng kể, thể hiện ở con số cứ 10 điện thoại thông minh được bán trên toàn cầu thì có 9 chiếc là chạy hệ đi ề u hành Android - Phiên bản Android 1 0 Android 1 0 (2008) lần đầu tiên phân phối ứng dụng thông qua Android Market với 35 ứng dụng ra mắt G oogle Maps đã sử dụng GPS, Wi - Fi của điện thoại và Google Maps đã tích hợp sẵn trình duyệt Android - Phiên bản Android 1 5 Cupcake Android 1 5 Cupcake (2009) là bản cập nhật lớn đầu tiên của Android Cupcake đã thêm các tiện ích cho màn hình chính, bàn phím ảo, quay video trong máy ảnh, chức năng sao chép và dán vào trình duyệt web 11 - Phiên bản Android 2 0 Eclair Android 2 0 Eclair (2009) hỗ trợ tài khoản Google, cho phép người dùng tìm kiếm nội dung theo từ khóa trong các tin nhắn văn bản, đồng thời bổ sung hỗ trợ đa chạm và máy ảnh được cải tiến với đèn flash, zoom số - Phiên bản Android 2 2 Froyo Android 2 2 Froyo (2010) giới thiệu Flash Player 10 1, cho phép điện thoại phát video và phát trực tuyến âm thanh Máy ảnh flash tương thích Bluetooth giúp người dùng có thể sử dụng điện thoại của mình làm điểm phát sóng Wi - Fi - Phiên bản Android 2 3 Gingerbread Android 2 3 Gingerbread (2011), Android được biết đến rộng rãi hơn nhờ tính năng giao tiếp trường gần (NFC), cho phép điện thoại thông minh kết nối với các thiết bị lân cận khác Hệ đi ề u hành này cũng cho phép gọi điện video bằng máy ảnh mặt trước và thêm trình quản lý tải xuống - Phiên bản Android Honeycomb 3 0 Android Honeycomb 3 0 (2011) là bản cập nhật đầu tiên chỉ dành cho máy tính b ảng, hỗ trợ đồ họa 3D, các tab trình duyệt cạnh nhau, trò chuyện video với Google Talk, chia sẻ kết nối Bluetooth và chế độ toàn màn hình trong thư viện ảnh - Phiên bản Android Ice Cream Sandwich 4 0 Android Ice Cream Sandwich 4 0 (2011) sáp nhập các h ệ đi ề u hành điện thoại và máy tính bảng ICS cũng thêm nhận dạng khuôn mặt để mở khóa điện thoại, phản hồi văn bản, tự động trả lời các cuộc gọi bị từ chối và hiệu ứng video trực tiếp trong camera - Phiên bản Android Jelly Bean 4 1 – 4 3 1 Android Jelly Bean là tên được đặt cho 3 phiên bản chính của hệ đi ề u hành Android mobile operating system developed by Google, trải qua các phiên bản từ 4 1 đến 4 3 1 Android Jelly Bean 4 1 (2012) có hiệu suất nhanh hơn, mượt mà hơn nhờ "Project Butter", cho phép người dùng tương tác nhi ề u hơn, thông báo có thể mở rộng, trình duyệt Chrome mặc định Hai phiên bản còn lại cũng có cùng tên Jelly Bean, được phát hành tương ứng vào tháng 10 năm 2012 và tháng 7 18 năm 2013, trong đó phiên bản 4 2 gồm tối ưu hóa, hỗ trợ nhi ề u người dùng cho máy tính bảng, widget cho màn hình khóa, tùy chỉnh nhanh, và screen saver, còn phiên bản 4 3 gồm các cải tiến và cập nhật nội bộ cho n ề n tảng Android - Phiên bản Android 4 4 KitKat Android 4 4 KitKat (2013) có thêm bi ểu tượng cảm xúc vào bàn phím Google, bộ nhớ nhỏ hơn để hỗ trợ điện thoại cấp thấp hơn, đồng thời cho phép người dùng in văn bản khi đang di chuyển với tính năng Google Cloud Print 12 - Phiên bản Android 5 0 Lollipop Android 5 0 Lollipop (2014) có giao di ện phẳng Material Design, thông báo xuất hiện trên màn hình khóa Hệ đi ề u hành cũng có chế độ ưu tiên, hỗ trợ đa người dùng, ghim màn hình - Phiên bản Android 6 0 Marshmallow Android 6 0 Marshmallow (2015) bắt đầu có chế độ Doze để tiết kiệm pin Đồ ng thời bổ sung thêm hỗ trợ tích hợp cho đầu đọc vân tay, USB Type - C và chế độ 4K cho các ứng dụng - Phiên bản Android 7 0 Nougat Android 7 0 Nougat (2016) người dùng có thể xóa tất cả ứng dụng của mình bằng một lần nhấn, đồng thời đi ề u chỉnh tông màu da của biểu tượng cảm xúc và hỗ trợ VR - Phiên bản Android 8 0 Oreo Android 8 0 Oreo (2017) hay Android Oreo bổ sung nhi ề u tác vụ trong ứng dụng ảnh Ngoài ra còn mang đến trải nghiệm sao chép và dán tốt hơn, cải thiện bảo mật và quản lý pin tốt hơn - Phiên bản Android Pie 9 0 Android Pie 9 0 (2018) tập trung nâng cấp phần m ề m giúp điện thoại Android hoạt động nhanh hơn và tiết kiệm pin Android Pie bổ sung công cụ trí tuệ nhân tạo (AI) vào các ứng dụng và lối tắt tiện lợi hơn cho người dùng - Ph iên bản Android Pie 10 Android Pie 10 (2019) với những tính năng hoàn toàn mới như: chế độ mới toàn diện, thao tác điều hướng, khả năng kích hoạt Google Assistant nhanh hơn, tăng cường bảo mật riêng tư Ưu việc nhất là công nghệ HDR 10 +, nhờ vậy màu sắc màn hình sở hữu công nghệ này sẽ chân thực và sống động hơn bao giờ hết 13 C hương 2 : KỸ THUẬT LẬP TRÌNH CƠ SỞ DỮ LIỆU VỚI ANDROID STUDIO Như các bạn đã biết, khi bạn xây dựng và phát triển một ứng dụng phân tán với s ố lượng ngư ờ i dùng lên đến hàng trăm, hàng nghìn ngư ờ i ở nhi ề u địa điểm khác nhau, kh ó khăn đầu tiên mà bạn gặp ph ả i là sự giao tiếp giữa Client và Server bị tư ờ ng lửa (f irewalls) và Proxy Server ngăn chặn lại Hơn thế nữa, hi ệ n nay rất nhi ề u website không cho phép chúng ta lấy dữ li ệ u từ trang của họ Như v ậ y, chúng ta cần phát triển một thứ c ó thể giúp ta gi ả i quyết vấn đ ề này và Web Services là một phương pháp gi ả i quyết vấn đ ề trên 3 1 Mạng Internet Là một mạng máy tính toàn cầu c ó thể được truy nh ậ p công cộng gồm các mạng máy tính được liên kết với nhau H ệ th ố ng này truy ề n thông tin theo kiểu n ố i chuyển g ó i dữ li ệ u (Packet Switching) dựa trên một g iao thức liên mạng được chuẩn h ó a (giao thức IP) H ệ th ố ng này bao gồm hàng ngàn máy tính nhỏ hơn các doanh nghi ệ p, của các vi ệ n nghiên cứu và các trư ờ ng đại học, của ngư ờ i dùng cá nhân và các chính phủ trên toàn cầu 3 2 Giới thiệu J son 3 2 1 Định nghĩa J son JSON là chữ viết tắt của J avascript O bject N otation, đây là một dạng dữ liệu tuân theo một quy luật nhất định mà hầu hết các ngôn ngữ lập trình hiện nay đều có thể đọc được, ta có thể sử dụng lưu nó vào một file, một record trong CSDL rất dễ dàng JSON có định dạng đơn giản, dễ dàng sử dụng và truy vấn hơn XML rất nhiều nên tính ứng dụng của nó hiện nay rất là phổ biến, trong tương lai tới trong các ứng dụng sẽ sử dụng nó là đa số Ví dụ dưới đây mình định nghĩa một chuỗi JSON lưu trữ thông tin cá nhân, đây là ví dụ quan trọng nhất của phần Json { "id" : "1", "hoten" : "Siêu nhân tài trân", "namsinh" : "1998", "diachi" : "328 Hùng Vương" 14 } Như vậy cú pháp của JSON r ất đơn giản là mỗi thông tin dữ liệu sẽ có 2 phần đó là key và value, điều này tương ứng trong CSDL là tên field và giá trị của nó ở một record nào đó Tuy nhiên nhìn qua thì đơn giản nhưng nếu ta mổ xẻ nó ra thì có một vài điều như sau: Chuỗi JSON được bao lại bởi dấu ngoặc nhọn {} các key, value của JSON bắt buộc phải đặt trong dấu nháy kép {"}, nếu ta đặt nó trong dấu nháy đơn thì đây không phải là một chuỗi JSON đúng chuẩn Nên trường hợp trong value có chứa dấu nháy kép thì hãy dùng d ấu ( \ ) để đặt trước nó, ví dụ học \ "json là gì \ " tại website freetuts net Nếu có nhiều dữ liệu (nhiều cặp key => value) thì ta dùng dấu phẩy (,) để ngăn cách các key của JSON nên đặt chữ cái không dấu hoặc số, dấu _ và không có khoảng trắng, ký tự đầu tiê n không nên đặt là số Điều này rất giống với nguyên tắc đặt tên biến trong PHP 3 2 2 Kiểu dữ liệu trong JSON Trong JSON, giá trị value phải thuộc một trong nh ững kiểu dữ liệu sau : ▪ Number : kiểu số bao gồm số nguyên và số thực ▪ String : kiểu chuỗi, nội dung bao bởi cặp dấu nháy kép “ , những ký tự đặt biệt được escape bởi dấu \ Theo chuẩn JSON thì không sử dụng dấu nháy đơn như Javascript để bọc chuỗi ▪ Boolean : kiểu luận lý bao gồm 2 giá trị là true và false ▪ Array : kiểu mảng gồm các phần tử phân cách nhau bởi dấu phẩy ‘ , ’ và mảng được bao bởi cặp dấu [ và ] ▪ Object : kiểu đối tượng, gồm những cặp giá trị đi cùng nhau, mỗi cặp phân cách bởi dấu phẩy ’ , ’, đố i tượng được bao bởi cặp dấu { và } , cặp giá trị bao gồm tên và giá trị được phân cách bởi dấu hai chấm ’ : ’ ▪ Null: giá trị null ▪ Kiểu DateTime : Do JSON là một chuẩn chung có nghĩa là không phụ thuộc nền tảng hay công nghệ vì vậy JSON không định ra một kiểu t hời gian cụ thể, do mỗi ngôn ngữ lập trình, mỗi nền tảng triển khai có sự quy định về kiễu dữ liệu ngày tháng khác nhau, đơn cử như Javascript lưu trữ kiểu Date chỉ từ 1 - 1 - 1970 trở đi hoặc như PHP thì không có kiểu dữ liệu Date, Date chỉ là một con số chỉ ra số millisecond tính 15 từ 1 - 1 - 1970 (với phiên bản 5 1 0 thì từ 13 - 12 - 1901) còn NET thì có giới hạn ngày gần như rộng nhất Chính vì không thể quy định được nên cách gửi / nhận kiểu dữ liệu ngày tháng (Date) bằng JSON cũng khác nhau 3 2 3 Phân giải JSON với PHP (JSON Parsing) Cấu trúc dữ liệu JSON rất giống với mảng của PHP PHP có các hàm dựng sẵn để encode và decode dữ liệu JSON Các hàm này lần l ượt là json_encode() và json_decode() Cả hai chức năng chỉ hoạt động với dữ liệu chuỗi được mã hóa theo chuẩn UTF - 8 a Endcoding dữ liệu JSON bằng PHP Trong PHP, chúng ta sử dụng hàm json_encode() được sử dụng để mã hóa một giá trị thành định dạng JSON Giá trị được mã hóa có thể là bất kỳ loạ i dữ liệu PHP nào ngoại trừ tài nguyên như cơ sở dữ liệu hoặc liên quan đến xử lý tệp Ví dụ dưới đây trình bày cách mã hóa một mảng kết hợp PHP thành một đối tượng JSON: Kết quả nhận được: {"Khánh":27,"Đức":32,"Huyền":35,"Thúy":30} Như bạn có thể thấy trong ví dụ trên, một mảng không kết hợp có thể được mã hóa thành mảng hoặc đối tượng Tuy nhiên, một mảng kết h ợp luôn được mã hóa dưới dạng đối tượng b Decoding dữ liệu JSON bằng PHP Decoding dữ liệu JSON đơn giản như Endcoding nó Ta có thể sử dụng hàm json_decode() của PHP để chuyển đổi chuỗi được mã hóa JSON thành kiểu dữ liệu PHP phù hợp Ví dụ sau minh họa các h decoding hoặc chuyển đổi một đối tượng JSON thành đối tượng trong PHP Kết quả của ví dụ trên sẽ trông giống như thế này: object(stdClass)#1 (4) { ["Khánh"]=> int(27) ["Đức"]=> int(32) ["Huyền"]=> int(35) ["Thúy"]=> int(30) } Theo mặc định, hàm json_decode() trả về một đối tượng Tuy nhiên, ta có thể tùy ý chỉ định tham số thứ hai $assoc chấp nhận giá trị boolean mà khi: • Được thiết lập là true => các đối tượng JSON thực được decoding thành các mảng kết hợp • Còn mặc định là false 3 3 Kỹ thuật lập trình cơ sở dữ liệu internet trên thiết bị di động 3 3 1 Dịch vụ web và 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ể cun g 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, d oanh 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) • Dữ liệu có tính tin cậy cao • Dữ liệu có tính sẵn sàng cao • Hiệu năng của hệ thống được nâng cao hơn • Cho phép mở rộng các cá nhân, tổ chức, doanh nghiệp một cách linh hoạt 17 - 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 • Đảm bảo an ninh khó khăn hơn • Đảm bảo tính nhất quán dữ liệu khó hơn a Hosting là gi? 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 đó b Các loại hosting - Sha red 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 example com) hoặc một thư mục (w w w example com/ ~ 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ủ (www tenmien com) Nhiều máy chủ miễn phí không cho phép sử dụng tên miề n riêng Hosting miễn phí bị một số nước chặn không cho sử dụng như Trung Quốc - Reseller hosting: là một hình thức lưu trữ của máy chủ web mà chủ sở hữu tài khoản có khả năng sử dụng tài khoản của mình để phân bổ lại ổ cứng lưu trữ và băng thông để lưu trữ các trang web thay mặt cho bên thứ ba Các đại lý mua một phần không gian trên máy chủ sau đó họ bán cho khách hàng thu lợi nhuận - Email hosting: là một dịch vụ thư điện tử đặc biệt khác với các dịch vụ email miễn phí hỗ trợ email hay webmail miễn phí Doanh nghiệp thường chạy các dịch vụ lưu trữ thư điện tử riêng (Email hosting) theo tên miền của họ để tăng uy tín và chứng thực các thông điệp mà họ gửi đi Email hosting cho phép tùy chỉnh cấu hình và số lượng lớn các tài khoản - File hosting: là dịch vụ lưu trữ tập tin trực tuyến, được thiết kế đặc biệt để lưu trữ các nội dung tĩnh, điển hình là các tập tin lớn mà không phải là các trang web 18 Thông thường họ cho phép truy cập qua giao thức FTP được tối ưu hóa phục vụ cho nhiều ngư ời sử dụng - Windows hosting: là một dịch vụ lưu trữ, cho rất nhiều các trang web trên một máy chủ chạy hệ điều hành Windows Sever kết nối Internet Mỗi trang web có phân vùng riêng của mình thường sử dụng các phần mền chia hosting như Hosting Controller, Plesk - Linux 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ủ chạy hệ điều hành Linux kết nối Internet Mỗi trang web có phân vùng riêng của mình thường sử dụng các phần mền chia hosting như Cpanel, Direct Admin - VPS Hosting: m ột máy chủ riêng ảo (tiếng anh: Virtual Private Server), hay VPS là một phương pháp phân vùng một máy chủ vật lý thành máy tính nhiều máy chủ ảo, mỗi máy chủ đã có khả năng của riêng của mình chạy trên máy tính dành riêng Mỗi máy chủ ảo riêng của nó có th ể chạy full - fledged hệ điều hành, và mỗi máy chủ độc lập có thể được khởi động lại c 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, ASP Net, 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 … - Dung lượng: Bộ nhớ lưu trữ cho phép ta tải file lên host - Băng thông: Bandwidth (băng thông) là thông số chỉ dung lượng thông tin tối đa mà website được lưu chuyển qua lại mỗi tháng - PHP: Phiên bản php hỗ trợ - Max file: Số lượng file tối đa có thể upload lên host - RAM: Bộ nhớ đệm - Addon domain: Số lượng domain ta có thể trỏ tới hosting - Subdomain: Số lượng tên miền phụ có thể tạo ra cho mỗi tên miền 19 - Park domain: Số lượng tên miền có thể parking - Email accounts: Số lượng email đi kèm với hosting - FTP accounts: Số lượng FTP account ta có thể tạo và dùng nó upload dữ liệu lên hosting d Đă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 - 000WEBH OST COM - ATSPACE COM - AWARDSPACE COM - HOSTBUDDY COM e Các bước đăng ký sử dụng hosting VD: Đăng ký tại "000webhost com" - Đến địa chỉ: " https://www 000webhost com/free - website - sign - up " - Điền đầy đủ các thông tin yêu cầu như hình: 20 - Sau khi điền đầy đủ thông tin, nhấp chuột vào “ SIGN UP ” đ ăng nhập email kiểm tra hộp thư đến để xác nhận đăng ký thành công Sau khi nhấp chuột vào liên kết, ta sẽ được đưa đến trang tài khoản trên 000webhost com 21 g Tạo cơ sở dữ liệu trên hosting - Tạo mới cơ sở dữ liệu VD: Tạo cơ sở dữ liệu tại "000webhost com" Đăng nhập vào 000webhost com bằng tài khoản đã đăng ký: Click vào Database Manage rồi chọn New database để tạo mới Nhập thông tin cho database cần tạo vào các ô như trong ảnh: 22 Ấn Create để hoàn tất tạo database Sau khi t ạo thành công ta có giao diện mới như sau: Click vào tên database để tiến hành tạo bảng như hình: 23 Nhập thông số cho bảng dữ liệu muốn tạo như: tên bảng tên hàng tên cột số hàng số cột, kiểu dữ liệu của hàng cột trong bảng… sau đó ấn Save để hoàn tất quá trình tạo bảng mới database 24 - Upload cơ sở dữ liệu lên hosting Click vào Upload files Click Uplo ad Files để chọn cơ sở dữ liệu cần upload lên: 3 3 2 Một số kỹ thuật lập trình cơ sở dữ liệu trên internet a Xây dựng Websevice 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ệ u trên Internet thì phải thông qua Web S ervice 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 Web S ever ta cần nắm được kỹ năng lập trình PHP và các kỹ thuật kết nối liên quan đến CSDL Ta tiến hành tạo Web S ervice theo các bước sau: - Bước 1 Xây dựng chức năng kết nối CSDL với Android cho Websevice 25 - Bước 2: 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 - Bước 3: Xây dựng chức năng thêm dữ liệu vào CSDL cho Websevice 26 - Bước 4: Xây dựng chức năng sửa dữ liệu trên CSDL cho Websevice - Bước 5: Xây dựng chức năng xóa dữ liệu trên CSDL cho Websevice - Bước 6: Upload Web S ervice lên hosting sau đó lấy đường dẫn để chạy “https://laptrinhandroidtruyxuatdulieu 000webhostapp com/index php" Như vậy ta đã tạo dựng xong một Web Service 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, thêm dữ liệu, sửa dữ liệu và xóa dữ liệu trên CSDL internet 27 b Kỹ thuật lấy dữ liệu từ CSDL trên internet về thiết bị di động Trong các ứng dụng cần lưu trữ và hiển thị theo danh sách các thông tin đa phần ta dùng ListView Để lấy được dữ liệu trên internet về thiết bị di động thì ta cần kết nối và lấy dữ liệu từ server thông qua Web S ervice có dữ liệu mã hóa dang JSON Để lấy và hiển thị dữ liệu ở cơ sở dữ liệu trên internet về t hiết bị di động ta làm như sau: - Bước 1: Tạo giao diện file activity_main xml - Bước 2: Xây dựng code trong Trang C huActivity java public class TrangChuActivity extends AppCompatActivity { String urlGetData = "https://laptrinhandroidtruyxuatdulieu 000webhostapp com/TinTuc/index php" ; String urlDelete = "https://laptrinhandroidtruyxuatdulieu 000webhostapp com/TinTuc/deleteTinTuc php" ; ListView lvTinTuc ; Ar rayList arrayTinTuc ; TinTucAdapter adapter ; @Override protected void onCreate(Bundle savedInstanceState) { super onCreate(savedInstanceState); setContentView(R layout activity_trang_chu ); lvTinTuc = (ListView) f indViewById(R id listview TinTuc ); arrayTinTuc = new ArrayList(); 28 GetData( urlGetData ); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater() inflate(R menu menu_app , menu); SearchView searchView = (SearchView) menu findItem(R id menuTimkiem ) getActionView(); searchView setOnQueryTextListener( new SearchView OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String query) { Toast makeText (TrangChuActivity this , query, Toast LENGTH_SHORT ) show(); return false ; } @Override public boolean onQueryTextCha nge(String newText) { adapter filter(newText trim()); return false ; } }); getMenuInflater() inflate(R menu them_tintuc , menu); return super onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(@NonNull MenuItem item) { if (item getItemId() == R id menuThemTinTuc ){ startActivity( new Intent(TrangChuActivity this , ThemTinTucActivity class )); } return super onOptionsItemSele cted(item); } private void GetData (String url){ RequestQueue requestQueue = Volley newRequestQueue ( this ); JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request Method GET , url, null , new Response Listener () { @Override public void onResponse(JSONArray response) { arrayTinTuc clear(); //Trường hợp lặp lại khi delete nó gấp đôi lại danh sách for ( int i = 0; i