Tải bản đầy đủ (.docx) (70 trang)

Đề tài: Thiết kế ứng dụng quản lí vận chuyển hàng hóa cho Công Ty TNHH Phần Mềm BSM trên Mobile

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.6 MB, 70 trang )

Mục lục

LỜI CẢM ƠN
Ngày nay, với thời kỳ công nghiệp hóa – hiện đại hóa đất nước thì công nghệ
thông tin thật sự trở thành một lĩnh vực rất quan trọng trong đời sống con người.
Sau một tháng tìm hiểu đề tài “Tìm hiểu Android và xây dựng ứng dụng trên
mobile”, em đã hoàn thành tiến độ dự kiến. Để đạt được kết quả này, em đã nỗ lực
thực hiện và đồng thời cũng nhận được rất nhiều sự giúp đỡ, quan tâm, ủng hộ của
các thầy cô bạn bè và gia đình.
Để hoàn thành đề tài này trước hết tôi chân thành cảm ơn Thầy Lê Quốc
Tuấn trong khoa công nghệ thông tin trường cao đẳng Bách Việt cùng cơ quan thực
tập đã tạo điều kiện giúp đỡ tôi hoàn thành tốt đợt thực tập tốt nghiệp này.
1


Tuy bản thân đã rất cố gắng tìm hiểu tài liệu từ nhiều nguồn thông tin khác
nhau như là giáo trình, sách ,báo,google,...Cũng như vốn hiểu biết của mình vềđềtài
những nội dung đề tài không sao tránh khỏi thiếu sót.
Kính mong được sựđóng góp ý kiến của quý Thầy Cô để tôi có thể hoàn
thiện hơn về báo cáo và là cơ sở vững chắc để sau này ra trường làm việc.
Tôi xin chân thành cảm ơn!
TP.HCM , ngày 24 tháng 06 năm 2017

2


LỜI MỞ ĐẦU
Hiện nay, sự phát triển của Công nghệ Thông tin ở nước ta đang bước vào
thời kì mới với việc triển khai rộng rãi các ứng dụng tin học cho các tổchức và xã
hội. Không ai còn nghi ngờ gì về vai trò của Công nghệ Thông tin trong đời sống,
trong khoa học kỹ thuật, kinh doanh, cũng như trong mọi mặt của xã hội, ngay


cảđối với một cá nhân.
Công nghệ Thông tin đang từng bước đi vào cuộc sống của chúng ta như một người
bạn đồng hành, nó có vai trò rất lớn trong sự phát triển của đất nước và trong đời
sống của con người.
Và sau đây tôi xin giới thiệu với các bạn một ứng dụng nhỏ của công nghệ
thông tin vào trong cuộc sống:
Để giảm thời gian, chi phí và lưu trữ trên giấy tờ trong việc quản lý nhân
viên tại Công Ty và để giúp các bạn hiểu hơn về nền tảng ngôn ngữ Android OS kết
nối với cơ sở dữ liệu web nên tôi đã chọn đề tài : “Thiết kế ứng dụng quản lí vận
chuyển hàng hóa cho Công Ty TNHH Phần Mềm BSM trên Mobile” dựa trên nền
công cụ lập rìnhAndroid Studio.
Android Studio là một phiên bản của bộ công cụ lập trình, cho phép người
dùng tiếp cận nhanh cách thức lập trình trên môi trường Android. Những ai đã từng
quen thuộc với AndroidOS thì tìm thấy những tính năng trợ giúp mới và các công
cụ lập trình hiệu quả. Người dùng mới làm quen với Android Studio cũng có thể
làm chủđược một cách dễ dàng.
Nhằm giảm thời gian và nhằm làm giảm nhẹ sức lao động thủ công, giúp
chúng ta thực hiện một cách nhanh chóng, hiệu quả và chính xác hơn, làm giảm bớt
được việc lưu trữ thông tin giấy tờ, tra cứu và tìm kiếm quản lí thông tin nhân viên
trong doanh nghiệp.
● Mục đích của đề tài:
Hỗ trợ người sử dụng tra cứu thông tin tuyến xe một cách hiệu quả.Nhanh
chóng và thuận tiện đặc biệc trên S.mast phone Tìm đường đi bằng google maps
một cách tối ưu. Góp phần hỗ trợ người sử dụng trong thành phố và ngoại thành.
Khuyến khích mọi người sử dụng và vận chuyển hàng hóa bằng ứng dụng.
● Tính cấp thiết của đề tài:
3


Hiện trạng ngày nay có rất nhiều người sử dụng xe giao hàng,việc tìm kiếm

thông tin về các tuyến và đường đi còn nhiều hạn chế (phải xem thông tin ngay tại
trạm hay bản đồ xe Thành Phố và Ngoại Thành khó sử dụng).
● Hướng giải quyết:
Viết ra một trang ứng dụng hỗ trợ người sử dụng nhận được lệnh từ Web về
địa chỉ,đơn hàng,điểm xuất phát và điểm đến một cách hiệu quả, nhanh chóng,đơn
giản và dễ sử dụng.
● Phương pháp nghiên cứu:
Ứng dụng hướng đến sự đơn giản và thuận tiện nhất cho người dùng đồng
thời thể hiện đầy đủ thông tin về kết quả người dùng muốn. Ứng dụng được viết
trên nền AndroidOS và SQL SEVER SQL LITE Để giải quyết vấn đề về việc hạn
chế tối đa việc làm mới lại ứng dụng vì trang web được nhúng thêm google với
lượng hình ảnh khá lớn mỗi lần tải lại tốn khá nhiều thời gian
● Thuận lợi:
Được phát triển trong thời đại có nhiều công nghệ mạnh mẽ và nhanh chóng
giúp giải quyết được các tình huống trong đề tài nhanh chóng, cộng đồng mạng
mạnh mẽ giúp giải quyết được vấn đề khó khăn.
Google map api v3 bản đồ số hóa mạnh mẽ của google với nhiều công cụ hỗ trợ xây
dựng cũng như phát triển bản đồ hàng đầu.
● Khó khăn:
Không có nguồn cơ sở dữ liệu phải vay mượn từ trang web khác nhưng theo
cách thủ công và lượng dữ liệu quá lớn dẫn đến phần cứng không thể đáp ứng được.
Không thể can thiệt vào đường tuyến đường của “Google map api v3” dẫn đến
nhiều khó khăn trong việc tìm ra thuật toán.
Việc làm đề tài sẽ rèn luyện cho sinh viên tự nghiên cứu, nâng cao trình độ và làm
việc theo nhóm, tạo tiền đề cho sinh viên sau này khi đi làm.
Mặc dù rất cố gắng nhưng do hạn chế về mặc thời gian và trình độ nên đềtài không
tránh khỏi những thiếu soát mong Thầy và các bạn thông cảm.
Mong được sựđóng góp ý kiến của Thầy và các bạn.
TP.HCM ,ngày 24 tháng 06 năm 2017


4


Chương 1 GIỚI THIỆU CÔNG TY
1.CÔNG TY TNHH PHẦN MỀM BSM
1.1 Lịch sử hình thành và phát triển của công ty:
1.1 Sơ lược về công ty:
Tên đầy đủ: CÔNG TY TNHH PHẦN MỀM BSM .
THÀNH PHỐ HỒ CHÍ MINH
Trụ sở chính: Tầng 3A TN Global Tower, 12 Phạm Đình Toái, Quận 3,
TP.HCM
ĐT: 08 2218 0468FAX:84 8 39433702
Email:
Website : www.bsm.com.vn
Mã số thuế: 0312556730
HÀ NỘI
Địa chỉ

: Tầng 3, 193 Phố Trich Sai, Phường Bưởi, Quận Tây Hồ, Hà Nội

Điện thoại di động : 0932333828
Email
Website

:
: www.bsm.com.vn

1.2 Quá trình hình thành và phát triển
Công ty TNHH Phần Mềm BSM được thành lập năm 2006.
Năm 2006, Công ty TNHH Phần Mềm BSM cho ra sản phẩm đầu tiên

là phần mềm quản lý kho WMS.
Năm 2013, Công ty TNHH Phần Mềm BSM đã trở thành đối tác
chiến lược của IBM.
Năm 2015, Công ty TNHH Phần Mềm BSM trở thành đối tác bạc với
Honeywell.
Đến năm 2016, Công ty TNHH Phần Mềm BSM là thành viên của
Công ty Cổ Phần Công Nghệ Viễn Thông Sài Gòn (SaigonTel), khi mà Việt
Nam bắt đầu thời kỳ hội nhập. Công ty Cổ Phần Viễn Thông Sài Gòn
(SaigonTel) được thành lập vào ngày 14 tháng 05 năm 2002, là thành viên
của Tập đoàn Đầu tư Sài Gòn (SGI) – một trong những tập đoàn tư nhân
hàng đầu tại Việt Nam, chủ sở hữu của 38 Khu Công Nghiệp trải dài trên
toàn quốc, hiện đang cung cấp các dịch vụ hạ tầng, dịch vụ viễn thông cho
các Khu Công Nghiệp trong Tập đoàn SGI. SaigonTel tập trung vào xây
dựng, phát triển và đưa các ứng dụng công nghệ thông tin phục vụ cho công
việc quản lý, kinh doanh. Ngoài nhóm khách hàng FDI (Foreign Direct
5


Investment) trong các Khu Công Nghiệp, SaigonTel và các đơn vị thành viên
hiện đang là đối tác hợp tác/ nhà cung cấp các sản phẩm/ dịch vụ viễn thông
và công nghệ thông tin cho các nhà mạng/ hãng sản xuất hàng đầu tại Việt
Nam và Thế Giới. Công ty TNHH Phần Mềm BSM cung cấp những giải
pháp phần mềm hiệu quả và chất lượng trong các lĩnh vực:
Hệ thống quản lý Kho bãi WMS
Hệ thống Quản lý Tài sản AMS
Hệ thốngquản lý vận chuyển TMS
Hệ thống quản lý sản xuất MMS
Quản lý quan hệ khách hàng CRM
Lập kế hoạch nguồn lực sản xuất
Tự động hoá và tối ưu hóa

Quản lý chuỗi cung ứng
Giải pháp hậu cần
Quản lý Giải pháp Bệnh viện
1.3 Tầm nhìn và sứ mạng của công ty
● Tầm nhìn
Sáng tạo và nỗ lực không ngừng, chuyên môn vững vàng, liên tục cập nhật
thông tin mới nhất áp dụng vào thực tiễn công việc, nâng cao chất lượng sản phẩm,
dịch vụ và đào tạo, đáp ứng mọi nhu cầu kết nối trong tương lai. Kim chỉ nam hoạt
động: “Luôn giữ niềm tin nơi khách hàng”.
● Sứ mệnh
Cung cấp các gói dịch vụ, giải pháp CNTT chuyên nghiệp với chi phí cạnh
tranh. Trở thành đối tác tin cậy, đồng hành cùng sự phát triển của khách hàng.
● Số lượng lao động
Với mục tiêu tạo thêm nhiều việc làm, chăm lo và cải thiện đời sống, thu
nhập của người lao động, trong những năm qua lực lượng lao động tại Công ty đã
tăng lên. Từ những năm đầu mới thành lập, số lượng cán bộ nhân viên làm việc tại
đơn vị chỉ có chỉ có 10 người, đến nay con số này đã lên tới hơn 30 người. Trong
thời gian tới đây, để tiếp tục phát triển kinh doanh và thúc đẩy triển khai hàng loạt
các dịch vụ và dự án mới, lực lượng lao động sẽ tiếp tục tăng lên cả về số lượng và
chất lượng.
● Tốc độ tăng trưởng
6


Là đơn vị trẻ, năng động với nhiều ý tưởng sáng tạo trong kinh doanh và với
tôn chỉ luôn đặt uy tín của Công ty lên hàng đầu, cộng thêm đội ngũ lãnh đạo, nhân
viên năng động, chuyên nghiệp, BSM đã và đang tạo dựng được thương hiệu mạnh
của mình tại khu vực TP.HCM,Hà Nội và trong lĩnh vực Công Nghệ Thông Tin.
● Việc đảm bảo thu nhập và chế độ chính sách cho người lao động
Đây là một vấn đề xuyên suốt, luôn được lãnh đạo công ty đặt lên hàng đầu.

Đời sống của nhân viên đang làm việc tại BSM Software Corpkhông ngừng được
cải thiện, nâng cao.Được tham gia các chế độ bảo hiểm: BHXH, BHYT, BHTN,
được hưởng các chế độ phúc lợi xã hội, các quyền lợi khác theo đúng quy định của
Nhà nước. Hàng năm Công ty đều có điều chỉnh tăng lương và các khoản phụ cấp
kèm theo cho người lao động không những thế trong những ngày lễ Công Ty sẽ tổ
chức du lịch tham quan.
Công ty luôn trân trọng sự cống hiến đóng góp của người lao động, coi đó là một
trong nhứng yếu tố cơ bản tạo dựng thành công của Công ty.

7


1.4 Hoạt động đoàn thể và các phong trào khác

Hình 1.1 Phát quà cho những người có hoàn cảnh khó khăn

Hình 1.2 Quà Tặng cho người nghèo

8


Hinh 1.3 Giúp đỡ bệnh nhân hoàng cảnh khó khăn

Hình 1.4 Các trò chơi di công ty tổ chức

9


Hình 1.5 Hoạt động văn nghệ


Hình 1.6 Hội thao tổ chức cho các nhân viên

10


Hình 1.7 Tổ chức sinh nhật cho các nhân viên hàng tháng

11


ĐẠI HỘI ĐỒNG
CỔ ĐÔNG

HỘI ĐỒNG QUẢN TRỊ

BAN KIỂM SÁT

GIÁM ĐỐC ĐIỀU HÀNH HÀNH

Phòngchính
thanh
tra công
phát chế
Phòngtiếp
kế toán-tài
Ban
tác chính
trị-Xã lý
hộiđiềuXưởng
Phòng tổ chức

Phòng
hành
kinh
chính
doanh
thị
Ban quản
hànhsửa chữa

Hình 1.8 Sơ đồ tổ chức công ty

Đại hội đồng Cổ đông:
Đại hội đồng Cổ đông là cơ quan quyết định cao nhất của Công ty, quyết
định phương hướng, nhiệm vụ phát triển của Công ty và lập kế hoạch kinh
doanh hàng năm, thảo luận và thông qua bảng tổng kết năm tài chính, bầu, bãi
nhiễm thành viên hội đồng quản trị và kiểm soát viên. Quyết định số lợi nhuận
trích lập các quỹ, xem xét quyết định giải pháp khắc phục các biến động lớn về tài
chính, xem xột các sai phạm của Hội đồng quản trị gây hại cho Công ty.
Ban Kiểm soát:
Kiểm tra sổ sách kế toán, tài sản, các bảng tổng kết năm tài chính
của công ty và triệu tập Đại hội đồng khi xét thấy cần thiết. Trình Đại hội đồng báo
cáo thẩm tra các bảng tổng kết năm tài chính của Công ty, báo cáo về sự kiện tài
chính bất thường xảy ra, báo cáo về những ưu khuyết điểm trong quản lý
tài chính của Hội đồng quản trị.
12


Hội đồng quản trị:
Hội đồng quản trị là cơ quan quản lý cao nhất ở Công ty, có toàn quyền
nhân danh Công ty để quyết định mọi vấn đề liên qua đến mục đích, quyền lợi

của Công ty, chịu trách nhiệm trước Đại hội đồng cổ đông về những sai phạm
điều lệ, vi phạm pháp luật gây thiệt hại cho Công ty. Thành viên Hội đồng quản
trị được hưởng lương hoặc thù lao theo quyết định của Đại hội đồng.
Giám đốc điều hành:
Giám đốc Công ty là người chịu trách nhiệm trước Hội đồng quản trị về toàn
bộ công tác tài chính của Công ty theo quyết định của pháp luật, có nhiệm vụ và
quyền hạn sau:
Là chủ tài khoản của Công ty mở tại ngân hàng và chịu trách nhiệm
quản lý, sử dụng tài khoản theo đúng quy định của pháp luật.
Lập và ký các kế hoạch kinh doanh hàng năm của Công ty trình Hội đồng
quản trị phê duyệt.
Tổ chức thực hiện kế hoạch sản xuất kinh doanh và kế hoạch đầu tư của
Công ty.
Trong các báo cáo quyết toán tháng, quý, năm lên Hội đồng quản trị.Định kỳ hoặc
đột xuất bỏo cáo tình hình tài chính của Công ty theo yêu cầu của Hội đồng quản
trị hoặc khi Công ty gặp khó khăn về tài chính ảnh hưởng đến việc thanh
toán các khoản nợ và nghĩa vụ tài sản khác.
Quyết định kết toán và sử dụng các khoản chờ phân bổ, dự phòng của Công ty.
Phê duyệt kế hoạch thu – chi quỹ phúc lợi và khen thưởng của Công
ty.Duyệt chi toàn bộ các khoản chi của Công ty.
Thực hiện các quyền và nghĩa vụ khác được quy định tại điều lệ của Công
ty.
Phòng Tổ chức Hành chính tổng hợp:
Bộ phận tổ chức hành chính:
Có nhiệm vụ tuyển dụng lao động, bố trí sắp xếp cán bộ, lái xe để đảm bảo cho
hoạt động của Công ty được liên tục, không bị gián đoạn. Ngoài ra, bộ phận này
sẽ thực hiện một số công việc mang tính chất hành chính như phụ trách vấn
đề liên quan đến công đoàn, đến người lao động.

13



Bộ phận đào tạo:
Có nhiệm vụ đào tạo kĩ thuật. Tổ chức các khóa học ngắn hạn và dài hạn khác (ví
dụ: Lớp học văn hóa doanh nghiệp, Quản trị chất lượng, Đào tạo bồi dưỡng kỹ
năng quản lý cho cán bộ).
Phòng Kinh doanh Tiếp thị:
Bộ phận kinh doanh tiếp thị:
Có nhiệm vụ chớnh là mở rộng thị trường nghiên cứu, phân tích thị
trường hiện tại, từ đó có dự báo cho xu hướng tương lai của thị trường để tham
mưu cho giám đốc có những điều chỉnh về chớnh sách kinh doanh cho phù hợp.
Ngài ra, bộ phận cũn cú nhiệm vụ rất quan trọng là chăm sóc khách hàng.
Phòng Kế toán – Tài chính:
Có nhiệm vụ hạch toán kế toán, theo chế độ kế toán – thống kê của Nhà
nước, quản lý giám sát mọi hoạt động tài chính của Công ty, giúp Giám đốc
trong việc lập kế hoạch tài chính hàng năm, tham mưu giúp giám đốc một số vấn
đề lớn trong lĩnh vực tài chính.

Chương 2 KIẾN THỨC CƠ SỞ
I. TỔNG QUAN VỀ ANDROID
A. Android và lịch sử phát triển
Android là 1 nền tảng phần mềm dựa trên mã nguồn mở Linux OS (Kernel
2.6) cho máy di động, máy tính bảng và những phần mềm trung gian (middleware).
14


Nó không đơn thuần là 1 hệ điều hành, 1 công cụ lập trình hay 1 phần mềm trung
gian mà nó gồm tất cả.
Ban đầu, Android là hệ điều hành cho các thiết bị cầm tay dựa trên lõi Linux
do công ty Android Inc. (California, Mỹ) thiết kế. Công ty này sau đó được Google

mua lại vào năm 2005 và bắt đầu xây dựng Android Platform.
Và sau tiếp, vào cuối năm 2007, thuộc về Liên minh thiết bị cầm tay mã
nguồn mở (Open Handset Alliance). Mục tiêu của liên minh này là nhanh chóng đổi
mới để đáp ứng tốt hơn cho nhu cầu người tiêu dùng và kết quả đầu tiên của nó
chính là nền tảng Android. Android được thiết kế để phục vụ nhu cầu của các nhà
sản xuất thiết, các nhà khai thác và các lập trình viên thiết bị cầm tay.
Phiên bản SDK lần đầu tiên phát hành vào tháng 11 năm 2007, hãng TMobile cũng công bố chiếc điện thoại Android đầu tiên đó là chiếc T-Mobile G1,
chiếc smartphone đầu tiên dựa trên nền tảng Android. Một vài ngày sau đó, Google
lại tiếp tục công bố sự ra mắt phiên bản Android SDK release Candidate 1.0.Trong
tháng 10 năm 2008, Google được cấp giấy phép mã nguồn mở cho Android
Platform.
Khi Android được phát hành thì một trong số các mục tiêu trong kiến trúc
của nó là cho phép các ứng dụng có thể tương tác được với nhau và có thể sử dụng
lại các thành phần từ những ứng dụng khác. Việc tái sử dụng không chỉ được áp
dụng cho cho các dịch vụ mà nó còn được áp dụng cho cả các thành phần dữ liệu và
giao diện người dùng.
Vào cuối năm 2008, Google cho phát hành một thiết bị cầm tay được gọi là
Android Dev Phone 1 có thể chạy được các ứng dụng Android mà không bị ràng
buộc vào các nhà cung cấp mạng điện thoại di động. Mục tiêu của thiết bị này là
cho phép các nhà phát triển thực hiện các cuộc thí nghiệm trên một thiết bị thực có
thể chạy hệ điều hành Android mà không phải ký một bản hợp đồng nào. Vào
khoảng cùng thời gian đó thì Google cũng cho phát hành một phiên vản vá lỗi 1.1
của hệ điều hành này.Ở cả hai phiên bản 1.0 và 1.1 Android chưa hỗ trợ softkeyboard mà đòi hỏi các thiết bị phải sử dụng bàn phím vật lý. Android cố định vấn
đề này bằng cách phát hành SDK 1.5 vào tháng Tư năm 2009, cùng với một số tính

15


năng khác. Chẳng hạn như nâng cao khả năng ghi âm truyền thông, vật dụng, và các
live folder.

2.1 Kiến trúc Android

Hinh 2.1 Mô hình tổng quát các thành phần của hệ điều hành Android

2.2 Linux Kernel
Hệ điều hành android được phát trển dựa trên hạt nhân linux, cụ thể là hạt
nhân linux phiên bản 2.6, điều đó được thể hiện ở lớp dưới cùng này. Tất cả mọi
hoạt động của điện thoại muốn thi hành được thì đều được thực hiện ở mức cấp thấp
ở lớp này bao gồm quản lý bộ nhớ (memory management), giao tiếp với phần cứng
(driver model), thực hiện bảo mật (security), quản lý tiến trình (process).

16


Hinh 2.2 Mô hình Linux kernel
Tuy được phát triển dựa vào nhân linux nhưng thực ra nhân linux đã được
nâng cấp và sửa đổi rất nhiều để phù hợp với tính chất của những thiết bị cầm tay
như hạn chế về bộ vi xử lý, dung lượng bộ nhớ, kích thước màn hình, nhu cần kết
nối mạng không dây...
Các thành phần của nhân Linux:
Display Driver : Điều khiển việc hiển thị lên màn hình cũng như thu nhận những
điều khiển của người dùng lên màn hình (di chuyển, cảm ứng...).
Camera Driver : Điều kiển hoạt động của camera, nhận luồng dữ liệu từ camera trả
về.
Bluetooth Driver : Điều khiển thiết bị phát và thu sóng Bluetooth.
USB driver : Quản lý hoạt động của các cổng giao tiếp USB.
Keypad driver : Điều khiển bàn phím.
Wifi Driver : Chịu trách nhiệm về việc thu phát sóng wifi.
Audio Driver : điều khiển các bộ thu phát âm thanh, giải mã các tính hiệu dạng
audio thành tín hiệu số và ngược lại.

Power Madagement : Giám sát việc tiêu thụ điện năng.
M-System Driver : Quản lý việc đọc ghi... lên các thiết bị nhớ như thẻ SD, flash.
Binder IPC Driver : Chịu trách nhiệm về việc kết nối và liên lạc với mạng vô tuyến
như CDMA, GSM, 3G, 4G, E để đảm bảo những chức năng truyền thông được thực
hiện.
2.3 Library và Android Runtime
Phần này có 2 thành phần là phần Library và Android Runtime

17


Hình 2.3 Mô hình Library và Android Runtime
2.3.1 Library
Thành phần này có nhiều thư viện được viết bằng C/C++ để các phần mềm
có thể sử dụng, các thư viện đó được tập hợp thành một số nhóm như:
Thư viện hệ thống (System C library)(Libc) : thư viện dựa trên chuẩn C, được sử
dụng chỉ bởi hệ điều hành.
Thư viện Media (Media Libraries) : Có nhiều codec để hỗ trợ việc phát và
ghi các loại định dạng âm thanh, hình ảnh, video thông dụng.
Thư viện web (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) cũng như để các ứng
dụng khác có thể nhúng vào. Nó cực kỳ mạnh, hỗ trợ được nhiều công nghệ mạnh
mẽ như: HTML5, JavaScript, CSS, DOM, AJAX..
Surface Manage: quản lý hiển thị 2D và 3D.
SGL công nghệ 2D
SQLite : quản lý database của ứng dụng.
Free Type : dùng cho hiển thị ảnh, font.
SSL(Secure Socket Layer): Tầng thiết lập giao dịch an toàn trên 2 ứng dụng trên 1
cổng (socket).
Open GL/EL: hỗ trợ thư viện tùy chọn 3D tĩnh và động.

2.3.2 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
thường. Thứ nhất là các thư viện lõi (Core Library) , chứa các lớp như JAVA IO,
Collections, File Access. Thứ hai là một máy ảo java (Dalvik Virtual Machine).
18


Mặc dù cũng được viết từ ngôn ngữ Java nhưng một ứng dụng Java của hệ
điều hành android không được chạy bằng JRE(Java Runtime Environment) của Sun
(nay là Oracle) (JVM) mà là chạy bằng máy ảo Dalvik (máy ảo dalvik đc đặt tên sau
khi 1 nhà phát triển phần mềm của google tạo ra nó sau khi đi thăm 1 ngôi làng ở
nơi tổ tiên ông sinh sống) do Google phát triển. máy ảo davik thực thi cái tập tin
davik(dex), khác với java là chuyển sang dạng bytecode. Định dạng này được tối ưu
hóa cho bộ nhớ tối thiểu.
2.3.3 Framework

Hinh 2.4 Mô hình Framework

Bằng cách cung cấp một nền tảng phát triển mở, Android cung cấp cho các nhà phát
triển khả năng xây dựng các ứng dụng cực kỳ phong phú và sáng tạo. Nhà phát triển
được tự do tận dụng các thiết bị phần cứng, thông tin địa điểm truy cập, các dịch vụ
chạy nền, thiết lập hệ thống báo động, thêm các thông báo để các thanh trạng thái,
và nhiều, nhiều hơn Nhà phát triển có thể truy cập vào các API cùng một khuôn khổ
được sử dụng bởi các ứng dụng lõi. Các kiến trúc ứng dụng được thiết kế để đơn
giản hóa việc sử dụng lại các thành phần. Cơ bản tất cả các ứng dụng là một bộ các
dịch vụ và các hệ thống, bao gồm:
View Manage:Một tập hợp rất nhiều các View có khả năng kế thừa lẫn nhau
dùng để thiết kế phần giao diện ứng dụng như: gridview, tableview, linearlayout…
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 như gọi
điện thoại.
19


Location Manager : Cho phép xác định vị trí của điện thoại 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ư báo có tin
nhắn, có e-mail mới)
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, string. (Những thành phần không được viết bởi
ngôn ngữ lập trình).
Content Provider: cho phép các ứng dụng có thể truy xuất dữ liệu từ các ứng
dụng khác (chẳng hạn như Contacts) hoặc là chia sẻ dữ liệu giữa các ứng dụng đó.
2.3.4 Application
Đây là lớp ứng dụng giao tiếp với người dùng, bao gồm các ứng dụng như:
Các ứng dụng cơ bản, được cài đặt đi liền với hệ điều hành là gọi điện(phone), quản
lý danh bạ(Contacts), duyệt web (Browser),nhắn tin(SMS),lịch làm việc (Calendar),
đọc e-mail (Email-Client), bản đồ (Map), quay phim chụp ảnh (camera)... Các ứng
dụng được cài thêm như các phần mềm chứng khoán (Stock), các trò chơi (Game),
từ điển, các widget các ứng dụng của bên thứ 3…
Các ứng dụng viết sẽ có những đặc tính sau:
Viết bằng Java, phần mở rộng là .apk.
Khi mỗi ứ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ụ.
Android là hệ điều hành đa nhiệm, điều đó có nghĩa là trong cùng một thời điểm, có

thể có nhiều chương trình cùng chạy một lúc, tuy nhiên, với mỗi ứng dụng thì có
duy nhất một thực thể (instance) được phép chạy mà thôi. Điều đó có tác dụng hạn
chế sự lạm dụng tài nguyên, giúp hệ thống hoạt động tốt hơn. Các ứng dụng được
phân quyền và tự hệ thống sẽ kill nếu mức ưu tiên thấp.
Các ứng dụng được gán số ID của người sử dụng nhằn phân định quyền hạn khi sử
dụng tài nguyên, cấu hình phần cứng và hệ thống.

20


Android là một hệ điều hành có tính mở, khác với nhiều hệ điều hành di động khác,
android cho phép một ứng dụng của bên thứ ba được phép chạy nền. Các ứng dụng
đó chỉ có một hạn chế nhỏ đó là nó không được phép sử dung quá 5~10% công suất
CPU, điều đó nhằn để tránh độc quyền trong việc sử dụng CPU.
B.Các thành phần của Android
1.Thành phần của 1 chương trình Android
2. Activity và Intent
Activity:
Một activity thể hiện một giao diện đồ họa người dùng. Ví dụ một activity có
thể biểu diễn một danh sách các menu item để người dùng có thể chọn và có thể
hiển thị ảnh cùng với tiêu đề. Một ứng dụng gửi tin nhắn văn bản có thể có một hoạt
động là hiển thị một danh sách các liên hệ để gửi tin nhắn tới, hoạt động thứ hai là
viết tin nhắn tới liên hệ được chọn, các hoạt động khác nữa là xem lại tin nhắn cũ
hay thay đổi cài đặt. Mặc dù chúng làm việc cùng nhau để tạo thành một giao diện
người dùng, mỗi activity độc lập với những cái khác. Mỗi activity là một lớp con
của lớp cơ sở Activity.
Một ứng dụng có thể gồm chỉ một activity hay nhiều activity. Thông thường,
một trong số các activity được đánh dấu như là activity đầu tiên phải được trình
diễn tới người dùng khi ứng dụng được khởi động. Chuyển từ một activity sang
activity khác được hoàn thành bằng cách cho activity hiện thời khởi động activity

kế tiếp.
Mỗi activity được đưa ra một cửa sổ mặc định để vẽ vào. Thông thường, cửa
sổ sẽ lấp đầy màn hình, nhưng nó có thể nhỏ hơn màn hình và nằm trên các cửa sổ
khác. Một activity có thể sử dụng cửa sổ bổ sung - ví dụ như một pop-up dialog gọi
cho một đáp ứng người dùng ở giữa của activity, hay một cửa sổ biểu diễn những
cho người dùng với thông tin quan trọng khi họ chọn một item cụ thể trên màn hình.
Nội dung trực quan của cửa sổ được cung cấp bởi một cây phân cấp các đối
tượng view dẫn xuất từ lớp View. Mỗi view điều khiển một khoảng hình chữ nhật
cụ thể bên trong cửa sổ. View cha chứa và tổ chức bố cục các view con. Các view lá
vẽ trong hình chữ nhật mà chúng điều khiển và đáp ứng lại các hành động người
dùng trực tiếp ở khoảng trống này. Do đó, các view là nơi mà các tương tác của
activity với người dùng diễn ra. Ví dụ một view có thể hiển thị một hình ảnh nhỏ và
21


khởi tạo một hoạt động khi người dùng nhấn vào hình ảnh đó. Android có một số
view đã xây dựng sẵn mà bạn có thể sử dụng – gồm có các buttons, text fields,
scroll bars, menu items, check boxes…
Một cây phân cấp view được đặt trong một cửa sổ của activity bằng phương thức
Activity.setContentView(). Content view là đối tượng View ở gốc của cây phân cấp.
Class cơ sở Activity định nghĩa một loạt các sự kiện mà điều chỉnh vòng đời của
một hoạt động. Class Activity định nghĩa các sự kiện sau đây:
onCreate():Được gọi khi hoạt động được tạo ra lần đầu tiên.
onStart(): Được gọi khi hoạt động trở nên hữu hình so với người dùng.
onResume(): Được gọi khi hoạt động bắt đầu tương tác với người sử dụng.
onPause(): Được gọi để dừng các hoạt động hiện tại và nối lại các hoạt động
trước đó.
onStop(): Được gọi khi hoạt động không còn hiển thị với người dùng.
onDestroy(): Được gọi trước khi hoạt động bị phá hủy bởi hệ thống (bằng tay
hoặc bằng hệ thống để bảo tồn bộ nhớ).

onRestart(): Được gọi khi hệ thống đã được dừng lại và khởi động lại một
lần nữa.

22


Hình 2.1 Mô hình Activity
Intent:
Là một cấu trúc dữ liệu mô tả cách thức, đối tượng thực hiện của một
Activity. Là cầu nối giữa các Activity: ứng dụng Android thường bao gồm nhiều
Activity, mỗi Activity hoạt động độc lập với nhau và thực hiện những công việc
khác nhau. Intent chính là người đưa thư, giúp các Activity có thể triệu gọi cũng
như truyền các dữ liệu cần thiết tới một Activity khác. Điều này cũng giống như
việc di chuyển qua lại giữa các Forms trong lập trình Windows Form.

Hình 2.2 Mô hình Intent
23


3. Service
Một service không có giao diện trực quan, nó chạy trên nền trong một
khoảng thời gian không xác định. Ví dụ một service có thể chơi nhạc nền, hay nó
nạp dữ liệu trên mạng hay tính toán cái gì đó và cung cấp kết quả cho activity cần
đến nó. Mỗi service mở rộng từ lớp cơ sở Service.
Một ví dụ cổ điển là media player chơi các bài hát từ một danh sách. Ứng
dụng player có thể có một hay hai activity cho phép người dùng chọn bài hát và bắt
đầu chơi. Tuy nhiên, music playback không tự nó được xử lý bởi một activity bởi vì
người dùng sẽ mong muốn chơi tiếp nhạc khi họ rời khỏi player và làm cái gì đó
khác. Để tiếp tục chơi nhạc, media player activity có thể khởi động một service
chạy trên nền. Hệ thống sẽ giữ cho music playback service chạy thậm chí khi

activity khởi động nó rời khỏi màn hình.
Trong khi kết nối, bạn có thể giao tiếp với dịch vụ thông qua giao diện mà
service đó trưng ra. Ví dụ như trong music service, giao diện này có thể cho phép
người dùng pause, rewind, stop và restart lại playback.
Giống như các activity và các thành phần khác khác, service chạy trong
thread chính của tiến trình ứng dụng. Vì thế chúng không thể chặn những thành
phần khác hay giao diện người dùng, chúng thường tạo ra các thead khác cho các
nhiệm vụ hao tốn thời gian.

Hình 3 Mô hình Service
24


4. Broadcast Reveive
Một Broadcast Rreceiver là một thành phần không làm gì ngoài việc nhận và
đáp lại các thông báo broadcast. Nhiều broadcast khởi đầu trong mã hệ thống - ví dụ
như thông báo múi giờ thay đổi, pin yếu, ảnh đã được chụp, hay người dùng đã thay
đổi ngôn ngữ … Các ứng dụng có thể tạo ra các broadcast, chẳng hạn để ứng dụng
khác biết được một số dữ liệu đã được tải về thiết bị và sẵn sàng cho việc sử dụng
chúng.
Một ứng dụng có thể có một số Broadcast Receiver để đáp lại bất cứ thông
báo nào mà nó cho là quan trọng. Tất cả các receiver mở rộng từ lớp cơ sở
BroadcastReceiver.
Broadcast Receiver không hiển thị một giao diện người dùng. Tuy nhiên
chúng có thể bắt đầu một activity để đáp lại thông tin mà chúng nhận, hay chúng có
thể sử dụng NotificationManager để cảnh báo người dùng. Notifications có thể lấy
sự chú ý của người dùng bằng nhiều cách, lóe sáng đèn sau, rung, tạo ra âm thah,
vân vân. Chúng thường lấy một biểu tượng bền vững trong thanh trạng thái, cái mà
người dùng có thể mở để lấy thông điệp.
5. Content Provider

Một content provider tạo ra một tập cụ thể các dữ liệu của ứng dụng khả
dụng cho các ứng dụng khác. Dữ liệu có thể được lưu trữ trong hệ thống file, trong
một cơ sở dữ liệu SQLite, hay trong một cách khác nào đó. Content provider mở
rộng lớp cơ sở ContentProvider để cài đặt một tập các chuẩn các phương thức cho
phép các ứng dụng khác đạt được và lưu trữ dữ liệu của kiểu mà nó điều khiển. Tuy
nhiên, các ứng dụng không gọi trực tiếp các phương thức này, chúng sử dụng một
đối tượng ContentResolver và gọi các phương thức của nó. Một ContentResolver có
thể nói chuyện với bất cứ content provider nào, chúng cộng tác với provider để
quản lý giao tiếp liên tiến trình.
6. Manifest File
Trước khi Android có thể khởi động một thành phần ứng dụng, nó phải biết
rằng thành phần đó tồn tại. Vì vậy, ứng dụng khai báo những thành phần của mình
trong một manifest file được gắn vào Android package, file .apk này cũng giữ chứa
mã của ứng dụng và các tài nguyên.

25


×