Đã chia sẻ đến cho các bạn sinh viên một bài mẫu báo cáo với đề tài là dự án xây dựng phần mềm quản lý quán highland coffee hoàn toàn miễn phí. Nếu các bạn sinh viên muốn tải bài mẫu này vui lòng nhắn tin qua zalo : 0934.573.149 để được hỗ trợ tải nhé.
Tài liệu lập trình PHP từ căn bản đến nâng caoZendVN
Khóa học lập trình PHP chuyên nghiệp version 2015 của ZendVN là một khóa học PHP Online. Khóa học PHP này cung cấp cho các bạn kiến thức về lập trình PHP từ căn bản đến nâng cao. Các bạn sẽ tự học PHP thông qua các video mà ZendVN đã xây dựng sẵn theo giáo trình PHP của ZendVN biên soạn.
ZendVN bảo đảm đây là một trong những khóa học PHP có chất lượng tốt nhất hiện nay ở Việt Nam. Khóa học PHP này được dựa trên những kinh nghiệm thực tế trong quá trình làm việc của ZendVN với các dự án lớn của nước ngoài.
Nhận viết luận văn Đại học , thạc sĩ - Zalo: 0917.193.864
Tham khảo bảng giá dịch vụ viết bài tại: vietbaocaothuctap.net
Download luận văn đồ án tốt nghiệp ngành công nghệ thông tin với đề tài: Xây dựng ứng dụng Android nghe nhạc offline, cho các bạn làm luận văn tham khảo
Đã chia sẻ đến cho các bạn sinh viên một bài mẫu báo cáo với đề tài là dự án xây dựng phần mềm quản lý quán highland coffee hoàn toàn miễn phí. Nếu các bạn sinh viên muốn tải bài mẫu này vui lòng nhắn tin qua zalo : 0934.573.149 để được hỗ trợ tải nhé.
Tài liệu lập trình PHP từ căn bản đến nâng caoZendVN
Khóa học lập trình PHP chuyên nghiệp version 2015 của ZendVN là một khóa học PHP Online. Khóa học PHP này cung cấp cho các bạn kiến thức về lập trình PHP từ căn bản đến nâng cao. Các bạn sẽ tự học PHP thông qua các video mà ZendVN đã xây dựng sẵn theo giáo trình PHP của ZendVN biên soạn.
ZendVN bảo đảm đây là một trong những khóa học PHP có chất lượng tốt nhất hiện nay ở Việt Nam. Khóa học PHP này được dựa trên những kinh nghiệm thực tế trong quá trình làm việc của ZendVN với các dự án lớn của nước ngoài.
Nhận viết luận văn Đại học , thạc sĩ - Zalo: 0917.193.864
Tham khảo bảng giá dịch vụ viết bài tại: vietbaocaothuctap.net
Download luận văn đồ án tốt nghiệp ngành công nghệ thông tin với đề tài: Xây dựng ứng dụng Android nghe nhạc offline, cho các bạn làm luận văn tham khảo
Nhận viết luận văn Đại học , thạc sĩ - Zalo: 0917.193.864
Tham khảo bảng giá dịch vụ viết bài tại: vietbaocaothuctap.net
Download khóa luận tốt nghiệp ngành công nghệ thông tin với đề tài: Xây dựng website giới thiệu sản phẩm phần mềm, cho các bạn làm luận văn tham khảo
Nhận viết luận văn Đại học , thạc sĩ - Zalo: 0917.193.864
Tham khảo bảng giá dịch vụ viết bài tại: vietbaocaothuctap.net
Download khóa luận tốt nghiệp ngành công nghệ thông tin với đề tài: Xây dựng website giới thiệu sản phẩm phần mềm, cho các bạn làm luận văn tham khảo
Android là một hệ điều hành dành cho thiết bị di động như điện thoại, máy tính bảng, máy đọc sách.
Android cung cấp framework ứng dụng ở dạng component.
Hỗ trợ trình duyệt web, đồ họa 2D – 3D, các định dạng đa phương tiện, bluetooth.
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
https://dienlanhbachkhoa.net.vn
Hotline/Zalo: 0338580000
Địa chỉ: Số 108 Trần Phú, Hà Đông, Hà Nội
Để xem full tài liệu Xin vui long liên hệ page để được hỗ trợ
:
https://www.facebook.com/garmentspace/
https://www.facebook.com/thuvienluanvan01
HOẶC
https://www.facebook.com/thuvienluanvan01
https://www.facebook.com/thuvienluanvan01
tai lieu tong hop, thu vien luan van, luan van tong hop, do an chuyen nganh
GIAO TRINH TRIET HOC MAC - LENIN (Quoc gia).pdfLngHu10
Chương 1
KHÁI LUẬN VỀ TRIẾT HỌC VÀ TRIẾT HỌC MÁC - LÊNIN
A. MỤC TIÊU
1. Về kiến thức: Trang bị cho sinh viên những tri thức cơ bản về triết học nói chung,
những điều kiện ra đời của triết học Mác - Lênin. Đồng thời, giúp sinh viên nhận thức được
thực chất cuộc cách mạng trong triết học do
C. Mác và Ph. Ăngghen thực hiện và các giai đoạn hình thành, phát triển triết học Mác - Lênin;
vai trò của triết học Mác - Lênin trong đời sống xã hội và trong thời đại ngày nay.
2. Về kỹ năng: Giúp sinh viên biết vận dụng tri thức đã học làm cơ sở cho việc nhận
thức những nguyên lý cơ bản của triết học Mác - Lênin; biết đấu tranh chống lại những luận
điểm sai trái phủ nhận sự hình thành, phát triển triết học Mác - Lênin.
3. Về tư tưởng: Giúp sinh viên củng cố niềm tin vào bản chất khoa học và cách mạng
của chủ nghĩa Mác - Lênin nói chung và triết học Mác - Lênin nói riêng.
B. NỘI DUNG
I- TRIẾT HỌC VÀ VẤN ĐỀ CƠ BẢN CỦA TRIẾT HỌC
1. Khái lược về triết học
a) Nguồn gốc của triết học
Là một loại hình nhận thức đặc thù của con người, triết học ra đời ở cả phương Đông và
phương Tây gần như cùng một thời gian (khoảng từ thế kỷ VIII đến thế kỷ VI trước Công
nguyên) tại các trung tâm văn minh lớn của nhân loại thời cổ đại. Ý thức triết học xuất hiện
không ngẫu nhiên, mà có nguồn gốc thực tế từ tồn tại xã hội với một trình độ nhất định của
sự phát triển văn minh, văn hóa và khoa học. Con người, với kỳ vọng được đáp ứng nhu
cầu về nhận thức và hoạt động thực tiễn của mình đã sáng tạo ra những luận thuyết chung
nhất, có tính hệ thống, phản ánh thế giới xung quanh và thế giới của chính con người. Triết
học là dạng tri thức lý luận xuất hiện sớm nhất trong lịch sử các loại hình lý luận của nhân
loại.
Với tư cách là một hình thái ý thức xã hội, triết học có nguồn gốc nhận thức và nguồn
gốc xã hội.
* Nguồn gốc nhận thức
Nhận thức thế giới là một nhu cầu tự nhiên, khách quan của con người. Về mặt lịch
sử, tư duy huyền thoại và tín ngưỡng nguyên thủy là loại hình triết lý đầu tiên mà con
người dùng để giải thích thế giới bí ẩn xung quanh. Người nguyên thủy kết nối những hiểu
biết rời rạc, mơ hồ, phi lôgích... của mình trong các quan niệm đầy xúc cảm và hoang
tưởng thành những huyền thoại để giải thích mọi hiện tượng. Đỉnh cao của tư duy huyền
thoại và tín ngưỡng nguyên thủy là kho tàng những câu chuyện thần thoại và những tôn
9
giáo sơ khai như Tô tem giáo, Bái vật giáo, Saman giáo. Thời kỳ triết học ra đời cũng là
thời kỳ suy giảm và thu hẹp phạm vi của các loại hình tư duy huyền thoại và tôn giáo
nguyên thủy. Triết học chính là hình thức tư duy lý luận đầu tiên trong lịch sử tư tưởng
nhân loại thay thế được cho tư duy huyền thoại và tôn giáo.
Trong quá trình sống và cải biến thế giới, từng bước con người có kinh nghiệm và có
tri thức về thế giới. Ban đầu là những tri thức cụ thể, riêng lẻ, cảm tính. Cùng với sự tiến
bộ của sản xuất và đời sống, nhận thức của con người dần dần đạt đến trình độ cao hơn
trong việc giải thích thế giới một cách hệ thống
CÁC BIỆN PHÁP KỸ THUẬT AN TOÀN KHI XÃY RA HỎA HOẠN TRONG.pptxCNGTRC3
Cháy, nổ trong công nghiệp không chỉ gây ra thiệt hại về kinh tế, con người mà còn gây ra bất ổn, mất an ninh quốc gia và trật tự xã hội. Vì vậy phòng chông cháy nổ không chỉ là nhiệm vụ mà còn là trách nhiệm của cơ sở sản xuất, của mổi công dân và của toàn thể xã hội. Để hạn chế các vụ tai nạn do cháy, nổ xảy ra thì chúng ta cần phải đi tìm hiểu nguyên nhân gây ra các vụ cháy nố là như thế nào cũng như phải hiểu rõ các kiến thức cơ bản về nó từ đó chúng ta mới đi tìm ra được các biện pháp hữu hiệu nhất để phòng chống và sử lý sự cố cháy nổ.
Mục tiêu:
- Nêu rõ các nguy cơ xảy ra cháy, nổ trong công nghiệp và đời sống; nguyên nhân và các biện pháp đề phòng phòng;
- Sử dụng được vật liệu và phương tiện vào việc phòng cháy, chữa cháy;
- Thực hiện được việc cấp cứa khẩn cấp khi tai nạn xảy ra;
- Rèn luyện tính kỷ luật, kiên trì, cẩn thận, nghiêm túc, chủ động và tích cực sáng tạo trong học tập.
CÁC BIỆN PHÁP KỸ THUẬT AN TOÀN KHI XÃY RA HỎA HOẠN TRONG.pptx
Cấu trúc android
1. CẤU TRÚC ANDROID
Hệ điều hành Android là một tập hợp của các thành phần phần mềm được chia thành 5
phần và 4 lớp chính:
1. Linux Kerenl
Linux Kernel là lớp thấp nhất. Nó cung cấp các chức năng cơ bản như quản lý tiến
trình, quản lý bộ nhớ, quản lý thiết bị như: Camera, bàn phím, màn hình,… Ngoài ra, nó còn
quản lý mạng, driver của các thiết bị, điều này gỡ bỏ sự khó khăn về giao tiếp với các thiết bị
ngoại vi.
2. Libraries
Phía trên Linux Kernel là tập hợp các bộ thư viện mã nguồn mở WebKit, bộ thư viện
nổi tiến libc, cơ sở dữ liệu SQLite hữu ích cho việc lưu trữ và chia sẻ dữ liệu, bộ thư viện thể
phát, ghi âm về âm thanh, hoặc video. Thư viện SSL chịu trách nhiệm cho bảo mật Internet.
Android cung cấp một số các APIs cho phát triển ứng dụng. Danh sách các API cơ bản
sau được cung cấp bởi tất cả các thiết bị trên nền Android:
2. - android.util: Gói tiện ích cơ bản bao gồm nhiều lớp mức thấp như là các lớp quản lý
(List, Stack…) lớp xử lý chuỗi, lớp xử lý XML
- android.os Gói hệ điều hành cung cấp truy cập đến các dịch vụ cơ bản như là chuyển
tin nhắn, thông tin chéo, đồng hồ và gỡ lỗi.
- android.graphics Cung cấp các lớp đồ họa mức thấp thực hiện các chức năng đồ họa,
màu, vẽ cơ bản.
- android.text Công cụ hiển thị và xử lý văn bản
- android.database Cung cấp các lớp mức thất bắt buộc cho việc điều khiển cursor khi
làm việc với các cơ sở dữ liệu
- android.content Các giao tiếp lập trình nội dung được dùng để quản lý truy cập dữ
liệu và xuất bản bằng cách cung cấp các dịch vụ thao tác với tài nguyên, Content Provider, và
các gói
- android.view là lớp giao diện người dùng cơ bản nhất. Tất cả giao diện người dùng
được tạo ra đều phải sử dụng một tập các View để cung cấp cho các thành phần tương tác
người dùng.
- android.widget Xây dựng dựa trên gói View. Những lớp Widget những thành phần
giao diện được tạo sẵn được sử dụng để tạo nên giao diện người dùng. Các Widget bao gồm
danh sách, nút bấm, hộp nhập, các kiểu trình bày(layout)
- com.google.android.maps bộ API mức cao cung cấp truy cập đến điều khiển bản đồ
sẵn trong Android từ ứng dụng được xây dựng. Bao gồm cả lớp MapView cũng như Overlay
và MapController để tương tác với bản đồ bên trong ứng dụng.
- android.app Một gói thư viện bậc cao, cung cấp truy cập đến dữ liệu của ứng dụng.
Gói ứng dụng cũng bao gồm lớp Activity và Service là thành phần cơ bản của mọi ứng dụng
Android.
- Android.provider Để tạo thuận lợi cho người phát triển truy cập đến các Content
Provider tiêu chuẩn(như là dữ liệu danh bạ), gói Cung cấp(Provider) bao gồm các lớp cho
phép truy cập đến cơ sở dữ liệu chuẩn trong tất cả các bản phân phối Android.
- Android.telephony Các API điện đàm cung cấp khả năng tương tác trực tiếp với tầng
điện thoại trong các thiết bị, cho phép tạo, nhận, theo dõi các cuộc gọi, tình trạng các cuộc gọi
và tin nhắn SMS.
3. - android.webkit Gói WebKit cung cấp các API để làm việc với các nội dung Web-
based bao gồm một lơp WebView để tạo ra giao diên web, nhúng trong ứng dụng và một
trình quản lý cookie.
Cùng với các API của Android, còn có một tập các thư viện C/C++ như:
OpenGL Thư viện dùng để tạo ra các đồ họa 3D dựa vào chuẩn OpenGLES 1.0
API
FreeType Hỗ trợ xử lý bitmap và font vector
GGL Thư viện cơ bản, dùng để cung cấp các engine đồ họa 2D
Libc Thư viện C chuẩn, được tối ưu cho các thiết bị Linux-based
SQLite Engine cơ sở dữ liệu quan hệ gọn nhẹ, dùng để lưu trữ dữ liệu của ứng
dụng
SSL Hỗ trợ sử dụng giao thức mã hóa Secure Sockets Layer trong bảo mật
truyền thông Internet
- Ngoài các thư viện chuẩn của Android, để đáp ứng tiêu chí phù hợp với nhiều thiết bị
khác nhau, Android còn có thể có các API phụ thuộc thiết bị như android.location,
android.media, android.opengl, android.hardware, android.bluetooth, android.net.wifi,
và android.telephony.
3. Android Runtime
Đây là thành phần thứ 3 trong cấu trúc, thuộc về lớp 2 tính từ dưới lên. Phần này cung
cấp một thành phần quan trọng gọi là Dalvik Virtual Machine là một máy ảo Java đặt biệt,
được thiết kế tối ưu cho Android.
Máy ảo Dalvik sử dụng các tính năng cốt lõi của Linux như quản lý bộ nhớ, đa luồng,
mà thực chất là bên trong ngôn ngữ Java. Máy ảo Dalvik cho phép tất cả các ứng dụng
Android chạy trong tiến trình riêng của nó.
Android Runtime cũng cung cấp bộ thư viện cốt lõi, cho phép các lập trình viên
Android sử dụng để viết các ứng dụng Android.
4. 4. Application Framework
Lớp Application Framework cung cấp nhiều dịch vụ cấp cao hơn cho các ứng dụng
trong các class Java. Các lập trình viên cũng được phép sử dụng các dịch vụ này trong các
ứng dụng của họ.
Kiến trúc của Android khuyến khích khái niệm Thành phần sử dụng lại, cho phép công
bố và chia sẻ các Activity, Service, dữ liệu, với các ứng dụng khác với quyền truy cập được
quản lý bởi khai báo.
Cơ chế đó cho phép người lập trình tạo ra một trình quản lý danh bạ hoặc trình quay số
điện thoại mà có các thành phần người khác có thể tạo mới giao diện và mở rộng chức năng
thay vì tạo lại chúng.
Những dịch vụ sau là những dịch vụ kiến trúc cơ bản nhất của tất cả các ứng dụng, cung
cấp một framework cho mọi mọi phần mềm được xây dựng:
Actitvity Manager: Điều khiển vòng đời của các Activity bao gồm cả quản lý các
tầng Activity.
Views system: Được sử dụng để tạo lập các giao diện người dùng cho các Activity
Notification Manager: Cung cấp một cơ chế cố định và quy củ cho việc gửi các
thông báo đến người dùng.
Content Provider: Cho phép ứng dụng chia sẻ dữ liệu giữa các ứng dụng.
Resource Manager: Hỗ trợ các thành phần không thuộc mã nguồn như là chuỗi ký tự,
đồ họa được đặt bên ngoài.
Window Manager là một system service, nó chịu trách nhiệm quản lý danh sách các
z-ordered của cửa sổ nhìn thấy, và làm thế nào để nó lại hiện lên màn hình. Nó sẽ tự
động chuyển đổi các cửa sổ và hình ảnh động khi mở, đóng ứng dụng hoặc xoay màn
hình.
Package Manager là mốt API quản lý cài đặt, gỡ bỏ cài đặt và nâng cấp ứng dụng
Telephony Manager: Cung cấp truy cập đến thông tin về các dịch vụ điện thoại trên
thiết bị.
5. Location Manager: cũng cấp truy cấp vào các dịch vụ định vụ hệ thống. Những dịch
vụ này cho phép các ứng dụng cập nhật định kỳ vị trí địa lý của thiết bị hoặc định vị
một vị trí địa lý xác định.
5. Applications
Đây là lớp trên cùng của kiến trúc nền tảng Android, nơi các ứng dụng được cái đặt.
Android sẽ hoạt động với một bộ các ứng dụng bao gồm ứng dụng thư điện tử, gửi tin nhắn,
lịch, bản đồ, trình duyệt web, danh bạ v.v… Tất cả các ứng dụng được viết bằng ngôn ngữ
Java. Các ứng dụng này có thể được cung cấp sẵn hoặc được phát triển bởi những lập trình
viên.
5.1. Các thành phần của ứng dụng
Một ứng dụng trên Android được cấu thành từ bốn thành phần cơ bản sau:
Activity
Services
Broadcast receivers
Content Provider
Các thành phần này không nhất thiết phải có mặt đầy đủ trong ứng dụng. Chúng ta có
thể xem các thành phần nào được sử dụng trong ứng dụng bằng việc xem khai báo trong file
AndroidManifest.xml.
5.1.1. Activity
Khái niệm
Mỗi activity là một giao diện người dùng trực quan mà người dùng có thể thực hiện trên
đó mỗi khi được kích hoạt. Một ứng dụng có thể có nhiều hoạt động và chúng có thể gọi đến
nhau chuyển giữa các hoạt động với nhau. Mỗi activity là một dẫn xuất của lớp
android.app.Activity.
Mỗi activity có một cửa sổ để vẽ lên. Thông thường cửa sổ này phủ đầy màn
hình, ngoài ra nó cũng có thể có thêm các cửa sổ con khác như là hộp thoại…Nội dung
6. của cửa sổ của hoạt động được cung cấp bởi một hệ thống cấp bậc các View (là đối
tượng của lớp Views).
Vòng đời của activity
Các activity trong hệ thống được quản lý bởi một cấu trúc dữ liệu ngăn xếp. Khi có một
hoạt động được khởi tạo, nó được đẩy vào trong ngăn xếp, chuyển sang trạng thái thực thi và
hoạt trộng trước đó sẽ chuyển sang trạng thái chờ. Hoạt động này chỉ trở lại trang thái kích
hoạt khi mà hoạt động vừa khởi tạo kết thúc việc thực thi.
Một hoạt động có ba trạng thái chủ yếu đó là:
Một activity có 3 trạng thái chính:
Active hoặc running khi nó ở trên nhất màn hình và nhận tương tác người dùng
Paused khi Activity không còn là trọng tâm trên màn hình nhưng vẫn hiện thị
trước người dùng.
Stopped khi một activity hoàn toàn bị che khuất, nó sẽ rơi vào trạng thái
Stopped. Tuy nhiên, nó vẫn còn lưu trữ toàn bộ thông tin trạng thái. Và nó
thường bị hệ thống đóng lại khi có tình trạng thiếu bộ nhớ.
Khi chuyển giữa các trạng thái, ứng dụng sẽ gọi các hàm callback ứng với các bước
chuyển:
void onCreate(Bundle savedInstanceState)
void onStart()
void onRestart()
void onResume()
void onPause()
void onStop()
void onDestroy()
7. Biểu đồ sau mô tả trạng thái trong vòng đời của một activity.
Vòng đời của một hoạt động có thể được thể hiện trong những quá trình sau:
Toàn bộ thời gian sống của một hoạt động bắt đầu từ lời gọi đầu tiên tới phương
thức onCreate (Bundle) tới lời gọi phương thức onDestroy(). Trong quá trình
này, một hoạt động sẽ khởi tạo lại tất cả các tài nguyên cần sử dụng trong
8. phương thức onCreate() và giải phóng chúng khi phương thức onDestroy()
được thực thi.
Thời gian sống có thể nhìn thấy của một hoạt động bắt đầu từ lời gọi tới phương
thức onStart(), cho tới khi phương thức onStop() của nó được thực thi. Toàn bộ
các tài nguyên đang được sử dụng bởi hoạt động vẫn tiếp tục được lưu giữ,
người dùng có thể thấy giao diện nhưng không tương tác được với hoạt động do
trong qua trình này hoạt động không ở trạng thái chạy tiền cảnh.
Thời gian sống tiền cảnh của một hoạt động là quá trình bắt dầu từ khi có lời gọi
tới phương thức onResume() và kết thúc bằng lời gọi tới phương thức
onPause(). Trong thời gian này, hoạt động chạy ở tiền cảnh và có thể tương tác
với người dùng.
5.1.2. Service
Khái niệm
Một service là các đoạn mã được thực thi ngầm bời hệ thống mà người sử dụng không
thấy được. Mỗi service để dược mở rộng từ lớp cơ sở là service trong gói android.app. Có
thể kết nối tới hoặc kích hoạt một service thông qua interface mà nó đưa ra. Ví dụ như một
đoạn chương trình chơi nhạc, sẽ có vài hoạt động cho phép người dùng duyệt danh sách các
bài hát và lựa chọn bài nào để phát. Tuy nhiên, chức năng chơi nhạc không được thiết kế như
một hoạt động bởi chúng ta sẽ muốn chuyển qua cửa sổ khác, như khi soạn tin nhắn thì bài
nhạc vẫn tiếp tục được phát. Trong trường hợp này, ứng dụng chơi nhạc sẽ khởi tạo một
service bằng cách sử dụng phương thức conttext.startservice()
Một ứng dụng có thể dễ dàng thực hiện liên kết tới một service đang chạy (thậm chí
khởi động nếu nó chưa thực thi) bằng phương thức Context.bindService(). Khi đó service
này sẽ cung cấp cho ứng dụng cơ chế để giao tiếp với chúng thông qua giao diện gọi là
IBinder (đối với dịch vụ chơi nhạc có thể cho phép dừng hoặc chuyển qua bài nhạc kế tiếp).
Vòng đời của service
Vòng đời của một service được hiểu là quá trình hoạt động từ khi nó được tạo ra cho tới
khi bị loại khỏi hệ thống. Có hai cách thức để một service có thể được chạy trong hệ thống:
Khi hệ thống có lời gọi tới phương thức Context.startService(). Trong trường
hợp này, service sẽ được thực hiện liên tục cho tới khi hệ thống gọi phương thức
Context.stopService().
9. Khi các ứng dụng gọi phương thức Context.bindService() để tạo kết nối với
service (service sẽ được khởi tạo nếu tại thời điểm đó nó đang không hoạt
động). Ứng dụng sẽ nhận được một đối tượng IBinder do service trả lại để có
thể gọi các phương thức Callback phù hợp để truy cập tới các trạng thái của
service. Nếu do lời gọi Context.bindService() mà service được khởi tạo thì nó
sẽ được thực thi cho tới khi nào kết nối trên (tức là đối tượng IBinder) vẫn còn
tồn tại.
5.1.3. Broadcast receivers
Broadcast receivers là một thành phần không làm gì cả nhưng nó nhận và phản hồi lại
các thông báo quảng bá. Nhiều quảng bá có nguồn gốc từ mã hệ thống, ví dụ thông báo thay
10. đổi múi giờ, pin yếu, ảnh đã chụp hay thay đổi ngôn ngữ. Các ứng dụng có thể khởi động
quảng bá, ví dụ để các ứng dụng khác biết rằng dữ liệu đã được tải về xong trên thiết bị và sẵn
sàng sử dụng.
Một ứng dụng có thể có bất kỳ số lượng Broadcast receivers nào để nhận những thông
báo quan trọng với nó. Tất cả các Broadcast receivers được kế thừa từ lớp
BroadcastReceiver.
Broadcast receivers không có giao diện. Tuy nhiên, chúng có thể khởi động một hoạt
động để đáp lại thông tin mà nó nhận được, hay chúng có thể sử dụng NotificationManager
để thông báo người dùng biết. Các thông báo có thể được sự chú ý của người dùng theo các
cách các nhau như là sáng màn hình, rung thiết bị, bật âm thanh nào đấy… Thông thường,
chúng đặt thông báo trên thanh trạng thái, nơi người dùng có thể nhận được thông báo.
5.1.4. Content provider
Các ứng dụng có thể lưu trữ dữ liệu của mình trong các tập tin hoặc sử dụng cơ sở dữ
liệu SQLite sẵn có v.v… Content Provider có chức năng cung cấp một tập hợp các phương
thức cho phép một ứng dụng có thể lưu trữ và lấy dữ liệu được quản lý bởi content provider
đó.
Content Provider là một đặc trưng riêng của Android, nhờ đó mà các ứng dụng có thể
chia sẻ dữ liệu với nhau một cách dễ dàng.
5.1.5. Tập tin khai báo (manifest)
Trước khi có thể khởi chạy một ứng dụng thành phần, nó phải xem ứng dụng bao gồm
những thành phần nào. Thêm nữa, các ứng dụng khai báo các thành phần của nó trong một tập
tin khai báo để đóng gói lại vào trong gói Android (tập tin .apk chứa các mã nguồn, tập tin và
tài nguyên).
Tập tin này có cấu trúc của tập tin XML và luôn có tên là AndroidManifest.xml trong
mọi ứng dụng. Nó làm một số thứ như thêm và khai báo các thành phần của ứng dụng, tên các
thư viện ứng dụng cần liên kết tới (ngoài thư viện chuẩn của Android) và xác định các quyền
cho ứng dụng.
Tuy nhiên, nhiệm vụ chính của tập tin khai báo là khai báo các thành phần của ứng
dụng. Một hoạt động có thể được khai báo như sau:
11. Thuộc tính “name” của phần tử <activity> là tên các lớp con lớp Activity đã được cài
đặt, thuộc tính “icon” và “label” trỏ đến tập tin tài nguyên chứa biểu tượng và nhãn được hiển
thị cho người dùng.
Các thành phần khác được khai báo theo cách tương tự: <service> dịch vụ, <receiver>
bộ nhận quảng bá và <provider> content provider. Các hoạt động, dịch vụ và content
provider có thể cùng được khai báo trong tập tin khai báo hoặc có thể được tạo tự động trong
mã (như đối tượng BroadcastReceiver) và được đăng ký với hệ thống bằng cách gọi
Context.registerReceiver().
5.1.6. Intent
Khi Tim Berners phát minh ra giao thức Hypertext Transfer Protocol (HTTP), ông cũng
đã phát minh ra một định dạng URLs chuẩn. Định dạng này là một hệ thống các động từ đi
kèm các địa chỉ. Địa chỉ sẽ xác định nguồn tài nguyên như Web page, hình ảnh hay các
server-side program. Động từ sẽ xác định cần phải làm cái gì với nguồn tài nguyên đó: GET
để nhận dữ liệu về, POST để đưa dữ liệu cho nó để thực thi một công việc nào đó. Khái niệm
Intent cũng tương tự, Intent là một mô tả trừu tượng của một hành động được thực thi. Nó
đại diện cho một hành động đi kèm với một ngữ cảnh xác định. Với Intent thì có nhiều hành
động và nhiều component (Một thể hiện của một class java dùng để thực thi các hành động
được đặc tả trong Intent) dành cho Intent của Android hơn là so với HTTP verbs (POST,
GET) và nguồn tài nguyên (hình ảnh, web page) của giao thức HTTP, tuy nhiên khái niệm
vẫn tương tự nhau.
Intent được sử dụng với phương thức startActivity() để mở một Activity, và dùng với
broadcastIntent để gởi nó đến bất kì BroadcastReceiver liên quan nào, và dùng với
startService(Intent), bindService(Intent, ServiceConnection, int) để giao tiếp với các
Service chạy dưới nền.
<?xml version="1.0" encoding="utf-8"?>
<manifest . . . >
<application . . . >
<activity android:name="com.example.project.FreneticActivity"
android:icon="@drawable/small_pic.png"
android:label="@string/freneticLabel"
. . . >
</activity>
. . .
</application>
</manifest>
12. Intent cung cấp một chức năng cho phép kết nối hai chương trình khác nhau trong quá
trình thực thi (runtime) (Cung cấp khả năng cho phép hai chương trình khác nhau giao tiếp
với nhau). Chức năng quan trọng và được sử dụng nhiều nhất của một Intent là mở một
Activity, nơi mà nó có thể được dùng như một vật kết nối các Activity lại với nhau (Truyền
thông tin giữa hai Activity khác nhau).
Thành phần chính của Intent bao gồm:
Action: Xác định hành động sẽ được thực thi, các hành động này có thể là:
ACTION_VIEW, ACTION_EDIT, ACTION_MAIN…
Data: Các dữ liệu được sử dụng để hành động (Action) thao tác trên nó, như bản ghi về
một người nào đó trong cơ sở dữ liệu chứa các contact của thiết bị.
Ví dụ về thành phần action/data:
ACTION_VIEW content://contacts/people/1 – hiển thị thông tin liên lạc của người có
mã là “1”.
ACTION_DIAL content://contacts/people/1 – gọi điện cho người có mã là “1”.
ACTION_DIAL tel:123 – gọi đến số điện thoại “123”
Ngoài ra, Intent còn có các thuộc tính phụ sau:
Category: thông tin chi tiết về hành động được thực thi, ví dụ như
CATEGORY_LAUNCHER có nghĩa là nó sẽ xuất hiện trong Launcher như ứng dụng có
mức level cao (top-level application), trong khi CATEGORY_ALTERNATIVE chứa thông
tin danh sách các hành động thay thế mà người dùng có thể thực thi trên phần dữ liệu mà
Intent cung cấp.
Type: Chỉ định 1 kiểu dữ liệu chính xác (kiểu MIME) được mang bởi intent. Thường
thì type được suy ra từ chính dữ liệu. Bằng cách thiết lập thuộc tính type, bạn có thể vô hiệu
hóa sự phỏng đoán kiểu dữ liệu và chỉ định rỏ một kiểu chính xác.
13. Component: Chỉ định rõ tên của lớp thành phần (Một thể hiện của một class java dùng
để thực thi các hành động được đặc tả trong Intent) sử dụng cho Intent . Thông thường thì nó
được xác định bằng cách tìm kiếm thông tin trong Intent (Các thông tin như Action,
data/type, và category) và nối chúng với các component (Một thể hiện của một Class java
dùng để thực thi các hành động được đặc tả trong Intent) có thể đáp ứng được các yêu cầu sử
lý của Intent.
Extracts: là một đối tượng Bundle dùng để chứa các thông tin kèm theo được dùng để
cung cấp thông tin cần thiết cho component. Ví dụ: Nếu có một Intent đặc tả hành động send
email thì những thông tin cần chứa trong đối tượng Bundle là subject, body…
Intent Resolution
Intent có 2 dạng chính sau:
Explicit Intents: Xác định rõ một component (Một thể hiện của một class java dùng để
thực thi các hành động được đặc tả trong Intent) (thông qua phương thức
setComponent(ComponentName) hoặc setClass(Context, Class)) cung cấp lớp sẽ thực thi
các hành động được đặc tả trong Intent. Thông thường thì những Intent này không chứa bất
kỳ thông tin nào khác (như category, type) mà đơn giản chỉ là cách để ứng dụng mở các
Activity khác bên trong một Activity.
Implicit Intents: Không chỉ định một component nào cả, thay vào đó, chúng sẽ chứa
đủ thông tin để hệ thống có thể xác định component có sẵn nào là tốt nhất để thực thi hiệu
quả cho Intent đó.
Khi sử dụng Implicit intents, do tính chất chuyên quyền của loại Intent này,ta cần phải
biết phải làm gì với nó. Công việc này được đảm nhiệm bởi tiến trình của Intent resolution,
nó giúp chỉ định Intent đến một Actvity,
BroadcastReceiver, hoặc Service (hoặc thỉnh thoảng có thể là 2 hay nhiều hơn một
activity/receiver) để có thể xử lý các hành động được đặc tả trong Intent.
Bất cứ thành phần nào (Activity, BroadcastReceiver, Service) khi muốn sử dụng trong
ứng dụng đều phải được đăng kí trong file AndroidManifest.xml. Trong đó cầnđịnh nghĩa
một thẻ <intent-fillter> cung cấp các thông tin để hệ thống có thể xác định được cái mà các
component này (Activity, BroadcastReceiver, Service) có thể xử lý được (những action mà
component này có thể thực hiện được).
14. Intent Fillter là bản đặc tả có cấu trúc của các giá trị của Intent dùng để xác định
component phù hợp để thực hiệncác hành động được đặc tả trong Intent. Một Intent Fillter
nối các hành động, categories và dữ liệu (hoặc thông qua type hoặc sheme) trong Intent.
Intent Fillter được khai báo trong AndroidManifest.xml và sử dụng thẻ intent-fillter.
Một Intent Fillter có các thành phần chính sau:
Action: Tên hành động mà component có thể thực thi.
Type:Kiểu hành động mà component có thể thực thi.
Category: Phân nhóm các hành động.
Đối với những dữ liệu không phải là nội dung cụ thể (VD: URI) thì việc xem xét lựa
chọn Intent phù hợp sẽ dựa vào lược đồ(Scheme) của dữ liệu được cung cấp (VD: http://
mailto: …)
Luật xác định component phù hợp Intent
Để xác định một thành phần là phù hợp với một Intent hệ thống sẽ tiến hành xem xét từ
trên xuống.
Trước tiên khi một Intent được gọi, Android sẽ tìm kiếm những component (Activity,
BroadcastReceiver, Service) có action-name phù hợp với Intent.
Nếu có component phù hợp Android sẽ mở component đó lên để thực thi các hành
động theo yêu cầu.
Nếu có nhiều hơn 1 component có action-name phù hợp thì Android sẽ yêu cầu người
dùng chọn component phù hợp.
Ngược lại nếu không có component nào phù hợp Android sẽ tiến hành xem xét kiểu dự
liệu của Intent cung cấp xem có component nào có đủ năng lực để sử lý kiểu dữ liệu đó
không. Nếu không được Android sẽ tiến hành xem xét scheme của dữ liệu đó để tìm kiếm
component phù hợp. Nếu vẫn không tìm được component phù hợp Android sẽ tiến hành xem
xét các component có chung Category với Intent để xác định component.