QUẢN Lý d6cntt epu dai

25 770 0
QUẢN Lý d6cntt epu dai

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

MỤC LỤC DANH MỤC CÁC HÌNH DANH MUC BẢNG CHƯƠNG 1: TỔNG QUAN VỀ LẬP TRÌNH TRÊN NỀN TẢNG DI ĐỘNG 1.1 Tổng quan về lập trình di động. Người lập trình ứng dụng cho thiết bị di động truyền thống luôn luôn phải nhớ trong đầu nguyên tắc "tiết kiệm tối đa tài nguyên" của thiết bị, dùng mọi cách để tối ưu hóa độ phức tạp tính toán cũng như lượng bộ nhớ cần sử dụng. Tuy nhiên, cùng với sự phát triển nhanh chóng của phần cứng, các thiết bị di động hiện đại thường có cấu hình rất tốt, với chip xử lý mạnh mẽ, bộ nhớ (RAM) lớn, khiến việc lập trình cho thiết bị di dộng trở nên dễ dàng hơn bao giờ hết. Các bộ kit phát triển của các hãng sản xuất hệ điều hành di động hiện nay cũng thường làm trong suốt hầu hết các tác vụ liên quan đến quản lý bộ nhớ, quản lý tiến trình... Lập trình viên có thể ít quan tâm hơn đến việc tối ưu hóa sử dụng tài nguyên và tập trung vào việc "lập trình", phát triển tính năng cho ứng dụng như khi lập trình cho máy tính cá nhân. Tuy nhiên, đặc trưng di động của các thiết bị này cũng đem đến nhiều vấn đề mà người lập trình cần phải quan tâm như: Tính "di động" của các thiệt bị này khiến kết nối mạng trở nên rất bất ổn định và khó kiểm soát. Các ứng dụng phụ thuộc nhiều vào kết nối Internet cần chú ý điểm này. Lưu lượng Internet trền thiết bị di động thường có chi phí cao hơn so với Internet cố định. Điều này cũng cần lưu ý khi phát triển các ứng dụng sử dụng nhiều tài nguyên Internet như phim trực tuyến, nhạc trực tuyến... So với máy tính cá nhân, các thiết bị di động hiện đại được trang bị thêm rất nhiều tính năng giúp việc tương tác với người dùng trở nên thuận tiện (màn hình cảm ứng đa điểm, tương tác giọng nói, cử chỉ...), các loại kết nối đa dạng (NFC, GPS, 3G, 4G, bluetooth, IR...), các cảm biến phong phú giúp trải nghiệm rất đa dạng (cảm biến ánh sáng, cảm biến tiệm cận, la bàn, cám biến chuyển động, gia tốc kế...). Người lập trình, tùy thuộc vào ứng dụng cụ thể, có thể sử dụng đến các tính năng đặc biệt này để đem đến cho người dùng trải nghiệm tốt nhất trên thiết bị di động của mình. Page | 4 Ngoài ra các hãng phát triển hệ điều hành di động đều làm ra bộ công cụ phát triển (SDK) và môi trường phát triển tích hợp (IDE) rất thuận tiện cho việc viết mã nguồn, biên dịch, gỡ rối, kiểm thử cũng như xuất bản phần mềm. Xét theo thị phần trên thị trường, ba hệ điều hành phổ biến nhất cho thiết bị di động hiện nay là Google's Android, Apple's iOS và Microsoft's Windows Phone. Mỗi ứng dụng thành công thường được phát triển cho cả 3 hệ nền này. Mỗi hệ nền đều có một chợ ứng dụng chính hãng (Google có Google Play Store, Apple có Apple AppStore, Microsoft có Windows Phone Store) với rất nhiều khách hàng tiềm năng, giúp người phát triển có thể phân phối ứng dụng miễn phí hoặc có phí với chi phí nhất định. Bảng dưới đây liệt kê các hệ điều hành cùng với ngôn ngữ lập trình và IDE phổ biến nhất của nó. Bảng 1.1: Giới thiệu về các HĐH di động Ngoài việc phát triển ứng dụng cho từng hệ điều hành như kể trên, lập trình viên có thể lựa chọn các thư viện lập trình đa nền tảng để phát triển ứng dụng, phổ biến nhất trong các ứng dụng đa nền là các ứng dụng viết bằng ngôn ngữ Web (HTML5, CSS & Javascript). Trình duyệt web của các thiết bị di động hiện nay có đầy đủ tính năng lẫn hiệu năng để chạy tốt các ứng dụng web hiện đại. Một ứng dụng Web có thể được đặt trên máy chủ hoặc được đóng gói thành native app (ứng dụng cho từng hệ điều hành) qua một số công cụ đóng gói của các hãng thứ ba. Công cụ đóng gói ứng dụng Web cho thiết bị di động phổ biến nhất hiện nay là PhoneGap (http://phonegap.com/), được phát triển bởi Nitobi, sau được Adobe mua lại. PhoneGap cho phép lập trình viên phát triển ứng dụng di động sử dụng ngôn ngữ Web phổ biến (HTML5, CSS3 và Javascript), với các tính năng bổ sung, cho phép ứng dụng truy cập vào phần cứng của thiết bị như gia tốc kế, máy ảnh, GPS... và đóng gói Page | 5 thành ứng dụng cho nhiều hệ điều hành khác nhau, bao gồm Android, iOS, Blackberry, BlackBerry 10, Windows Phone, Windows 8, Tizen, Bada. Tuy nhiên, nhược điểm của các ứng dụng loại này là hiệu suất thấp (chạy không được "mượt mà" như ứng dụng native) và không đồng nhất giữa tất cả các trình duyệt Web di động (có thể chạy hoặc hiển thị khác nhau trên các hệ điều hành với các trình duyệt khác nhau). Việc chọn hệ điều hành/thư viện nào để phát triển tùy thuộc vào nhiều yếu tố khác nhau như mục đích của ứng dụng, đối tượng sử dụng, tiềm năng của hệ điều hành, các yêu cầu kỹ thuật cụ thể cũng như thói quen và kỹ năng của lập trình viên. Trong khuôn khổ giáo trình này, chúng tôi tập trung đi sâu vào việc phát triển ứng dụng cho hệ điều hành di động phổ biến nhất hiện nay - Google's Android. 1.2 Tổng quan về hệ điều hành Android. 1.2.1 Giới thiệu về hệ điều hành android Android là mộ hệ điều hành di động mã nguồn mở miễn phí và được ưa chuộng trên thế giới dựa trên nền tảng Linux kernel do Google phát triển dành cho các dòng điện thoại Smartphone và máy tính bảng. Tháng 11/2007, Liên minh thiết bị cầm tay mở rộng (Open Handset Alliance) với sự đồng thuận của Texas Instruments, Tập đoàn Broadcom, Google, HTC, Intel, LG, Tập đoàn Marvell Technology, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel và T-Mobile đã 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. Từ tháng 10/2008, hệ điều hành Android đã chính thức trở thành phần mềm mã nguồn mở. Theo đó, các công ty thứ ba được phép thêm những ứng dụng của riêng của họ vào Android và bán chúng Đến năm 2010, số lượng smartphone nền tảng Android tăng trưởng mạnh mẽ. Hàng loạt nhà sản xuất hàng đầu đã bắt tay sản xuất smartphone như Samsung, HTC, Motorola… Cấu trúc, công nghệ áp dụng trong hệ điều hành android Hệ điều hành Android có 4 tầng đó là tầng Application, tầng Application Framework, tầng Libraries & Android runtime, tầng cuối cùng là Linux kernel Page | 6 Hình 1.1: Cấu trúc hệ điều hành Android Application Đây là tầng ứng dụng giao tiếp với người dùng, bao gồm các ứng dụng cơ bản được cài đặt gắn liền với hệ điều hành như: phone, contacts, web, SMS, Calendar …. Các ứng dụng trong tầng Application được phát triển bằng ngôn ngữ java, phần mở rộng là file apk Khi một ứng dụng được chạy, nó có một phiên bản Virtual Machine được dựng lên để phục vụ cho nó. Nó có thể là một Active Program: chương trình có giao diện với người sử dụng hoặc là một Background: chương trình chạy nền hay là dịch vụ Application Framework Tầng này cung cấp một nền tảng phát triển ứng dụng mở và xây dựng bộ công cụ các phần tử ở mức cao qua đó cho phép nhà phát triển ứng dụng có thể nhanh chóng xây dựng ứng dụng và khả năng tạo ra các ừng dụng mới phong phú hơn. Các lợi ích mà tầng này cung cấp cho nhà phát triển: Page | 7 Với các nhà sản xuất phần cứng điện thoại: có thể tùy biến hệ điều hành để phù hợp với cấu hình phần cứng điện thoại mà họ sản xuất cũng như để có nhiều mẫu mã điện thoại để phù hợp với thị hiếu của người tiêu dùng. Với nhà phát triển ứng dụng: Cho phép các lập trình viên có thể sử dụng các API ở tầng trên mà không cần phải hiển rõ cấu trúc bên dưới. Một tập hợp các API rất hữu ích được xây dựng sẵn như hệ thống định vị, các dịch vụ chạy nền, liên lạc giữa các ứng dụng, các thành phần giao diện, điều này tạo điều kiện thuận lợi cho các lâp trình viên làm việc vì họ chỉ cần quan tâm đến nội dung mà ứng dụng của họ mà không cần phải quan tâm đến những thứ liên quan khác. Các thành phần của Application Framework - Activity Manager: Quản lý các chu kỳ sống của một ứng dụng cũng như - cung cấp công cụ điều khiển các Activity. Telephony Manager: Cung cấp công cụ để thực hiện việc liên lạc gọi - điện thoại. Location Manager: Cho phép xác định vị trí của điện thoại dựa vào hệ - thống định vị toàn cầu GPS và Google Maps. Window Manager: Quản lý việc xây dựng và hiển thị các giao diện - người dùng cũng như tổ chức quản lý các giao diện giữa các ứng dụng. Notication Manager: Quản lý việc hiển thị các thông báo như tin nhắn, - email…. Resource Manager: Quản lý tài nguyên tĩnh của các ứng dụng bao gồm - các file hình ảnh, âm thanh, layout View System: được dùng để xây dựng giao diện một ứng dụng bao gồm - các văn bản, nút bấm và cả những web nhúng. Content Providers :Cho phép truy cập dữ liệu từ các ứng dụng khác như quản lý danh bạ hoặc chia sẽ dữ liệu của riêng mình Libraries & Android runtime Libraries chứa các thư viện viết bằng C/C++ để các phần mềm có thể sử dụng. Những tính năng này được cung cấp cho các lập trìng viên thông qua bộ framework của Android, các thư viện đó được tập hợp thành một số nhóm như: System C library: thư viện dựa trên chuẩn C, được sử dụng chỉ bởi hệ điều hành. Page | 8 - Media Libraries: Có nhiều codec để hỗ trợ việc phát và ghi lại các loại - định dạng âm thanh, hình ảnh, video. LibWebCore: Đây là thành phần để xem nội dung trên web, được sử dụng để xây dựng phần mềm duyệt web (Android Browse) và các ứng dụng nhúng vào web. Nó hỗ trợ các công nghệ như HTML5, javaScript, - CSS, Flash… Surface Manager: quản lý truy cập vào các hệ thống hiển thị và tổng hợp - đồ họa 2D và 3D các lớp từ nhiều ứng dụng trên thiết bị. SGL: công cụ đồ họa 2D cơ bản. 3D libraries: Dựa trên OpenGL ES 1.0 API, dùng để tăng tốc phần cứng - 3D hoặc để tối ưu hóa các phần mềm 3D. SQLite : Hệ cơ sở dữ liệu dùng cho tất cả các ứng dụng Android runtime. Phần này chứa các thư viện mà một chương trình viết bằng ngôn ngữ Java có thể hoạt động. Phần này có 2 bộ phận tương tự như mô hình chạy Java trên máy tính: - Các thư viện lõi (Core Library) chứa các lớp như Java IO, collections, - File Access. Một máy ảo java (Dalvik Virtual Machine). 1.2.1.1 Các thành phần trong một Android Project AndroidManifest.xml Trong bất kì một project Android nào khi tạo ra đều có một file AndroidManifest.xml, file này được dùng để định nghĩa các screen sử dụng, các permission cũng như các theme cho ứng dụng. Đồng thời nó cũng chứa thông tin về phiên bản SDK cũng như main activity sẽ chạy đầu tiên. File này được tự động sinh ra khi tạo một Android project. Trong file manifest bao giờ cũng có 3 thành phần chính đó là: application, permission và version.  Application Thẻ , bên trong thẻ này chứa các thuộc tính được định nghĩa cho ứng dụng Android như: • Android:icon = “drawable resource” Ở đây đặt đường dẫn đến file icon của ứng dụng khi cài đặt. VD: android:icon = “@drawable/icon”. Page | 9 • Android:name = “string” thuộc tính này để đặt tên cho ứng dụng Android. Tên này sẽ được hiển thị lên màn hình sau khi cài đặt ứng dụng. • Android:theme = “drawable theme” thuộc tính này để đặt theme cho ứng dụng. Các theme là các cách để hiển thị giao diện ứng dụng. Ngoài ra còn nhiều thuộc tính khác…  Permission Bao gồm các thuộc tính chỉ định quyền truy xuất và sử dụng tài nguyên của ứng dụng. Khi cần sử dụng một loại tài nguyên nào đó thì trong file manifest của ứng dụng cần phải khai báo các quyền truy xuất như sau:  SDK version Thẻ xác định phiên bản SDK được khai báo như sau: Ở đây chỉ ra phiên bản SDK nhỏ nhất mà ứng dụng hiện đang sử dụng. File R.java File R.java là một file tự động sinh ra ngay khi tạo ứng dụng, file này được sử dụng để quản lý các thuộc tính được khai báo trong file XML của ứng dụng và các tài nguyên hình ảnh. Mã nguồn của file R.java được tự động sinh khi có bất kì một sự kiện nào xảy xa làm thay đổi các thuộc tính trong ứng dụng. Chẳng hạn như, bạn kéo và thả một file hình ảnh từ bên ngoài vào project thì ngay lập tức thuộc tính đường dẫn đến file đó cũng sẽ được hình thành trong file R.java hoặc xoá một file hình ảnh thì đường dẫn tương ứng đến hình ảnh đó cũng tự động bị xoá. Có thể nói file R.java hoàn toàn không cần phải đụng chạm gì đến trong cả quá trình xây dựng ứng dụng. Chu kì ứng dụng Android Một tiến trình Linux gói gọn một ứng dụng Android đã được tạo ra cho ứng dụng khi codes cần được run và sẽ còn chạy cho đến khi: • Nó không phụ thuộc. • Hệ thống cần lấy lại bộ nhớ mà nó chiếm giữ cho các ứng dụng khác. Một sự khác thường và đặc tính cơ bản của Android là thời gian sống của tiến trình ứng dụng không được điều khiển trực tiếp bới chính nó. Thay vào đó, nó được xác định bởi hệ thống qua một kết hợp của: Page | 10 • Những phần của ứng dụng mà hệ thống biết đang chạy • Những phần quan trọng như thế nào đối với người dung Bao nhiêu vùng nhớ chiếm lĩnh trong hệ thống. Chu kỳ sống thành phần Các thành phần ứng dụng có một chu kỳ sống, tức là mỗi thành phần từ lúc bắt đầu khởi tạo và đến thời điểm kết thúc. Giữa đó, đôi lúc chúng có thể là active hoặc inactive, hoặc là trong trường hợp activies nó có thể visible hoặc invisible Activity Stack Bên trong hệ thống các activity được quản lý như một activity stack. Khi một Activity mới được start, nó được đặt ở đỉnh của stack và trở thành activity đang chạy activity trước sẽ ở bên dưới activity mới và sẽ không thấy trong suốt quá trình activity mới tồn tại. Nếu người dùng nhấn nút Back thì activity kết tiếp của stack sẽ di duyển lên và trở thành active. Hình 1.2: Activity stack Các trạng thái của chu kỳ sống Page | 11 Hình 1.3: Chu kỳ sống của Activity Một Activity chủ yếu có 3 chu kỳ chính sau: - Active hoặc running: Khi Activity là được chạy trên màn hình. Activity - này tập trung vào những thao tác của người dùng trên ứng dụng. Paused: Activity là được tạm dừng (paused) khi mất focus nhưng người dung vẫn trông thấy. Có nghĩa là một Activity mới ở trên nó nhưng không bao phủ đầy màn hình. Một Activity tạm dừng là còn sống nhưng - có thể bị kết thúc bởi hệ thống trong trường hợp thiếu vùng nhớ. Stopped: Nếu nó hoàn toàn bao phủ bởi Activity khác. Nó vẫn còn trạng thái và thông tin thành viên trong nó. Người dùng không thấy nó và thường bị loại bỏ trong trường hợp hệ thống cần vùng nhớ cho tác vụ khác. Chu kỳ sống của ứng dụng Trong một ứng dụng Android có chứa nhiều thành phần và mỗi thành phần đều có một chu trình sống riêng. Và ứng dụng chỉ được gọi là kết thúc khi tất cả các thành phần trong ứng dụng kết thúc. Activity là một thành phần cho phép người dùng giao Page | 12 tiếp với ứng dụng. Tuy nhiên, khi tất cả các Activity kết thúc và người dùng không còn giao tiếp được với ứng dụng nữa nhưng không có nghĩa là ứng dụng đã kết thúc. Bởi vì ngoài Activity là thành phần có khả năng tương tác người dùng thì còn có các thành phần không có khả năng tương tác với người dùng như là Service, Broadcast receiver. Có nghĩa là những thành phần không tương tác người dùng có thể chạy background dưới sự giám sát của hệ điều hành cho đến khi người dùng tự tắt chúng. Các sự kiện trong chu kỳ sống của ứng dụng Nếu một Activity được tạm dừng hoặc dừng hẳn, hệ thống có thể bỏ thông tin khác của nó từ vùng nhớ bởi việc finish() (gọi hàm finish() của nó), hoặc đơn giản giết tiến trình của nó. Khi nó được hiển thị lần nữa với người dùng, nó phải được hoàn toàn restart và phục hồi lại trạng thái trước. Khi một Activity chuyển qua chuyển lại giữa các trạng thái, nó phải báo việc chuyển của nó bằng việc gọi hàm transition. Hình 1.4: Các sự kiện trong một chu kì ứng dụng Tất cả các phương thức là những móc nối mà bạn có thể override để làm tương thich công việc trong ứng dụng khi thay đổi trạng thái. Tất cả các Activity bắt buộc phải có onCreate() để khởi tạo ứng dụng. Nhiều Activity sẽ cũng hiện thực onPause() để xác nhận việc thay đổi dữ liệu và mặt khác chuẩn bị dừng hoạt động với người dùng. Thời gian sống của ứng dụng Bảy phương thức chuyển tiếp định nghĩa trong chu kỳ sống của một Activity. Thời gian sống của một Activity diễn ra giữa lần đầu tiên gọi onCreate() đến trạng thái cuối cùng gọi onDestroy(). Một Activity khởi tạo toàn bộ trạng thái toàn cục trong onCreate(), và giải phóng các tài nguyên đang tồn tại trong onDestroy(). Page | 13 Thời gian hiển thị của Activity Visible lifetime của một activity diễn ra giữa lần gọi một onStart() cho đến khi gọi onStop(). Trong suốt khoảng thời gian này người dùng có thể thấy activity trên màn hình, có nghĩa là nó không bị foreground hoặc đang tương tác với người dùng. Giữa 2 phương thức người dùng có thể duy trì tài nguyên để hiển thị activity đến người dùng. Các phương thức của chu kỳ sống  Phương thức: onCreate() - Được gọi khi activity lần đầu tiên được tạo Ở đây bạn làm tất cả các cài đặt tĩnh -- tạo các view, kết nối dữ liệu đến - list và .v.v Phương thức này gửi qua một đối tượngBundle chứa đựng từ trạng thái - trược của Activity Luôn theo sau bởi onStart()  Phương thức: onRestart() - Được gọi sau khi activity đã được dừng, chỉ một khoảng đang khởi động - lần nữa (stared again) Luôn theo sau bởi onStart()  Phương thức: onStart() - Được gọi trước khi một activity visible với người dùng. Theo sau bởi onResume() nếu activity đến trạng thái foreground hoặc onStop() nế nó trở nên ẩn.  Phương thức: onResume() - Được gọi trước khi activity bắt đầu tương tác với người dùng Tại thời điểm này activity ở trên dỉnh của stack activity. Luôn theo sau bởi onPause()  Phương thức: onPause() - Được gọi khi hệ thống đang resuming activity khác. Phương thức này là điển hình việc giữ lại không đổi dữ liệu. Nó nên được diễn ra một cách nhanh chóng bởi vì activity kế tiếp sẽ - không được resumed ngay cho đến khi nó trở lại. Theo sau bởi onResume nếu activity trở về từ ở trước, hoặc bởi onStop nếu nó trở nên visible với người dùng. Page | 14 - Trạng thái của activity có thể bị giết bởi hệ thống.  Phương thức: onStop() - Được gọi khi activity không thuộc tầm nhìn của người dùng. Nó có thể diễn ra bởi vì nó đang bị hủy, hoặc bởi vì activity khác vữa - được resumed và bao phủ nó. Được theo sau bởi onRestart() nếu activity đang đở lại để tương tác với - người dùng, hoặc onDestroy() nếu activity đang bỏ. Trạng thái của activity có thể bị giết bởi hệ thống.  Phương thức: onDestroy() - Được gọi trước khi activity bị hủy. Đó là lần gọi cuối cùng mà activity này được nhận. Nó được gọi khác bởi vì activity đang hoàn thành, hoặc bởi vì hệ thống - tạm thởi bị hủy diệt để tiết kiệm vùng nhớ. Bạn có thể phân biệt giữa 2 kịch bản với phương isFinshing(). Trạng thái của activity có thể được giết bởi hệ thống. 1.2.2 Sqlite SQLite là một dạng CSDL tương tự như Mysql, PostgreSQL... Đặc điểm của SQLite là gọn, nhẹ, đơn giản. Chương trình gồm 1 file duy nhất vỏn vẹn chưa đến 500kB, không cần cài đặt, không cần cấu hình hay khởi động mà có thể sử dụng ngay. Dữ liệu database cũng được lưu ở một file duy nhất. Không có khái niệm user, password hay quyền hạn trong SQLite database. SQLite không thích hợp với những hệ thống lớn nhưng ở quy mô vừa tầm thì SQLite phát huy uy lực và không hề yếu kém về mặt chức năng hay tốc độ. Với các đặc điểm trên SQLite được sử dụng nhiều trong việc phát triển, thử nghiệm v..v.. và là sự lưa chọn phù hợp cho những người bắt đầu học database. Hiện nay thì SQLite đã được ứng dụng vào smartphone như iPhone và Android để lưu trữ dữ liệu. Để có thể dễ dàng thao tác với SQLite chúng ta có thể sử dụng trình duyệt FireFox và tải về plugin SQLite tại link sau: http://code.google.com/p/sqlite-manager/ Sau khi tải về file xpi, kéo file này vào cửa sổ firefox để cài đặt plugin. Sau khi cài đặt plugin xong thì vào Menu_tools trong firefox sẽ có chức năng SQLite Manager. Giao diện của SQLite manager trong firefox như sau: Page | 15 Hình 1.5: SQLite Manager 1.3 Đặc điểm về hệ điều hành Android. Không phải ngẫu nhiên mà hệ điều hành Android lại có thể chiếm đến 75% thị phần Smartphone hiện nay. Để có được những thành quả như vậy chắc hẳn hệ điều hành Android có những điểm mạnh và lợi thế riêng so với các hệ điều hành khác như IOS, WindowPhone, BlackBerry … 1.3.1 Ưu điểm của hệ điều hành Android 1.3.1.1 Mã nguồn mở Trong khi các hệ điều hành như iOS, WindowPhone sử dụng mã nguồn đóng thì Android lại đi ngược lại bằng cách mở mã nguồn và cung cấp cho người dùng tùy ý chỉnh sửa, mặc sức “xào nấu” mà không có sự can thiệp hay cấm cản từ Google. Do đó, trước khi các nhà sản xuất lớn như Samsung, Sony, LG, HTC, Oppo … cài đặt hệ điều hành Android trên thiết bị của mình thì họ đã tinh chỉnh và bổ sung rất nhiều thứ từ giao diện, đến vô số những tính năng thông minh, tiện lợi. Page | 16 Hình 1.6: Mỗi hãng có một cách tùy biến giao diện khác nhau Thêm một điều mà các hệ điều hành khác như iOS, WindowPhone không có được đó là việc tự thiết kế giao diện màn hình HomeScreen. Bạn có thể tự kéo thả những icon, Widget, đồng hồ, thời tiết, tin tức, bản đồ … và bất cứ gì cũng có thể để ra ngoài màn hình chính. Hình 1.7: Tùy chỉnh, kéo thả widget lên màn hình chủ theo ý mình Page | 17 1.3.1.2 Giá cả hợp lý từ bình dân đến cao cấp Mức giá để sở hữu một thiết bị là vấn đề mà không ít người quan tâm đến. Với các thiết bị Android, trong khoảng từ 1 – 20 triệu đồng, bạn sẽ có muôn vàn những lựa chọn, từ những thiết bị bình dân vừa túi tiền đến những thiết bị cao cấp sở hữu vô số những tính năng hữu ích. Trên thị trường hiện nay có rất nhiều hãng điện tử như Samsung, LG, Sony, Lenovo, Oppo, Huawei … tung ra hàng loạt các sản phẩm đủ mọi kích cỡ, đủ mọi mức giá vì vậy người dùng sẽ có nhiều sự để lựa chọn hơn so với các thiết bị sử dụng hệ điều hành khác. 1.3.1.3 Kho ứng dụng Google Play Store đồ sộ Hình 1.8: Kho ứng dụng Google Play Store Trước đây, khi mới ra mắt kho ứng dụng Google Play chỉ vỏn vẹn có một số ứng dụng. Nhưng đến nay, kho ứng dụng này đã đạt đến hơn 650.000 ứng dụng, trong đó có rất nhiều ứng dụng miễn phí mà vô cùng tiện dụng. Đây cũng là lý do để giải thích cho sự phát triển chóng mặt của hệ điều hành Android trong thế giới di động. Nếu bạn sử dụng một thiết bị Android, chắc hẳn bạn sẽ không phải bận tâm vì “thiếu ứng dụng để cài” mà cái bạn sẽ bận tâm đó là “không đủ bộ nhớ để cài”. 1.3.1.4 Dễ sử dụng Có lẽ hệ điều hành Android chưa chắc đã dễ sử dụng hơn các hệ điều hành khác (điều này tùy thuộc vào ý kiến chủ quan của mỗi người), nhưng vì nó đã quá phổ biến Page | 18 trên các thiết bị di động, nên chắc hẳn bạn không cảm thấy lạ lẫm gì với nó nữa. Bạn sẽ có 2 môi trường để làm việc trên các thiết bị Android, đó là màn hình chính (HomeScreen) và menu chính. Màn hình chủ giống như một ngôi nhà của bạn, gồm có các bức tường xung quanh mà bạn có thể thõa sức trang trí, treo đồng hồ, dán lịch, đặt máy nghe nhạc … Menu chính thì giống như trong hộc bàn của bạn, có đầy đủ những thứ bạn cần như: máy nhắn tin, máy nghe nhạc, điện thoại, máy chụp hình … 1.3.2 Nhược điểm của hệ điều hành Android 1.3.2.1 Khả năng dọn rác kém Sau một thời gian sử dụng thiết bị Android, các dữ liệu của ứng dụng đã được lưu trong bộ nhớ đệm, mà máy không có quá trình tự động để dọn dẹp chúng đi. Những dữ liệu này nếu không được dọn dẹp sẽ vẫn nằm ở đó và chiếm bộ nhớ của máy, đặc biệt là bộ nhớ RAM, vì vậy nếu sử dụng các thiết bị có bộ nhớ RAM thấp bạn sẽ thường xuyên gặp phải tình trạng giật, lag khi đang sử dụng. Tuy nhiên, nhược điểm này cũng có cách để khắc phục, nếu máy không tự “quét nhà” thì bạn sẽ phải “quét” bằng cách cài đặt các ứng dụng dọn dẹp như: History Eraser, Android System Cleaner, Clean MasterNhưng vấn đề giật, lag chỉ gặp ở những máy có cấu hình thấp, đối với những máy tầm trung hoặc cao cấp hiện nay thì hiện tượng đó rất hiếm. 1.3.2.2 Quá nhiều phiên bản dẫn đến việc phân mảnh Sơ đồ 1.1: Sơ đồ thể hiện các thiết bị chạy các phiên bản Android “Đem con bỏ chợ” là những gì mà đa phần người dùng than phiền Google khi sử dụng hệ điều hành Android phiên bản cũ và không được hỗ trợ nâng cấp lên phiên Page | 19 bản mới. Do tốc độ phát triển nhanh, kèm theo việc nâng cấp phiên bản thường xuyên dẫn đến việc có rất nhiều phiên bản Android trên thị trường. Thêm vào đó là rất nhiều hãng sử dụng hệ điều hành Android mà không thể nào hỗ trợ nâng cấp hết cho tất cả các thiết bị. Một phần cũng dễ hiểu vì họ luôn chạy theo và tập trung phát triển cho cái mới nên việc bỏ quên các thiết bị cũ là không hề tránh khỏi. 1.3.2.3 Bảo mật Do đặc điểm là mã nguồn mở, nên đây là điều kiện để những người có ý đồ xấu tìm hiểu và khai thác lỗ hổng bảo mật trên thiết bị Android. Ví dụ: trước đây có một ứng dụng tên là iCalendar là một ứng dụng lịch báo thông thường với những icon và hiệu ứng lạ mắt, nhưng ẩn bên dưới là những đoạn mã độc dùng để “móc túi” người dùng, những đoạn mã độc này sẽ tự động gửi tin nhắn về tổng đài đã được định sẵn khi chạm 5 lần trên màn hình mà người dùng không hề hay biết. Sau khi vụ việc được phát hiện thì ứng dụng đó đã bị gỡ bỏ khỏi Google Play. Dần dần qua các phiên bản, Google cũng đã cải thiện khả năng bảo mật, nhưng “liệu có còn tồn tại những lỗ hổng nữa không?” thì vẫn chưa thể trả lời chính xác được. 1.3.2.4 Kho ứng dụng quá nhiều dẫn đến khó khăn trong việc lựa chọn Hình 1.9: Bảo mật trên thiết bị Android Page | 20 Thật không dễ dàng để tìm kiểm một ứng dụng phù hợp trong kho lưu trữ khổng lồ Google Play Store. Khi bạn gõ một từ khóa tìm kiếm trên Play Store tiếp đó sẽ xuất hiện một danh sách thật dài các ứng dụng có cùng chức năng. Vì vậy việc lựa chọn không hề dễ dàng.Tuy nhiên, khuyết điểm này cũng có cách để khắc phục. Nếu bạn có thời gian, bạn có thể tự chọn lọc ứng dụng mình thích vì việc cài đặt và gỡ ra vô cùng dễ dàng, bạn chỉ việc kéo ứng dụng vào sọt rác là có thể gỡ nó ra nhanh chóng. Nếu không có thời gian bạn có thể tham khảo trên các diễn đàn công nghệ, có rất nhiều đề xuất về các ứng dụng hữu ích, chất lượng đã được “kiểm duyệt” bởi một số người dùng. 1.4 Tổng quan về quy trình hoạt động của một ứng dụng trên hệ điều hành Android. Windows vẫn duy trì chương trình, “đối đãi” với chúng như nhau dù bạn có thu nhỏ cửa sổ. iOS chỉ cho phép 1 ứng dụng duy nhất hoạt động tại một thời điểm. Android nằm đâu đó ở giữa, ứng dụng đang chạy được ưu tiên nhưng những ứng dụng khác không bị “siết chặt” như iOS. 1.4.1 Hệ thống phân cấp Thứ bậc của process trong Android được chia thành 5 cấp theo 5 mức độ quan trọng từ cao đến thấp: Foreground process (tạm dịch: tiến trình nổi bật): Đây chính là những process dùng để chạy ứng dụng (app) bạn đang dùng. Những process khác cũng có thể được xem là foreground khi chúng có liên hệ trức tiếp với process “xử lý” app đang chạy. Tại một thời điểm cũng chỉ có vài foreground process mà thôi. Visible process (tạm dịch: tiến trình nhìn thấy được): Visible process không liên quan đến app đang chạy nhưng có tác động đến những gì thể hiện trên màn hình. Ví dụ, foreground process có tính năng “trong suốt” (transparent) và những ứng dụng được hiển thị đằng sau chính là visible process. Dễ thấy nhất là khi cài các theme hỗ trợ khả năng “làm mờ” ứng dụng hoặc “ghim” ứng dụng lên màn hình. Service process (tạm dịch: tiến trình dịch vụ): Tiến trình dạng này không liên quan đến bất kì ứng dụng cả đang chạy và “dưới” đang chạy nào. Chúng thực hiện công việc một cách âm thầm như chơi nhạc hay tải tập tin. Ví dụ bạn đang nghe nhạc Page | 21 và muốn chuyển sang chơi game, khi bạn mở game cũng là lúc process phát nhạc trở thành service process, vẫn tiếp tục chơi nhạc khi bạn làm việc khác. Background process (tạm dịch: tiến trình nền): Background process không xuất hiện, cũng không thực hiện vai trò dễ nhận ra (như chơi nhạc), chúng không ảnh hưởng đến trải nghiệm sử dụng. Tại một thời điểm, có rất nhiều background process đang chạy và bạn có thể xem chúng là những ứng dụng đang “tạm dừng”. Background process vẫn sử dụng RAM, cho phép bạn nhanh chóng chuyển đổi trở lại nhưng không sử dụng thêm tài nguyên phần cứng nào khác. Ví dụ khi dùng Chrome và bấm phím Home, Chrome trở thành background process và khi mở lại Chrome, nó cũng lập tức mở lại tab đang xem. 1.4.2 Tính năng tự động quản lý tiến trình của Android Android có khả năng quản lý process một cách tự động, do đó bạn không cần cài đặt bất kì ứng dụng “quản lý ứng dụng” nào. Khi cần nhiều tài nguyên, Android tự động xóa các process ít quan trọng nhất, bắt đầu từ empty và background process. Khi cần nhiều tài nguyên hơn nữa như lúc chơi game nặng, hệ thống tự động loại bỏ thêm service process. Chơi game nặng, nhạc của bạn sẽ tự tắt, tập tin tải về tự động dừng. Trong đa số trường hợp, bạn không cần lo về lượng RAM của máy. Nhiều người lo rằng máy mình chỉ còn 1 ít RAM và “đổ thừa” cho hệ thống là không đúng. Cơ chế quản lý thông minh của Android tự động lưu giữ các ứng dụng và dữ liệu khác trên RAM cho bạn trải nghiệm tốt nhất có thể. Dĩ nhiên, sự linh hoạt cũng có điểm yếu. Nếu một ứng dụng được lập trình không tốt, một service process có thể tiếp tục sử dụng tài nguyên CPU và RAM khiến máy nóng lên và tụt pin nhanh chóng. Về mặt kĩ thuật, tình trạng này được gọi là “memory leaked” (rò rỉ bộ nhớ). 1.4.3 Quản lý tiến trình “cơ bản” Người dùng không cần tự mình làm việc này, nhưng cũng có vài cách để bạn “làm chủ” thiết bị. Có thể dùng menu đa nhiệm của Android 4.0 trở lên (thường gọi Recent Apps). Kích hoạt menu này bằng cách nhấn và giữ Home, nhấn liên tiếp Home Page | 22 2 lần, chọn biểu tượng chỉ định (thường là 2 hình chữ nhật xếp chồng)… tùy vào loại máy. Những ứng dụng hiện lên là chúng đang ở trạng thái “background process”. Dùng tay “quét bỏ” sẽ loại bỏ hoàn toàn ứng dụng khỏi bộ nhớ RAM của máy. Cách này thực sự cũng không quá cần thiết nhưng cũng có thể giải quyết các trường hợp ứng dụng gặp lỗi (đứng hình, vẫn chạy nhưng mất cảm ứng…). Hình 1.10: Force stop cũng có thể dừng ứng dụng Android là hệ điều hành dựa trên Linux, mỗi ứng dụng được gán một mã số người dùng riêng (Linux user ID hoặc user account). Mã số này giúp phân biệt ứng dụng này với ứng dụng khác. Khi root Android, ứng dụng có thể tự “phá rào” và chạy với quyền cao nhất, quyền root. Trường hợp này không thường xảy ra nhưng cũng đáng để cảnh báo, đây là một trong những lý do Android không được root sẵn khi đến tay người dùng. Hình 4.11: Giao diện đọc báo Page | 23 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Báo cáo “ Xây dựng hệ thống Ngôn ngữ và văn hóa Nhật Bản” là một đề tài khá rộng, các kiến thức về lĩnh vực này nặng về tính chuyên môn. Trong thời gian nghiên cứu và tìm hiểu, và thực hiện báo cáo, em đã cố gắng để hoàn thành về việc tìm hiểu về mong muốn của người dùng về một ứng dụng tiện ích, hiệu quả và tiết kiệm nhất nhưng cũng đồng thời mang lại hiệu quả cao nhất cho người dùng Không chỉ vậy hệ thống này còn đáp ứng nhu cầu cập nhật tin tức về nhiều mặt của đời sống xã hội Nhật bản cho nhiều người, sinh viên ... quan tâm đến văn hóa, ngôn ngữ Nhật bản Để đưa đến người dùng những chức năng và trải nghiệm tốt hơn và có thể đưa ứng dụng lên Google Play thì trong tương lai, nhóm chúng tôi dựng định sẽ có thêm những module mới giúp hỗ trợ tốt hơn cho người dùng Page | 24 TÀI LIỆU THAM KHẢO Tiếng Việt [1] ThS. Trương Thị Ngọc Phượng, “GiÁo trình lập trình Android”, Đại học Quốc gia Tp.HCM [2] Lê Hoàng Sơn, “Giáo trình lập trình Android”, NXB Xây dựng [3] Đỗ Lâm Thiên, “Lập trình ứng dụng Web với ASP.NET”, Đại học quốc gia thành phố Hồ Chí Minh, trường Đại học khoa học tự nhiên [4] Ths. Nguyễn Minh Đạo, ”Giáo trình lập trình web với ASP.NET”, Trường đại học sư phạm kỹ thuật thành phố Hồ Chí Minh Tiếng Anh: [5] Kyle Merrifield Mew, “Android 3.0 Application Development Cookbook” [6] Lauren Darcey and Shane Conder, “SamsTeach Yourself Android ™ Application Development Second Edition 24 in Hours” [7] Marziah Karch, “Android for Work Productivity for Professionals” [8] Johannes Knutsen, “Web Service Clients on Mobile Android” Website: [9] [10] [11] [12] [13] http://developer.android.com/guide/developing http://www.androidhive.info/ http://www3.nhk.or.jp/nhkworld/vietnamese/top/ http://asp.net.vn/ http://diendan.congdongcviet.com/forums Page | 25 [...]... bấm phím Home, Chrome trở thành background process và khi mở lại Chrome, nó cũng lập tức mở lại tab đang xem 1.4.2 Tính năng tự động quản lý tiến trình của Android Android có khả năng quản lý process một cách tự động, do đó bạn không cần cài đặt bất kì ứng dụng quản lý ứng dụng” nào Khi cần nhiều tài nguyên, Android tự động xóa các process ít quan trọng nhất, bắt đầu từ empty và background process... chế quản lý thông minh của Android tự động lưu giữ các ứng dụng và dữ liệu khác trên RAM cho bạn trải nghiệm tốt nhất có thể Dĩ nhiên, sự linh hoạt cũng có điểm yếu Nếu một ứng dụng được lập trình không tốt, một service process có thể tiếp tục sử dụng tài nguyên CPU và RAM khiến máy nóng lên và tụt pin nhanh chóng Về mặt kĩ thuật, tình trạng này được gọi là “memory leaked” (rò rỉ bộ nhớ) 1.4.3 Quản lý. .. và đến thời điểm kết thúc Giữa đó, đôi lúc chúng có thể là active hoặc inactive, hoặc là trong trường hợp activies nó có thể visible hoặc invisible Activity Stack Bên trong hệ thống các activity được quản lý như một activity stack Khi một Activity mới được start, nó được đặt ở đỉnh của stack và trở thành activity đang chạy activity trước sẽ ở bên dưới activity mới và sẽ không thấy trong suốt quá trình... (tạm dịch: tiến trình nổi bật): Đây chính là những process dùng để chạy ứng dụng (app) bạn đang dùng Những process khác cũng có thể được xem là foreground khi chúng có liên hệ trức tiếp với process “xử lý app đang chạy Tại một thời điểm cũng chỉ có vài foreground process mà thôi Visible process (tạm dịch: tiến trình nhìn thấy được): Visible process không liên quan đến app đang chạy nhưng có tác động... những icon, Widget, đồng hồ, thời tiết, tin tức, bản đồ … và bất cứ gì cũng có thể để ra ngoài màn hình chính Hình 1.7: Tùy chỉnh, kéo thả widget lên màn hình chủ theo ý mình Page | 17 1.3.1.2 Giá cả hợp lý từ bình dân đến cao cấp Mức giá để sở hữu một thiết bị là vấn đề mà không ít người quan tâm đến Với các thiết bị Android, trong khoảng từ 1 – 20 triệu đồng, bạn sẽ có muôn vàn những lựa chọn, từ những... ra mắt kho ứng dụng Google Play chỉ vỏn vẹn có một số ứng dụng Nhưng đến nay, kho ứng dụng này đã đạt đến hơn 650.000 ứng dụng, trong đó có rất nhiều ứng dụng miễn phí mà vô cùng tiện dụng Đây cũng là lý do để giải thích cho sự phát triển chóng mặt của hệ điều hành Android trong thế giới di động Nếu bạn sử dụng một thiết bị Android, chắc hẳn bạn sẽ không phải bận tâm vì “thiếu ứng dụng để cài” mà cái... dụng này với ứng dụng khác Khi root Android, ứng dụng có thể tự “phá rào” và chạy với quyền cao nhất, quyền root Trường hợp này không thường xảy ra nhưng cũng đáng để cảnh báo, đây là một trong những lý do Android không được root sẵn khi đến tay người dùng Hình 4.11: Giao diện đọc báo Page | 23 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Báo cáo “ Xây dựng hệ thống Ngôn ngữ và văn hóa Nhật Bản” là một đề tài khá ... Framework Tầng cung cấp tảng phát triển ứng dụng mở xây dựng công cụ phần tử mức cao qua cho phép nhà phát triển ứng dụng nhanh chóng xây dựng ứng dụng khả tạo ừng dụng phong phú Các lợi ích mà tầng... tương ứng đến hình ảnh tự động bị xoá Có thể nói file R.java hoàn toàn không cần phải đụng chạm đến trình xây dựng ứng dụng Chu kì ứng dụng Android Một tiến trình Linux gói gọn ứng dụng Android. .. file icon ứng dụng cài đặt VD: android: icon = “@drawable/icon” Page | • Android: name = “string” thuộc tính để đặt tên cho ứng dụng Android Tên hiển thị lên hình sau cài đặt ứng dụng • Android: theme

Ngày đăng: 13/10/2015, 11:46

Từ khóa liên quan

Mục lục

  • CHƯƠNG 1: TỔNG QUAN VỀ LẬP TRÌNH TRÊN NỀN TẢNG DI ĐỘNG

    • 1.1 Tổng quan về lập trình di động.

    • 1.2 Tổng quan về hệ điều hành Android.

      • 1.2.1 Giới thiệu về hệ điều hành android

        • 1.2.1.1 Các thành phần trong một Android Project

          • Thời gian sống của ứng dụng

          • Thời gian hiển thị của Activity

          • Các phương thức của chu kỳ sống

          • 1.2.2 Sqlite

          • 1.3 Đặc điểm về hệ điều hành Android.

            • 1.3.1 Ưu điểm của hệ điều hành Android

              • 1.3.1.1 Mã nguồn mở

              • 1.3.1.2 Giá cả hợp lý từ bình dân đến cao cấp

              • 1.3.1.3 Kho ứng dụng Google Play Store đồ sộ

              • 1.3.1.4 Dễ sử dụng

              • 1.3.2 Nhược điểm của hệ điều hành Android

                • 1.3.2.1 Khả năng dọn rác kém

                • 1.3.2.2 Quá nhiều phiên bản dẫn đến việc phân mảnh

                • 1.3.2.3 Bảo mật

                • 1.3.2.4 Kho ứng dụng quá nhiều dẫn đến khó khăn trong việc lựa chọn

                • 1.4 Tổng quan về quy trình hoạt động của một ứng dụng trên hệ điều hành Android.

                  • 1.4.1 Hệ thống phân cấp

                  • 1.4.2 Tính năng tự động quản lý tiến trình của Android

                  • 1.4.3 Quản lý tiến trình “cơ bản”

                  • KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

                  • TÀI LIỆU THAM KHẢO

Tài liệu cùng người dùng

Tài liệu liên quan