1. Trang chủ
  2. » Luận Văn - Báo Cáo

QUẢN Lý d6cntt epu dai

25 772 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 25
Dung lượng 4,05 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 ưuhóa độ phức tạp tính

Trang 1

MỤC LỤC

Trang 2

DANH MỤC CÁC HÌNH

Trang 3

DANH MUC BẢNG

Trang 4

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

ĐỘNG1.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 ưuhó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ìnhrấ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ị didộ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ệctố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ăngcho ứ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ểmnày

Lưu lượng Internet trền thiết bị di động thường có chi phí cao hơn so vớiInternet 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ềutà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ấtnhiề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ậptrì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

Trang 5

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áttriể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ó AppleAppStore, 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 độngNgoà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ìnhviê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 mualạ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

Trang 6

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ềuhà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 ứngdụ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ộngtrê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, SamsungElectronics, Sprint Nextel và T-Mobile đã thành lập với mục đích phát triển các tiêuchuẩ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 ApplicationFramework, tầng Libraries & Android runtime, tầng cuối cùng là Linux kernel

Trang 7

Hình 1.1: Cấu trúc hệ điều hành Android

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ể nhanhchó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:

Trang 8

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ácAPI ở 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ấthữ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ữacá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âptrì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ệnngườ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ồmcá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ồmcá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ộ frameworkcủ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ềuhành

Trang 9

- 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 ứngdụ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ứng3D 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ằngngô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ạyJava 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 fileAndroidManifest.xml, file này được dùng để định nghĩa các screen sử dụng, cácpermission 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 rakhi 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ẻ <application>, bên trong thẻ này chứa các thuộc tính được định nghĩacho ứ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”.

Trang 10

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ềuthuộ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 ứngdụ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ụngcầ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áctà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àoxả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ộtfile 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ẫntương ứng đến hình ảnh đó cũng tự động bị xoá Có thể nói file R.java hoàn toànkhông cần phải đụng chạm gì đến trong cả quá trình xây dựng ứng dụng

Trang 11

• 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ặcinactive, 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ộtActivity mới được start, nó được đặt ở đỉnh của stack và trở thành activity đang chạyactivity trước sẽ ở bên dưới activity mới và sẽ không thấy trong suốt quá trình activitymớ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

Trang 12

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 Activitynà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ườidung vẫn trông thấy Có nghĩa là một Activity mới ở trên nó nhưngkhô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ạngthá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ànhphầ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

Trang 13

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ôngcò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ácthành phần không có khả năng tương tác với người dùng như là Service, Broadcastreceiver Có nghĩa là những thành phần không tương tác người dùng có thể chạybackground 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 tinkhá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ếttiế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ànrestart 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ữacá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àmtương thich công việc trong ứng dụng khi thay đổi trạng thái Tất cả các Activity bắtbuộc phải có onCreate() để khởi tạo ứng dụng Nhiều Activity sẽ cũng hiện thựconPause() để 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ớingườ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ộtActivity Thời gian sống của một Activity diễn ra giữa lần đầu tiên gọi onCreate() đếntrạ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ụctrong onCreate(), và giải phóng các tài nguyên đang tồn tại trong onDestroy()

Trang 14

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 đếnkhi gọi onStop() Trong suốt khoảng thời gian này người dùng có thể thấy activity trênmà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 đếnngườ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 đếnlist 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()

- Đượ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

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

HÌNH ẢNH LIÊN QUAN

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ó. - QUẢN Lý d6cntt epu dai
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ó (Trang 5)
Hình 1.1: Cấu trúc hệ điều hành Android - QUẢN Lý d6cntt epu dai
Hình 1.1 Cấu trúc hệ điều hành Android (Trang 7)
Hình 1.2: Activity stack - QUẢN Lý d6cntt epu dai
Hình 1.2 Activity stack (Trang 11)
Hình 1.5: SQLite Manager - QUẢN Lý d6cntt epu dai
Hình 1.5 SQLite Manager (Trang 16)
Hình 1.6: Mỗi hãng có một cách tùy biến giao diện khác nhau - QUẢN Lý d6cntt epu dai
Hình 1.6 Mỗi hãng có một cách tùy biến giao diện khác nhau (Trang 17)
Hình 1.7: Tùy chỉnh, kéo thả widget lên màn hình chủ theo ý mình - QUẢN Lý d6cntt epu dai
Hình 1.7 Tùy chỉnh, kéo thả widget lên màn hình chủ theo ý mình (Trang 17)
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 - QUẢN Lý d6cntt epu dai
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 (Trang 18)
Sơ đồ 1.1: Sơ đồ thể hiện các thiết bị chạy các phiên bản Android - QUẢN Lý d6cntt epu dai
Sơ đồ 1.1 Sơ đồ thể hiện các thiết bị chạy các phiên bản Android (Trang 19)
Hình 1.9: Bảo mật trên thiết bị Android - QUẢN Lý d6cntt epu dai
Hình 1.9 Bảo mật trên thiết bị Android (Trang 20)
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) - QUẢN Lý d6cntt epu dai
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) (Trang 23)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w