Bối cảnh và vấn đề nghiên cứu
Khóa luận tốt nghiệp với đề tài "Xây dựng ứng dụng Android lấy dữ liệu tự động từ trang web" được thực hiện bởi sinh viên Nguyễn Thanh Tùng (Mã sinh viên: 1412101073, Lớp: CT1802, Ngành: Công nghệ thông tin) dưới sự hướng dẫn của ThS. Phùng Anh Tuấn tại Trường Đại học Dân lập Hải Phòng vào năm 2018.
1. Lý do chọn đề tài và bối cảnh thực tiễn
Trong bối cảnh công nghệ phát triển, nhu cầu tiếp cận và cập nhật tin tức trực tuyến trên các thiết bị di động thông minh (smartphone, tablet) ngày càng trở nên phổ biến. Người dùng có nhu cầu tiếp nhận thông tin cần thiết một cách nhanh chóng, tập trung và chính xác ngay trên thiết bị cầm tay. Tuy nhiên, việc xây dựng các ứng dụng phân tán để khai thác dữ liệu từ các trang web thường gặp phải các rào cản kỹ thuật như sự ngăn chặn của hệ thống tường lửa (firewalls), máy chủ proxy (Proxy Server), cũng như việc phần lớn các website tin tức không cung cấp sẵn các giao diện lập trình ứng dụng (Web API) mở để truy xuất dữ liệu trực tiếp. Do đó, việc nghiên cứu một giải pháp kỹ thuật bóc tách và chuyển hóa dữ liệu tự động từ các trang web về thiết bị di động Android là yêu cầu thực tế cấp thiết.
2. Mục tiêu và nhiệm vụ nghiên cứu
Tác giả xác định các mục tiêu và nhiệm vụ nghiên cứu cụ thể bao gồm:
- Nghiên cứu tổng quan về hệ điều hành Android, lịch sử phát triển, kiến trúc hệ thống 4 lớp, giao diện người dùng và các phiên bản của Android.
- Tìm hiểu và thiết lập môi trường phát triển ứng dụng di động Android Studio, máy ảo Genymotion, cấu trúc dự án Android (tệp cấu hình
AndroidManifest.xml, các thư mục tài nguyên, vòng đời Activity và cơ chế Intent).
- Nghiên cứu kỹ thuật dịch vụ mạng và thu thập dữ liệu tự động: dịch vụ lưu trữ trực tuyến (Web Hosting), công nghệ dịch vụ Web (Web Services) và thư viện bóc tách mã nguồn
Simple HTML Dom.
- Thiết kế mô hình kiến trúc và xây dựng chương trình thực nghiệm ứng dụng Android có khả năng tự động lấy dữ liệu tin tức từ trang web thông qua Web Service và hiển thị trực quan trên thiết bị di động.
3. Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Nền tảng hệ điều hành di động Android; kỹ thuật phân tích cú pháp HTML và bóc tách dữ liệu từ trang web bằng thư viện Simple HTML Dom; mô hình kết nối giữa ứng dụng Android và Web Service trung gian.
- Phạm vi không gian và công nghệ: Nghiên cứu và triển khai trên môi trường phát triển Android Studio, môi trường máy ảo Genymotion kết hợp Oracle VirtualBox; phát triển Web Service bằng ngôn ngữ PHP hỗ trợ thư viện Simple HTML Dom phiên bản 1.5; thực nghiệm trên hệ điều hành Android.
- Phạm vi thời gian: Đề tài được hoàn thành và báo cáo tốt nghiệp vào tháng 08 năm 2018 tại Khoa Công nghệ Thông tin, Trường Đại học Dân lập Hải Phòng.
Cơ sở lý thuyết và phương pháp
1. Khung lý thuyết và công nghệ sử dụng
Khóa luận xây dựng dựa trên các nền tảng lý thuyết và công nghệ chuyên ngành Công nghệ thông tin:
- Kiến trúc hệ điều hành Android: Mô hình phân lớp dựa trên nhân Linux phiên bản 2.6 cung cấp các dịch vụ lõi (bảo mật, quản lý bộ nhớ, tiến trình, ngăn xếp mạng, mô hình driver). Tầng máy ảo Dalvik thực thi các tệp định dạng
.dex (Dalvik Executable) được tối ưu hóa cho bộ nhớ, sau này được nâng cấp với trình thực thi Android Runtime (ART). Tầng Nền tảng ứng dụng (Application Framework) cung cấp các khối dịch vụ: View System, Content Provider, Resource Manager, Notification Manager và Activity Manager.
- Mô hình lập trình giao diện và điều hướng Android: Xây dựng màn hình qua các đối tượng
View và ViewGroup (LinearLayout, RelativeLayout, FrameLayout, ScrollView, RecyclerView, CoordinatorLayout), liên kết giữa mã nguồn Java và tệp giao diện XML. Cơ chế quản lý vòng đời Activity theo cấu trúc ngăn xếp (Activity Stack) với 4 trạng thái: Active/Running, Paused, Stopped, Destroyed. Cơ chế truyền thông điệp và kích hoạt thành phần thông qua Intent (gồm Intent tường minh - Explicit Intent và Intent không tường minh - Implicit Intent) cùng gói dữ liệu Bundle.
- Hạ tầng mạng và Dịch vụ Web: Khái niệm mạng Internet chuyển mạch gói (Packet Switching) dựa trên giao thức IP; các loại hình Web Hosting (Shared hosting, Collocated hosting, Dedicated Server, VPS); mô hình Web Services hỗ trợ giao tiếp đa nền tảng qua các chuẩn mở; thư viện mã nguồn mở
Simple HTML Dom viết bằng PHP để phân tích cú pháp cấu trúc cây DOM và bóc tách các thuộc tính, thẻ HTML từ URL hoặc chuỗi văn bản.
2. Phương pháp nghiên cứu
Tác giả đã áp dụng kết hợp các phương pháp nghiên cứu sau:
- Phương pháp phân tích - tổng hợp tài liệu: Thu thập, hệ thống hóa các tài liệu kỹ thuật chuẩn về hệ điều hành Android từ trang phát triển chính thức của Google (
developer.android.com), tài liệu về công cụ Android Studio, Java Development Kit (JDK) và thư viện Simple HTML Dom.
- Phương pháp thiết kế kiến trúc phân tầng (Three-tier Architecture): Xây dựng mô hình hệ thống gồm 3 thành phần chính: Ứng dụng di động Client (Android) - Máy chủ dịch vụ trung gian (PHP Web Service kết hợp Simple HTML Dom) - Trang web nguồn dữ liệu (Target Website).
- Phương pháp thực nghiệm phát triển phần mềm: Cài đặt cấu hình môi trường phát triển thực tế, viết mã nguồn bóc tách dữ liệu bằng PHP trên công cụ Sublime Text 3, lập trình ứng dụng Android trên Android Studio, chạy thử nghiệm và kiểm tra giao diện trên máy ảo Genymotion.
3. Nguồn dữ liệu
- Tài liệu phát triển Android SDK và tài liệu hướng dẫn kỹ thuật của Google.
- Bộ mã nguồn thư viện
Simple HTML Dom (tệp nén simplehtmldom_1_5.zip từ SourceForge).
- Dữ liệu cấu trúc HTML thực tế từ các website tin tức trực tuyến trên mạng Internet được trích xuất thông qua dịch vụ Web Service.
Nội dung chính theo từng chương
Chương 1 : HỆ ĐIỀU HÀNH ANDROID
Chương này tập trung giới thiệu toàn diện về lịch sử hình thành, kiến trúc kỹ thuật và tiến trình phát triển của hệ điều hành Android:
- Lịch sử và nguồn gốc: Android được Tổng công ty Android phát triển và được Google mua lại vào năm 2005. Bản beta đầu tiên xuất hiện vào tháng 11/2007 và phiên bản thương mại đầu tiên (Android 1.0) chính thức phát hành vào tháng 9/2008 đi kèm chiếc điện thoại T-Mobile G1 (bán ra ngày 22/10/2008 tại Mỹ). Kể từ tháng 4/2009, các phiên bản Android được đặt tên theo thứ tự bảng chữ cái gắn với các món bánh kẹo.
- Các thành phần giao diện nền tảng: Phân tích sự ra đời của thanh thông báo vuốt từ trên xuống (Notification bar), màn hình chính (Home Screen) cho phép tùy biến widgets (với sự hỗ trợ thiết kế ban đầu từ công ty TAT - The Astonishing Tribe), khả năng đồng bộ tích hợp giao thức POP/IMAP của Gmail và kho ứng dụng Android Market.
- Kiến trúc hệ thống 4 lớp / 5 phần chính:
- Nhân Linux (Linux Kernel 2.6): Đảm nhiệm bảo mật, quản lý bộ nhớ, tiến trình, ngăn xếp mạng và trình điều khiển phần cứng.
- Thư viện C/C++ (Libraries): Hệ thống thư viện C (libc gốc BSD), thư viện Media (PacketVideo OpenCORE hỗ trợ MPEG4, H.264, MP3, AAC, AMR, JPG, PNG), Bề mặt quản lý (Surface Manager), LibWebCore (trình duyệt web), SGL (đồ họa 2D), thư viện 3D (OpenGL ES 1.0 APIs) và FreeType (vẽ phông chữ bitmap/vector).
- Tầng thực thi Android (Android Runtime): Chứa thư viện lõi Java và máy ảo Dalvik (Dalvik VM) tối ưu hóa bộ nhớ, thực thi các tệp
.dex.
- Tầng Nền tảng ứng dụng (Application Framework): Bao gồm View System, Content Provider, Resource Manager, Notification Manager và Activity Manager.
- Tầng Ứng dụng (Applications): Chứa các ứng dụng người dùng và ứng dụng mặc định của thiết bị (danh bạ, trình duyệt...).
- Lịch sử các phiên bản Android: Trình bày chi tiết các cải tiến từ Android 1.5, 1.6 (hỗ trợ CDMA, nhiều độ phân giải màn hình), 2.0/2.1 Eclair (hỗ trợ nhiều tài khoản, Quick Contact, bàn phím ảo multitouch, trình duyệt HTML5), 2.2 Froyo (5 màn hình chính, ảnh 3D, USB tethering, Wi-Fi hotspot, C2DM, trình biên dịch JIT), 2.3 Gingerbread (Nexus S), 3.0 Honeycomb (dành riêng cho máy tính bảng Motorola Xoom), 4.0 Ice Cream Sandwich (phông chữ Roboto, thao tác vuốt thông báo), 4.1 - 4.3 Jelly Bean (Project Butter, Google Now, Miracast, Restricted Profile), 4.4 KitKat (yêu cầu RAM chỉ từ 512MB, hiệu năng tăng 1,6 lần), 5.0/5.1 Lollipop (ngôn ngữ Material Design, trình thực thi ART thay Dalvik, Project Volta), 6.0 Marshmallow (tính năng Now on Tap, chế độ tiết kiệm pin Doze), 7.0 Nougat (chia đôi màn hình, trả lời nhanh tin nhắn từ thông báo, menu hamburger) đến 8.0/8.1 Oreo (Picture-in-picture, giới hạn ứng dụng nền, Project Treble).
Chương 2 : MÔI TRƯỜNG PHÁT TRIỂN ỨNG DỤNG ANDROID STUDIO
Chương 2 trình bày chi tiết quy trình chuẩn bị môi trường, cấu trúc dự án và các thành phần cốt lõi trong lập trình ứng dụng Android:
- Giới thiệu và Cài đặt: Android Studio là IDE do Google phát hành đầu năm 2015 trên nền IntelliJ IDEA Community Edition để thay thế Eclipse. Quy trình cài đặt bao gồm Java JDK (cấu hình biến môi trường hệ thống Path), Android Studio (yêu cầu tối thiểu 4GB RAM / đề nghị 8GB RAM, dung lượng ổ đĩa trống 40GB - 100GB, độ phân giải 1366 x 768, JDK 7 trở lên) và máy ảo Genymotion (yêu cầu CPU hỗ trợ VT-x hoặc AMD-V, tối thiểu 1GB RAM, 4GB ổ đĩa trống, Oracle VirtualBox 4.x).
- Cấu trúc tệp và thư mục dự án:
AndroidManifest.xml: Tệp cấu hình chứa tên gói Java, khai báo quyền hệ thống (<uses-permission>), các màn hình (<activity>), dịch vụ chạy ngầm (<service>), bộ lắng nghe sự kiện (<receiver>), bộ cung cấp dữ liệu (<provider>) và phiên bản SDK (<uses-sdk>).
- Thư mục
Java: Chứa các package và lớp xử lý logic.
- Thư mục
Res: Chứa tài nguyên gồm drawable (hình ảnh, XML cấu hình), layout (tệp XML giao diện màn hình), mipmap (logo/icon ứng dụng) và values (color.xml, dimens.xml, strings.xml, styles.xml).
build.gradle: Tệp cấu hình dịch, xây dựng, ấn định phiên bản SDK tối thiểu và đóng gói ứng dụng.
- Thành phần giao diện View và ViewGroup: Phân loại các nhóm bố cục hiển thị (LinearLayout, RelativeLayout, FrameLayout, ScrollView, RecyclerView, CoordinatorLayout) và bảng tổng hợp các View cơ bản cùng các thuộc tính thiết kế (
layout_width, layout_height, text, textColor, background, id, gravity, textStyle, textSize, fontFamily, inputType, hint).
- Vòng đời Activity và Intent: Phân tích 4 trạng thái hoạt động của Activity (Active/Running, Paused, Stopped, Destroyed/Killed) và 2 loại Intent (Intent tường minh và Intent không tường minh) dùng để gọi thành phần và truyền dữ liệu qua lớp
Bundle.
Chương 3 : KỸ THUẬT LẤY DỮ LIỆU TỰ ĐỘNG TỪ TRANG WEB
Chương 3 tập trung vào cơ sở hạ tầng mạng, giải pháp dịch vụ Web và kỹ thuật bóc tách dữ liệu:
- Mạng Internet và Dịch vụ lưu trữ trực tuyến: Khái niệm mạng máy tính toàn cầu kết nối theo cơ chế chuyển mạch gói (Packet Switching/IP). Phân loại Hosting thành 4 dạng: Shared hosting, Collocated hosting, Dedicated Server và VPS (Virtual Private Server). Liệt kê các yêu cầu cần thiết đối với hosting gồm: tốc độ máy chủ, dung lượng ổ đĩa (MBytes), băng thông (bandwidth), hỗ trợ giao thức FTP, hỗ trợ ngôn ngữ lập trình/CSDL, hỗ trợ dịch vụ email (POP3, E-mail Forwarding, DNS) và bảng điều khiển quản trị không chèn quảng cáo.
- Dịch vụ Web (Web Services): Trình bày định nghĩa dịch vụ Web và các công nghệ xây dựng dịch vụ Web trên nền .NET Framework (Web Service, WCF Service, WCF REST Service, Web API Service). Nêu rõ ưu điểm (hoạt động đa nền tảng, chuẩn mở, tính tái sử dụng, giảm độ phức tạp) và nhược điểm (rủi ro thời gian chết - downtime, thiếu đồng nhất về chuẩn, vấn đề an toàn bảo mật).
- Thư viện Simple HTML Dom: Giới thiệu thư viện mã nguồn mở
Simple HTML Dom (tải về qua tệp simplehtmldom_1_5.zip từ SourceForge) sử dụng ngôn ngữ PHP trên công cụ soạn thảo Sublime Text 3. Thư viện cho phép phân tích cú pháp, trích xuất các thuộc tính của các thẻ HTML trực tiếp từ liên kết trang web hoặc từ một chuỗi văn bản.
- Mô hình lấy dữ liệu từ trang web về thiết bị di động: Đề xuất mô hình chuyển hóa dữ liệu 3 tầng qua quy trình xử lý 4 bước khép kín.
Chương 4: CHƯƠNG TRÌNH THỰC NGHIỆM
Chương 4 mô tả bài toán ứng dụng thực tế và trình bày các giao diện đã được lập trình:
- Phát biểu bài toán: Xây dựng ứng dụng trên hệ điều hành Android đáp ứng nhu cầu đọc tin tức tự động, hỗ trợ người dùng tiếp nhận thông tin từ các trang web về máy một cách nhanh nhất và thuận tiện nhất.
- Giao diện chương trình:
- Giao diện màn hình chính: Xuất hiện khi khởi động ứng dụng, bao gồm danh sách các chuyên mục cần đọc tin, nút "Tải Tin" và nút "Thoát".
- Giao diện các mục tin: Hiển thị sau khi người dùng chọn danh mục (ví dụ: mục tin thể thao) và tải tin, bao gồm danh sách các bài tin tức được bóc tách về, nút "Tải Tin" và nút "Thoát".
- Giao diện chi tiết tin: Hiển thị nội dung chi tiết bài viết khi người dùng nhấn chọn vào một mục tin cụ thể trong danh sách.
Thiết kế và triển khai
1. Kiến trúc hệ thống và Luồng xử lý dữ liệu
Hệ thống được thiết kế theo mô hình 3 tầng (Three-tier Architecture), trong đó Web Service đóng vai trò là tầng trung gian xử lý dữ liệu giữa trang web nguồn và thiết bị người dùng.
[Thiết bị Di động Android] <---> [PHP Web Service + Simple HTML Dom] <---> [Trang Web Nguồn]
Quy trình lấy dữ liệu tự động được thực hiện qua 4 bước:
- Bước 1: Khi người dùng mở ứng dụng và chạm vào màn hình mục tin trên thiết bị Android, ứng dụng sẽ gửi yêu cầu lấy dữ liệu tự động đến Web Service.
- Bước 2: Web Service nhận yêu cầu từ ứng dụng di động và thực hiện gửi request lấy dữ liệu mã nguồn HTML từ trang web đích.
- Bước 3: Trang web đích phản hồi và đẩy dữ liệu HTML thô về cho Web Service. Tại đây, thư viện Simple HTML Dom sẽ phân tích cú pháp các thẻ HTML và trích xuất các thông tin cần thiết.
- Bước 4: Web Service đóng gói dữ liệu đã được xử lý chuẩn hóa và gửi trả về cho thiết bị Android để hiển thị lên màn hình.
2. Tổng hợp công nghệ và môi trường triển khai
| Phân loại |
Thành phần / Công cụ |
Mô tả kỹ thuật và Yêu cầu |
| Nền tảng di động |
Hệ điều hành Android |
Môi trường mục tiêu chạy ứng dụng, kiến trúc 4 lớp |
| Công cụ phát triển (IDE) |
Android Studio |
Bản IDE trên nền IntelliJ IDEA, hỗ trợ thiết kế giao diện và tiếng Việt |
| Máy ảo thử nghiệm |
Genymotion + VirtualBox |
Genymotion yêu cầu CPU hỗ trợ VT-x/AMD-V, RAM tối thiểu 1GB, Oracle VirtualBox 4.x |
| Bộ phát triển Java |
Java JDK |
JDK phiên bản 7 trở lên, cấu hình biến môi trường Path |
| Ngôn ngữ & Thư viện Web |
PHP & Simple HTML Dom |
Thư viện simplehtmldom_1_5 dùng để phân tích cú pháp thẻ HTML trên Sublime Text 3 |
| Hạ tầng lưu trữ |
Web Hosting |
Hỗ trợ PHP, FTP, IP tĩnh, dịch vụ DNS và Email |
| Cấu hình & Giao diện |
XML & AndroidManifest.xml |
Khai báo quyền mạng, quản lý Activity, View và ViewGroup (LinearLayout, ListView...) |
3. Kiểm thử và vận hành giao diện
Chương trình thực nghiệm đã triển khai và kiểm thử các thành phần chức năng trên máy ảo di động:
- Khởi chạy màn hình chính với danh sách danh mục tin tức và bắt các sự kiện từ nút "Tải Tin", nút "Thoát".
- Chuyển hướng màn hình thông qua cơ chế Intent khi người dùng chọn mục tin (như chuyên mục thể thao).
- Hiển thị danh sách tin tức đã được bóc tách từ Web Service lên danh sách hiển thị và điều hướng vào màn hình xem chi tiết khi người dùng nhấn chọn từng tin bài.
Kết quả và đóng góp
1. Kết quả nghiên cứu chính
- Hệ thống hóa toàn bộ lý thuyết về kiến trúc hệ điều hành Android (nhân Linux 2.6, Dalvik VM, các thư viện C/C++, Application Framework), lịch sử các phiên bản từ Android 1.0 đến Android 8.1 Oreo, vòng đời Activity và cơ chế Intent.
- Trình bày quy trình cài đặt, cấu hình chi tiết môi trường phát triển Android Studio, biến môi trường JDK và phần mềm máy ảo Genymotion.
- Thiết lập thành công mô hình bóc tách dữ liệu 4 bước thông qua Web Service trung gian viết bằng PHP kết hợp thư viện
Simple HTML Dom 1.5.
- Xây dựng hoàn chỉnh ứng dụng thực nghiệm trên hệ điều hành Android với đầy đủ 3 giao diện chức năng: Màn hình chính danh mục, Màn hình danh sách tin bài và Màn hình hiển thị chi tiết bài viết, tích hợp các nút điều khiển "Tải Tin" và "Thoát".
2. Giải pháp và kiến nghị của tác giả
- Giải pháp bóc tách trung gian: Sử dụng Web Service làm máy chủ trung gian để phân tích cú pháp HTML bằng Simple HTML Dom thay vì bóc tách trực tiếp trên ứng dụng di động. Giải pháp này giúp vượt qua các rào cản về tường lửa (firewalls), proxy server và giải quyết bài toán các website nguồn không cung cấp Web API.
- Kiến nghị hạ tầng Hosting: Đề xuất lựa chọn các gói dịch vụ lưu trữ Web Hosting có tốc độ xử lý cao, dung lượng (MBytes) và băng thông đủ lớn, có hỗ trợ đầy đủ các giao thức FTP, DNS và dịch vụ mail để đảm bảo hệ thống Web Service hoạt động thông suốt, không bị nghẽn mạch dữ liệu.
3. Đóng góp của đề tài
- Đưa ra giải pháp kỹ thuật cụ thể, khả thi cho việc tự động thu thập và chuyển hóa dữ liệu tin tức từ các trang web HTML tĩnh/động về ứng dụng di động trong điều kiện không có sẵn API.
- Cung cấp tài liệu tổng hợp có tính hệ thống về lập trình ứng dụng Android cơ bản và kỹ thuật xử lý dữ liệu web phân tán cho sinh viên chuyên ngành Công nghệ thông tin.
Hạn chế và hướng nghiên cứu tiếp
1. Hạn chế
- Mô hình bóc tách dữ liệu bằng thư viện Simple HTML Dom phụ thuộc chặt chẽ vào cấu trúc các thẻ HTML của website nguồn; nếu website nguồn thay đổi cấu trúc giao diện hoặc mã HTML, bộ phân tích cú pháp của Web Service sẽ cần phải được cấu hình lại.
- Phạm vi thực nghiệm trong khóa luận mới chỉ dừng lại ở các giao diện cơ bản (danh mục, danh sách tin, chi tiết tin), chưa tích hợp cơ chế lưu trữ đệm dữ liệu (caching/offline storage) trên thiết bị di động khi mất kết nối mạng.
- Chưa đi sâu vào việc xử lý các cơ chế bảo mật nâng cao chống scraping hoặc các trường hợp thời gian chết (downtime) của Web Service.
2. Hướng nghiên cứu tiếp
- Tối ưu hóa hiệu năng xử lý của Web Service nhằm giảm thiểu độ trễ khi bóc tách dữ liệu từ nhiều trang web cùng một lúc.
- Nâng cấp cơ chế an toàn và bảo mật cho luồng dữ liệu truyền giữa Web Service và ứng dụng di động Android.
- Mở rộng chức năng ứng dụng di động: hỗ trợ đọc tin tức đa nguồn, phân loại tin tức tự động và cập nhật giao diện người dùng theo chuẩn Material Design trên các phiên bản Android mới.
Giá trị tham khảo
Tài liệu khóa luận có giá trị tham khảo thiết thực cho các đối tượng và mục đích học tập sau:
- Sinh viên ngành Công nghệ thông tin và Kỹ thuật phần mềm: Là tài liệu nhập môn rõ ràng về lập trình di động Android, cung cấp kiến thức nền tảng về kiến trúc Android, vòng đời ứng dụng, hệ thống giao diện View/ViewGroup và cách sử dụng Android Studio kết hợp máy ảo Genymotion.
- Người nghiên cứu kỹ thuật Web Scraping: Cung cấp phương pháp tiếp cận trực quan trong việc sử dụng ngôn ngữ PHP và thư viện Simple HTML Dom để bóc tách cấu trúc thẻ HTML từ các trang web.
- Các phần nội dung đáng tham khảo nhất:
- Chương 2: Bảng tổng hợp chi tiết về các thành phần hiển thị (ViewGroup, View) và các thuộc tính định dạng giao diện trong Android.
- Chương 3: Sơ đồ và quy trình giải thích mô hình 4 bước chuyển hóa dữ liệu từ trang web về thiết bị di động qua Web Service.
- Chương 2 (Mục 2.1): Hướng dẫn chi tiết về cấu trúc và các thẻ chức năng trong tệp cấu hình
AndroidManifest.xml.
Câu hỏi thường gặp
1. Kiến trúc hệ điều hành Android được chia thành các tầng nào trong khóa luận?
Hệ điều hành Android gồm 5 phần chính được bố trí trong 4 tầng:
- Nhân Linux (Linux Kernel phiên bản 2.6): Cung cấp các dịch vụ hệ thống cốt lõi như quản lý bộ nhớ, tiến trình, ngăn xếp mạng, bảo mật và driver phần cứng.
- Tầng thư viện C/C++ (Libraries) và Tầng thực thi (Android Runtime): Chứa các thư viện như libc, Media (OpenCORE), LibWebCore, SGL, OpenGL ES, FreeType cùng máy ảo Dalvik VM thực thi tệp
.dex.
- Tầng Nền tảng ứng dụng (Application Framework): Cung cấp các dịch vụ View, Content Provider, Resource Manager, Notification Manager và Activity Manager.
- Tầng Ứng dụng (Applications): Tầng giao tiếp với người dùng gồm danh bạ, trình duyệt và các ứng dụng cài đặt.
2. Tại sao tác giả lại sử dụng máy chủ Web Service trung gian thay vì bóc tách trực tiếp trên Android?
Tác giả giải thích rằng việc kết nối phân tán trực tiếp giữa thiết bị Client và Server thường gặp khó khăn do bị hệ thống tường lửa (firewalls) và Proxy Server ngăn chặn. Ngoài ra, nhiều trang web không mở API cho phép truy xuất dữ liệu. Do đó, việc xây dựng Web Service trung gian chạy trên máy chủ giúp vượt qua các rào cản này, thực hiện bóc tách mã nguồn HTML qua Simple HTML Dom và chuyển hóa dữ liệu về thiết bị di động một cách ổn định.
3. Cấu hình máy tính yêu cầu để cài đặt môi trường Android Studio được nêu trong tài liệu là gì?
Cấu hình yêu cầu bao gồm:
- Hệ điều hành: Microsoft Windows 7/8/10 (32-bit hoặc 64-bit).
- Bộ nhớ RAM: Tối thiểu 4 GB (cấu hình đề nghị là 8 GB RAM).
- Dung lượng đĩa trống: Tối thiểu 40 GB (100 GB được đề xuất).
- Màn hình: Độ phân giải tối thiểu 1366 x 768.
- Bộ công cụ phát triển: Java Development Kit (JDK) phiên bản 7 trở lên.
- Hỗ trợ thêm cho máy ảo tăng tốc: Bộ xử lý Intel hỗ trợ Intel VT-x, Intel EM64T và Execute Disable (XD) Bit.
4. Tệp AndroidManifest.xml có chức năng gì trong một dự án Android?
Tệp AndroidManifest.xml có chức năng cấu hình các thuộc tính cốt lõi cho ứng dụng mà hệ điều hành cần hiểu khi khởi chạy:
- Đặt tên gói Java làm mã nhận diện duy nhất cho ứng dụng.
- Khai báo các thành phần của ứng dụng (
<activity>, <service>, <receiver>, <provider>).
- Khai báo các quyền hạn cần cấp để truy cập API hệ thống hoặc kết nối mạng (
<uses-permission>).
- Khai báo mức độ phiên bản SDK Android tối thiểu mà ứng dụng yêu cầu (
<uses-sdk>).
5. Thư viện Simple HTML Dom đóng vai trò gì và được tích hợp như thế nào?
Simple HTML Dom (phiên bản simplehtmldom_1_5) là thư viện viết bằng ngôn ngữ PHP, được sử dụng để phân tích cú pháp và lấy các thuộc tính của các thẻ HTML từ một đường link website hoặc từ chuỗi văn bản. Trong đề tài, thư viện này được triển khai trên máy chủ Web Service nhằm bóc tách các mục tin tức từ website nguồn, sau đó chuyển giao dữ liệu hoàn chỉnh về ứng dụng Android.
Kết luận
Khóa luận tốt nghiệp "Xây dựng ứng dụng Android lấy dữ liệu tự động từ trang web" của sinh viên Nguyễn Thanh Tùng đã trình bày một cách có hệ thống kiến trúc hệ điều hành Android, môi trường phát triển Android Studio và các công nghệ truyền thông dịch vụ Web. Đề tài đã đề xuất và hiện thực hóa thành công mô hình 3 tầng sử dụng Web Service PHP kết hợp thư viện Simple HTML Dom để bóc tách và phân phối dữ liệu tin tức tự động về thiết bị di động. Các kết quả thực nghiệm về giao diện danh mục và chi tiết tin tức đã chứng minh tính khả thi của giải pháp kỹ thuật trong việc giải quyết bài toán thu thập thông tin trực tuyến trên nền tảng di động.