Đồ án Tìm hiểu Android và xây dựng ứng dụng trên mobile

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

docx70 trang | Chia sẻ: huong20 | Ngày: 08/01/2022 | Lượt xem: 300 | Lượt tải: 0download
Tóm tắt tài liệu Đồ án Tìm hiểu Android và xây dựng ứng dụng trên mobile, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ả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 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: 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 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 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 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. 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 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 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 Hình 1.7 Tổ chức sinh nhật cho các nhân viên hàng tháng 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 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ị: 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. 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). 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. 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 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 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. 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) 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: 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: 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 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. 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 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ác file đính kèm theo tài liệu này:

  • docxdo_an_tim_hieu_android_va_xay_dung_ung_dung_tren_mobile.docx