SlideShare a Scribd company logo
1 of 69
https://lop7.net/
Mục lục
Chương 1 GIỚI THIỆU CÔNG TY............................................................................................... 7
1.1 Lịch sử hình thành và phát triển của công ty:..................................................................... 7
1.1 Sơ lược về công ty: ................................................................................................................. 7
1.2 Quá trình hình thành và phát triển...................................................................................... 7
1.3 Tầm nhìn và sứ mạng của công ty ........................................................................................ 8
1.4 Hoạt động đoàn thể và các phong trào khác.................................................................... 10
Chương 2 KIẾN THỨC CƠ SỞ ................................................................................................... 16
I. TỔNG QUAN VỀ ANDROID.............................................................................................. 16
A. Android và lịch sử phát triển ........................................................................................... 16
2.1 Kiến trúc Android............................................................................................................ 18
2.2 Linux Kernel..................................................................................................................... 18
2.3 Library và Android Runtime.......................................................................................... 19
B.Các thành phần của Android ............................................................................................ 22
1.Thành phần của 1 chương trình Android......................................................................... 22
2. Activity và Intent................................................................................................................ 22
4. Broadcast Reveive.............................................................................................................. 26
5. Content Provider................................................................................................................ 26
6. Manifest File ....................................................................................................................... 27
7. Giao diện người dùng trong Android............................................................................... 27
8. Các thành phần giao diện Widget.................................................................................... 27
9. Bắt sự kiện trong Android................................................................................................ 28
10. Menu.................................................................................................................................. 29
II. PHÂN TÍCH XML TRONG ANDROID............................................................................ 29
A.Tổng quan về XML ............................................................................................................ 29
1.Khái niệm............................................................................................................................. 29
2.Đặc điểm của XML ............................................................................................................. 29
3.Cấu trúc của XML .............................................................................................................. 31
4. RSS ...................................................................................................................................... 31
5. Các lớp, giao diện phân tích XML trong Android.......................................................... 31
6. Phân tích nội dung XML trong Android sử dụng SAX.................................................. 33
III. SQL SERVER...................................................................................................................... 35
1. Khái niệm, định nghĩa SQL server?................................................................................. 35
2. Lịch sử phát triển............................................................................................................... 35
3. Đặc điểm của SQL Server và đối tượng làm việc............................................................ 35
https://lop7.net/
IV. CLOUD SERVER................................................................................................................ 36
Cloud server là gì? ................................................................................................................. 36
Tính năng Cloud Server ........................................................................................................ 37
Chương 3 PHÂNTÍCHTHIẾTKẾHỆTHỐNG............................................................................. 38
I. Danh mục các chức năng chính............................................................................................. 38
II.Mô tả sơ lược chức năngTMS cho di động .............................................................................. 39
III.Biểu đồ luồng dửliệu................................................................................................................ 39
3.1 Biểu đồ luồng dữliệu mức khung cảnh................................................................................. 39
3.2 Biểu đồ luồng dữliệu mức đỉnh............................................................................................ 40
3.3 Biểu đồ luồng dữliệu mức 1 của chức năng chuyển tải.......................................................... 41
3.4 Biểu đồ luồng dữliệu mức 1 của chức năng Tìm kiếm........................................................... 41
3.5 Biểu đồ luồng dữliệu mức 1 của chức năng quản trị............................................................. 42
3.6 Mô hình ERD:..................................................................................................................... 43
3.7 Chuyển từ ERD sang lược đồ qan hệ.................................................................................... 44
IV.Thiết kế CSDLcho hệ thống APPTMS.................................................................................... 45
1. Order:................................................................................................................................... 45
2.TMS_Driver:.......................................................................................................................... 45
3. TMS_Location....................................................................................................................... 45
4. TMS_Order_Status............................................................................................................... 46
5. TMS_Route........................................................................................................................... 46
6. TMS_Shipping_Order........................................................................................................... 46
7. TMS_Shipping_Order_Status ............................................................................................... 46
8.Mô hình cài đặt SQL Server .............................................................................................. 47
CHƯƠNG 4 XÂY DỰNG APP TMS ........................................................................................... 48
I.Quản lý tài khoản .................................................................................................................... 48
1.1 Đăng nhập/Đăng xuất ...................................................................................................... 49
1.2 Thay đổi mật khẩu đăng nhập hệ thống ........................................................................ 50
II. Quản lý danh sách lệnh điều động (hiện tại) ..................................................................... 51
2.1 Xem thông tin chung của lệnh điều động....................................................................... 51
2.2 Xem danh sách lịch sử lệnh đã chạy............................................................................... 52
2.3 Xem chi tiết lệnh.............................................................................................................. 53
2.4 Cập nhật trạng thái lệnh(Vận Chuyển,Về Bến,Sự Cố)................................................. 54
2.5 Xem danh sách đơn hàng ................................................................................................ 55
2.6 Xem chi tiết đơn hàng...................................................................................................... 56
2.7 Cập nhật trạng đơn hàng(thành công, thất bại)............................................................ 57
2.8 Xem vị trí hiện tại, Điểm giao hàng của Lệnh (bản đồ)................................................ 58
https://lop7.net/
2.9 Thông tin COD và Cập nhật COD ................................................................................. 59
2.10 Thông tin Hàng Hóa....................................................................................................... 60
III. Quản lý lệnh (hiện tại)......................................................................................................... 61
3.1 Xem danh sách các đơn hàng trên lệnh.......................................................................... 61
3.2 Xem danh sách đơn hàng ................................................................................................ 62
3.3 Xem thông tin chuyển tải các đơn hàng......................................................................... 63
V. Barcode.................................................................................................................................. 64
KẾT LUẬN..................................................................................................................................... 67
1.Kết luận................................................................................................................................ 67
2. Hướng phát triển của đề tài:............................................................................................. 68
3. Ưu điểm: ............................................................................................................................. 68
4. Khuyết điểm: ..................................................................................................................... 68
TÀI LIỆU THAM KHẢO ......................................................................................................... 69
Website.................................................................................................................................... 69
Tiếng Anh................................................................................................................................ 69
Về google map api v3:............................................................................................................ 69
Ebook tham khảo:.................................................................................................................... 69
https://lop7.net/
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.
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
https://lop7.net/
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:
https://lop7.net/
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
https://lop7.net/
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: thanhbinh@bsm.com.vn
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 : ducphong@bsm.com.vn
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
https://lop7.net/
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
https://lop7.net/
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.
https://lop7.net/
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
https://lop7.net/
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
https://lop7.net/
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
https://lop7.net/
Hình 1.7 Tổ chức sinh nhật cho các nhân viên hàng tháng
https://lop7.net/
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ị.
HỘI ĐỒNG QUẢN TRỊ
GIÁM ĐỐC ĐIỀU HÀNH
HÀNH
ĐẠI HỘI ĐỒNG
CỔ ĐÔNG
Phòng
tổ
chức
hành
chính
Phòng
kinh
doanh
tiếp
thị
Phòng
kế toán-
tài
chính
Phòng
thanh
tra phát
chế
Ban
công
tác
chính
trị-Xã
hội
Ban
quản
lý điều
hành
Xưởng
sửa
chữa
BAN KIỂM SÁT
https://lop7.net/
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.
https://lop7.net/
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).
https://lop7.net/
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 T-
Mobile 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ợ soft-
keyboard 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
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.
https://lop7.net/
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).
Hinh 2.2 Mô hình Linux kernel
https://lop7.net/
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
Hình 2.3 Mô hình Library và Android Runtime
2.3.1 Library
https://lop7.net/
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).
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.
https://lop7.net/
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.
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)
https://lop7.net/
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.
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:
https://lop7.net/
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à
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:
https://lop7.net/
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.
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
https://lop7.net/
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
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.
https://lop7.net/
Hình 3 Mô hình Service
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
https://lop7.net/
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.
Manifest file là một file XML có cấu trúc và thường được đặt tên là
AndroidManifest.xml cho mọi ứng dụng. Nó thực hiện một số bổ sung để khai báo
các thành phần của ứng dụng, như là nêu tên các thư viện ứng dụng cần đến, và xác
định các quyền hạn của ứng dụng muốn được cấp.
Ví dụ như nó khai báo các Activity trong chương trình của chúng ta, khi khởi
động chương trình thì Activity nào sẽ được thực hiện đầu tiên, các quyền truy cập
Internet, SDCard, hay các vấn đề về gửi nhận tin nhắn, cuộc gọi...
7. Giao diện người dùng trong Android
Trong một ứng dụng Android, giao diện người dùng được xây dựng bằng
cách sử dụng View và ViewGroup đối tượng. Có nhiều loại quan điểm và các nhóm
view, mỗi một trong số đó là hậu duệ của lớp View. View objects là các đơn vị cơ
bản của biểu hiện giao diện người dùng trên nền tảng Android. Các class xem như
là cơ sở phục vụ cho class con được gọi là "widget", trong đó cung cấp đầy đủ các
đối tượng thực hiện giao diện, giống như các lĩnh vực văn bản và nút. Class
ViewGroup phục vụ như là cơ sở cho lớp con được gọi là " layouts", cung cấp các
loại khác nhau của kiến trúc bố trí, như linear, tabular và relative.
8. Các thành phần giao diện Widget
Có rất nhiều cách bố trí giao diện. Sử dụng nhiều hơn và các loại khác nhau
của các view group, bạn có thể cấu trúc views con và view groups trong vô số cách.
Xác định các nhóm xem được cung cấp bởi Android (gọi là layouts) bao gồm
https://lop7.net/
LinearLayout, RelativeLayout, TableLayout, GridLayout và khác. Mỗi cung cấp
một bộ duy nhất của các thông số bố trí được sử dụng để xác định vị trí của views
con và cơ cấu layout Để tìm hiểu về một số các loại khác nhau của các view group
được sử dụng cho một layout, đọc Giao diện đối tượng thường gặp.
Widget là một object View phục vụ như một giao diện để tương tác với
người dùng. Android cung cấp một tập các widgets thực hiện đầy đủ, giống như các
button, Checkbox, và text-entry , do đó bạn có thể nhanh chóng xây dựng giao diện
người dùng của bạn. Một số widgets được cung cấp bởi Android phức tạp hơn,
giống như một date picker, clock, và zoom controls. Nhưng nó không giới hạn trong
các loại widgets được cung cấp bởi các nền tảng Android.
9. Bắt sự kiện trong Android
Khi đã thêm một số Views/widgets đến giao diện. Để được thông báo về UI
events người dùng, cần phải làm một trong hai điều: Xác định một sự kiện nghe và
đăng ký nó với các View. Đây là cách lắng nghe sự kiện. Các class View có một
phương pháp gọi là On().
Ví dụ: View.OnClickListener (để xử lý "nhấp chuột" trên một View),
View.OnTouchListener ( để xử lý các sự kiện màn hình cảm ứng trong một View),
và View.OnKeyListener (để xử lý thiết bị ép quan trọng trong một View). Vì vậy
nếu muốn View được thông báo khi nó là " clicked" (chẳng hạn như khi một nút
được chọn), thực hiện và xác định OnClickListener của nó gọi method onClick()
(nơi thực hiện các hành động sau khi nhấp chuột), và đăng ký nó vào Xem với
setOnClickListener().
Ghi đè một callback method hiện cho View. Đây là những gì nên làm gì khi
đã thực hiện lớp View của riêng bạn và muốn lắng nghe cho các sự kiện cụ thể xảy
ra trong nó. Ví dụ về các sự kiện có thể xử lý bao gồm màn hình là touched
onTouchEvent() khi trackball là di chuyển onTrack ballEvent() hoặc khi một phím
trên thiết bị được nhấn onKeyDown(). Điều này cho phép xác định các hành vi mặc
định cho từng sự kiện bên trong tuỳ chỉnh View và xác định xem sự kiện này cần
được thông qua ngày để View con khác. Một lần nữa, đây là những callbacks View
class, do đó, cơ hội duy nhất của bạn để xác định đó là khi bạn xây dựng một phần
tùy chỉnh.
https://lop7.net/
10. Menu
Menu đơn có một phần quan trọng của giao diện người dùng trong một ứng
dụng. Menus cung cấp một giao diện đáng tin cậy cho thấy rằng các chức năng ứng
dụng và cài đặt. Trong trình đơn ứng dụng phổ biến nhất là tiết lộ bằng cách bấm
phím MENU trên thiết bị. Tuy nhiên, cũng có thể thêm Context Menus, có thể hiển
thị khi người sử dụng máy nhấn và nắm giữ phím trên một mục. Thực đơn cũng
được hệ thống phân cấp cấu trúc bằng cách sử dụng một xem, nhưng bạn không xác
định cấu trúc này cho mình.
Thay vào đó, xác định onCreateOptionsMenu() or onCreateContext Menu()
gọi method cho hoạt động của mình và tuyên bố các mục mà mình muốn bao gồm
trong menu của mình. Trong một thời gian thích hợp, Android sẽ tự động tạo ra hệ
thống View phân cấp cần thiết cho menu, và rút ra mỗi trong mỗi menu items đó.
II. PHÂN TÍCH XML TRONG ANDROID
A.Tổng quan về XML
1.Khái niệm
XML (viết tắt từ tiếng Anh Extensible Markup Language, “Ngôn ngữ Đánh
dấu Mở rộng”) là ngôn ngữ đánh dấu với mục đích chung do W3C đề nghị, để tạo
ra các ngôn ngữ đánh dấu khác. Đây là một tập con đơn giản của SGML, có khả
năng mô tả nhiều loại dữ liệu khác nhau. Mục đích chính của XML là đơn giản hóa
việc chia sẻ dữ liệu giữa các hệ thống khác nhau, đặc biệt là các hệ thống được kết
nối với Internet. Các ngôn ngữ dựa trên XML (thí dụ: RDF, RSS, MathML,
XHTML, SVG, và cXML) được định nghĩa theo cách thông thường, cho phép các
chương trình sửa đổi và kiểm tra hợp lệ bằng các ngôn ngữ này mà không cần có
hiểu biết trước về hình thức của chúng.
2.Đặc điểm của XML
XML cung cấp một phương tiện dùng văn bản (text) để mô tả thông tin và áp
dụng một cấu trúc kiểu cây cho thông tin đó. Tại mức căn bản, mọi thông tin đều
thể hiện dưới dạng text, chen giữa là các thẻ đánh dấu (markup) với nhiệm vụ ký
hiệu sự phân chia thông tin thành một cấu trúc có thứ bậc của các dữ liệu ký tự, các
phần tử dùng để chứa dữ liệu, và các thuộc tính của các phần tử đó. Về mặt đó,
XML tương tự với các biểu thức S (S-expression) của ngôn ngữ lập trình LISP ở
chỗ chúng đều mô tả các cấu trúc cây mà trong đó mỗi nút có thể có một danh sách
tính chất của riêng mình.
https://lop7.net/
Đơn vị cơ sở của XML là các ký tự theo định nghĩa của Universal Character
Set (Bộ ký tự toàn cầu). Các ký tự được kết hợp theo các tổ hợp chuỗi hợp lệ để tạo
thành một tài liệu XML. Tài liệu này gồm một hoặc nhiều thực thể, mỗi thực thể
thường là một phần nào đó của các ký tự thuộc tài liệu, được mã hóa dưới dạng một
chuỗi các bit và lưu trữ trong một tệp văn bản (text file).
Sự phổ biến của các phần mềm soạn thảo văn bản (word processor) đã hỗ trợ
việc soạn thảo và bảo trì tài liệu XML một cách nhanh chóng. Trước XML, có rất ít
ngôn ngữ mô tả dữ liệu với các đặc điểm đa năng, thân thiện với giao thức Internet,
dễ học và dễ tạo. Thực tế, đa số các định dạng trao đổi dữ liệu thời đó đều chuyện
dụng, có tính độc quyền, và có định dạng nhị phân (chuỗi bit thay vì chuỗi ký tự)
khó dùng chung giữa các ứng dụng phần mềm khác nhau hay giữa các hệ nền
(platform) khác nhau. Việc tạo và bảo trì trên các trình soạn thảo thông dụng lại
càng khó khăn.
Bằng cách cho phép các tên dữ liệu, cấu trúc thứ bậc được phép, và ý nghĩa
của các phần tử và thuộc tính có tính chất mở và có thể được định nghĩa bởi một
giản đồ tùy biến được, XML cung cấp một cơ sở cú pháp cho việc tạo lập các ngôn
ngữ đánh dấu dựa XML theo yêu cầu. Cú pháp chung của các ngôn ngữ đó là cố
định – các tài liệu phải tuân theo các quy tắc chung của XML, bảo đảm rằng tất cả
các phần mềm hiểu XML ít ra cũng phải có khả năng đọc (phân tích cú pháp –
parse) và hiểu bố cục tương đối của thông tin trong các tài liệu đó. Giản đồ chỉ bổ
sung một tập các ràng buộc cho các quy tắc cú pháp. Các giản đồ thường hạn chế
tên của phần tử và thuộc tính và các cấu trúc thứ bậc được phép, ví dụ, chỉ cho phép
một phần tử tên ‘ngày sinh’ chứa một phần tử tên ‘ngày’ và một phần tử có tên
‘tháng’, mỗi phần tử phải chứa đúng một ký tự. Đây là điểm khác biệt giữa XML và
HTML. HTML có một bộ các phần tử và thuộc tính không mềm dẻo, chỉ có một tác
dụng và nói chung là không thể dùng cho mục đích khác.
XML không hạn chế về việc nó được sử dụng như thế nào. Mặc dù XML về cơ bản
là dạng text, các phần mềm với chức năng trừu tượng hóa nó thành các định dạng
khác giàu thông tin hơn đã nhanh chóng xuất hiện, quá trình trừu tượng hóa này
được thực hiện chủ yếu qua việc sử dụng các giản đồ định hướng kiểu dữ liệu
(datatype-oriented schema) và khuôn mẫu lập trình hướng đối tượng (mà trong đó,
mỗi tài liệu XML được thao tác như là một đối tượng). Những phần mềm như vậy
https://lop7.net/
có thể coi XML như là dạng text đã được tuần tự hóa chỉ khi nó cần truyền dữ liệu
qua mạng.
3.Cấu trúc của XML
Cú pháp XML cơ bản cho một phần tử là:
nội dung
Ví dụ:
<thuvien>
<sach>
<tensach>heri</tensach>
<NXB>NXB tre</NXB>
<gia>12000</gia>
</sach>
<sach>
<tensach>Vuot thoi gian</tensach>
<NXB>NX Kim Dong</NXB>
<gia>16000</gia>
</sach>
<sach>
<tensach>Chi em</tensach>
<NXB>NXB Kim Dong</NXB>
<gia>14000</gia>
</sach>
</thuvien>
4. RSS
RSS là một dạng file XML được cung cấp bởi hầu hết các trang báo điện tử
ngày nay với mục đích cho phép người dùng có thể lấy nội dung bài viết để sử dụng
với các mục đích khác nhau.
5. Các lớp, giao diện phân tích XML trong Android
Java API for XML Processing, hay JAXP, là một trong các API cho lập trình
Java XML. Nó cung cấp khả năng kiểm chứng và phân tích các tài liệu XML. Hai
loại giao diện (interface) để phân tích cơ bản là:
Giao diện phân tích dạng Mô hình đối tượng tài liệu (Document Object
Model), viết tắt là DOM
Giao diện phân tích API đơn giản dành cho XML (Simple API for XML) -
viết tắt là SAX
https://lop7.net/
StAX, API dẫn luồng cho XML (the Streaming API for XML).
Cùng với các giao diện phân tích, API này còn cung cấp một giao diện XSLT
để cung cấp việc chuyển đổi dữ liệu và cấu trúc từ một tài liệu XML sang một dạng
khác.
5.1.Giao diện DOM
Giao diện DOM có lẽ là một giao diện dễ hiểu nhất. Nó phân tích toàn bộ tài
liệu XML và kiến thiết một cấu trúc hoàn chỉnh đại diện cho bản tài liệu, trong bộ
nhớ, bằng cách dùng các lớp để mô hình hóa các khái niệm đã ghi trong Tài liệu chi
tiết đặc tả kĩ thuật của Document Object Model(DOM) Cấp độ 2.
Bộ phân tích DOM được gọi là DocumentBuilder, vì nó tạo nên một hình
thức đại diện cho Document trong bộ nhớ. javax.xml.parsers.DocumentBuilder
được tạo nên bởijavax.xml.parsers.DocumentBuilderFactory. DocumentBuilder tạo
ra một trường hợp của org.w3c.dom.Document, tức một cấu trúc cây chứa các nốt
trong Tài liệu XML. Mỗi nốt cây trong cấu trúc thực hiện một giao diện
org.w3c.dom.Node. Có nhiều loại nốt cây đại diện cho loại dữ liệu tìm thấy trong
bản tài liệu XML. Loại nốt quan trọng nhất là:
Nốt phần tử. Loại này có thể có các thuộc tính nằm ở bên trong.
Nốt văn bản. Loại này đại diện cho phần văn bản nằm giữa thẻ mở và thẻ
đóng của một phần tử tài liệu.
5.2.Giao diện SAX
Bộ phân tích SAX được gọi là SAXParser và được tạo bằng
javax.xml.parsers.SAXParserFactory. Khác với bộ phân tích DOM, bộ SAXParser
không tạo ra một hình thức đại diện của tài liệu XML trong bộ nhớ và vì thế nó hoạt
động nhanh hơn, ít tốn bộ nhớ hơn. Thay vào đó, bộ phân tích SAXParser thông báo
cho các trình khách cấu trúc của tài liệu XML bằng cách gọi các hàm callbacks,
nghĩa là, bằng cách gọi các phương pháp của trường hợp bản mẫu: Javadoc:SE đã
được cung cấp cho bộ phân tích.
Lớp DefaultHandler nằm trong gói org.xml.sax.helpers. Lớp này thực hiện
các giao diện ContentHandler, ErrorHandler, DTDHandler, và EntityResolver. Đại
bộ phận các trình khách chỉ quan tâm đến những phương pháp được định nghĩa
trong giao diện ContentHandler mà thôi.
https://lop7.net/
Các phương pháp của giao diện ContentHandler, được DefaultHandler thực
hiện, được gọi đến khi bộ phân tích SAX bắt gặp những phần tử tương ứng trong
bản tài liệu XML. Những phương pháp chủ yếu trong giao diện này bao gồm:
Phương thức startDocument(): được gọi khi bắt đầu tài liệu.
Phương thức endtDocument(): được gọi kết thúc tài liệu.
Phương thức startElement(): được gọi khi bắt đầu một thẻ.
Phương thức endElement(): được gọi khi kết thúc một thẻ.
Phương thức characters(): được gọi sau khi gọi phương thức startElement(),
để phân tích nội dung bên trong thẻ đó.
Các trình khách cung cấp một phân lớp của DefaultHandler. Phân lớp này được sử
dụng để lấn quyền những phương pháp trên và xử lý dữ liệu. Quá trình này có thể
bao gồm việc lưu trữ dữ liệu vào trong cơ sở dữ liệu, hoặc viết chúng ra một luồng
(dữ liệu).
5.3.Giao diện XSLT
Ngôn ngữ tập tin định dạng XML dành cho việc chuyển đổi - (The XML Stylesheet
Language for Transformations, hay XSLT) cho phép biến đổi một bản tài liệu XML
sang các dạng thức dữ liệu khác.
6. Phân tích nội dung XML trong Android sử dụng SAX
6.1.Sơ lược về SAX
SAX (Simple API for XML), gồm có 2 interface chính: XMLReader là
interface dùng để đọc XML và ContentHandler dùng để nhận và xử lý dữ liệu từ
XML. Hai interface này giải quyết 90% nhu cầu của người dùng với SAX.
SAX (Simple API for XML) được phát minh vào cuối năm 1998 khi Peter,
Murray-Rust và một số tác giả phân tích cú pháp XML được viết bằng Java nhận ra
rằng sẽ không hợp lý khi dùng quá nhiều các bộ APIkhác nhau cho chung 1 mục
đích là đọc XML . Murray-Rust là người đầu tiên đề xuất những gì ông gọi là
"YAXPAPI". Lý do Murray-Rust muốn đặt tên là Yet Another XML Parser API đã
vì ông đã hoàn toàn bị mệt mỏi vì phải dùng nhiều hàm API phân tích cú pháp
XML cho ứng dụng JUMBO. Thay vào đó, ông muốn có một API chuẩn tất cả mọi
người có thể đồng ý. Sau một thời gian ngắn beta SAX 1.0 được phát hành vào
ngày 11 tháng năm 1998.
6.2. Ưu điểm của SAX
https://lop7.net/
-Đơn giản
-Sử dụng ít bộ nhớ
-Tốc độ xử lý nhanh
-Tập trung vào dữ liệu hiện hành
-Dễ sử dụng để lọc dữ liệu
-Tuy nhiên SAX có các nhược điểm sau:
-Không thể tác động lên dữ liệu XML
-Chế độ lưu trữ trạng thái phức tạp
-Khó khăn khi phân tích cấu trúc XML lớn
6.3. Các khái niệm dùng trong SAX
Parsing: là quá trình đọc file XML và lấy dữ liệu của XML đưa vào chương
trình đồng thời check lỗi cú pháp của XML.
Callback Interface: SAX sử dụng các đối tượng Observer để đọc dữ liệu
trong file XML. Lập trình viên JAVA đã quen thuộc với kiến trúc lập trình theo sự
kiện của AWT và Swing. Ví dụ như khi chúng ta viết 1 class thực thi từ
interfaceMouseListener, class này sẽ mặc nhiên có các sự kiện của interface này.
Sau đó chúng ta đăng ký class này vào cho 1 object ví dụ như là button, button này
có thể nhận các sự kiện liên quan đến thao tác của con trỏ. SAX cũng hoạt động
theo cấu trúc đó. Tuy nhiên điểm khác biệt lớn nhất giữa Swing và SAX là SAX
không cho phép gắn nhiều hơn 1 sự kiện cho cùng 1 object
https://lop7.net/
III. SQL SERVER
1. Khái niệm, định nghĩa SQL server?
SQL Server là viết tắt của Structure Query Language, nó là một công cụ
quản lý dữ liệu được sử dụng phổ biến ở nhiều lĩnh vực. Hầu hết các ngôn ngữ bậc
cao đều có trình hỗ trợ SQL như Visual BASic,Oracle,Visual C…
Các chương trình ứng dụng và các công cụ quản trị CSDL cho phép người sử
dụng truy nhập tới CSDL mà không cần sử dụng trực tiếp SQL. Nhưng những ứng
dụng đó khi chạy phải sử dụng SQL.
2. Lịch sử phát triển
SQL Server được phát triển từ ngôn ngữ SEQUEL2 bởi IBM theo mô hình
Codd tại trung tâm nghiên cứu của IBM ở California ,vào những năm 70 cho hệ
thống QTCSDL lớn.
Đầu tiên SQL Server được sử dụng trong các ngôn ngữ quản lý CSDL và
chạy trên các máy đơn lẻ. Song do sự phát triển nhanh chóng của nhu cầu xây dựng
những CSDL lớn theo mô hình khách chủ( trong mô hình này toàn bộ CSDL được
tập trung trên máy chủ (Server)). Mọi thao tác xử lý dữ liệu được thực hiện trên
máy chủ bằng các lệnh SQL máy trạm chỉ dùng để cập nhập hoặc lấy thông tin từ
máy chủ). Ngày nay trong các ngôn ngữ lập trình bậc cao đều có sự trợ giúp của
SQL. Nhất là trong lĩnh vực phát triển của Internet ngôn ngữ SQL càng đóng vai trò
quan trọng hơn. Nó được sử dụng để nhanh chóng tạo các trang Web động..
SQL đã được viện tiêu chuẩn quốc gia Mỹ (ANSI)và tổ chức tiêu chuẩn quốc
tế (ISO) chấp nhận như một ngôn ngữ chuẩn cho CSDL quan hệ .Nhưng cho đến
nay chuẩn này chưa đưa ra đủ 100%.Nên các SQL nhúng trong các ngôn ngữ lập
trình khác nhau đã được bổ xung mở rộng cho SQL chuẩn cho phù hợp với các ứng
dụng của mình.Do vậy có sự khác nhau rõ ràng giưã các SQL.
3. Đặc điểm của SQL Server và đối tượng làm việc
3.1. Đặc điểm
– SQL là ngôn ngữ tựa tiếng Anh.
– SQL là ngôn ngữ phi thủ tục, nó không yêu cầu ta cách thức truy nhập CSDL như
thế nào. Tất cả các thông báo của SQL đều rất dễ sử dụng và ít khả năng mắc lỗi.
– SQL cung cấp tập lệnh phong phú cho các công việc hỏi đáp DL
+ Chèn, cập nhật, xoá các hàng trong một quan hệ
https://lop7.net/
+ Tạo, sửa đổi, thêm và xoá các đối tượng trong của CSDL.
+ Điều khiển việc truy nhập tới cơ sở dữ liệu và các đối tượng của CSDL để đảm
bảo tính bảo mật của cơ sở DL
+Đảm bảo tính nhất quán và sự ràng buộc của CSDL.
– Yêu cầu duy nhất để sử dụng cho các hỏi đáp là phải nắm vững được các cấu trúc
CSDL của mình.
3.2. Đối tượng làm việc của SQL Server
Là các bảng ( tổng quát là các quan hệ )dữ liệu hai chiêù .Các bảng này bao gồm
một hoặc nhiều cột và hàng.Các cột gọi là các trường ,các hàng gọi là các bản
ghi.Cột với tên gọi và kiểu dữ liệu (kiểu dl của mỗi cột là duy nhất)xác định tạo nên
cấu trúc của bảng (Ta có thể dùng lệnh Desc[ribe] TABLE-name để xem cấu trúc
của bảng ,phần tuỳ chọn[] có thể được bỏ trong Oracle).Khi bảng đã được tổ chức
hệ thống cho một mục đích nào đó có một CSDL
IV. CLOUD SERVER
Cloud server là gì?
Trong những năm gần đây, ngành công nghệ thông tin Internet càng ngày
càng phát triển. Cùng với sự phát triển đó, các doanh nghiệp, tổ chức sẽ phải đầu tư
chi phí lớn cho khâu mua mới, bảo trì và vận hành máy chủ (server). Tuy nhiên với
sự ra đời của công nghệ điện toán đám mây (Cloud Computing), các tổ chức doanh
nghiệp sẽ không phải đầu tư chi phí quá lớn cũng có thể sở hữu 1 chiếc server (máy
chủ) để phục vụ cho các hoạt động kinh doanh, phát triển thương mại, ứng dụng
công nghệ thông tin vào sản xuất.
Các tổ chức doanh nghiệp có thể lựa chọn các máy chủ ảo hay VPS (Virtual
Private Server) để có thể sử dụng như 1 server riêng cho nhu cầu của doanh nghiệp.
Tuy nhiên ngày nay các doanh nghiệp tổ chức có thể sử dụng công nghệ Cloud
Server với hiệu quả và công nghệ cao hơn. Cloud server cung cấp một server riêng
ảo giống như VPS nhưng được triển khai và phát triển trên nền tảng của công nghệ
điện toán đám mây, do đó Cloud server kế thừa các ưu điểm vượt trội của công
nghệ điện toán đám mây mà sẽ không thể có được khi sử dụng các VPS
thông thường.
Ngoài ra, Cloud Server của DIGISTAR có thêm những tính năng cao cấp
mới điển hình như sử dụng giải pháp công nghệ Cloud Storage tiên tiến của
Parallels dùng SSD Caching và phân bổ I/O đều trên các Server vật lý để khắc phục
https://lop7.net/
nhược điểm thắt cổ chai (bottleneck) của hệ thống SAN, mang lại cho CLoud
Server mới của DIGISTAR một tốc độ đáng kinh ngạc.
Tính năng Cloud Server
• Được xây dựng trên các máy chủ CISCCO mạnh nhất cùng với công nghệ
hàng đầu đảm bảo sức mạnh tốt nhất cho hệ thống Cloud Server.
• Tính năng Cloud Server do DIGISTAR cung cấp chủ yếu là công nghệ ảo
hóa phần cứng – Hardware Virtualization tương tự cơ chế KVM thông dụng.
• Dùng ổ cứng truy xuất dữ liệu hoàn toàn bằng SSD đem đến tốc độ truy xuất
ổ cứng lên tới trên 800 Mbps/s.
• Cloud Server của DIGISTAR dùng cách phân phối I/O trên các Server vật lý
nhàn rỗi đảm bảo hiệu xuất vận hành tốt nhất và ổn định nhất.
• DIGISTAR cam kết tài nguyên cung cấp cho từng Cloud Server là riêng biệt
và không sử dụng chung như các dịch vụ VPS thông thường.
• Tài nguyên Cloud Server đảm bảo cung cấp tới hàng trăm ngàn CPU,
Gygabyte RAM và Petabyte dữ liệu cho hàng ngàn khách hàng.
• Sử dụng công nghệ Cloud Storage phân tán dữ liệu khắc phục hoàn
toàn nhược điểm của các hệ thống Cloud lưu trữ dữ liệu tập trung.
https://lop7.net/
Chương 3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG
I. Danh mục các chức năng chính
● Quản lý tài khoản
-Đăng nhập/Đăng xuất
-Thay đổi mật khẩu đăng nhập hệ thống
● Quản lý lệnh điều động (hiện tại)
-Xem thông tin chung của lệnh điều động
-Xem lộ trình đề xuất (bản đồ)
-Xem vị trí hiện tại, lộ trình thực tế, tình hình giao hàng (bản đồ)
-Cập nhật trạng thái lệnh (giao hàng, sự cố)
● Quản lý đơn hàng (hiện tại)
-Xem danh sách các đơn hàng trên lệnh
- Xem thông tin chi tiết đơn hàng
- Cập nhật trạng thái đơn hàng (Xác nhận giao hàng thành công, thông
báo giao hàng thất bại, xác nhận chuyển tải)
- Xem thông tin chuyển tải các đơn hàng
- Scan các chứng từ liên quan
● Lịch sử
- Xem danh sách lịch sử lệnh đã chạy
● Barcode
- Scan barcode trên đơn hàng vật lý để truy cập nhanh vào form quản
lý các tác vụ của đơn hàng này
https://lop7.net/
II.Mô tả sơ lược chức năng TMS cho di động
Hình 3.0 Sơ đồ phân cấp chức năng của hệ thống
III.Biểu đồ luồng dử liệu
3.1 Biểu đồ luồng dữ liệu mức khung cảnh
Nhìn từ mức độ tổng quát trên biểu đồ phân cấp chức năng ta không thể nhận thấy rõ được các
mối quan hệ giữa các dữ liệu. Để cho nhìn thấy chi tiết liên hệ với dữ liệu cần để thực hiện các công
https://lop7.net/
việc của bài toán nhóm sử dụng biểu đồ luồng dữ liệu. Biểu đồ mức khung cảnh cần thể hiện các tác
nhân của hệ thống, các luồng dữ liệu tổng quan.
Hình 3.1 Biểu đồ luồng dữ liệu mức khung cảnh
3.2 Biểu đồ luồng dữ liệu mức đỉnh
Biểu đồ dữ liệu mức đỉnh thể hiện mối quan hệ của các chức năng chính
trong hệ thống với các tác nhân,dữ liệu
Hình 3.2 Biểu đồ luồng dữ liệu mức đỉnh
Tài xế Các thông tin tiện ích
TT
Tài
xế
APP
Xe
m
lện
h
Chuyển tải
Web
Yêu cầu Lệnh
Web
TT đăng nhập
TT
phả
n
hồi
TT phản hồi
Xóa
TT
Tài
xế
KH
Báo cáo trả lời
https://lop7.net/
3.3 Biểu đồ luồng dữ liệu mức 1 của chức năng chuyển tải
Hình 3.3 Biểu đồ luồng dữ liệu mức 1 của chức năng chuyển tải
3.4 Biểu đồ luồng dữ liệu mức 1 của chức năng Tìm kiếm
Chức năng tìm kiếm của hệ thống được chia làm 2 tiêu chí tìm kiếm khác nhau: tìm
kiếm theo giá của sản phẩm và tìm kiếm theo tên sản phẩm.Khi người dùng muốn tìm kiếm
theo tiêu chí nào thì sẽ tìm kiếm theo tiêu chí đó và hệ thống sẽ tìm trong bảng cơ sở dữ liệu
và gửi trả lại thông tin yêu cầu từ phía người dùng.
https://lop7.net/
Hình 3.4 Biểu đồ luồng dữ liệu mức 1 của chức năng tìm kiếm
3.5 Biểu đồ luồng dữ liệu mức 1 của chức năng quản trị
Hình 3.5 Biểu đồ luồng dữ liệu mức 1 của chức năng quản trị
https://lop7.net/
3.6 Mô hình ERD:
Hình 3.6 Mô hình ERD
https://lop7.net/
3.7 Chuyển từ ERD sang lược đồ qan hệ
Hình 3.7 Lược đồ quan hệ
https://lop7.net/
IV.Thiết kế CSDL cho hệ thống APP TMS
Các bảng trong CSDL
1. Order:
Mỗi Đơn hàng có một mã Đơn hàng để phân biệt với các Đơn hàng
khác, tên Đơn hàng, số lượng nhập theo thời điểm ngày nhập, đơn vị hay qui
cách mỗi sản phẩm, mỗi sản phẩm thuộc về một loại theo nhà nhà sản xuất.
Hình 4.0 Order
2.TMS_Driver:
Hình 4.1 TMS_Driver:
3. TMS_Location
Hình 4.2 TMS_Location
https://lop7.net/
4. TMS_Order_Status
Hình 4.3 TMS_Order_Status
5. TMS_Route
Hình 4.4 TMS_Route
6. TMS_Shipping_Order
Hình 4.5 TMS_Route
7. TMS_Shipping_Order_Status
Hình 4.6 TMS_Shipping_Order_Status
https://lop7.net/
8.Mô hình cài đặt SQL Server
Hình 4.7 Mô hình cài đặt SQL Server
TMS_Driver
Driver_ID
Driver_Code
Driver_Name
Diver_User
Driver_Password
Phone
Truck_Number
User_Create
Create_Date
TMS_Location
Location_ID
Location_Code
Location_Name
Location_Address
Location_Latitude
Location_Longitude
Location_Description
Country_ID
District_ID
Province_ID
Ward_ID
Phone
Fax
Created_Date
Created_By
Updated_By
TMS_Order
Order_ID
Order_Code
Order_Date
Shipping_Date
Customer
TMS_Location_ID
ItemType
Total_Carton
Total_Weight
Total_CBM
COD
COD_Is_Receive
Order_Status_ID
Location_ID
Address
County
District
Ward
Receiver
Phone
User_Create
Create_Date
Is_Tranfer
TMS_Order_Status
Order_Status_ID
Status_Name
Description
TMS_Route
Route_ID
Route_Code
Route_Name
Distance
Description
UserCreate
Create_Date
TMS_Shipping_Order
Shipping_Order_ID
Shipping_Order_Code
Shipping_Order_Date
Order_ID
Driver_ID
Route_ID
DeliveredDate
Total_Carton
Total_Weight
Total_CBM
Shipping_Order_Status_ID
ClosedDate
User_Create
DescriptionErr
TMS_Shipping_Order_Status
Shipping_Order_Status_ID
Shipping_Order_Status_Name
Description
https://lop7.net/
CHƯƠNG 4 XÂY DỰNG APP TMS
I.Quản lý tài khoản
Hình 4.1.0 Flash screen
https://lop7.net/
1.1 Đăng nhập/Đăng xuất
Hình 4.1.1 Màn hình Đăng nhập
Giải thích
• Dữ liệu đầu vào : UserName,Password
• ID Component: txtUserName(UserName),txtPassword(Password)
• Xử lý dữ liệu:
Activity chứa các hàm xử lý để phục vụ cho Login là Login_Activity
Thuật toán kiểm tra thông tin user và password:
1. Biến dữ liệu: username=txtUserName.text
Password=txtPassWord.text
2. Truy vấn : SELECT Driver_ID From TMS_Driver Where
Driver_User = userName and Driver_PassWord=password
3. Nếu tồn Driver_ID với các điều kiện trên thì đóng
Login_Activity chuyển sang Main_Activity
https://lop7.net/
1.2 Thay đổi mật khẩu đăng nhập hệ thống
Hình 4.1.2 Thay đổi mật khẩu
Giải thích
• Dữ liệu đầu vào :Mật khẩu hiện tại,Mật Khẩu Mới,Xác Nhận Mật Khẩu Mới
• ID Component: txtPassword_Temp,txtPassword_New,txtPassword_Re
• Xử lý dữ liệu:
Thuật toán kiểm tra thông tin user và password:
❖ Kiểm tra nếu không có Driver nào được lưu thì chuyển sang
màn hình Login ngược lại tiến hành thuật toán thay đổi
password với Driver_ID được lấy từ trong lưu bộ nhớ của hệ
thống
❖ Biến dữ liệu: password_temp= txtPassword_Temp.text
password_new= txtPassword_New.text
Password_re= txtPassword_Re.text
❖ Truy vấn dữ liệu :SELECT Driver_ID From TMS_Driver
Where Driver_User= UserName and Driver_PassWord=
password_temp
https://lop7.net/
❖ Nếu tồn Driver_ID với các điều trên và
Password_new=Password_re tiến hành cập nhật thông tin
password
❖ Truy vấn dữ liệu :Upate Driver SET Driver_PassWord=
Password_new WHERE Driver_ID=DriverID
II. Quản lý danh sách lệnh điều động (hiện tại)
2.1 Xem thông tin chung của lệnh điều động
Hình 4.1.3 Xem thông tin chung của lệnh điều động
Giải thích
• Dữ liệu đầu vào : Id Tài Xế(Driver_ID)
• Xử lý dữ liệu :
Thuật toán kiểm tra Driver_ID
❖ Kiểm tra thông tin Driver_ID được lưu trong hệ thống ,nếu không
tồn tại Driver_ID thì chuyển sang màn hình Login .
Ngược lại lấy danh sách lệnh theo Driver_ID với các lênh ở trạng
thái : “CONFIRM”
https://lop7.net/
❖ Truy vấn dữ liệu :
SELECT
a.Shipping_Order_ID,a.Shipping_Order_Code,b.Shipping_Order_
Status_Name from TMS_Shipping_Order a
LEFT JOIN TMS_Shipping_Order_Status b on
a.Shipping_Order_ID=b.Shipping_Order_Status_ID
WHERE b.Shipping_Order_Status_Name
=“CONFIRM”
2.2 Xem danh sách lịch sử lệnh đã chạy
Hình 4.1.4 Xem danh sách lịch sử đã chạy
Giải thích
• Dữ liệu đầu vào : Id Tài Xế(Driver_ID)
• Xử lý dữ liệu :
Thuật toán kiểm tra Driver_ID
❖ Kiểm tra thông tin Driver_ID được lưu trong hệ thống ,nếu không
tồn tại Driver_ID thì chuyển sang màn hình Login .
Ngược lại lấy danh sách lệnh theo Driver_ID
❖ Truy vấn dữ liệu : SELECT
a.Shipping_Order_ID,a.Shipping_Order_Code,b.Shipping_Order_
Status_Name from TMS_Shipping_Order a
LEFT JOIN TMS_Shipping_Order_Status b on
a.Shipping_Order_ID=b.Shipping_Order_Status_ID
https://lop7.net/
2.3 Xem chi tiết lệnh
1.Thông tin lệnh
Hình 4.1.5 Xem chi tiết lệnh
Giải thích
• Dữ liệu đầu vào :Mã lệnh điều động(Shipping_Order_ID)
• Xử lý dữ liệu :
Thuật toán kiểm tra và lấy dữ liệu chi tiết lệnh theo
Shipping_Order_ID
Truy vấn dữ liệu :
SELECT
c.Truck_Number,d.Route_Name,a.Shipping_Order_Date,c.Driver_Name,
c.Phone,a.Total_Carton,a.Total_Weight,a.Total_CBM,a.DeliveredDate,C
losedDate
FROM TMS_Shipping_Ordera
LEFT JOIN
TMS_Shipping_Order_StatusbONa.Shipping_Order
_ID=b.Shipping_Order_Status_ID
LEFT JOIN TMS_Driver c on
a.Driver_ID=c.Driver_ID
LEFT JOIN
TMS_Routedona.Route_ID=d.Route_ID
https://lop7.net/
WHERE
b.Shipping_Order_Status_Name=”CONFIRM” And
a.Shipping_Order_ID=Shipping_Order_ID
2.4 Cập nhật trạng thái lệnh(Vận Chuyển,Về Bến,Sự Cố)
Hình 4.1.6 Cập nhật trạng thái lệnh
Giải thích
• Dữ liệu đầu vào :Mã lệnh điều động(Shipping_Order_ID)
• Xử lý dữ liệu :
Thuật toán kiểm tra và cập nhật dữ liệu lệnh theo
Shipping_Order_ID
Truy vấn dữ liệu:
➢ Trường hợp Vận Chuyển với Shipping_OrderCode=”ISDRIVING”
Truy vấn: UPDATE TMS_Shipping_Order
SET Shipping_Order_Status_ID=(
SELECT Shipping_Order_Status_ID
WHERE
Shipping_Order_Status_Name='ISDRIVING'
)
https://lop7.net/
➢ Trường hợp Vận Chuyển với
Shipping_OrderCode=”ISTROUBLE”
Truy vấn: UPDATE TMS_Shipping_Order
SET Shipping_Order_Status_ID=(
SELECT Shipping_Order_Status_ID
WHERE
Shipping_Order_Status_Name=’ISTROUBLE’
)
➢ 3.Trường hợp Vận Chuyển với
Shipping_OrderCode=’ISCOMEBACK’
Truy vấn: UPDATE TMS_Shipping_Order
SET Shipping_Order_Status_ID=(
SELECT Shipping_Order_Status_ID
WHERE
Shipping_Order_Status_Name=’ISCOMEBACK’
)
2.5 Xem danh sách đơn hàng
Hình 4.1.7 Xem dah sách đơn hàng
Giải Thích
https://lop7.net/
• Dữ liệu đầu vào :Mã lệnh điều động(Shipping_Order_ID)
• Xử lý dữ liệu :
Thuật toán kiểm tra và lấy dữ liệu đơn hàng theo Shipping_Order_ID
Truy vấn dữ liệu : SELECT
c.Order_Code,c.Address,c.County,c.District,c.Ward,d.Status_Name
FROM TMS_Shipping_Order a
LEFT JOIN TMS_Shipping_Order_Status b ON
a.Shipping_Order_ID=b.Shipping_Order_Status_ID
LEFT JOIN TMS_Ordercona.Order_ID=c.Order_ID
LEFT JOIN TMS_Order_Status d on
c.Order_Status_ID=d.Order_Status_ID
WHERE b.Shipping_Order_Status_Name=”CONFIRM”
2.6 Xem chi tiết đơn hàng
Hình 4.1.8 Xem chi tiết đơn hàng
Giải Thích
• Dữ liệu đầu vào :Mã đơn hàng(Order_ID)
• Xử lý dữ liệu :
Kiểm tra và lấy dữ liệu đơn hàng theo Order_ID
Truy vấn dữ liệu : SELECT
a.Shipping_Date,a.Customer,a.Receiver,a.Phone
,a.County,a.District,a.Ward,a.Address,a.DescriptionErr FROM
TMS_Order a
LEFT JOIN TMS_Shipping_Order_Status c ON
a.Shipping_Order_ID=c.Shipping_Order_Status_
ID
https://lop7.net/
WHERE a.Shipping_Order_Code= “CONFIRM”
and Order_ID= Order_ID
2.7 Cập nhật trạng đơn hàng(thành công, thất bại)
Hình 4.1.9 Cập nhật trạng thái đơn hàng
Giải thích
• Dữ liệu đầu vào :Mã lệnh điều động(Order_ID)
• Xử lý dữ liệu :
Thuật toán kiểm tra và lấy dữ liệu đơn hàng theo Order_ID
Truy vấn dữ liệu :
➢ Trường hợp Thành Công(“ISSUSCESS”)
✓ Dữ liệu đầu vào :Mã đơn hàng(Order_ID)
✓ Xử lý dữ liệu :
• Thuật toán kiểm tra và Cập nhật dữ liệu đơn hàng
theoOrder_ID : Cập nhật đơn hàng về trạng thái thành
công với Order_Status_Name= ”ISSUSCESS”
• Truy vấn: UPDATE TMS_Order
SET Order_Status_ID=(
SELECT Order_Status_ID
https://lop7.net/
WHERE
Order_Status_Name=“ISSUSCESS”
)
➢ Trường hợp Thất bại:(“ISFAIL”)
✓ Dữ liệu đầu vào :Mã đơn hàng(Order_ID)
✓ Xử lý dữ liệu :
• Thuật toán kiểm tra và Cập nhật dữ liệu đơn hàng theo
Order_ID : Cập nhật đơn hàng về trạng thái thành công
với Order_Status_Name= ”ISFAIL”
• Truy vấn: UPDATE TMS_Order
SET Order_Status_ID=(
SELECT Order_Status_ID
WHERE Order_Status_Name=“ISFAIL”
)
2.8 Xem vị trí hiện tại, Điểm giao hàng của Lệnh (bản đồ)
Hình 4.1.10 Xem vị trí và điểm giao hàng
Giải thích
• Dữ liệu đầu vào :Mã lệnh điều động(Shipping_Order_ID)
https://lop7.net/
• Xử lý dữ liệu :
Thuật toán kiểm tra và lấy dữ liệu đơn hàng theo
Shipping_Order_IDvà vẽ vị trí đơn hàng lên bản đồ
Truy vấn dữ liệu :SELECT
d.TMS_Location_Name,d.TMS_Location_Latitude,d.TMS_Location
_Longitude
FROM TMS_Shipping_Order a
LEFT JOIN TMS_Shipping_Order_Status b ON
a.Shipping_Order_ID=b.Shipping_Order_Status_ID
LEFT JOIN TMS_Order c on a.Order_ID=c.Order_ID
LEFT JOIN TMS_Location d on
a.Location_ID=d.Location_ID
LEFT JOIN TMS_Order_Status e on
c.Order_Status_ID=e.Order_Status_ID
WHERE a.Shipping_Order_Code='XACNHAN'
2.9 Thông tin COD và Cập nhật COD
Hình 4.1.11 Cập nhật COD và thông tin COD
Giải thích
1. Thông tin COD
• Dữ liệu đầu vào :Mã Đơn Hàng(Order_ID)
• Xử lý dữ liệu :
Kiểm tra và lấy dữ liệu đơn hàng theo Order_ID
https://lop7.net/
Truy vấn dữ liệu :
SELECT COD,COD_Is_Receive,Receiver,Phone,Create_Date
FROM TMS_Order WHERE Order_ID=Order_ID
2.Cập nhật COD
• Dữ liệu đầu vào :Mã Đơn Hàng(Order_ID)
• Xử lý dữ liệu :
Kiểm tra và cập nhật dữ liệu COD thực tế của đơn hàng theo
Order_ID
Truy vấn dữ liệu :Update TMS_Order SET
COD_Is_Receive=COD_INPUT WHERE Order_ID=Order_ID
2.10 Thông tin Hàng Hóa
Hình 4.1.12 Thông tin hàng hóa
Giải Thích
• Dữ liệu đầu vào :Mã Đơn Hàng(Order_ID)
• Xử lý dữ liệu :
Kiểm tra và lấy dữ liệu đơn hàng theo Order_ID
Truy vấn dữ liệu :SELECT
Total_Carton,Total_Weight,Total_CBM,ItemType,Is_Tranfer,DescriptionErr
FROM TMS_Order WHERE Order_ID=Order_ID
https://lop7.net/
III. Quản lý lệnh (hiện tại)
3.1 Xem danh sách các đơn hàng trên lệnh
Hình 4.3.1 Xem danh sách các đơn hàng trên lệnh
Giải thích
• Dữ liệu đầu vào : Id Tài Xế(Driver_ID)
• Xử lý dữ liệu :
Thuật toán kiểm tra Driver_ID
❖ Kiểm tra thông tin Driver_ID được lưu trong hệ thống ,nếu không
tồn tại Driver_ID thì chuyển sang màn hình Login .
Ngược lại lấy danh sách lệnh theo Driver_ID với các lệnh ở trạng
thái : “ISDRIVING”
❖ Truy vấn dữ liệu :SELECT
a.Shipping_Order_ID,a.Shipping_Order_Code,b.Shipping_Order_
Status_Name from TMS_Shipping_Order a
LEFT JOIN TMS_Shipping_Order_Status b on
a.Shipping_Order_ID=b.Shipping_Order_Status_ID
WHERE b.Shipping_Order_Status_Name
=“ISDRIVING”
https://lop7.net/
3.2 Xem danh sách đơn hàng
Hình 4.3.2 Xem danh sách đơn hàng
Giải Thích
• Dữ liệu đầu vào :Mã lệnh điều động(Shipping_Order_ID)
• Xử lý dữ liệu :
Thuật toán kiểm tra và lấy dữ liệu đơn hàng theo Shipping_Order_ID
Truy vấn dữ liệu
SELECT
c.Order_Code,c.Address,c.County,c.District,c.Ward,d.Status_ Name
FROM TMS_Shipping_Ordera
LEFT JOIN TMS_Shipping_Order_Statusb ON
a.Shipping_Order_ID=b.Shipping_Order_Status_ID
LEFT JOIN TMS_Order c on a.Order_ID=c.Order_ID
LEFT JOIN TMS_Order_Status d on
c.Order_Status_ID=d.Order_Status_ID
WHERE b.Shipping_Order_Status_Name=”CONFIRM”
https://lop7.net/
3.3 Xem thông tin chuyển tải các đơn hàng
Hình 4.3.3 Xem thông tin chuyển tải các đơn hàng
Scan các chứng từ liên quan
IV. Danh Sách Đơn Hàng (hiện tại)
https://lop7.net/
4.1 Xem danh sách đơn hàng hiện tại:
Hình 4.4.1 Xem danh sách đơn hàng hiện tại
Giải Thích
• Dữ liệu đầu vào :Mã lệnh điều động(Shipping_Order_ID)
• Xử lý dữ liệu :
Thuật toán kiểm tra và lấy dữ liệu đơn hàng theo Shipping_Order_ID
Truy vấn dữ liệu : SELECT
c.Order_Code,c.Address,c.County,c.District,c.Ward,d.Status_Name
FROM TMS_Shipping_Order a
LEFT JOIN TMS_Shipping_Order_Status b ON
a.Shipping_Order_ID=b.Shipping_Order_Status_ID
LEFT JOIN TMS_Order c on a.Order_ID=c.Order_ID
LEFT JOIN TMS_Order_Status d on
c.Order_Status_ID=d.Order_Status_ID
WHERE b.Shipping_Order_Status_Name=”ISDRIVING”
V. Barcode
Scan barcode trên đơn hàng vật lý để truy cập nhanh vào form quản lý các
tác vụ của đơn hàng này
https://lop7.net/
Hình 4.5.1 Scan barcode
Giải thích
• Scan lệnh:
• Dữ liệu đầu vào : Id Tài Xế(Shipping_Order_ID) được lấy từ
Scan BarCode
• Xử lý dữ liệu :
Thuật toán kiểm tra Shipping_Order_ID
❖ Kiểm tra thông tin Shipping_Order_ID,nếu không tồn tại
Shipping_Order_ID thì chuyển sang màn hình Chính .
Ngược lại lấy thông tin lệnh theo Shipping_Order_ID với
các lênh ở trạng thái : “ISDRIVING”
https://lop7.net/
❖ Truy vấn dữ liệu :SELECT
a.Shipping_Order_ID,a.Shipping_Order_Code,b.Shipping_
Order_Status_Name from TMS_Shipping_Order a
LEFT JOIN
TMS_Shipping_Order_Status b on
a.Shipping_Order_ID=b.Shipping_Order_Stat
us_ID WHERE
b.Shipping_Order_Status_Name
=“ISDRIVING”
❖ Sau khi scan thành công nếu có lệnh tồn tại thì chuyển sang
màn hình chứa lệnh được Scan
• Scan đơn hàng:
• Dữ liệu đầu vào :Mã lệnh điều
động(Shipping_Order_ID),Order_ID được lấy từ Scan
BarCode
• Xử lý dữ liệu :
Thuật toán kiểm tra và lấy dữ liệu đơn hàng theo
Shipping_Order_ID,và Order_ID
Truy vấn dữ liệu : SELECT
c.Order_Code,c.Address,c.County,c.District,c.Ward,d.Status_
Name
FROM TMS_Shipping_Order a
LEFT JOIN TMS_Shipping_Order_Status b ON
a.Shipping_Order_ID=b.Shipping_Order_Status_ID
LEFT JOIN TMS_Order c on a.Order_ID=c.Order_ID
LEFT JOIN TMS_Order_Status d on
c.Order_Status_ID=d.Order_Status_ID
WHERE
b.Shipping_Order_Status_Name=”ISDRIVING” and c.Order
=’Order_ID’
❖ Sau khi scan thành công nếu có đơn hàng tồn tại thì chuyển
sang màn hình chứa đơn hàng được Scan
https://lop7.net/
KẾT LUẬN
1.Kết luận
Đầu tiên em xin cảm ơn Công ty TNHH Phần Mềm BSM đã cho cơ hội cho em
được thực tập tại đơn vị trong thời gian qua. Và cảm ơn đến các thầy cô giảng viên
tại trường Cao đẳng Bách Việt đã dạy em trong suốt ba năm vừa qua, các kiến thức
mà các thầy cô đã truyền đạt giúp em hiểu biết thêm về công việc sau này của và
cũng nhờ các kiến thức đó giúp em thực hiện tốt bài báo cáo này. Hơn hết, em xin
chân thành cám ơn thầy Lê Quốc Tuấn, giáo viên hướng dẫn trong quá trình thực
tập và báo cáo, người thầy đã gắn bó với quá trình học tập trong những năm vừa
qua, một người thầy đầy tâm huyết và luôn hết mình dạy bảo chúng em, sau bài báo
cáo này có lẽ em sẽ hoàn thành khóa học và không được làm việc cùng thầy trong
giảng đường này nữa nhưng với những gì thầy đã truyền đạt sẽ là một động lực lớn
cho em trong công việc sau này. Một lần nữa em xin gửi một lời biết ơn đối với
thầy.
Sau một thời gian tìm hiểu đề tài “Tìm hiểu về Android và xây dựng ứ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” em đã thực hiện được đề tài của mình theo như dự kiến.Với mục đích là
tìm hiểu về hệ điều hành Android, hiểu biết về ngôn ngữ lập trình mới cho điện
thoại di động và tìm hiểu các ứng dụng của hệ điều hành Android trong thế giới di
động ngày nay. Thông qua việc tìm hiểu và nắm bắt lý thuyết về hệ điều hành
Android để bước đầu tìm hiểu ứ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 trên nền hệ điều hành Android cho điện
thoại di động.
Trong quá trình tìm hiểu lý thuyết về hệ điều hành Android và tìm hiểu ứng dụng
Quản Lý Vận Chuyển Hàng Hóa cho thiết bị di động em đã thu được kết quả bước
đầu như sau:
Sau quá trình tìm hiểu và nghiên cứu đề tài, em đã bước đầu hiểu về hệ điều hành
Android chạy trên điện thoại. Biết và nắm vững quá trình tạo một file project trong
lập trình trên nền Android.
https://lop7.net/
Hiểu và sử dụng được các lớp đối tượng, phương thức hỗ trợ lập trình trên nền hệ
điều hành Android.
Hiểu được cơ chế làm việc với Webservice để lấy và cập nhật dữ liệu cho những
ứng dụng cần thông tin nhanh chóng, thường xuyên và chính xác.
Do thời gian ngắn cùng với kiến thức của bản thân còn hạn chế nên em chưa tìm
hiểu sâu về các kiến thức liên quan tới hệ điều hành Android nên chương trình vẫn
còn rất nhiều hạn chế, em sẽ cố gắng phát triển thêm để chương trình thân thiện, dễ
sử dụng và nhiều chức năng hơn.
2. Hướng phát triển của đề tài:
- Thêm chức năng du lịch và quảng bá để mọi người có thể chia sẻ những địa điểm
thú vị ở tp.hcm mà không phải ai cũng biết đến đặc biệt trong những hẻm nhỏ hay
những con đường khuất sâu.
- Chức năng trên hiện thị rõ các quán ăn, nhà hàng ,…theo những icon nhất định
trên bản đồ và có bài viết liên quan về địa điểm này mọi người cũng có chọn chức
năng thích hoặc không thích và bình luận về địa điểm.
- Cập nhật hệ thống thông tin tuyến điểm một cách chính xác.
- Tích hợp ứng dụng trên các phần mềm di động
Em xin chân thành cảm ơn các thầy cô cùng các bạn đã giúp đỡ em hoàn
thành.Trong bài báo cáo còn có thiếu sót mong thầy cô và các bạn góp ý để em hoàn
thiện hơn.
3. Ưu điểm:
-Tiện lợi cho người dùng ở mọi lúc mọi nơi trên Smarphone
-Dễ dàng quản lý các trạng thái của lệnh
-Tiết kiệm thời gian quảng đường giao hàng
-Tiết kiệm được chi phí quản lý
- Tìm đường đi bằng googlemaps một cách tối ưu.
-Cập nhật trạng thái của lệnh và đơn hàng realtime
4. Khuyết điểm:
-Chi phí đầu tư thiết bị chuyên dụng cao
https://lop7.net/
TÀI LIỆU THAM KHẢO
Website
1. http://diendan.vietandroid.com/forum.php
2. http://developer.android.com/reference/android/util/Log.html
3. Pragmatic-Hello Android(2008)-Ed Bunette
4. http://www.anddev.org/
5. http://markana.com/forums/android/
6. http://khoapham.vn/khoa-hoc-lap-trinh...
7. http://www.nhatnghe.com/
8. http://sinhvienit.net
Tiếng Anh
Tên giáo trình: Android Design Patterns: Interaction Design Solutions for
Developers
Tác giả:(By: Ian G. Clifton)
Tên giáo trình: Android Recipes: A Problem-Solution Approach
Tác giả:(By: Dave Smith & Jeff Friesen )
Tên giáo trình: Programming Android,
Tác giả:(By: Zigurd Mednieks, Laird Dornin, G. Blake Meike & Masumi
Nakamura)
Về google map api v3:
developers.google.com
Ebook tham khảo:
Ebook tham khaoKi thuat lap trinh ajax.pdf
Em xin chân thành cảm ơn!

More Related Content

Featured

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

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

  • 1. https://lop7.net/ Mục lục Chương 1 GIỚI THIỆU CÔNG TY............................................................................................... 7 1.1 Lịch sử hình thành và phát triển của công ty:..................................................................... 7 1.1 Sơ lược về công ty: ................................................................................................................. 7 1.2 Quá trình hình thành và phát triển...................................................................................... 7 1.3 Tầm nhìn và sứ mạng của công ty ........................................................................................ 8 1.4 Hoạt động đoàn thể và các phong trào khác.................................................................... 10 Chương 2 KIẾN THỨC CƠ SỞ ................................................................................................... 16 I. TỔNG QUAN VỀ ANDROID.............................................................................................. 16 A. Android và lịch sử phát triển ........................................................................................... 16 2.1 Kiến trúc Android............................................................................................................ 18 2.2 Linux Kernel..................................................................................................................... 18 2.3 Library và Android Runtime.......................................................................................... 19 B.Các thành phần của Android ............................................................................................ 22 1.Thành phần của 1 chương trình Android......................................................................... 22 2. Activity và Intent................................................................................................................ 22 4. Broadcast Reveive.............................................................................................................. 26 5. Content Provider................................................................................................................ 26 6. Manifest File ....................................................................................................................... 27 7. Giao diện người dùng trong Android............................................................................... 27 8. Các thành phần giao diện Widget.................................................................................... 27 9. Bắt sự kiện trong Android................................................................................................ 28 10. Menu.................................................................................................................................. 29 II. PHÂN TÍCH XML TRONG ANDROID............................................................................ 29 A.Tổng quan về XML ............................................................................................................ 29 1.Khái niệm............................................................................................................................. 29 2.Đặc điểm của XML ............................................................................................................. 29 3.Cấu trúc của XML .............................................................................................................. 31 4. RSS ...................................................................................................................................... 31 5. Các lớp, giao diện phân tích XML trong Android.......................................................... 31 6. Phân tích nội dung XML trong Android sử dụng SAX.................................................. 33 III. SQL SERVER...................................................................................................................... 35 1. Khái niệm, định nghĩa SQL server?................................................................................. 35 2. Lịch sử phát triển............................................................................................................... 35 3. Đặc điểm của SQL Server và đối tượng làm việc............................................................ 35
  • 2. https://lop7.net/ IV. CLOUD SERVER................................................................................................................ 36 Cloud server là gì? ................................................................................................................. 36 Tính năng Cloud Server ........................................................................................................ 37 Chương 3 PHÂNTÍCHTHIẾTKẾHỆTHỐNG............................................................................. 38 I. Danh mục các chức năng chính............................................................................................. 38 II.Mô tả sơ lược chức năngTMS cho di động .............................................................................. 39 III.Biểu đồ luồng dửliệu................................................................................................................ 39 3.1 Biểu đồ luồng dữliệu mức khung cảnh................................................................................. 39 3.2 Biểu đồ luồng dữliệu mức đỉnh............................................................................................ 40 3.3 Biểu đồ luồng dữliệu mức 1 của chức năng chuyển tải.......................................................... 41 3.4 Biểu đồ luồng dữliệu mức 1 của chức năng Tìm kiếm........................................................... 41 3.5 Biểu đồ luồng dữliệu mức 1 của chức năng quản trị............................................................. 42 3.6 Mô hình ERD:..................................................................................................................... 43 3.7 Chuyển từ ERD sang lược đồ qan hệ.................................................................................... 44 IV.Thiết kế CSDLcho hệ thống APPTMS.................................................................................... 45 1. Order:................................................................................................................................... 45 2.TMS_Driver:.......................................................................................................................... 45 3. TMS_Location....................................................................................................................... 45 4. TMS_Order_Status............................................................................................................... 46 5. TMS_Route........................................................................................................................... 46 6. TMS_Shipping_Order........................................................................................................... 46 7. TMS_Shipping_Order_Status ............................................................................................... 46 8.Mô hình cài đặt SQL Server .............................................................................................. 47 CHƯƠNG 4 XÂY DỰNG APP TMS ........................................................................................... 48 I.Quản lý tài khoản .................................................................................................................... 48 1.1 Đăng nhập/Đăng xuất ...................................................................................................... 49 1.2 Thay đổi mật khẩu đăng nhập hệ thống ........................................................................ 50 II. Quản lý danh sách lệnh điều động (hiện tại) ..................................................................... 51 2.1 Xem thông tin chung của lệnh điều động....................................................................... 51 2.2 Xem danh sách lịch sử lệnh đã chạy............................................................................... 52 2.3 Xem chi tiết lệnh.............................................................................................................. 53 2.4 Cập nhật trạng thái lệnh(Vận Chuyển,Về Bến,Sự Cố)................................................. 54 2.5 Xem danh sách đơn hàng ................................................................................................ 55 2.6 Xem chi tiết đơn hàng...................................................................................................... 56 2.7 Cập nhật trạng đơn hàng(thành công, thất bại)............................................................ 57 2.8 Xem vị trí hiện tại, Điểm giao hàng của Lệnh (bản đồ)................................................ 58
  • 3. https://lop7.net/ 2.9 Thông tin COD và Cập nhật COD ................................................................................. 59 2.10 Thông tin Hàng Hóa....................................................................................................... 60 III. Quản lý lệnh (hiện tại)......................................................................................................... 61 3.1 Xem danh sách các đơn hàng trên lệnh.......................................................................... 61 3.2 Xem danh sách đơn hàng ................................................................................................ 62 3.3 Xem thông tin chuyển tải các đơn hàng......................................................................... 63 V. Barcode.................................................................................................................................. 64 KẾT LUẬN..................................................................................................................................... 67 1.Kết luận................................................................................................................................ 67 2. Hướng phát triển của đề tài:............................................................................................. 68 3. Ưu điểm: ............................................................................................................................. 68 4. Khuyết điểm: ..................................................................................................................... 68 TÀI LIỆU THAM KHẢO ......................................................................................................... 69 Website.................................................................................................................................... 69 Tiếng Anh................................................................................................................................ 69 Về google map api v3:............................................................................................................ 69 Ebook tham khảo:.................................................................................................................... 69
  • 4. https://lop7.net/ 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. 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
  • 5. https://lop7.net/ 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:
  • 6. https://lop7.net/ 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
  • 7. https://lop7.net/ 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: thanhbinh@bsm.com.vn 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 : ducphong@bsm.com.vn 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
  • 8. https://lop7.net/ 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
  • 9. https://lop7.net/ 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.
  • 10. https://lop7.net/ 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
  • 11. https://lop7.net/ 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
  • 12. https://lop7.net/ 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
  • 13. https://lop7.net/ Hình 1.7 Tổ chức sinh nhật cho các nhân viên hàng tháng
  • 14. https://lop7.net/ 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ị. HỘI ĐỒNG QUẢN TRỊ GIÁM ĐỐC ĐIỀU HÀNH HÀNH ĐẠI HỘI ĐỒNG CỔ ĐÔNG Phòng tổ chức hành chính Phòng kinh doanh tiếp thị Phòng kế toán- tài chính Phòng thanh tra phát chế Ban công tác chính trị-Xã hội Ban quản lý điều hành Xưởng sửa chữa BAN KIỂM SÁT
  • 15. https://lop7.net/ 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.
  • 16. https://lop7.net/ 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).
  • 17. https://lop7.net/ 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 T- Mobile 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ợ soft- keyboard 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 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.
  • 18. https://lop7.net/ 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). Hinh 2.2 Mô hình Linux kernel
  • 19. https://lop7.net/ 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 Hình 2.3 Mô hình Library và Android Runtime 2.3.1 Library
  • 20. https://lop7.net/ 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). 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.
  • 21. https://lop7.net/ 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. 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)
  • 22. https://lop7.net/ 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. 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:
  • 23. https://lop7.net/ 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à 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:
  • 24. https://lop7.net/ 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. 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
  • 25. https://lop7.net/ 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 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.
  • 26. https://lop7.net/ Hình 3 Mô hình Service 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
  • 27. https://lop7.net/ 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. Manifest file là một file XML có cấu trúc và thường được đặt tên là AndroidManifest.xml cho mọi ứng dụng. Nó thực hiện một số bổ sung để khai báo các thành phần của ứng dụng, như là nêu tên các thư viện ứng dụng cần đến, và xác định các quyền hạn của ứng dụng muốn được cấp. Ví dụ như nó khai báo các Activity trong chương trình của chúng ta, khi khởi động chương trình thì Activity nào sẽ được thực hiện đầu tiên, các quyền truy cập Internet, SDCard, hay các vấn đề về gửi nhận tin nhắn, cuộc gọi... 7. Giao diện người dùng trong Android Trong một ứng dụng Android, giao diện người dùng được xây dựng bằng cách sử dụng View và ViewGroup đối tượng. Có nhiều loại quan điểm và các nhóm view, mỗi một trong số đó là hậu duệ của lớp View. View objects là các đơn vị cơ bản của biểu hiện giao diện người dùng trên nền tảng Android. Các class xem như là cơ sở phục vụ cho class con được gọi là "widget", trong đó cung cấp đầy đủ các đối tượng thực hiện giao diện, giống như các lĩnh vực văn bản và nút. Class ViewGroup phục vụ như là cơ sở cho lớp con được gọi là " layouts", cung cấp các loại khác nhau của kiến trúc bố trí, như linear, tabular và relative. 8. Các thành phần giao diện Widget Có rất nhiều cách bố trí giao diện. Sử dụng nhiều hơn và các loại khác nhau của các view group, bạn có thể cấu trúc views con và view groups trong vô số cách. Xác định các nhóm xem được cung cấp bởi Android (gọi là layouts) bao gồm
  • 28. https://lop7.net/ LinearLayout, RelativeLayout, TableLayout, GridLayout và khác. Mỗi cung cấp một bộ duy nhất của các thông số bố trí được sử dụng để xác định vị trí của views con và cơ cấu layout Để tìm hiểu về một số các loại khác nhau của các view group được sử dụng cho một layout, đọc Giao diện đối tượng thường gặp. Widget là một object View phục vụ như một giao diện để tương tác với người dùng. Android cung cấp một tập các widgets thực hiện đầy đủ, giống như các button, Checkbox, và text-entry , do đó bạn có thể nhanh chóng xây dựng giao diện người dùng của bạn. Một số widgets được cung cấp bởi Android phức tạp hơn, giống như một date picker, clock, và zoom controls. Nhưng nó không giới hạn trong các loại widgets được cung cấp bởi các nền tảng Android. 9. Bắt sự kiện trong Android Khi đã thêm một số Views/widgets đến giao diện. Để được thông báo về UI events người dùng, cần phải làm một trong hai điều: Xác định một sự kiện nghe và đăng ký nó với các View. Đây là cách lắng nghe sự kiện. Các class View có một phương pháp gọi là On(). Ví dụ: View.OnClickListener (để xử lý "nhấp chuột" trên một View), View.OnTouchListener ( để xử lý các sự kiện màn hình cảm ứng trong một View), và View.OnKeyListener (để xử lý thiết bị ép quan trọng trong một View). Vì vậy nếu muốn View được thông báo khi nó là " clicked" (chẳng hạn như khi một nút được chọn), thực hiện và xác định OnClickListener của nó gọi method onClick() (nơi thực hiện các hành động sau khi nhấp chuột), và đăng ký nó vào Xem với setOnClickListener(). Ghi đè một callback method hiện cho View. Đây là những gì nên làm gì khi đã thực hiện lớp View của riêng bạn và muốn lắng nghe cho các sự kiện cụ thể xảy ra trong nó. Ví dụ về các sự kiện có thể xử lý bao gồm màn hình là touched onTouchEvent() khi trackball là di chuyển onTrack ballEvent() hoặc khi một phím trên thiết bị được nhấn onKeyDown(). Điều này cho phép xác định các hành vi mặc định cho từng sự kiện bên trong tuỳ chỉnh View và xác định xem sự kiện này cần được thông qua ngày để View con khác. Một lần nữa, đây là những callbacks View class, do đó, cơ hội duy nhất của bạn để xác định đó là khi bạn xây dựng một phần tùy chỉnh.
  • 29. https://lop7.net/ 10. Menu Menu đơn có một phần quan trọng của giao diện người dùng trong một ứng dụng. Menus cung cấp một giao diện đáng tin cậy cho thấy rằng các chức năng ứng dụng và cài đặt. Trong trình đơn ứng dụng phổ biến nhất là tiết lộ bằng cách bấm phím MENU trên thiết bị. Tuy nhiên, cũng có thể thêm Context Menus, có thể hiển thị khi người sử dụng máy nhấn và nắm giữ phím trên một mục. Thực đơn cũng được hệ thống phân cấp cấu trúc bằng cách sử dụng một xem, nhưng bạn không xác định cấu trúc này cho mình. Thay vào đó, xác định onCreateOptionsMenu() or onCreateContext Menu() gọi method cho hoạt động của mình và tuyên bố các mục mà mình muốn bao gồm trong menu của mình. Trong một thời gian thích hợp, Android sẽ tự động tạo ra hệ thống View phân cấp cần thiết cho menu, và rút ra mỗi trong mỗi menu items đó. II. PHÂN TÍCH XML TRONG ANDROID A.Tổng quan về XML 1.Khái niệm XML (viết tắt từ tiếng Anh Extensible Markup Language, “Ngôn ngữ Đánh dấu Mở rộng”) là ngôn ngữ đánh dấu với mục đích chung do W3C đề nghị, để tạo ra các ngôn ngữ đánh dấu khác. Đây là một tập con đơn giản của SGML, có khả năng mô tả nhiều loại dữ liệu khác nhau. Mục đích chính của XML là đơn giản hóa việc chia sẻ dữ liệu giữa các hệ thống khác nhau, đặc biệt là các hệ thống được kết nối với Internet. Các ngôn ngữ dựa trên XML (thí dụ: RDF, RSS, MathML, XHTML, SVG, và cXML) được định nghĩa theo cách thông thường, cho phép các chương trình sửa đổi và kiểm tra hợp lệ bằng các ngôn ngữ này mà không cần có hiểu biết trước về hình thức của chúng. 2.Đặc điểm của XML XML cung cấp một phương tiện dùng văn bản (text) để mô tả thông tin và áp dụng một cấu trúc kiểu cây cho thông tin đó. Tại mức căn bản, mọi thông tin đều thể hiện dưới dạng text, chen giữa là các thẻ đánh dấu (markup) với nhiệm vụ ký hiệu sự phân chia thông tin thành một cấu trúc có thứ bậc của các dữ liệu ký tự, các phần tử dùng để chứa dữ liệu, và các thuộc tính của các phần tử đó. Về mặt đó, XML tương tự với các biểu thức S (S-expression) của ngôn ngữ lập trình LISP ở chỗ chúng đều mô tả các cấu trúc cây mà trong đó mỗi nút có thể có một danh sách tính chất của riêng mình.
  • 30. https://lop7.net/ Đơn vị cơ sở của XML là các ký tự theo định nghĩa của Universal Character Set (Bộ ký tự toàn cầu). Các ký tự được kết hợp theo các tổ hợp chuỗi hợp lệ để tạo thành một tài liệu XML. Tài liệu này gồm một hoặc nhiều thực thể, mỗi thực thể thường là một phần nào đó của các ký tự thuộc tài liệu, được mã hóa dưới dạng một chuỗi các bit và lưu trữ trong một tệp văn bản (text file). Sự phổ biến của các phần mềm soạn thảo văn bản (word processor) đã hỗ trợ việc soạn thảo và bảo trì tài liệu XML một cách nhanh chóng. Trước XML, có rất ít ngôn ngữ mô tả dữ liệu với các đặc điểm đa năng, thân thiện với giao thức Internet, dễ học và dễ tạo. Thực tế, đa số các định dạng trao đổi dữ liệu thời đó đều chuyện dụng, có tính độc quyền, và có định dạng nhị phân (chuỗi bit thay vì chuỗi ký tự) khó dùng chung giữa các ứng dụng phần mềm khác nhau hay giữa các hệ nền (platform) khác nhau. Việc tạo và bảo trì trên các trình soạn thảo thông dụng lại càng khó khăn. Bằng cách cho phép các tên dữ liệu, cấu trúc thứ bậc được phép, và ý nghĩa của các phần tử và thuộc tính có tính chất mở và có thể được định nghĩa bởi một giản đồ tùy biến được, XML cung cấp một cơ sở cú pháp cho việc tạo lập các ngôn ngữ đánh dấu dựa XML theo yêu cầu. Cú pháp chung của các ngôn ngữ đó là cố định – các tài liệu phải tuân theo các quy tắc chung của XML, bảo đảm rằng tất cả các phần mềm hiểu XML ít ra cũng phải có khả năng đọc (phân tích cú pháp – parse) và hiểu bố cục tương đối của thông tin trong các tài liệu đó. Giản đồ chỉ bổ sung một tập các ràng buộc cho các quy tắc cú pháp. Các giản đồ thường hạn chế tên của phần tử và thuộc tính và các cấu trúc thứ bậc được phép, ví dụ, chỉ cho phép một phần tử tên ‘ngày sinh’ chứa một phần tử tên ‘ngày’ và một phần tử có tên ‘tháng’, mỗi phần tử phải chứa đúng một ký tự. Đây là điểm khác biệt giữa XML và HTML. HTML có một bộ các phần tử và thuộc tính không mềm dẻo, chỉ có một tác dụng và nói chung là không thể dùng cho mục đích khác. XML không hạn chế về việc nó được sử dụng như thế nào. Mặc dù XML về cơ bản là dạng text, các phần mềm với chức năng trừu tượng hóa nó thành các định dạng khác giàu thông tin hơn đã nhanh chóng xuất hiện, quá trình trừu tượng hóa này được thực hiện chủ yếu qua việc sử dụng các giản đồ định hướng kiểu dữ liệu (datatype-oriented schema) và khuôn mẫu lập trình hướng đối tượng (mà trong đó, mỗi tài liệu XML được thao tác như là một đối tượng). Những phần mềm như vậy
  • 31. https://lop7.net/ có thể coi XML như là dạng text đã được tuần tự hóa chỉ khi nó cần truyền dữ liệu qua mạng. 3.Cấu trúc của XML Cú pháp XML cơ bản cho một phần tử là: nội dung Ví dụ: <thuvien> <sach> <tensach>heri</tensach> <NXB>NXB tre</NXB> <gia>12000</gia> </sach> <sach> <tensach>Vuot thoi gian</tensach> <NXB>NX Kim Dong</NXB> <gia>16000</gia> </sach> <sach> <tensach>Chi em</tensach> <NXB>NXB Kim Dong</NXB> <gia>14000</gia> </sach> </thuvien> 4. RSS RSS là một dạng file XML được cung cấp bởi hầu hết các trang báo điện tử ngày nay với mục đích cho phép người dùng có thể lấy nội dung bài viết để sử dụng với các mục đích khác nhau. 5. Các lớp, giao diện phân tích XML trong Android Java API for XML Processing, hay JAXP, là một trong các API cho lập trình Java XML. Nó cung cấp khả năng kiểm chứng và phân tích các tài liệu XML. Hai loại giao diện (interface) để phân tích cơ bản là: Giao diện phân tích dạng Mô hình đối tượng tài liệu (Document Object Model), viết tắt là DOM Giao diện phân tích API đơn giản dành cho XML (Simple API for XML) - viết tắt là SAX
  • 32. https://lop7.net/ StAX, API dẫn luồng cho XML (the Streaming API for XML). Cùng với các giao diện phân tích, API này còn cung cấp một giao diện XSLT để cung cấp việc chuyển đổi dữ liệu và cấu trúc từ một tài liệu XML sang một dạng khác. 5.1.Giao diện DOM Giao diện DOM có lẽ là một giao diện dễ hiểu nhất. Nó phân tích toàn bộ tài liệu XML và kiến thiết một cấu trúc hoàn chỉnh đại diện cho bản tài liệu, trong bộ nhớ, bằng cách dùng các lớp để mô hình hóa các khái niệm đã ghi trong Tài liệu chi tiết đặc tả kĩ thuật của Document Object Model(DOM) Cấp độ 2. Bộ phân tích DOM được gọi là DocumentBuilder, vì nó tạo nên một hình thức đại diện cho Document trong bộ nhớ. javax.xml.parsers.DocumentBuilder được tạo nên bởijavax.xml.parsers.DocumentBuilderFactory. DocumentBuilder tạo ra một trường hợp của org.w3c.dom.Document, tức một cấu trúc cây chứa các nốt trong Tài liệu XML. Mỗi nốt cây trong cấu trúc thực hiện một giao diện org.w3c.dom.Node. Có nhiều loại nốt cây đại diện cho loại dữ liệu tìm thấy trong bản tài liệu XML. Loại nốt quan trọng nhất là: Nốt phần tử. Loại này có thể có các thuộc tính nằm ở bên trong. Nốt văn bản. Loại này đại diện cho phần văn bản nằm giữa thẻ mở và thẻ đóng của một phần tử tài liệu. 5.2.Giao diện SAX Bộ phân tích SAX được gọi là SAXParser và được tạo bằng javax.xml.parsers.SAXParserFactory. Khác với bộ phân tích DOM, bộ SAXParser không tạo ra một hình thức đại diện của tài liệu XML trong bộ nhớ và vì thế nó hoạt động nhanh hơn, ít tốn bộ nhớ hơn. Thay vào đó, bộ phân tích SAXParser thông báo cho các trình khách cấu trúc của tài liệu XML bằng cách gọi các hàm callbacks, nghĩa là, bằng cách gọi các phương pháp của trường hợp bản mẫu: Javadoc:SE đã được cung cấp cho bộ phân tích. Lớp DefaultHandler nằm trong gói org.xml.sax.helpers. Lớp này thực hiện các giao diện ContentHandler, ErrorHandler, DTDHandler, và EntityResolver. Đại bộ phận các trình khách chỉ quan tâm đến những phương pháp được định nghĩa trong giao diện ContentHandler mà thôi.
  • 33. https://lop7.net/ Các phương pháp của giao diện ContentHandler, được DefaultHandler thực hiện, được gọi đến khi bộ phân tích SAX bắt gặp những phần tử tương ứng trong bản tài liệu XML. Những phương pháp chủ yếu trong giao diện này bao gồm: Phương thức startDocument(): được gọi khi bắt đầu tài liệu. Phương thức endtDocument(): được gọi kết thúc tài liệu. Phương thức startElement(): được gọi khi bắt đầu một thẻ. Phương thức endElement(): được gọi khi kết thúc một thẻ. Phương thức characters(): được gọi sau khi gọi phương thức startElement(), để phân tích nội dung bên trong thẻ đó. Các trình khách cung cấp một phân lớp của DefaultHandler. Phân lớp này được sử dụng để lấn quyền những phương pháp trên và xử lý dữ liệu. Quá trình này có thể bao gồm việc lưu trữ dữ liệu vào trong cơ sở dữ liệu, hoặc viết chúng ra một luồng (dữ liệu). 5.3.Giao diện XSLT Ngôn ngữ tập tin định dạng XML dành cho việc chuyển đổi - (The XML Stylesheet Language for Transformations, hay XSLT) cho phép biến đổi một bản tài liệu XML sang các dạng thức dữ liệu khác. 6. Phân tích nội dung XML trong Android sử dụng SAX 6.1.Sơ lược về SAX SAX (Simple API for XML), gồm có 2 interface chính: XMLReader là interface dùng để đọc XML và ContentHandler dùng để nhận và xử lý dữ liệu từ XML. Hai interface này giải quyết 90% nhu cầu của người dùng với SAX. SAX (Simple API for XML) được phát minh vào cuối năm 1998 khi Peter, Murray-Rust và một số tác giả phân tích cú pháp XML được viết bằng Java nhận ra rằng sẽ không hợp lý khi dùng quá nhiều các bộ APIkhác nhau cho chung 1 mục đích là đọc XML . Murray-Rust là người đầu tiên đề xuất những gì ông gọi là "YAXPAPI". Lý do Murray-Rust muốn đặt tên là Yet Another XML Parser API đã vì ông đã hoàn toàn bị mệt mỏi vì phải dùng nhiều hàm API phân tích cú pháp XML cho ứng dụng JUMBO. Thay vào đó, ông muốn có một API chuẩn tất cả mọi người có thể đồng ý. Sau một thời gian ngắn beta SAX 1.0 được phát hành vào ngày 11 tháng năm 1998. 6.2. Ưu điểm của SAX
  • 34. https://lop7.net/ -Đơn giản -Sử dụng ít bộ nhớ -Tốc độ xử lý nhanh -Tập trung vào dữ liệu hiện hành -Dễ sử dụng để lọc dữ liệu -Tuy nhiên SAX có các nhược điểm sau: -Không thể tác động lên dữ liệu XML -Chế độ lưu trữ trạng thái phức tạp -Khó khăn khi phân tích cấu trúc XML lớn 6.3. Các khái niệm dùng trong SAX Parsing: là quá trình đọc file XML và lấy dữ liệu của XML đưa vào chương trình đồng thời check lỗi cú pháp của XML. Callback Interface: SAX sử dụng các đối tượng Observer để đọc dữ liệu trong file XML. Lập trình viên JAVA đã quen thuộc với kiến trúc lập trình theo sự kiện của AWT và Swing. Ví dụ như khi chúng ta viết 1 class thực thi từ interfaceMouseListener, class này sẽ mặc nhiên có các sự kiện của interface này. Sau đó chúng ta đăng ký class này vào cho 1 object ví dụ như là button, button này có thể nhận các sự kiện liên quan đến thao tác của con trỏ. SAX cũng hoạt động theo cấu trúc đó. Tuy nhiên điểm khác biệt lớn nhất giữa Swing và SAX là SAX không cho phép gắn nhiều hơn 1 sự kiện cho cùng 1 object
  • 35. https://lop7.net/ III. SQL SERVER 1. Khái niệm, định nghĩa SQL server? SQL Server là viết tắt của Structure Query Language, nó là một công cụ quản lý dữ liệu được sử dụng phổ biến ở nhiều lĩnh vực. Hầu hết các ngôn ngữ bậc cao đều có trình hỗ trợ SQL như Visual BASic,Oracle,Visual C… Các chương trình ứng dụng và các công cụ quản trị CSDL cho phép người sử dụng truy nhập tới CSDL mà không cần sử dụng trực tiếp SQL. Nhưng những ứng dụng đó khi chạy phải sử dụng SQL. 2. Lịch sử phát triển SQL Server được phát triển từ ngôn ngữ SEQUEL2 bởi IBM theo mô hình Codd tại trung tâm nghiên cứu của IBM ở California ,vào những năm 70 cho hệ thống QTCSDL lớn. Đầu tiên SQL Server được sử dụng trong các ngôn ngữ quản lý CSDL và chạy trên các máy đơn lẻ. Song do sự phát triển nhanh chóng của nhu cầu xây dựng những CSDL lớn theo mô hình khách chủ( trong mô hình này toàn bộ CSDL được tập trung trên máy chủ (Server)). Mọi thao tác xử lý dữ liệu được thực hiện trên máy chủ bằng các lệnh SQL máy trạm chỉ dùng để cập nhập hoặc lấy thông tin từ máy chủ). Ngày nay trong các ngôn ngữ lập trình bậc cao đều có sự trợ giúp của SQL. Nhất là trong lĩnh vực phát triển của Internet ngôn ngữ SQL càng đóng vai trò quan trọng hơn. Nó được sử dụng để nhanh chóng tạo các trang Web động.. SQL đã được viện tiêu chuẩn quốc gia Mỹ (ANSI)và tổ chức tiêu chuẩn quốc tế (ISO) chấp nhận như một ngôn ngữ chuẩn cho CSDL quan hệ .Nhưng cho đến nay chuẩn này chưa đưa ra đủ 100%.Nên các SQL nhúng trong các ngôn ngữ lập trình khác nhau đã được bổ xung mở rộng cho SQL chuẩn cho phù hợp với các ứng dụng của mình.Do vậy có sự khác nhau rõ ràng giưã các SQL. 3. Đặc điểm của SQL Server và đối tượng làm việc 3.1. Đặc điểm – SQL là ngôn ngữ tựa tiếng Anh. – SQL là ngôn ngữ phi thủ tục, nó không yêu cầu ta cách thức truy nhập CSDL như thế nào. Tất cả các thông báo của SQL đều rất dễ sử dụng và ít khả năng mắc lỗi. – SQL cung cấp tập lệnh phong phú cho các công việc hỏi đáp DL + Chèn, cập nhật, xoá các hàng trong một quan hệ
  • 36. https://lop7.net/ + Tạo, sửa đổi, thêm và xoá các đối tượng trong của CSDL. + Điều khiển việc truy nhập tới cơ sở dữ liệu và các đối tượng của CSDL để đảm bảo tính bảo mật của cơ sở DL +Đảm bảo tính nhất quán và sự ràng buộc của CSDL. – Yêu cầu duy nhất để sử dụng cho các hỏi đáp là phải nắm vững được các cấu trúc CSDL của mình. 3.2. Đối tượng làm việc của SQL Server Là các bảng ( tổng quát là các quan hệ )dữ liệu hai chiêù .Các bảng này bao gồm một hoặc nhiều cột và hàng.Các cột gọi là các trường ,các hàng gọi là các bản ghi.Cột với tên gọi và kiểu dữ liệu (kiểu dl của mỗi cột là duy nhất)xác định tạo nên cấu trúc của bảng (Ta có thể dùng lệnh Desc[ribe] TABLE-name để xem cấu trúc của bảng ,phần tuỳ chọn[] có thể được bỏ trong Oracle).Khi bảng đã được tổ chức hệ thống cho một mục đích nào đó có một CSDL IV. CLOUD SERVER Cloud server là gì? Trong những năm gần đây, ngành công nghệ thông tin Internet càng ngày càng phát triển. Cùng với sự phát triển đó, các doanh nghiệp, tổ chức sẽ phải đầu tư chi phí lớn cho khâu mua mới, bảo trì và vận hành máy chủ (server). Tuy nhiên với sự ra đời của công nghệ điện toán đám mây (Cloud Computing), các tổ chức doanh nghiệp sẽ không phải đầu tư chi phí quá lớn cũng có thể sở hữu 1 chiếc server (máy chủ) để phục vụ cho các hoạt động kinh doanh, phát triển thương mại, ứng dụng công nghệ thông tin vào sản xuất. Các tổ chức doanh nghiệp có thể lựa chọn các máy chủ ảo hay VPS (Virtual Private Server) để có thể sử dụng như 1 server riêng cho nhu cầu của doanh nghiệp. Tuy nhiên ngày nay các doanh nghiệp tổ chức có thể sử dụng công nghệ Cloud Server với hiệu quả và công nghệ cao hơn. Cloud server cung cấp một server riêng ảo giống như VPS nhưng được triển khai và phát triển trên nền tảng của công nghệ điện toán đám mây, do đó Cloud server kế thừa các ưu điểm vượt trội của công nghệ điện toán đám mây mà sẽ không thể có được khi sử dụng các VPS thông thường. Ngoài ra, Cloud Server của DIGISTAR có thêm những tính năng cao cấp mới điển hình như sử dụng giải pháp công nghệ Cloud Storage tiên tiến của Parallels dùng SSD Caching và phân bổ I/O đều trên các Server vật lý để khắc phục
  • 37. https://lop7.net/ nhược điểm thắt cổ chai (bottleneck) của hệ thống SAN, mang lại cho CLoud Server mới của DIGISTAR một tốc độ đáng kinh ngạc. Tính năng Cloud Server • Được xây dựng trên các máy chủ CISCCO mạnh nhất cùng với công nghệ hàng đầu đảm bảo sức mạnh tốt nhất cho hệ thống Cloud Server. • Tính năng Cloud Server do DIGISTAR cung cấp chủ yếu là công nghệ ảo hóa phần cứng – Hardware Virtualization tương tự cơ chế KVM thông dụng. • Dùng ổ cứng truy xuất dữ liệu hoàn toàn bằng SSD đem đến tốc độ truy xuất ổ cứng lên tới trên 800 Mbps/s. • Cloud Server của DIGISTAR dùng cách phân phối I/O trên các Server vật lý nhàn rỗi đảm bảo hiệu xuất vận hành tốt nhất và ổn định nhất. • DIGISTAR cam kết tài nguyên cung cấp cho từng Cloud Server là riêng biệt và không sử dụng chung như các dịch vụ VPS thông thường. • Tài nguyên Cloud Server đảm bảo cung cấp tới hàng trăm ngàn CPU, Gygabyte RAM và Petabyte dữ liệu cho hàng ngàn khách hàng. • Sử dụng công nghệ Cloud Storage phân tán dữ liệu khắc phục hoàn toàn nhược điểm của các hệ thống Cloud lưu trữ dữ liệu tập trung.
  • 38. https://lop7.net/ Chương 3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG I. Danh mục các chức năng chính ● Quản lý tài khoản -Đăng nhập/Đăng xuất -Thay đổi mật khẩu đăng nhập hệ thống ● Quản lý lệnh điều động (hiện tại) -Xem thông tin chung của lệnh điều động -Xem lộ trình đề xuất (bản đồ) -Xem vị trí hiện tại, lộ trình thực tế, tình hình giao hàng (bản đồ) -Cập nhật trạng thái lệnh (giao hàng, sự cố) ● Quản lý đơn hàng (hiện tại) -Xem danh sách các đơn hàng trên lệnh - Xem thông tin chi tiết đơn hàng - Cập nhật trạng thái đơn hàng (Xác nhận giao hàng thành công, thông báo giao hàng thất bại, xác nhận chuyển tải) - Xem thông tin chuyển tải các đơn hàng - Scan các chứng từ liên quan ● Lịch sử - Xem danh sách lịch sử lệnh đã chạy ● Barcode - Scan barcode trên đơn hàng vật lý để truy cập nhanh vào form quản lý các tác vụ của đơn hàng này
  • 39. https://lop7.net/ II.Mô tả sơ lược chức năng TMS cho di động Hình 3.0 Sơ đồ phân cấp chức năng của hệ thống III.Biểu đồ luồng dử liệu 3.1 Biểu đồ luồng dữ liệu mức khung cảnh Nhìn từ mức độ tổng quát trên biểu đồ phân cấp chức năng ta không thể nhận thấy rõ được các mối quan hệ giữa các dữ liệu. Để cho nhìn thấy chi tiết liên hệ với dữ liệu cần để thực hiện các công
  • 40. https://lop7.net/ việc của bài toán nhóm sử dụng biểu đồ luồng dữ liệu. Biểu đồ mức khung cảnh cần thể hiện các tác nhân của hệ thống, các luồng dữ liệu tổng quan. Hình 3.1 Biểu đồ luồng dữ liệu mức khung cảnh 3.2 Biểu đồ luồng dữ liệu mức đỉnh Biểu đồ dữ liệu mức đỉnh thể hiện mối quan hệ của các chức năng chính trong hệ thống với các tác nhân,dữ liệu Hình 3.2 Biểu đồ luồng dữ liệu mức đỉnh Tài xế Các thông tin tiện ích TT Tài xế APP Xe m lện h Chuyển tải Web Yêu cầu Lệnh Web TT đăng nhập TT phả n hồi TT phản hồi Xóa TT Tài xế KH Báo cáo trả lời
  • 41. https://lop7.net/ 3.3 Biểu đồ luồng dữ liệu mức 1 của chức năng chuyển tải Hình 3.3 Biểu đồ luồng dữ liệu mức 1 của chức năng chuyển tải 3.4 Biểu đồ luồng dữ liệu mức 1 của chức năng Tìm kiếm Chức năng tìm kiếm của hệ thống được chia làm 2 tiêu chí tìm kiếm khác nhau: tìm kiếm theo giá của sản phẩm và tìm kiếm theo tên sản phẩm.Khi người dùng muốn tìm kiếm theo tiêu chí nào thì sẽ tìm kiếm theo tiêu chí đó và hệ thống sẽ tìm trong bảng cơ sở dữ liệu và gửi trả lại thông tin yêu cầu từ phía người dùng.
  • 42. https://lop7.net/ Hình 3.4 Biểu đồ luồng dữ liệu mức 1 của chức năng tìm kiếm 3.5 Biểu đồ luồng dữ liệu mức 1 của chức năng quản trị Hình 3.5 Biểu đồ luồng dữ liệu mức 1 của chức năng quản trị
  • 43. https://lop7.net/ 3.6 Mô hình ERD: Hình 3.6 Mô hình ERD
  • 44. https://lop7.net/ 3.7 Chuyển từ ERD sang lược đồ qan hệ Hình 3.7 Lược đồ quan hệ
  • 45. https://lop7.net/ IV.Thiết kế CSDL cho hệ thống APP TMS Các bảng trong CSDL 1. Order: Mỗi Đơn hàng có một mã Đơn hàng để phân biệt với các Đơn hàng khác, tên Đơn hàng, số lượng nhập theo thời điểm ngày nhập, đơn vị hay qui cách mỗi sản phẩm, mỗi sản phẩm thuộc về một loại theo nhà nhà sản xuất. Hình 4.0 Order 2.TMS_Driver: Hình 4.1 TMS_Driver: 3. TMS_Location Hình 4.2 TMS_Location
  • 46. https://lop7.net/ 4. TMS_Order_Status Hình 4.3 TMS_Order_Status 5. TMS_Route Hình 4.4 TMS_Route 6. TMS_Shipping_Order Hình 4.5 TMS_Route 7. TMS_Shipping_Order_Status Hình 4.6 TMS_Shipping_Order_Status
  • 47. https://lop7.net/ 8.Mô hình cài đặt SQL Server Hình 4.7 Mô hình cài đặt SQL Server TMS_Driver Driver_ID Driver_Code Driver_Name Diver_User Driver_Password Phone Truck_Number User_Create Create_Date TMS_Location Location_ID Location_Code Location_Name Location_Address Location_Latitude Location_Longitude Location_Description Country_ID District_ID Province_ID Ward_ID Phone Fax Created_Date Created_By Updated_By TMS_Order Order_ID Order_Code Order_Date Shipping_Date Customer TMS_Location_ID ItemType Total_Carton Total_Weight Total_CBM COD COD_Is_Receive Order_Status_ID Location_ID Address County District Ward Receiver Phone User_Create Create_Date Is_Tranfer TMS_Order_Status Order_Status_ID Status_Name Description TMS_Route Route_ID Route_Code Route_Name Distance Description UserCreate Create_Date TMS_Shipping_Order Shipping_Order_ID Shipping_Order_Code Shipping_Order_Date Order_ID Driver_ID Route_ID DeliveredDate Total_Carton Total_Weight Total_CBM Shipping_Order_Status_ID ClosedDate User_Create DescriptionErr TMS_Shipping_Order_Status Shipping_Order_Status_ID Shipping_Order_Status_Name Description
  • 48. https://lop7.net/ CHƯƠNG 4 XÂY DỰNG APP TMS I.Quản lý tài khoản Hình 4.1.0 Flash screen
  • 49. https://lop7.net/ 1.1 Đăng nhập/Đăng xuất Hình 4.1.1 Màn hình Đăng nhập Giải thích • Dữ liệu đầu vào : UserName,Password • ID Component: txtUserName(UserName),txtPassword(Password) • Xử lý dữ liệu: Activity chứa các hàm xử lý để phục vụ cho Login là Login_Activity Thuật toán kiểm tra thông tin user và password: 1. Biến dữ liệu: username=txtUserName.text Password=txtPassWord.text 2. Truy vấn : SELECT Driver_ID From TMS_Driver Where Driver_User = userName and Driver_PassWord=password 3. Nếu tồn Driver_ID với các điều kiện trên thì đóng Login_Activity chuyển sang Main_Activity
  • 50. https://lop7.net/ 1.2 Thay đổi mật khẩu đăng nhập hệ thống Hình 4.1.2 Thay đổi mật khẩu Giải thích • Dữ liệu đầu vào :Mật khẩu hiện tại,Mật Khẩu Mới,Xác Nhận Mật Khẩu Mới • ID Component: txtPassword_Temp,txtPassword_New,txtPassword_Re • Xử lý dữ liệu: Thuật toán kiểm tra thông tin user và password: ❖ Kiểm tra nếu không có Driver nào được lưu thì chuyển sang màn hình Login ngược lại tiến hành thuật toán thay đổi password với Driver_ID được lấy từ trong lưu bộ nhớ của hệ thống ❖ Biến dữ liệu: password_temp= txtPassword_Temp.text password_new= txtPassword_New.text Password_re= txtPassword_Re.text ❖ Truy vấn dữ liệu :SELECT Driver_ID From TMS_Driver Where Driver_User= UserName and Driver_PassWord= password_temp
  • 51. https://lop7.net/ ❖ Nếu tồn Driver_ID với các điều trên và Password_new=Password_re tiến hành cập nhật thông tin password ❖ Truy vấn dữ liệu :Upate Driver SET Driver_PassWord= Password_new WHERE Driver_ID=DriverID II. Quản lý danh sách lệnh điều động (hiện tại) 2.1 Xem thông tin chung của lệnh điều động Hình 4.1.3 Xem thông tin chung của lệnh điều động Giải thích • Dữ liệu đầu vào : Id Tài Xế(Driver_ID) • Xử lý dữ liệu : Thuật toán kiểm tra Driver_ID ❖ Kiểm tra thông tin Driver_ID được lưu trong hệ thống ,nếu không tồn tại Driver_ID thì chuyển sang màn hình Login . Ngược lại lấy danh sách lệnh theo Driver_ID với các lênh ở trạng thái : “CONFIRM”
  • 52. https://lop7.net/ ❖ Truy vấn dữ liệu : SELECT a.Shipping_Order_ID,a.Shipping_Order_Code,b.Shipping_Order_ Status_Name from TMS_Shipping_Order a LEFT JOIN TMS_Shipping_Order_Status b on a.Shipping_Order_ID=b.Shipping_Order_Status_ID WHERE b.Shipping_Order_Status_Name =“CONFIRM” 2.2 Xem danh sách lịch sử lệnh đã chạy Hình 4.1.4 Xem danh sách lịch sử đã chạy Giải thích • Dữ liệu đầu vào : Id Tài Xế(Driver_ID) • Xử lý dữ liệu : Thuật toán kiểm tra Driver_ID ❖ Kiểm tra thông tin Driver_ID được lưu trong hệ thống ,nếu không tồn tại Driver_ID thì chuyển sang màn hình Login . Ngược lại lấy danh sách lệnh theo Driver_ID ❖ Truy vấn dữ liệu : SELECT a.Shipping_Order_ID,a.Shipping_Order_Code,b.Shipping_Order_ Status_Name from TMS_Shipping_Order a LEFT JOIN TMS_Shipping_Order_Status b on a.Shipping_Order_ID=b.Shipping_Order_Status_ID
  • 53. https://lop7.net/ 2.3 Xem chi tiết lệnh 1.Thông tin lệnh Hình 4.1.5 Xem chi tiết lệnh Giải thích • Dữ liệu đầu vào :Mã lệnh điều động(Shipping_Order_ID) • Xử lý dữ liệu : Thuật toán kiểm tra và lấy dữ liệu chi tiết lệnh theo Shipping_Order_ID Truy vấn dữ liệu : SELECT c.Truck_Number,d.Route_Name,a.Shipping_Order_Date,c.Driver_Name, c.Phone,a.Total_Carton,a.Total_Weight,a.Total_CBM,a.DeliveredDate,C losedDate FROM TMS_Shipping_Ordera LEFT JOIN TMS_Shipping_Order_StatusbONa.Shipping_Order _ID=b.Shipping_Order_Status_ID LEFT JOIN TMS_Driver c on a.Driver_ID=c.Driver_ID LEFT JOIN TMS_Routedona.Route_ID=d.Route_ID
  • 54. https://lop7.net/ WHERE b.Shipping_Order_Status_Name=”CONFIRM” And a.Shipping_Order_ID=Shipping_Order_ID 2.4 Cập nhật trạng thái lệnh(Vận Chuyển,Về Bến,Sự Cố) Hình 4.1.6 Cập nhật trạng thái lệnh Giải thích • Dữ liệu đầu vào :Mã lệnh điều động(Shipping_Order_ID) • Xử lý dữ liệu : Thuật toán kiểm tra và cập nhật dữ liệu lệnh theo Shipping_Order_ID Truy vấn dữ liệu: ➢ Trường hợp Vận Chuyển với Shipping_OrderCode=”ISDRIVING” Truy vấn: UPDATE TMS_Shipping_Order SET Shipping_Order_Status_ID=( SELECT Shipping_Order_Status_ID WHERE Shipping_Order_Status_Name='ISDRIVING' )
  • 55. https://lop7.net/ ➢ Trường hợp Vận Chuyển với Shipping_OrderCode=”ISTROUBLE” Truy vấn: UPDATE TMS_Shipping_Order SET Shipping_Order_Status_ID=( SELECT Shipping_Order_Status_ID WHERE Shipping_Order_Status_Name=’ISTROUBLE’ ) ➢ 3.Trường hợp Vận Chuyển với Shipping_OrderCode=’ISCOMEBACK’ Truy vấn: UPDATE TMS_Shipping_Order SET Shipping_Order_Status_ID=( SELECT Shipping_Order_Status_ID WHERE Shipping_Order_Status_Name=’ISCOMEBACK’ ) 2.5 Xem danh sách đơn hàng Hình 4.1.7 Xem dah sách đơn hàng Giải Thích
  • 56. https://lop7.net/ • Dữ liệu đầu vào :Mã lệnh điều động(Shipping_Order_ID) • Xử lý dữ liệu : Thuật toán kiểm tra và lấy dữ liệu đơn hàng theo Shipping_Order_ID Truy vấn dữ liệu : SELECT c.Order_Code,c.Address,c.County,c.District,c.Ward,d.Status_Name FROM TMS_Shipping_Order a LEFT JOIN TMS_Shipping_Order_Status b ON a.Shipping_Order_ID=b.Shipping_Order_Status_ID LEFT JOIN TMS_Ordercona.Order_ID=c.Order_ID LEFT JOIN TMS_Order_Status d on c.Order_Status_ID=d.Order_Status_ID WHERE b.Shipping_Order_Status_Name=”CONFIRM” 2.6 Xem chi tiết đơn hàng Hình 4.1.8 Xem chi tiết đơn hàng Giải Thích • Dữ liệu đầu vào :Mã đơn hàng(Order_ID) • Xử lý dữ liệu : Kiểm tra và lấy dữ liệu đơn hàng theo Order_ID Truy vấn dữ liệu : SELECT a.Shipping_Date,a.Customer,a.Receiver,a.Phone ,a.County,a.District,a.Ward,a.Address,a.DescriptionErr FROM TMS_Order a LEFT JOIN TMS_Shipping_Order_Status c ON a.Shipping_Order_ID=c.Shipping_Order_Status_ ID
  • 57. https://lop7.net/ WHERE a.Shipping_Order_Code= “CONFIRM” and Order_ID= Order_ID 2.7 Cập nhật trạng đơn hàng(thành công, thất bại) Hình 4.1.9 Cập nhật trạng thái đơn hàng Giải thích • Dữ liệu đầu vào :Mã lệnh điều động(Order_ID) • Xử lý dữ liệu : Thuật toán kiểm tra và lấy dữ liệu đơn hàng theo Order_ID Truy vấn dữ liệu : ➢ Trường hợp Thành Công(“ISSUSCESS”) ✓ Dữ liệu đầu vào :Mã đơn hàng(Order_ID) ✓ Xử lý dữ liệu : • Thuật toán kiểm tra và Cập nhật dữ liệu đơn hàng theoOrder_ID : Cập nhật đơn hàng về trạng thái thành công với Order_Status_Name= ”ISSUSCESS” • Truy vấn: UPDATE TMS_Order SET Order_Status_ID=( SELECT Order_Status_ID
  • 58. https://lop7.net/ WHERE Order_Status_Name=“ISSUSCESS” ) ➢ Trường hợp Thất bại:(“ISFAIL”) ✓ Dữ liệu đầu vào :Mã đơn hàng(Order_ID) ✓ Xử lý dữ liệu : • Thuật toán kiểm tra và Cập nhật dữ liệu đơn hàng theo Order_ID : Cập nhật đơn hàng về trạng thái thành công với Order_Status_Name= ”ISFAIL” • Truy vấn: UPDATE TMS_Order SET Order_Status_ID=( SELECT Order_Status_ID WHERE Order_Status_Name=“ISFAIL” ) 2.8 Xem vị trí hiện tại, Điểm giao hàng của Lệnh (bản đồ) Hình 4.1.10 Xem vị trí và điểm giao hàng Giải thích • Dữ liệu đầu vào :Mã lệnh điều động(Shipping_Order_ID)
  • 59. https://lop7.net/ • Xử lý dữ liệu : Thuật toán kiểm tra và lấy dữ liệu đơn hàng theo Shipping_Order_IDvà vẽ vị trí đơn hàng lên bản đồ Truy vấn dữ liệu :SELECT d.TMS_Location_Name,d.TMS_Location_Latitude,d.TMS_Location _Longitude FROM TMS_Shipping_Order a LEFT JOIN TMS_Shipping_Order_Status b ON a.Shipping_Order_ID=b.Shipping_Order_Status_ID LEFT JOIN TMS_Order c on a.Order_ID=c.Order_ID LEFT JOIN TMS_Location d on a.Location_ID=d.Location_ID LEFT JOIN TMS_Order_Status e on c.Order_Status_ID=e.Order_Status_ID WHERE a.Shipping_Order_Code='XACNHAN' 2.9 Thông tin COD và Cập nhật COD Hình 4.1.11 Cập nhật COD và thông tin COD Giải thích 1. Thông tin COD • Dữ liệu đầu vào :Mã Đơn Hàng(Order_ID) • Xử lý dữ liệu : Kiểm tra và lấy dữ liệu đơn hàng theo Order_ID
  • 60. https://lop7.net/ Truy vấn dữ liệu : SELECT COD,COD_Is_Receive,Receiver,Phone,Create_Date FROM TMS_Order WHERE Order_ID=Order_ID 2.Cập nhật COD • Dữ liệu đầu vào :Mã Đơn Hàng(Order_ID) • Xử lý dữ liệu : Kiểm tra và cập nhật dữ liệu COD thực tế của đơn hàng theo Order_ID Truy vấn dữ liệu :Update TMS_Order SET COD_Is_Receive=COD_INPUT WHERE Order_ID=Order_ID 2.10 Thông tin Hàng Hóa Hình 4.1.12 Thông tin hàng hóa Giải Thích • Dữ liệu đầu vào :Mã Đơn Hàng(Order_ID) • Xử lý dữ liệu : Kiểm tra và lấy dữ liệu đơn hàng theo Order_ID Truy vấn dữ liệu :SELECT Total_Carton,Total_Weight,Total_CBM,ItemType,Is_Tranfer,DescriptionErr FROM TMS_Order WHERE Order_ID=Order_ID
  • 61. https://lop7.net/ III. Quản lý lệnh (hiện tại) 3.1 Xem danh sách các đơn hàng trên lệnh Hình 4.3.1 Xem danh sách các đơn hàng trên lệnh Giải thích • Dữ liệu đầu vào : Id Tài Xế(Driver_ID) • Xử lý dữ liệu : Thuật toán kiểm tra Driver_ID ❖ Kiểm tra thông tin Driver_ID được lưu trong hệ thống ,nếu không tồn tại Driver_ID thì chuyển sang màn hình Login . Ngược lại lấy danh sách lệnh theo Driver_ID với các lệnh ở trạng thái : “ISDRIVING” ❖ Truy vấn dữ liệu :SELECT a.Shipping_Order_ID,a.Shipping_Order_Code,b.Shipping_Order_ Status_Name from TMS_Shipping_Order a LEFT JOIN TMS_Shipping_Order_Status b on a.Shipping_Order_ID=b.Shipping_Order_Status_ID WHERE b.Shipping_Order_Status_Name =“ISDRIVING”
  • 62. https://lop7.net/ 3.2 Xem danh sách đơn hàng Hình 4.3.2 Xem danh sách đơn hàng Giải Thích • Dữ liệu đầu vào :Mã lệnh điều động(Shipping_Order_ID) • Xử lý dữ liệu : Thuật toán kiểm tra và lấy dữ liệu đơn hàng theo Shipping_Order_ID Truy vấn dữ liệu SELECT c.Order_Code,c.Address,c.County,c.District,c.Ward,d.Status_ Name FROM TMS_Shipping_Ordera LEFT JOIN TMS_Shipping_Order_Statusb ON a.Shipping_Order_ID=b.Shipping_Order_Status_ID LEFT JOIN TMS_Order c on a.Order_ID=c.Order_ID LEFT JOIN TMS_Order_Status d on c.Order_Status_ID=d.Order_Status_ID WHERE b.Shipping_Order_Status_Name=”CONFIRM”
  • 63. https://lop7.net/ 3.3 Xem thông tin chuyển tải các đơn hàng Hình 4.3.3 Xem thông tin chuyển tải các đơn hàng Scan các chứng từ liên quan IV. Danh Sách Đơn Hàng (hiện tại)
  • 64. https://lop7.net/ 4.1 Xem danh sách đơn hàng hiện tại: Hình 4.4.1 Xem danh sách đơn hàng hiện tại Giải Thích • Dữ liệu đầu vào :Mã lệnh điều động(Shipping_Order_ID) • Xử lý dữ liệu : Thuật toán kiểm tra và lấy dữ liệu đơn hàng theo Shipping_Order_ID Truy vấn dữ liệu : SELECT c.Order_Code,c.Address,c.County,c.District,c.Ward,d.Status_Name FROM TMS_Shipping_Order a LEFT JOIN TMS_Shipping_Order_Status b ON a.Shipping_Order_ID=b.Shipping_Order_Status_ID LEFT JOIN TMS_Order c on a.Order_ID=c.Order_ID LEFT JOIN TMS_Order_Status d on c.Order_Status_ID=d.Order_Status_ID WHERE b.Shipping_Order_Status_Name=”ISDRIVING” V. Barcode Scan barcode trên đơn hàng vật lý để truy cập nhanh vào form quản lý các tác vụ của đơn hàng này
  • 65. https://lop7.net/ Hình 4.5.1 Scan barcode Giải thích • Scan lệnh: • Dữ liệu đầu vào : Id Tài Xế(Shipping_Order_ID) được lấy từ Scan BarCode • Xử lý dữ liệu : Thuật toán kiểm tra Shipping_Order_ID ❖ Kiểm tra thông tin Shipping_Order_ID,nếu không tồn tại Shipping_Order_ID thì chuyển sang màn hình Chính . Ngược lại lấy thông tin lệnh theo Shipping_Order_ID với các lênh ở trạng thái : “ISDRIVING”
  • 66. https://lop7.net/ ❖ Truy vấn dữ liệu :SELECT a.Shipping_Order_ID,a.Shipping_Order_Code,b.Shipping_ Order_Status_Name from TMS_Shipping_Order a LEFT JOIN TMS_Shipping_Order_Status b on a.Shipping_Order_ID=b.Shipping_Order_Stat us_ID WHERE b.Shipping_Order_Status_Name =“ISDRIVING” ❖ Sau khi scan thành công nếu có lệnh tồn tại thì chuyển sang màn hình chứa lệnh được Scan • Scan đơn hàng: • Dữ liệu đầu vào :Mã lệnh điều động(Shipping_Order_ID),Order_ID được lấy từ Scan BarCode • Xử lý dữ liệu : Thuật toán kiểm tra và lấy dữ liệu đơn hàng theo Shipping_Order_ID,và Order_ID Truy vấn dữ liệu : SELECT c.Order_Code,c.Address,c.County,c.District,c.Ward,d.Status_ Name FROM TMS_Shipping_Order a LEFT JOIN TMS_Shipping_Order_Status b ON a.Shipping_Order_ID=b.Shipping_Order_Status_ID LEFT JOIN TMS_Order c on a.Order_ID=c.Order_ID LEFT JOIN TMS_Order_Status d on c.Order_Status_ID=d.Order_Status_ID WHERE b.Shipping_Order_Status_Name=”ISDRIVING” and c.Order =’Order_ID’ ❖ Sau khi scan thành công nếu có đơn hàng tồn tại thì chuyển sang màn hình chứa đơn hàng được Scan
  • 67. https://lop7.net/ KẾT LUẬN 1.Kết luận Đầu tiên em xin cảm ơn Công ty TNHH Phần Mềm BSM đã cho cơ hội cho em được thực tập tại đơn vị trong thời gian qua. Và cảm ơn đến các thầy cô giảng viên tại trường Cao đẳng Bách Việt đã dạy em trong suốt ba năm vừa qua, các kiến thức mà các thầy cô đã truyền đạt giúp em hiểu biết thêm về công việc sau này của và cũng nhờ các kiến thức đó giúp em thực hiện tốt bài báo cáo này. Hơn hết, em xin chân thành cám ơn thầy Lê Quốc Tuấn, giáo viên hướng dẫn trong quá trình thực tập và báo cáo, người thầy đã gắn bó với quá trình học tập trong những năm vừa qua, một người thầy đầy tâm huyết và luôn hết mình dạy bảo chúng em, sau bài báo cáo này có lẽ em sẽ hoàn thành khóa học và không được làm việc cùng thầy trong giảng đường này nữa nhưng với những gì thầy đã truyền đạt sẽ là một động lực lớn cho em trong công việc sau này. Một lần nữa em xin gửi một lời biết ơn đối với thầy. Sau một thời gian tìm hiểu đề tài “Tìm hiểu về Android và xây dựng ứ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” em đã thực hiện được đề tài của mình theo như dự kiến.Với mục đích là tìm hiểu về hệ điều hành Android, hiểu biết về ngôn ngữ lập trình mới cho điện thoại di động và tìm hiểu các ứng dụng của hệ điều hành Android trong thế giới di động ngày nay. Thông qua việc tìm hiểu và nắm bắt lý thuyết về hệ điều hành Android để bước đầu tìm hiểu ứ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 trên nền hệ điều hành Android cho điện thoại di động. Trong quá trình tìm hiểu lý thuyết về hệ điều hành Android và tìm hiểu ứng dụng Quản Lý Vận Chuyển Hàng Hóa cho thiết bị di động em đã thu được kết quả bước đầu như sau: Sau quá trình tìm hiểu và nghiên cứu đề tài, em đã bước đầu hiểu về hệ điều hành Android chạy trên điện thoại. Biết và nắm vững quá trình tạo một file project trong lập trình trên nền Android.
  • 68. https://lop7.net/ Hiểu và sử dụng được các lớp đối tượng, phương thức hỗ trợ lập trình trên nền hệ điều hành Android. Hiểu được cơ chế làm việc với Webservice để lấy và cập nhật dữ liệu cho những ứng dụng cần thông tin nhanh chóng, thường xuyên và chính xác. Do thời gian ngắn cùng với kiến thức của bản thân còn hạn chế nên em chưa tìm hiểu sâu về các kiến thức liên quan tới hệ điều hành Android nên chương trình vẫn còn rất nhiều hạn chế, em sẽ cố gắng phát triển thêm để chương trình thân thiện, dễ sử dụng và nhiều chức năng hơn. 2. Hướng phát triển của đề tài: - Thêm chức năng du lịch và quảng bá để mọi người có thể chia sẻ những địa điểm thú vị ở tp.hcm mà không phải ai cũng biết đến đặc biệt trong những hẻm nhỏ hay những con đường khuất sâu. - Chức năng trên hiện thị rõ các quán ăn, nhà hàng ,…theo những icon nhất định trên bản đồ và có bài viết liên quan về địa điểm này mọi người cũng có chọn chức năng thích hoặc không thích và bình luận về địa điểm. - Cập nhật hệ thống thông tin tuyến điểm một cách chính xác. - Tích hợp ứng dụng trên các phần mềm di động Em xin chân thành cảm ơn các thầy cô cùng các bạn đã giúp đỡ em hoàn thành.Trong bài báo cáo còn có thiếu sót mong thầy cô và các bạn góp ý để em hoàn thiện hơn. 3. Ưu điểm: -Tiện lợi cho người dùng ở mọi lúc mọi nơi trên Smarphone -Dễ dàng quản lý các trạng thái của lệnh -Tiết kiệm thời gian quảng đường giao hàng -Tiết kiệm được chi phí quản lý - Tìm đường đi bằng googlemaps một cách tối ưu. -Cập nhật trạng thái của lệnh và đơn hàng realtime 4. Khuyết điểm: -Chi phí đầu tư thiết bị chuyên dụng cao
  • 69. https://lop7.net/ TÀI LIỆU THAM KHẢO Website 1. http://diendan.vietandroid.com/forum.php 2. http://developer.android.com/reference/android/util/Log.html 3. Pragmatic-Hello Android(2008)-Ed Bunette 4. http://www.anddev.org/ 5. http://markana.com/forums/android/ 6. http://khoapham.vn/khoa-hoc-lap-trinh... 7. http://www.nhatnghe.com/ 8. http://sinhvienit.net Tiếng Anh Tên giáo trình: Android Design Patterns: Interaction Design Solutions for Developers Tác giả:(By: Ian G. Clifton) Tên giáo trình: Android Recipes: A Problem-Solution Approach Tác giả:(By: Dave Smith & Jeff Friesen ) Tên giáo trình: Programming Android, Tác giả:(By: Zigurd Mednieks, Laird Dornin, G. Blake Meike & Masumi Nakamura) Về google map api v3: developers.google.com Ebook tham khảo: Ebook tham khaoKi thuat lap trinh ajax.pdf Em xin chân thành cảm ơn!