Xây dựng ứng dụng quản lý thu chi trên nền android
Trang 1TRƯỜNG ĐẠI HỌC TÂY ĐÔ
ĐỀ CƯƠNG KHÓA LUẬN ĐẠI HỌC
ĐỀ TÀI
“XÂY DỰNG QUẢN LÝ THU CHI CÁ NHÂN
TRÊN NỀN ANDROID”
Giáo viên hướng dẫn:
ThS Lê Thị Thu Lan Lớp : Đại học Tin Học 5
Niên khóa: 2010 - 2014 Cần Thơ, ngày 12 tháng 6 năm 2014
Trang 2NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Tổng cộng:
Cần Thơ, ngày 12 tháng 6 năm 2014
Giáo viên hướng dẫn
ThS Lê Thị Thu Lan
Trang 3NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Tổng cộng:
Cần Thơ, ngày 12 tháng 6 năm 2014
Giáo viên phản biện
ThS Lê Thanh Nhuận
Trang 4LỜI CẢM ƠN
Trong khoảng thời gian ba tháng tìm hiểu đề tài “Xây dựng ứng dụng quản
lý thu chi trên nền Android” tôi đã hoàn thành theo tiến độ dự kiến Để đạt được kết quả này, tôi đã 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
Đặc biệt, tôi xin gửi lời cám ơn đến Cô Lê Thị Thu Lan – người đã trực tiếp hướng dẫn tôi hoàn thành khóa luận này Một phần thành công trong đề tài là nhờ có Cô hướng dẫn, đưa ra những ý kiến đóng góp giúp cho phần mềm của tôi trở nên tối ưu và đầy đủ tính năng hơn Tôi cũng xin chân thành cảm ơn Thầy Lê Thanh Nhuận – Giáo viên phản biện đã có những ý kiến đóng góp nhằm giúp cho đề tài của tôi được hoàn thiện nhất có thể
Tôi cũng xin chân thành cảm ơn quý thầy cô của Trường Đại Học Tây Đô, đặc biệt là quý Thầy Cô thuộc Khoa Kỹ Thuật Công Nghệ đã vun đắp kiến thức cho chúng tôi trong suốt những năm vừa qua
Chân thành cảm ơn các bạn cùng lớp và những người thân đã luôn giúp
đỡ và động viên tôi để tôi có thêm niềm tin và nghị lực để hoàn thành đề tài.Tuy đã rất cố gắng nhưng do nhiều yếu tố chủ quan và khách quan nên ứng dụng vẫn còn những hạn chế và sai sót khó có thể tránh khỏi Rất mong nhận được ý kiến đóng góp của quý Thầy Cô và các bạn
Xin chân thành cảm ơn!
Trang 5sử dụng Cùng với những ý tưởng về tính năng, giao diện cũng được thiết kế thân thiện với người dùng, sử dụng Java làm ngôn ngữ chính và cơ sở dữ liệu SQLite để lưu trữ dữ liệu
Vì vậy, “Quản lý thu chi” là một phần mềm đáp ứng đa số những yêu cầu
mà người dùng Android muốn có trên điện thoại của mình
Trang 6Receipts and expenditures management subject is applied which can finances management of each people in Android- an operating system of Smartphone This applied can replace notebook to note receipts and expenditures actions completely in daily of each people Moreover, this applied also can statistics function, make plan, conserve/ preserve and restore data in both phone and dropbox to satisfied security for user Besides function ideas, theme are also design closely with user because receipts and expenditures management use java as main language and SQLite database to save data.Therefore, “Receipts and expenditures management” is a software which respond most of requests of user
Trang 7MỤC LỤC
Trang 8MỤC LỤC HÌNH
Trang 9DANH SÁCH CHỮ VIẾT TẮT VÀ THUẬT NGỮ
Từ viết
tắt
Giải thích
AAPT Android Asset Packaging Tool Công cụ tạo tập tin Apk
ADT Android Debug Bridge Cầu nối chỉnh lỗi cho Android
API Application Programming Interface Giao diện lập trình ứng dụng
AWT Abstract Windowing Toolkit Một bộ các lớp trong Java
DDMS Dalvik Debug Monitor Server Công cụ gỡ lỗi được sử dụng trên
nền Android
DOM Document Object Model Mô hình Đối tượng tài liệu
IDE Integrated Development
Environment Môi trường thiết kế hợp nhất
J2EE Java 2 Enterprise Edition
Một nền lập trình dành cho việc phát triển ứng dụng phân tán kiến trúc đa tầng
J2ME Java 2 Micro Edition Một nhánh của ngôn ngữ lập trình
SAX Simple API for XML Giao diện phân tích API đơn giản
dành cho XML SDK Software development kit Bộ công cụ phát triển phần mềm
Trang 10XML Extensible Markup Language Ngôn ngữ Đánh dấu Mở rộng
XSLT The XML Stylesheet Language
for Transformations
Ngôn ngữ tập tin định dạng XML dành cho việc chuyển đổi
Trang 11Chương 1 : TỔNG QUAN
1 Lý do chọn đề tài khóa luận
Không khác gì doanh nghiệp, mỗi gia đình, cá nhân được xem như một chủ thể kinh tế, có thu nhập và chi tiêu, đầu tư tài chính vào các mục tiêu trong ngắn hạn, trung hạn và dài hạn, đôi lúc cũng phải đối mặt với những rủi ro về tài chính trong cuộc sống
Và việc đối mặt với những vấn đề tài chính là điều khó tránh khỏi, khi đó nhiều người thường lập một loạt các kế hoạch về tài chính cho bản thân để có hành động điều chỉnh cho phù hợp Vấn đề ở đây là làm sao bạn có thể đưa ra các hành động cụ thể nếu như bạn không biết tình trạng tài chính hiện thời của mình như thế nào? thu nhập hàng tháng của mình bao nhiêu? từ những nguồn nào? chi tiêu ra sao? nhiều hay ít? giá trị các khoản đầu tư hiện nắm giữ? lời hay lỗ? Do đó, trước khi bắt đầu có những kế hoạch tài chính cho riêng mình, bạn cần phải thiết lập hệ thống ghi chép, thống kê các hoạt động tài chính cho bản thân để làm được điều đó chúng ta cần tìm cho mình một công
cụ phù với việc quản lý tài chính
Ngày nay do nhu cầu của cuộc sống nâng cao, mọi người trở nên bận rộn với công việc còn phải đau đầu với việc quản lý chi tiêu cá nhân của mình, thường xuyên gặp vấn
đề về tiền bạc, hay quên các khoản vay nợ, chi tiêu thiếu hợp lý Do đó các phần mềm quản lý tài chính cá nhân đã ra đời để hỗ trợ quản lý tài chính một cách khoa học Cụ thể là không cần phải ghi chép trong sổ tay hay dùng excel để quản lý mà thực hiện nhanh chóng ngay trên chiếc điện thoại của bạn ở bất cứ nơi nào, bất cứ thời điểm nào.Cùng với sự phong phú về chủng loại, cấu hình và giá thành, điện thoại Android là sự thay thế hoàn hảo cho chiếc sổ tay mọi lúc mọi nơi, cũng đã trở nên phổ biến và xâm nhập ngày càng sâu rộng tới người sử dụng trên thế giới,
có lẽ điều giúp cho điện thoại Android phát triển nhanh chính là có một hệ điều hành được người dùng ưa chuộng nhất
Chính vì lẽ đó, ứng dụng Quản lý thu chi là một công cụ hữu ích và tiện lợi giúp mọi người có thể quản lý việc chi tiêu của mình, của người thân Với việc
có thể quản lý và kiểm soát chi tiết các khoản thu nhập và chi tiêu thì bạn sẽ có cái nhìn tốt hơn về "khả năng" tiêu tiền của cá nhân và có được kế hoạch chi
Trang 12tiêu phù hợp hơn ngay trên chiếc Smartphone thông dụng của bạn Đó là lý do tôi chọn đề tài “Xây dựng ứng dụng quản lý thu chi trên nền Android”.
2 Tình hình nghiên cứu liên quan đến đề tài khóa luận
Hiện nay trên thị trường đã có rất nhiều phần mềm quản lý chi tiêu ra đời nhằm đáp ứng nhu cầu quản lý tài chính của cá nhân như : Money Lover, HomeBank, Expense Money Mỗi phần mềm đều có những tính năng, những ưu điểm riêng biệt để giúp người sử dụng có thể quản lý nguồn tài chính của chính mình một cách tối ưu và hiệu quả nhất
Expense Money là một trong những phần mềm có đầy đủ những tính năng mà người quản lý tài chính cần, tuy nhiên điều bất lợi cho người dùng là phần mềm chỉ hỗ trợ ngôn ngữ tiếng anh và chưa có phần nhắc nhở giao dịch
3 Mục đích và nhiệm vụ của khóa luận
3.1 Mục đích
“Quản Lý Thu Chi” là một ứng dụng linh hoạt giúp tất cả mọi người không mất thời gian, chỉ cần những cái chạm tay bạn đã có thể kiểm soát chặt chẽ tài chính của mình trên Smartphone- thiết bị đang được sử dụng rộng rãi hiện nay
3.2 Mô tả
“Quản Lý Thu Chi” là ứng dụng đơn giản để quản lý tài chính cá nhân Ứng dụng này giúp bạn lập ngân sách và theo dõi các khoản thu như lương, thưởng hay các khoản chi như ăn uống, học hành Bạn có thể tạo thêm các loại thu chi mới bên cạnh các loại
có sẵn Ngoài ra ứng dụng còn ghi nhận nhiều loại tiền tệ và kiểm tra số liệu thống kê hàng tuần, hàng tháng và hàng năm
Những đặc điểm nổi bật:
- Có thể chọn hình ảnh để tượng trưng.
- Có thể chọn loại tiền sử dụng.
- Cùng lúc có thể quản lý nhiều tài khoản.
- Quản lý các khoản thu, chi theo từng hạng mục.
- Lập kế hoạch thu, chi.
- Thống kê theo biểu đồ.
- Có thể sao lưu, phục hồi dữ liệu.
- Chế độ mật khẩu đảm bảo tính cá nhân của ứng dụng.
Trang 13Có 5 chức năng quan trọng trong quản lý thu chi:
- Giao Dịch: Mỗi khi có một khoản thu hay chi, bạn thêm thông tin vào tài
khoản bằng cách chọn thêm giao dịch, chọn loại (thu hay chi) Sau đó điền tên giao dịch, chọn hình ảnh, ghi chú Cuối cùng, ấn Lưu là xong, các khoản thu chi của bạn đã được ghi lại và quản lý hết sức dễ dàng
- Thể Loại: Có 2 loại giao dịch cơ bản cho bạn lựa chọn là chi tiêu và thu
nhập Tại đây bạn có thể thêm, sửa hoặc xóa loại (tên, hình ảnh, loại, ghi chú) theo ý muốn
- Loại Tiền: Chương trình quản lý chi tiêu bằng tiền Việt và hỗ trợ thêm
những loại tiền thông dụng khác (dolla, pound, euro, )
- Kế Hoạch: Kế hoạch thu, chi là nơi lập kế hoạch, dự toán các khoản thu chi
thông thường Bạn có thể thêm, sửa, xóa và áp dụng các kế hoạch
- Ví: Việc tạo nhiều tài khoản nhằm dễ quản lý tài chính của mình Mỗi
người có thể có nhiều hơn 1 tài khoản, hoặc bạn cũng có thể quản lý dùm người thân của bạn Đặt tên tài khoản, chọn loại tiền và số tiền mà bạn có, tất cả các khoản chi tiêu hay thu nhập sẽ được lưu vào tài khoản mà bạn chọn
- Thống kê: Các khoản thu, chi theo từng thời gian của bạn sẽ được thống kê
và hiện lên biểu đồ, để có một cái nhìn tổng quan
3.3 Nhiệm vụ
- Nghiên cứu và phát triển ứng dụng quản lý thu chi trên nền Android.
- Tăng khả năng kiểm soát nguồn tài chính cá nhân.
4 Đối tượng và phạm vi nghiên cứu của khóa luận
4.1 Đối tượng nghiên cứu
- Lớp ứng dụng sử dụng SQLite trên Android
- Kiến thức về quản lý thu chi.
- Kiến thức lập trình quản lý trên nền Android.
5 Phương pháp nghiên cứu của khóa luận
Trang 145.1 Lý thuyết
- Tìm hiểu về hệ điều hành Android.
- Dùng ngôn ngữ Java để xây dụng chương trình.
- Kết hợp với XML để thiết kế giao diện.
- Tìm hiểu về cơ sở dữ liệu SQLite
- Hiểu về việc quản lý tài chính cá nhân.
5.2 Thực hành
Xây dựng ứng dụng quản lý tài chính cá nhân trên Android gồm:
- Cập nhật danh sách thu, chi.
- Lập kế hoạch và áp dụng kế hoạch vào thời cụ thể
- Thống kê các khoản thu, chi theo thời gian, thể loại.
- Phục hồi và sao lưu dữ liệu.
- Bảo mật cho người người dùng.
6 Ý nghĩa lý luận và thực tiễn của khoá luận
6.1 Ý nghĩa lý luận
- Tạo ra một ứng dụng quản lý thu, chi cá nhân mà không mất nhiều thời gian
và công sức
- Giúp mọi người ghi chép, kiểm soát những thu nhập, chi tiêu hằng ngày.
- Giúp mọi người lên kế hoạch để chi tiêu hợp lí hơn.
- Có thể xem lại những khoản thu nhập, chi tiêu trong thời gian qua bằng
những biểu đồ màu đẹp mắt, chi tiết và chính xác
- Dễ dàng sử dụng cho mọi người dùng.
- Góp phần phát triển lập trình ứng dụng trên hệ điều hành Android.
6.2 Ý nghĩa thực tiễn
- Sau khi nghiên cứu và xây dựng ứng dụng “Quản Lý Thu Chi” tôi đã làm
quen và củng cố thêm kiến thức Java cũng như hiểu biết thêm về hệ điều hành Android
- Có thêm kiến thức về cách thức quản lý dữ liệu trên SQLite.
- Xây dựng giao diện người dùng thân thiện, dễ sử dụng với mọi lứa tuổi.
- Giúp người dùng có một phần mềm quản lý chính xác mọi lúc mọi nơi.
7 Đặt vấn đề
Điện thoại thông minh hay còn gọi là Smartphone thực sự đã mang đến một cuộc cách mạng cho các thiết bị di động, trong thời kì mà công nghệ số phát triển với tốc độ chóng mặt như hiện nay Nhu cầu sử dụng thiết bị di động đã trở nên rất phổ biến không
Trang 15chỉ ở Việt Nam mà trên toàn thế giới Sự tiến bộ vượt bậc của công nghệ đã làm thay đổi hoàn toàn thói quen cũng như hành vi của con người.
Chỉ với một chiếc SmartPhone người ta có thể thỏa mãn hầu hết các nhu cầu cơ bản như: trò chuyện, gửi tin nhắn, chơi game, nghe nhạc, lướt web,… Thiết bị di động
đã có bước phát triển nhanh chóng trên thị trường Theo nhiều cuộc nghiên cứu, đến năm 2015, số lượng truy cập Internet từ thiết bị di động sẽ vượt qua truy cập trên máy tính cá nhân Trong tương lai, thiết bị di động sẽ trở thành phương tiện giao tiếp và làm việc chủ yếu của con người Nắm bắt được nhu cầu và xu hướng đó, em muốn tiếp cận môi trường này thông qua đề tài “Xây dựng ứng dụng quản lý thu chi cá nhân trên nền Android ”
8 Lịch sử giải quyết vấn đề
Hiện nay đã có rất nhiều hệ điều hành trên SmartPhone như BlackRerry, Bada, WindowsPhone, Symbian, Ios… Với Symbian có thị trường lớn nhất trên thế giới, hỗ trợ nhiều giao diện người dùng Còn với hệ điều hành BlackRerry có tính năng nổi bật
là công nghệ push Email, có thể dễ dàng nhận và gửi tin nhắn, đặc biệt là khả năng nén
dữ liệu rất tốt, giúp tiết kiệm băng thông, nhưng khả năng trình duyệt web của nó lại rất chậm Và hệ điều hành được quan tâm gần đây nhất là hệ điều hành Android, Android được phát triển bởi công ty Android Inc và được Google mua lại Android là nền tảng
mở có gốc từ Linux, nó là một hệ điều hành mở, có các ứng dụng phong phú, nó thích hợp với nhiều phần cứng, đặc biệt hơn Android có khả năng chạy nhiều ứng dụng một lúc
Sự phát triển của các hệ điều hành trên SmartPhone đã kéo theo hàng loạt các ứng dụng của hệ điều hành, đặc biệt là ứng dụng quản lý tài chính cá nhân Quản lý tài chính
cá nhân là công việc mà đòi hỏi mỗi người cần thực hiện để quản lý chi tiêu của mình một cách tốt nhất, đã có các phần mềm quản lý tài chính cá nhân như: Money Lover, HomeBank, MyMoney… Nhưng nó vẫn chưa đáp ứng được nhu cầu người sử dụng Với những lý do đó em cũng muốn tạo ra một phần mềm giúp cho việc quản lý tài chính được tốt hơn Phần mềm này sẽ giúp mỗi cá nhân có cách nhìn tổng quan và cân đối các khoản chi tiêu, từ đó mà có kế hoạch dự định cho tương lai
9 Phương pháp nghiên cứu và hướng giải quyết
Trang 16- Tìm hiểu hệ điều hành Android.
- Java trên nền Android.
- Nghiên cứu thiết kế giao diện sử dụng XML.
- Lưu trữ dữ liệu SQLite.
- Phân tích và thiết kế chương trình.
- Lập trình xây dựng sản phẩm theo bản thiết kế.
Trang 17Chương 2: CƠ SỞ LÝ THUYẾT
1 Phân tích hướng đối tượng
1.1 Sơ đồ hoạt vụ
1.1.1 Mục đích của trường hợp sử dụng
- Trường hợp sử dụng là một kỹ thuật mô tả hệ thống dựa trên quan điểm người
sử dụng Mỗi trường hợp sử dụng là một cách thức riêng biệt để sử dụng hệ thống
- Những chức năng mà hệ thống cung cấp sẽ được mô tả trong sơ đồ hoạt vụ.
- Việc mô tả bao gồm:
Mô tả các chức năng (các trường hợp sử dụng – use case)
Các tác nhân bên ngoài (actor)
Mối quan hệ giữa tác nhân và các trường hợp sử dụng
Không phải là thành phần của hệ thống
Là người hay hệ thống khác tương tác với hệ thống
- Tương tác
Nhận thông tin từ hệ thống
Gửi thông tin cho hệ thống
Nhận và gửi thông tin với hệ thống
- Một tác nhân là một dạng thực thể (một lớp), chứ không phải một thực thể
Tác nhân mô tả và đại diện cho một vai trò, chứ không phải là một người sử dụng thật sự và cụ thể của hệ thống
- Tìm tác nhân
Đối với một vấn đề cụ thể nào đó thì ai là người quan tâm?
Ai sẽ cần sự hỗ trợ của hệ thống để thực hiện những tác vụ hàng ngày của họ?
Trang 18 Ai là người sử dụng thông tin của hệ thống?
Hệ thống có tương tác với hệ thống nào khác không?
- Trường hợp sử dụng (use case)
Là một khối chức năng được thực hiện bởi hệ thống để mang lại kết quả có giá trị đối với một tác nhân nào đó
Các tính chất của use case
• Một Use Case bao giờ cũng được gây ra bởi một tác nhân, được thực hiện nhân danh một tác nhân nào đó Tác nhân phải ra lệnh cho hệ thống để thực hiện Use Case đó, dù là trực tiếp hay gián tiếp
• Một Use Case là phải hoàn tất Một Use Case sẽ không được coi
là hoàn tất chừng nào mà giá trị cuối cùng của nó chưa được sản sinh ra
- Tìm use case
Nhiệm vụ của mỗi tác nhân là gì?
Tác nhân này cần những chức năng nào từ hệ thống? Hành động chính của tác nhân là gì?
Tác nhân có cần phải đọc, phải tạo, phải hủy bỏ, phải sửa chữa, hay là lưu trữ một loại thông tin nào đó trong hệ thống?
Tác nhân có cần phải báo cho hệ thống biết về những sự kiện nào đó? Những sự kiện như thế sẽ đại diện cho những chức năng nào?
Công việc hàng ngày của tác nhân có thể được đơn giản hóa hoặc hữu hiệu hóa qua các chức năng mới trong hệ thống (thường đây là những chức năng tiêu biểu chưa được tự động hóa trong hệ thống)?
Trang 19- Liên kết giữa tác nhân và use case
Use Case được nối với tác nhân qua liên kết (association)
Đường liên kết chỉ ra những tác nhân nào giao tiếp với Use Case nào
Mối liên kết bình thường ra là một mối quan hệ 1-1 và không có hướng Điều đó muốn nói lên rằng một thực thể của lớp tác nhân sẽ giao tiếp với một thực thể của một Use Case và cả hai có thể giao tiếp với nhau trong cả hai chiều
Một Use Case sẽ được đặt tên theo một thực thể mà Use Case sẽ thực hiện, ví dụ như ký hợp đồng bảo hiểm, cập nhật danh sách,
Quan hệ giữa các tác nhân
- Giữa các tác nhân chỉ tồn tại duy nhất một quan hệ - quan hệ tổng quát hóa.
- Một tác nhân A là một sự tổng quát hóa của B nếu A có thể được thay thế
bởi B trong mọi trường hợp sử dụng (chiều ngược lại không đúng)
Nguoi dung
Nguoi dung quan tri
Quan hệ giữa các trường hợp sử dụng
<<include>>
Trang 20- Quan hệ mở rộng
Nếu hành vi của trường hợp sử dụng B có thể được mở rộng bởi hành
vi của trường hợp sử dụng A, ta nói A mở rộng B
Một sự mở rộng thường phải chịu một điều kiện, điều kiện này được biểu diễn dưới dạng một ghi chú (note) Phải cho biết chính xác ở điểm nào của trường hợp đang xét thì mở rộng nó
A
B
<<extend>>
- Quan hệ tổng quát hóa
Một trường hợp sử dụng A là một sự tổng quát hóa trường hợp sử dụng B nếu B là một trường hợp đặc biệt của A
Mối quan hệ “tổng quát hóa” sẽ được diễn dịch thành khái niệm “thừa kế” trong các ngôn ngữ hướng đối tượng
A
B
1.2 Sơ đồ lớp
1.2.1 Khái niệm Lớp
- Mô tả một tập hợp các đối tượng có cùng các đặc tính: cùng một ngữ nghĩa,
có chung các thuộc tính, các phương thức và các quan hệ
- Một đối tượng là một thể hiện của lớp.
Trang 21- Lớp biên (Boundary Class): lớp nằm trên biên hệ thống và môi trường
Chúng có thể là biểu mẫu (form), báo cáo (report), giao diện với phần cứng như máy in, máy quét và là giao diện với các lớp thực thể
- Kí hiệu:
- Lớp điều khiển (Control Class): có trách nhiệm điều phối hoạt động của các
lớp khác
- Kí hiệu:
- Lớp trừu tượng (abstract class): là lớp được thiết kế ở mức độ trừu tượng
cao nhất, nó chứa những thuộc tính, những hành vi chung cho nhiều lớp con khác Lớp trừu tượng được tạo ra chỉ để cho các lớp khác kế thừa nó, những phương thức khai báo trong lớp trừu tượng không được cài đặt mà chúng chỉ được cài đặt ở các lớp con Cho nên không có một đối tượng nào được tạo ra
từ lớp trừu tượng
1.2.3 Các quan hệ trong sơ đồ lớp:
Quan hệ biểu diễn sự kết nối ngữ nghĩa giữa các lớp, nó cho phép một lớp biết về các thuộc tính, thao tác và quan hệ của lớp khác có quan hệ với nó
Các quan hệ được thể hiện trên sơ đồ lớp Giữa các lớp có bốn kiểu quan hệ chính, đó là:
Trang 22- Kết nối (association): Thể hiện mối quan hệ giữa hai lớp cũng như giữa hai
đối tượng Có hai kiểu quan hệ kết hợp là một phía (uni-direction) và hai phía (bi-direction)
- Kết tập (aggregation): là một trường hợp đặc biệt của quan hệ kết hợp được
dùng để biểu diễn “Tổng thể - Thành phần”, điều đó có nghĩa là một lớp sẽ bao gồm một hoặc nhiều lớp khác Quan hệ aggregation được coi như quan
hệ có môt(has - a)
- Khái quát hoá (generalization): Là quan hệ giữa một lớp tổng quát (Class5)
và một lớp đặc biệt (Class6) Class5 được gọi là lớp cha và Class6 được gọi
là lớp con Lớp con được kế thừa toàn bộ thuộc tính và phương thức mà lớp cha có
- Phụ thuộc (dependency): Là một liên kết giữa hai lớp trong đó một lớp độc
lập(Class1) và một lớp phụ thuộc(Class2) Những thay đổi trong lớp độc lập
Trang 23sẽ ảnh hưởng đến lớp phụ thuộc Class2 sử dụng tham số là một đối tượng của Class1 Class2 có thuộc tính là đối tượng kiểu Class1 Class2 gọi một hàm của Class1.
Ví dụ:
1.3 Sơ đồ tuần tự
1.3.1 Ý nghĩa
- Biểu diễn mối quan hệ giữa các đối tượng và giữa các đối tượng và tác nhân
theo thứ tự thời gian
- Biểu diễn mối quan hệ giữa các đối tượng và giữa các đối tượng và tác nhân
nhưng nhấn mạnh đến vai trò của các đối tượng trong tương tác
1.3.2 Ký hiệu
Đối tượng (object): được biểu diễn bởi các hình chữ nhật, bên trong là tên của đối
tượng
Trang 24Các thông điệp (message): được biểu diễn bằng các mũi tên hướng từ đối tượng
gửi sang đối tượng nhận
Đường lifeline: là một đường kẻ nối dài phía dưới đối tượng, mô tả quá trình của
đối tượng trong tương tác thuộc biểu đồ
Chú thích: biểu đồ tuần tự cũng có thể có chú thích để người đọc dễ dàng hiểu
được nội dung của biểu đồ đó
đã xây dựng một ngôn ngữ lập trình mới đặt tên là Oak tương tự như C++ nhưng loại bỏ một số tính năng nguy hiểm của C++ và có khả năng chạy trên nhiều nền phần cứng khác nhau Cùng lúc đó world wide web bắt đầu phát triển và Sun đã thấy được tiềm
Trang 25năng của ngôn ngữ Oak nên đã đầu tư cải tiến và phát triển Sau đó không lâu ngôn ngữ mới với tên gọi là Java ra đời và được giới thiệu năm 1995.
Java là tên gọi của một hòn đảo ở Indonexia, Đây là nơi nhóm nghiên cứu phát triển đã chọn để đặt tên cho ngôn ngữ lập trình Java trong một chuyến đi tham quan và làm việc trên hòn đảo này Hòn đảo Java này là nơi rất nổi tiếng với nhiều khu vườn trồng cafe, đó chính là lý do chúng ta thường thấy biểu tượng ly café trong nhiều sản phẩm phần mềm, công cụ lập trình Java của Sun cũng như một số hãng phần mềm khác đưa ra
2.3 Đặc điểm nổi bậc của ngôn ngữ Java
2.3.1 Máy ảo Java (JVM - Java Virtual Machine)
Tất cả các chương trình muốn thực thi được thì phải được biên dịch ra mã máy
Mã máy của từng kiến trúc CPU của mỗi máy tính là khác nhau (tập lệnh mã máy của CPU Intel, CPU Solarix, CPU Macintosh là khác nhau), vì vậy trước đây một chương trình sau khi được biên dịch xong chỉ có thể chạy được trên một kiến trúc CPU cụ thể nào đó Đối với CPU Intel chúng ta có thể chạy các hệ điều hành như Microsoft Windows, Unix, Linux, OS/2, Chương trình thực thi được trên Windows được biên dịch dưới dạng file có đuôi EXE còn trên Linux thì được biên dịch dưới dạng file có đuôi ELF, vì vậy trước đây một chương trình chạy được trên Windows muốn chạy được trên hệ điều hành khác như Linux chẳng hạn thì phải chỉnh sửa và biên dịch lại
Ngôn ngữ lập trình Java ra đời, nhờ vào máy ảo Java mà khó khăn nêu trên đã được khắc phục Một chương trình viết bằng ngôn ngữ lập trình Java sẽ được biên dịch
ra mã của máy ảo java (mã java bytecode) Sau đó máy ảo Java chịu trách nhiệm chuyển mã java bytecode thành mã máy tương ứng Sun Microsystem chịu trách nhiệm phát triển các máy ảo Java chạy trên các hệ điều hành trên các kiến trúc CPU khác nhau
2.3.2 Thông dịch
Java là một ngôn ngữ lập trình vừa biên dịch vừa thông dịch Chương trình nguồn viết bằng ngôn ngữ lập trình Java có đuôi *.java đầu tiên được biên dịch thành tập tin có đuôi *.class và sau đó sẽ được trình thông dịch thông dịch thành mã máy
Trang 26- Độc lập nền: Một chương trình viết bằng ngôn ngữ Java có thể chạy trên nhiều máy tính có hệ điều hành khác nhau (Windows, Unix, Linux, ) miễn sao ở đó có cài đặt máy ảo java (Java Virtual Machine) Viết một lần chạy mọi nơi (write once run anywhere).
Java là một ngôn ngữ lập trình hướng đối tượng hoàn toàn Tất cả mọi thứ
đề cập đến trong Java đều liên quan đến các đối tượng được định nghĩa trước, thậm chí hàm chính của một chương trình viết bang Java (đó là hàm main) cũng phải đặt bên trong một lớp Hướng đối tượng trong Java không
có tính đa kế thừa (multi inheritance) như trong C++ mà thay vào đó Java đưa ra khái niệm interface để hỗ trợ tính đa kế thừa
- Đa nhiệm - đa luồng (MultiTasking - Multithreading):Java hỗ trợ lập trình
đa nhiệm, đa luồng cho phép nhiều tiến trình, tiểu trình có thể chạy song song cùng một thời điểm và tương tác với nhau
- Khả chuyển (portable):Chương trình ứng dụng viết bằng ngôn ngữ Java chỉ cần chạy được trên máy ảo Java là có thể chạy được trên bất kỳ máy tính,
hệ điều hành nào có máy ảo Java “Viết một lần, chạy mọi nơi” (Write Once, Run Anywhere)
- Hỗ trợ mạnh cho việc phát triến ứng dụng:Công nghệ Java phát triển mạnh
mẽ nhờ vào “đại gia Sun Microsystem” cung cấp nhiều công cụ, thư viện lập trình phong phú hỗ trợ cho việc phát triển nhiều loại hình ứng dụng khác nhau cụ thể như: J2SE(Java 2 Standard Edition) hỗ trợ phát triển những ứng dụng đơn, ứng dụng client-server J2EE (Java 2 Enterprise Edition) hỗ trợ phát triển các ứng dụng thương mại, J2ME (Java 2 Micro Edition) hỗ trợ phát triển các ứng dụng trên các thiết bị di động, không dây,
Trang 272.4 Các ứng dụng Java
2.4.1 Java và ứng dụng Console
Ứng dụng Console là ứng dụng nhập xuất ở chế độ văn bản tương tự như màn hình Console của hệ điều hành MS-DOS Lọai chương trình ứng dụng này thích hợp với những ai bước đầu làm quen với ngôn ngữ lập trình java
Các ứng dụng kiểu Console thường được dùng để minh họa các ví dụ cơ bản liên quan đến cú pháp ngôn ngữ, các thuật toán, và các chương trình ứng dụng không cần thiết đến giao diện người dùng đồ họa
Và cho đến bây giờ gần như các lập trình viên đều không còn “mặn mà” vói Java Applet nữa (trình duyệt IE đi kèm trong phiên bản Windows 2000 đã không còn mặc nhiên hỗ trợ thực thi một ứng dụng Java Applet)
2.4.3 Java và phát triển ứng dụng Desktop dùng AWT và JFC
Việc phát triển các chương trình ứng dụng có giao diện người dùng đồ họa trực quan giống như những chương trình được viết dùng ngôn ngữ lập trình VC++ hay Visual Basic đã được java giải quyết bằng thư viện AWT và JFC JFC là thư viện rất phong phú và hỗ trợ mạnh mẽ hơn nhiều so với AWT JFC giúp cho người lập trình có thể tạo ra một giao diện trực quan của bất kỳ ứng dụng nào Liên quan đến việc phát triển các ứng dụng có giao diện người dùng đồ họa trực quan
Trang 282.4.4 Java và phát triển ứng dụng Web
Java hỗ trợ mạnh mẽ đối với việc phát triển các ứng dụng Web thông qua công nghệ J2EE (Java 2 Enterprise Edition) Công nghệ J2EE hoàn toàn có thể tạo ra các ứng dụng Web một cách hiệu quả không thua kém công nghệ NET mà Microsft đang quảng cáo
Hiện nay có rất nhiều trang Web nổi tiếng ở Việt Nam cũng như khắp nơi trên thế giới được xây dựng và phát triển dựa trên nền công nghệ Java, số ứng dụng Web được xây dựng dùng công nghệ Java chắc chắn không ai có thể biết được con số chính xác, nhưng dưới đây là một vài ví dụ để thấy rằng công nghệ Java của Sun là một “đối thủ đáng gờm” của Microsoft
http://java.sun.com/
http://e-docs.bea.com/
http://www.macromedia.com/software/jrun/
http://tomcat.apache.org/index.html
Chắc không ít người trong chúng ta biết đến trang web thông tin nhà đất nổi tiếng
ở TPHCM đó là: http://www.nhadat.com/ ứng dụng Web này cũng được xây dựng dựa trên nền công nghệ java
2.4.5 Java và phát triển ứng dụng nhúng
Java Sun đưa ra công nghệ J2ME (The Java 2 Platform, Micro Edition J2ME) hỗ trợ phát triển các chương trình, phần mềm nhúng J2ME cung cấp một môi trường cho những chương trình ứng dụng có thể chạy được trên các thiết bị cá nhân như: điện thọai
di động, máy tính bỏ túi PDA hay Palm, cũng như các thiết bị nhúng khác
2.5 Dịch và thực thi một chương trình viết bằng Java
Việc xây dựng, dịch và thực thi một chương trình viết bằng ngôn ngữ lập trình java có thể tóm tắt qua các bước sau:
- Viết mã nguồn: Dùng một chương trình soạn thảo nào đấy (NotePad hay
Jcreator chẳng hạn) để viết mã nguồn và lưu lại với tên có đuôi “.java”
- Biên dịch ra mã máy ảo: Dùng trình biên dịch javac để biên dịch mã nguồn
“java” thành mã của máy ảo (java bytecode) có đuôi “.class” và lưu lên đĩa
Trang 29- Thông dịch và thực thi: ứng dụng được load vào bộ nhớ, thông dịch và thực
thi dùng trình thông dịch Java thông qua lệnh “java”
Đưa mã java bytecode vào bộ nhớ: Đây là bước “loading” Chương
trình phải được đặt vào trong bộ nhớ trước khi thực thi “Loader” sẽ lấy các files chứa mã java bytecode có đuôi “.class” và nạp chúng vào bộ nhớ
Kiểm tra mã java bytecode: Trước khi trình thông dịch chuyển mã
bytecode thành mã máy tương ứng để thực thi thì các mã bytecode phải được kiểm tra tính hợp lệ
Thông dịch & thực thi: Cuối cùng dưới sự điều khiển của CPU và trình
thông dịch tại mỗi thời điểm sẽ có một mã bytecode được chuyển sang
Hệ điều hành Android là một hệ điều hành rất mạnh, có bảo mật cao, hỗ trợ được nhiều công nghệ tiên tiến như 3G, GPS, EDGE… Tương thích với nhiều phần cứng, hỗ trợ nhiều loại bộ nhập dữ liệu như keyboard, touch… Android là hệ điều hành di động nên có khả năng kết nối cao với các các mạng không dây Hỗ trợ công nghệ OpenGL nên có khả năng chơi các phương tiện media, hoạt hình cũng như trình diễn các khả năng đồ họa khác, là tiền đề để phát triển các ứng dụng có giao diện phức tạp chẳng hạn như các trò chơi
Android tiếp tục được phát triển, mỗi bản cập nhật từ Google là mỗi lần Android được tối ưu hóa để hoạt động tốt hơn, nhanh hơn và ổn định hơn, hỗ trợ thêm công nghệ mới Năm 2008, hệ điều hành Android đã chính thức mã hóa toàn bộ mã nguồn, điều đó cho phép các hãng điện thoại có thể đem mã nguồn về tùy chỉnh, thiết kế lại sao cho phù hợp với mỗi mẫu mã điện thoại của họ và điều quan trọng nữa là hệ điều hành mở
Trang 30này hoàn toàn miễn phí, nên giúp họ tiết kiệm khá lớn chi phí phát triển hệ điều hành Những điều đó là cực kỳ tốt không chỉ đối với các hãng sản xuất điện thoại nhỏ mà ngay cả với các hãng lớn như HTC, SamSung…
Với các nhà phát triển ứng dụng (developers), việc hệ điều hành Android được sử dụng phổ biến đồng nghĩa với việc họ có thể thoải mái phát triển ứng dụng trên nền tảng Android với sự tin tưởng là ứng dụng đó sẽ có thể chạy được ngay trên nhiều dòng điện thoại của các hãng khác nhau Họ ít phải quan tâm là đang phát triển cho điện thoại nào, phiên bản bao nhiêu vì nền tảng Android là chung cho nhiều dòng máy, máy ảo Java đã chịu trách nhiệm thực thi những ứng dụng phù hợp với mỗi dòng điện thoại mà nó đang chạy Tất cả các chương trình ứng dụng được viết bằng ngôn ngữ Java kết hợp với XML nên rất tiện lợi cho việc phát triển các ứng dụng
3.2 Lịch sử của Android
Tháng 10/2003, Android (Inc) được thành lập tại Palo Alto, California, Hoa Kỳ do Andy Rubin (đồng sáng lập của Danger Inc), Rich Miner (đồng sáng lập của Wildfire Communications Inc và cựu phó chủ tịch công nghệ và tương lai ở Orange) và một số thành viên khác chủ trì, với mục đích đê phát triển hay tạo ra các thiết bị di động thông minh hơn phục vụ các mục đích cho lợi ích con người
Bước đầu, hệ điều hành Android chỉ đon thuần là phần mềm trên điện thoại di động 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 Các thành viên chủ chốt tại ở Android Inc gồm có: Andy Rubin, Rich Miner, Nick Sears, and Chris White
Tại Google, nhóm kĩ sư do Rubin đứng đầu đã phát triển một nền tảng di động dựa trên hạt nhân Linux Sau đó, họ đã giới thiệu cho các nhà sản xuất thiết bị cầm tay và các nhà mạng trên những tiền đề về việc cung cấp một hệ thống mềm dẻo, có khả năng nâng cấp mở rộng cao
Google cũng lên danh sách các thành phần phần cứng đáp ứng nền tảng và các đối tác phần mềm, đồng thời cam kết với các nhà mạng rằng họ sẵn sàng hợp tác ở nhiều cấp độ khác nhau Thời gian này, một loạt nguồn tin khẳng định Google sẽ sớm tham gia phát triển hệ điều hành riêng cho điện thoại di động
Trang 31Tháng 9/2007, InformationWeek đăng tải một nghiên cứu của Evalueserve cho biết Google đã nộp một số đơn xin cấp bằng sáng chế trong lĩnh vực điện thoại di động Tháng 11/2007, Liên minh thiết bị cầm tay mở rộng (Open Handset Alliance) với sự đồng thuận của Texas Instruments, Tập đoàn Broadcom, Google, HTC, Intel, LG, Tập đoàn Marvell Technology, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel và T-Mobile đã thành lập với mục đích phát triển các tiêu chuẩn mở cho thiết bị
di động.Và như vậy, Android chính thức gia nhập Liên minh thiết bị cầm tay mã nguồn
mở đồng thời Google đã công bố việc họ bắt tay phát triển hệ điều hành mã nguồn mở cho thiết bị di động nhằm cạnh tranh với Symbian, Windows Mobile và các đối thủ khác Hãng cũng giới thiệu sản phẩm Android đầu tiên là T-Mobile GI Đây là một thiết
bị di động có hệ điều hành dựa trên nhân Linux phiên bản 2.6
Từ tháng 10/2008, hệ điều hành Android đã chính thức trở thành phần mềm mã nguồn mở Theo đó, các công ty thứ ba được phép thêm những ứng dụng của riêng của
họ vào Android và bán chúng mà không cần phải hỏi ý kiến Google Tháng 11/2008, Liên minh OHA ra mắt gói phát triển phần mềm Android SDK cho nhà lập trình Đến tháng 12/2008, có thêm 14 thành viên mới gia nhập dự án Android được công bố, gồm
có ARM Holdings, Atheros Communications, Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, và Vodafone Group Plc
Tháng 2/2009, một số công ty trong đó có Qualcomm và Texas Instruments đã có trong tay những con chip chạy các phiên bản đơn giản của hệ điều hành Android, mang đến những trải nghiệm hoàn toàn mới cho người dùng trên toàn thế giới
Đến năm 2010, số lượng smartphone nền tảng Android tăng trưởng mạnh mẽ Hàng loạt nhà sản xuất hàng đầu đã bắt tay sản xuất Smartphone như Samsung, HTC, Motorola Thậm chí, Android còn được coi là “cứu cánh” cho nhiều đại gia công nghệ bước sang một trang mới trong việc cải thiện doanh số, bán hàng có lãi sau một thời gian dài trì trệ, tiêu biểu là Motorola
3.3 Một số phiên bản của Android
Android đã cập nhật liên tục từ phiên bản đầu tiên Những cập nhật cho hệ điều hành và thêm những đặc tính mới Điều đặc biệt mỗi phiên bản của hệ điều hành Android được phát triển với một tên gọi dựa trên những món tráng miệng Code name
Trang 32của chúng được sắp theo thứ tự alphabet: Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb và sắp tới là Ice cream sandwhich Dưới đây là danh sách các phiên bản gần đây nhất:
- Phiên bản 2.0 (Eclair) nâng cấp lên web browser và giao diện mới, hỗ trợ HTML5 và W3C geolocation API Bản này được cài thêm ứng dụng camera với những đặc tính zoom, flash, color effects và nhiều thứ khác
- Phiên bản 2.2 (Froyo) đưa ra sự cải thiện tốc độ với giải pháp tối ưu JIT và Chrome V8 Javascript engine, thêm vào Wifi hotspot tethering
và hỗ trợ Flash
- Phiên bản 2.3 (Gingerbread) điều chỉnh lại giao diện, nâng cấp bàn phím mềm, đặc tính copy/paste và hỗ trợ Near Field Communication
- 3.0 (Honeycomb) là phiên bản dùng cho tablet, hỗ trợ cho các thiết bị có
màn hình lớn hơn và đưa ra nhiều đặc tính giao diện mới, hỗ trợ xử lý đa nhân và tăng tốc phần cứng đồ họa Thiết bị đầu tiên dùng Honeycomb là Motorola Xoom, được bày bán vào 2/2011
- Phiên bản 3.1 (Honeycomb) được thông báo tại Google I/O vào 10/2011, cho phép các thiết bị Honeycomb truyền dữ liệu trực tiếp từ các USB
Trang 33- Phiên bản 4.0 (Ice Cream Sandwhich) sẽ là sự kết hợp của Gingerbread và Honeycomb.
- Phiên bản 4.1 (Jelly Bean) Không phải là một phiên bản mới hoàn toàn, Android 4.1 Jelly Bean đơn thuần chỉ là một bản cập nhật bổ sung tuy nhiên, phiên bản này vẫn khiến nhiều người dùng Android hài lòng nhờ giao diện mới, thao tác nhanh và hàng loạt các tính năng mới được bổ sung
- Phiên bản 4.4 (KitKat) là hệ điều hành di động ổn định và an toàn nhất với tỉ lệ phát sinh lỗi và các vấn đề bảo mật là 0,7% Với Android 4.4 KitKat, những từ khóa bạn cần nhớ là "chau chuốt" và "hoàn thiện" Bạn có thể thấy rõ những yếu tố này ngay khi sử dụng KitKat Từ launcher cho đến các ứng dụng, tất cả đều đẹp hơn và dễ sử dụng hơn Trên tất cả, Google đã trang bị nhiều tính năng để đưa ra một hệ điều hành đủ tốt, phản bác lại bất cứ lời chỉ trích nào rằng KitKat chỉ là một bản cập nhật nhỏ xíu.3.4 Delving với máv ảo Dalvik
Dalvik là máy ảo giúp các ứng dụng java chạy được trên các thiết bị động Android Nó chạy các ứng dụng đã được chuyển đổi thành một file thực thi Dalvik (dex) Định dạng phù hợp cho các hệ thống mà thường bị hạn chế về bộ nhớ và tốc độ
xử lý Dalvik đã được thiết kế và viết bởi Dan Bomstein, người đã đặt tên cho nó sau khi đến thăm một ngôi làng đánh cá nhỏ có tên là Dalvik ở đảo Eyjafjöröur, nơi mà một
số tổ tiên của ông sinh sống
Trang 34Từ góc nhìn của một nhà phát triển, Dalvik trông giống như máy ảo Java (Java Virtual Machine) nhưng thực tế thì hoàn toàn khác Khi nhà phát triển viết một ứng dụng dành cho Android, anh ta thực hiện các đoạn mã trong môi trường Java Sau đó,
nó sẽ được biên dịch sang các bytecode của Java, tuy nhiên để thực thi được ứng dụng này trên Android thì nhà phát triển phải thực thi một công cụ có tên là dx Đây là công
cụ dùng để chuyển đổi bytecode sang một dạng gọi là dex bytecode "Dex" là từ viết tắt của "Dalvik executable" đóng vai trò như cơ chế ảo thực thi các ứng dụng Android.3.5 Kiến trúc của Android
3.5.1 Tầng ứng dụng
Android được tích hợp sẵn một số ứng dụng cơ bản cần thiết như: contacts, browser, camera, phone,… Tất cả các ứng dụng chạy trên hệ điều hành Android đều được viết bằng Java
Hình 3.5– Tầng applications trong Android
Đây là một nền tảng mở, điều đó có 2 điều lợi:
- Với các hãng sản xuất điện thoại: Có thể tùy biến để phù hợp với cấu hình
điện thoại mà họ sản xuất cũng như để có nhiều mẫu mã, style (phong
Trang 35cách) hợp thị hiếu người dùng Vì thế nên tuy cùng chung nền tảng Android mà điện thoại của Google có thể khác hẳn với Motorola, HTC, T-Mobile, Samsung
- Với lập trình viên: Cho phép lập trình viên có thể sử dụng các API ở tầng
trên mà không cần phải hiểu rõ cấu trúc bên dưới, tạo điều kiện cho lập trình viên tự do sáng tạo bởi vì chỉ cần quan tâm đến nội dung mà ứng dụng họ làm việc Một tập hợp API rất hữu ích được xây dựng sẵn như hệ thống định vị, các dịch vụ chạy nền, liên lạc giữa các ứng dụng, các thành phần giao diện cấp cao
Giới thiệu một số thành phần của phần này:
- 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
- XMPP Service: Cung cấp công cụ để liên lạc trong thời gian thực.
- 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)
3.5.3 Library và Android Runtime
Library: 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): 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 mã để 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
Trang 36như để 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
- Thư viện SQLite: Hệ cơ sở dữ liệu để các ứng dụng có thể sử dụng.
Hình 3.5– Tầng Library và Android runtime
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 của Sun (nay là Oracle) (JVM) mà là chạy bằng máy ảo Dalvik do Google phát triển
3.5.4 Linux kernel
Hệ điều hành Android được phát triể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)
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
Trang 37Hình 3.5– Cấu trúc tầng Linux
Tầng này có các thành phần chủ yếu :
- 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
- 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
- M-System Driver: Quản lý việc đọc ghi lên các thiết bị nhớ như thẻ SD,
Android Emulator được trang bị đầy đủ hầu hết các tính năng của một thiết bị thật Tuy nhiên, một số đã bị giới hạn như là kết nối qua cổng USB, camera và video, nghe phone, nguồn điện giả lập và bluetooth
Trang 38Android Emulator thực hiện các công việc thông qua một bộ xử lý mã nguồn mở, công nghệ này được gọi là QEMU (http://bellard.org/qemu/) được phát triển bởi Fabrice Bellard.
3.7 Chu kỳ ứng dụng Android
Một tiến trình Linux gói gọn một ứng dụng Android đã được tạo ra cho ứng dụng khi codes cần được run và sẽ còn chạy cho đến khi:
- Nó không phụ thuộc.
- Hệ thống cần lấy lại bộ nhớ mà nó chiếm giữ cho các ứng dụng khác
Một sự khác thường và đặc tính cơ bản của Android là thời gian sống của tiến trình ứng dụng không được điều khiển trực tiếp bới chính nó Thay vào đó, nó được xác định bởi hệ thống qua một kết hợp của:
- Những phần của ứng dụng mà hệ thống biết đang chạy.
- Những phần quan trọng như thế nào đối với người dùng.
- Bao nhiêu vùng nhớ chiếm lĩnh trong hệ thống.
Nếu người dùng nhấn nút Back thì activity kế tiếp của stack sẽ di chuyển lên và trở thành active
Trang 39Hình 3.7– Activity Stack
3.7.3 Các trạng thái của chu kì sống
Một Activity chủ yếu có 3 chu kỳ chính sau:
- Active hoặc running: Khi Activity là được chạy trên màn hình Activity này
tập trung vào những thao tác của người dùng trên ứng dụng
- Paused: Activity là được tạm dừng (paused) khi mất focus nhưng người
dùng vẫn trông thấy Có nghĩa là một Activity mới ở trên nó nhưng không bao phủ đầy màn hình Một Activity tạm dừng là còn sống nhưng có thể bị kết thúc bởi hệ thống trong trường hợp thiếu vùng nhớ
- Stopped: Nếu nó hoàn toàn bao phủ bởi Activity khác Nó vẫn còn trạng
thái và thông tin thành viên trong nó Người dùng không thấy nó và thường
bị loại bỏ trong trường hợp hệ thống cần vùng nhớ cho tác vụ khác
Trang 40Hình 3.7– Chu kì sống của Activity
3.7.4 Chu kỳ sống của ứng dụng
Trong một ứng dụng Android có chứa nhiều thành phần và mỗi thành phần đều có một chu trình sống riêng Và ứng dụng chỉ được gọi là kết thúc khi tất cả các thành phần trong ứng dụng kết thúc Activity là một thành phần cho phép người dùng giao tiếp với ứng dụng Tuy nhiên, khi tất cả các Activity kết thúc và người dùng không còn giao tiếp được với ứng dụng nữa nhưng không có nghĩa là ứng dụng đã kết thúc Bởi vì ngoài Activity là thành phần có khả năng tương tác người dùng thì còn có các thành phần không có khả năng tương tác với người dùng như là Service, Broadcast receiver Có nghĩa là những thành phần không tương tác người dùng có thể chạy background dưới sự giám sát của hệ điều hành cho đến khi người dùng tự tắt chúng