1. Trang chủ
  2. » Luận Văn - Báo Cáo

xây dựng ứng dụng thu thuế thu nhập cá nhân trên điện thoại android

53 386 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 53
Dung lượng 3,12 MB

Nội dung

Các nhiệm vụ cụ thể của ĐATN • Nghiên cứu cấu trúc hệ điều hành Android • Cách xây dựng một ứng dụng chạy trên điện thoại Android • Xây dựng ứng dụng thu thuế thu nhập cá nhân 4.. Hình I

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

──────── * ───────

ĐỒ ÁN

TỐT NGHIỆP ĐẠI HỌC

NGÀNH CÔNG NGHỆ THÔNG TIN

XÂY DỰNG ỨNG DỤNG THU THUẾ THU NHẬP CÁ NHÂN TRÊN ĐIỆN THOẠI

Trang 2

PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

1 Thông tin về sinh viên

Họ và tên sinh viên: Nguyễn Quốc Huy

Lớp: Công nghệ phần mềm A Hệ đào tạo:Đại học chính quy

Đồ án tốt nghiệp được thực hiện tại:

Thời gian làm ĐATN: Từ ngày 15 / 01 /2011 đến 25 / 05 /2011

2 Mục đích nội dung của ĐATN

Nghiên cứu về hệ điều hành Android Xây dựng ứng dụng thu thuế thu nhập cá nhân qua điện thoại di động chạy hệ điều hành Android

3 Các nhiệm vụ cụ thể của ĐATN

• Nghiên cứu cấu trúc hệ điều hành Android

• Cách xây dựng một ứng dụng chạy trên điện thoại Android

• Xây dựng ứng dụng thu thuế thu nhập cá nhân

4 Lời cam đoan của sinh viên:

Tôi – Nguyễn Quốc Huy - cam kết ĐATN là công trình nghiên cứu của bản thân tôi dưới

sự hướng dẫn của Ths Đỗ Văn Uy

Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất kỳcông trình nào khác

Hà Nội, ngày tháng năm

Tác giả ĐATN

Nguyễn Quốc Huy

5 Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho phép bảovệ:

Hà Nội, ngày tháng năm

Giáo viên hướng dẫn

Ths Đỗ Văn Uy

Sinh viên thực hiện: Nguyễn Quốc Huy- 20061494 - Khóa 51- Lớp Công nghệ phần mềm A

Trang 3

TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP

Những năm gần đây, ứng dụng trên smart phone phát triển manh mẽ với rất nhiềunhững ứng dụng giúp ich rất nhiều trong sinh hoat , công tác của con người Việc phát triểncác ứng dụng trên smart phone phụ thuộc nhiều vào hệ điều hành cài đặt trên đó Hiện naytrên thị trường có rất nhiều hệ điều hành được phát triển cài đặt trên nhiều dòng smartphone ví dụ có thể kể đến : Iphone OS ; Symbian Os ; Windows Mobile ; Web Os ;Android Os

Mặc dù xuất hiện cách đây không lâu, khoảng 3-4 năm gần đây nhưng Android Os

đã có bước phát triển mạnh mẽ vượt qua những ông lớn kì cựu trong lĩnh vực này nhưWindows Mobile hay Symbian Os và trở thành sự lựa chọn của rất nhiều nhà sản xuấtsmart phone lớn trên thế giới như : HTC , SamSung ,LG…

Trong khuôn khổ đồ án, em tập trung nghiên cứu cấu trúc hệ điều hành Androidtrên di động và xây dựng ứng dụng trên Androidphone

Được sự gợi ý và hướng dẫn của thầy Đỗ Văn Uy ,đồ án xây dựng ứng dụng thuthuế thu nhập cá nhân trên điện thoại di động Android

Đồ án xây dựng bao gồm những nội dung chính như sau:

- Phần mở đầu : Giới thiệu tóm tắt nhiệm vụ đề tài, xác định mục tiêu và phạm vithực hiện

- Chương 1 : Nghiên cứu cấu trúc hệ điều hành Android và các bước xây dựngứng dụng trên Android phone

- Chương 2 : Xây dựng ứng dụng thu thuế thu nhập cá nhân trên Androidphone

- Kết luận: Đánh giá về kết quả thực hiện đồ án, phân tích những thuận lợi,khó khăn khi thực hiện đồ án, định hướng phát triển đồ án trong tương lai

Trang 4

Windows Mobile, Web Os, Android Os

Despite its young history of development, Android Os has made huge steps

surpassing famous brand names like Windows Mobile or Symbia Os to become the choice

of many famous smart phone manufacturers: HTC, SamSung, LG

Within the framework of this blueprint, I focus on studying the structure of Androidoperating system on mobile phone and the development of applications on Android phone

Owing to the recommendation and instruction from professor Do Van Uy, this blueprint is about developing the application of using individual income tax on Android mobile phone

The blueprints are divided into four main parts:

• Opening: The summarized introduction of the subject, defining goals and the area

of research

• Chapter 1: The study of the structure of Android operating system and steps to develop applications on Android

• Chapter 2: Setting up individual income tax application on Android phone

• Conclusion: Evaluation of the result of implementing the blueprint, analysis of advantages and disadvantages during implementation as well as the navigation of the direction of expanding the blueprint in the future

Sinh viên thực hiện: Nguyễn Quốc Huy- 20061494 - Khóa 51- Lớp Công nghệ phần mềm A

Trang 5

LỜI CẢM ƠN

Trước tiên em xin được gửi lời cảm ơn trân thành và sâu sắc nhất tới tất cả cácthầy cô giáo trường đại học Bách Khoa Hà Nội nói chung và các thầy cô giáo khoaCông nghệ thông tin , Bộ môn Công nghệ phần mềm nói riêng những người đã dạy

dỗ và truyền dạt cho em những kiến thức ,kinh nghiệm vô cùng quý giá trong suốtthời gian học tập dưới mái trường đại học Bách Khoa Hà Nội

Đặc biêt em xin gửi lời cám ơn đến thầy Đỗ Văn Uy-bộ môn Công nghệ phầnmềm- khoa Công nghê thông tin –ĐH Bách Khoa Hà Nội;thầy đã tận tình giúp đỡ,trực tiếp chỉ bảo,hướng dẫn em trong suốt quá trình làm đồ án tốt nghiệp Trongsuốt thời gian làm việc với thầy, em không ngừng tiếp thu thêm nhiều kiến thức bổích mà còn học được ở thầy tinh thần làm việc, thái độ nghiên cứu khoa học nghiêmtúc hiệu quả những điều thực sự cần thiết cho em không chỉ trong quá trình họctập,nghiên cứu làm đồ án mà còn cho cả quá trình công tác sau này

góp ý kiến và giúp đỡ trong thời gian vừa qua

Hà Nội , tháng 5 năm 2011

Nguyễn Quốc Huy

Trang 6

MỤC LỤC

Sinh viên thực hiện: Nguyễn Quốc Huy- 20061494 - Khóa 51- Lớp Công nghệ phần mềm A

Trang 7

DANH MỤC CÁC HÌNH MINH HỌA

Trang 8

DANH MỤC CÁC BẢNG

Sinh viên thực hiện: Nguyễn Quốc Huy- 20061494 - Khóa 51- Lớp Công nghệ phần mềm A

Trang 9

DANH MỤC CÁC TỪ VIẾT TẮT

Trang 10

PHẦN MỞ ĐẦU Tóm tắt các nhiệm vụ được giao trong đồ án :

Môi trường thực hiện đồ án : Bộ môn Công nghệ phần mềm, Viện CNTT &

Truyền thông – Đại học Bách Khoa Hà Nội

Bố cục đồ án bao gồm: phần mở đầu, 2 chương và kết luận

thực hiện

Chương 1 : Nghiên cứu cấu trúc hệ điều hành Android và các bước xây dựng

ứng dụng trên Android phone

Chương 2 : Xây dựng ứng dụng thu thuế thu nhập cá nhân trên Android phone.

Kết luận: Đánh giá về kết quả thực hiện đồ án, phân tích những thuận lợi, khó

khăn khi thực hiện đồ án, định hướng phát triển đồ án trong tương lai

Sinh viên thực hiện: Nguyễn Quốc Huy- 20061494 - Khóa 51- Lớp Công nghệ phần mềm A

Trang 11

Hình I-01: iPhone của Apple

CHƯƠNG 1 : NGHIÊN CỨU HỆ ĐIỀU HÀNH ANDROID

Nội của chương này sẽ trình bày các vấn đề sau:

o Giới thiệu chung về thị trường hệ điều hành di động hiện nay

o Nghiên cứu về hệ điều hành Android cho di động

o Quy trình cần thiết khi xây dựng ứng dụng trên Android phone

1 Giới thiệu chung về các hệ điều hành di động hiện nay

Như chúng ta đã biết trong xã hội hiện nay khoa học công nghệ phát triểntừng ngày từng giờ những công nghệ hôm nay còn mới nhưng ngày mai đã cónhững công nghệ mới hơn tốt hơn thay thế Trong thị trường điện thoại di độngcũng vậy ,nếu trước đây điện thoại di động chỉ đơn thuần với chức năng nghe gọi vànhắn tin thì hiện nay dòng điện thoại thông minh ra đời với tính năng xử lí và cấuhình cao không kém gì những chiếc máy tính cá nhân Trước sự phát triển mạnh mẽcủa phần cứng di động yêu cầu điện thoại di động xử liếu được nhiều chức năng, đadịch vụ vì vậy liên tục các hệ điều hành cho di động ra đời tiêu biểu là 1 số hệ điềuhành: Iphone OS ; Windows Mobile; …

1.1 Iphone OS

Lịch sử phát triển của iPhone OS cũng bắt đầu

không lâu Phiên bản đầu tiên được chính thức ra

mắt vào tháng 6 năm 2007 Nó được bắt nguồn

từ hệ điều hành dùng cho máy tính để bàn cũng

của hãng Apple là Mac OS X Với truyền thống

mang bản sắc riêng, iPhone OS thừa kế từ Mac

OS X đặc điểm là được thiết kế chỉ để chạy được

trên các thiết bị của hãng Apple, vì lẽ đó hiện

nay chỉ có 3 thiết bị sử dụng hệ điều hành này là

iPhone, iPod Touch và iPad Giao diện người

dùng của iPhone OS được xây dựng dựa trên

giao tiếp trực tiếp, sử dụng tương tác đa chạm,

đồ họa 3D ứng dụng OpenGL ES (OpenGL for

Embedded System) 1.1 Ứng dụng của iPhone

phải được viết và biên dịch theo cách riêng để

phù hợp với bộ xử lý dựa trên kiến trúc ARM

Ban đầu iPhone OS được phát hành không cho

phép ứng dụng của các hãng thứ ba hoạt động,

nhưng dưới áp lực từ thị trường, Apple đã phải

cung cấp bộ công cụ hỗ trợ phát triển ứng dụng

(SDK) cho các nhà phát triển cũng như mở cửa

cửa hàng phần mềm Apple App Store

Trang 12

Hình I-0: Windows Mobile của Microsof

Hình I-03: Điện thoại Symbian OS

1.2 Windows Mobile

Ra đời trước iPhone OS khá lâu, với danh

tiếng từ nhà sản xuất của mình, Windows

mobile đã nhanh chóng được tiếp nhận

Phiên bản đầu tiên được chính thức phát

hành ngày 19/04/2000 với giao tiếp thông

qua bút stylus Từ đó đến nay Microsoft đã

liên tục cho ra đời các phiên bản tiếp theo,

trong đó phiên bản mới nhất là Windows

Phone 7 Tuy nhiên qua các năm thị phần

của hệ điều hành này ngày cảng giảm dưới

sự cạnh trạnh mạnh từ nhiều hệ điều hành

khác

Điểm mạnh của Windows Mobile là các

ứng dụng văn phòng như xử lý văn bản,

email, làm việc và tương thích được với

máy tính để bàn Ngoài ra nó cũng có thể

chạy được rất nhiều ứng dụng thiết kế theo

“trường phái” Microsoft Microsoft cung

cấp một framework với một thư viện hàm

API trợ giúp cho các hãng thứ ba phát triển

ứng dụng trên hệ điều hành này, tương tự

như việc họ vẫn làm đối với hệ điều hành Windows cho máy để bản

1.3 Symbian OS

Đây có lẽ là hệ điều hành dành cho thiết bị

di động có lịch sử phát triển lâu dài nhất

Tiền thân của Symbian là hệ điều hành

giao diện đồ họa EPOC do hãng Psion

-Anh sản xuất từ những năm 1980, chủ yếu

dành cho các thiết bị PDA

Điểm mạnh nhất của Symbian chính là sự

phong phú của các ứng dụng dành cho nó

Ngôn ngữ chính được sử dụng để viết

chương trình cho Symbian là C++ với một

bộ công cụ lập trình (SDK) kèm sẵn cả bộ

biên dịch ra mã máy (trước đây là GCC)

Các ứng dụng cho Symbian có thể được

phát triển trên nhiều hệ điều hành máy

tính khác nhau như Windows, Linux và

Mac OS X với nhiều công cụ (IDE) khác

nhau Ngoài ra ứng dụng cũng có thể được

viết bằng các ngôn ngữ khác như Python,

Java ME, Flash Lite, Ruby, NET (Visual

Basic và C#) Symbian cũng hỗ trợ cài đặt phần mềm thông qua máy tính để bàn

Sinh viên thực hiện: Nguyễn Quốc Huy- 20061494 - Khóa 51- Lớp Công nghệ phần mềm A

Trang 13

Hình I-0: BlackBerry OS của RIM

Hình I-0: WebOS của Palm

Tuy nhiên đến phiên bản 9, các ứng dụng để cài đặt trên Symbian cần thêm một chữ

ký điện tử để xác thực và bảo vệ quyền lợi của các nhà phát triển phần mềm thu phí,nhưng nó khiến việc cài đặt trực tiếp trở nên khó khăn hơn Symbian đã phải ápdụng thêm đặc điểm này nhằm hạn chế sự bùng phát của các phần mềm độc hại trên

hệ điều hành này

Một số nhà sản xuất tiêu biểu như Nokia, Sony Ericsson, Samsung, Sharp, Fujitsu

1.4 Blackberry OS

Cũng hướng tới người dùng doanh

nhân, nhưng BlackBerry của

Research In Motion (RIM) lại được

chú ý hơn Windows Mobile

BlackBerry OS cung cấp khả năng

đa nhiệm, và được thiết kế cho các

thiết bị sử dụng phương pháp nhập

đặc biệt, thường là trackball hoặc

màn hình cảm ứng Hệ điều hành

được hỗ trợ MIDP 1.0 và WAP 1.2

Các phiên bản trước đó cho phép

đồng bộ hóa không dây thư điện tử

và lịch với Microsoft Exchange

Server , và với cả Lotus Domino

Phiên bản OS 4 hiện tại hỗ trợ MIDP

2.0, có khả năng kích hoạt không dây

hoàn toàn và đồng bộ thư điện tử ,

lịch, công việc, ghi chú và danh bạ

với Exchange, và khả năng hỗ trợ Novell

GroupWise, Lotus Notes khi kết hợp với

BlackBerry Enterprise Server

Palm Pre với hệ điều hành WebOS mới được

xem là đối thủ nặng ký của iPhone Nó được

thiết kế dung hòa giữa sự đơn giản và đẹp của

di động Apple lẫn các tính năng mạnh mẽ của

Android hay Windows Mobile

Vốn được xây dựng với nhân là Linux, người

dùng có thể chạy nhiều ứng dụng đồng thời

trên WebOS, các ứng dụng được sắp xếp tiện

sử dụng, dễ tìm kiếm Nếu iPhone dành cho

tất cả mọi người, Windows Mobile cho ông

chủ, Android của lập trình viên, BlackBerry

hướng tới người chuộng thông tin thì WebOS

khôn khéo với xu thế mạng xã hội và web 2.0

với sự hỗ trợ mãnh mẽ về trình duyệt web,

HTML 5, Javascript và CSS Đặc biệt WebOS

còn được hỗ trợ về flash từ Adobe

Trang 14

Hình I-0: Maemo của Nokia

5

BlackBerry 4.6 WebOS (Palm

Bảng I-01: So sánh các chức năng của một số hệ điều hành di động

Sinh viên thực hiện: Nguyễn Quốc Huy- 20061494 - Khóa 51- Lớp Công nghệ phần mềm A

Trang 15

Hình I-08: Logo của Android

Hình I-07: Thị trường di động hết năm 2009

2 Hệ điều hành Android

Android không chỉ đơn giản là một hệ điều hành dành

cho các thiết bị di động thông minh (smart phone), nó

còn được định nghĩa chính thức là một “software

stack” bao gồm hệ điều hành, các “middleware” (các

phần mềm liên kết các phần mềm hoặc các ứng dụng

khác) và các ứng dụng phím

Android có nền tảng mã nguồn mở được phát triển

bởi Google Bên cạnh kho ứng dụng khá phong phú

cùng một cộng đồng phát triển rộng lớn, Google còn

đưa ra bộ công cụ Android SDK cung cấp rất nhiều

APIs cần thiết cho việc phát triển các ứng dụng

Trang 16

Hình I-09: Điện thoại Nexus One của Google do HTC sản xuất

Hình I-10: Biểu đồ pháp triển Android từ 2/2010đến 1/2011

Android trên ngôn ngữ lập trình Java Mặc dù mới ra đời nhưng Android đã tạo rasức hút rất lớn đối với các nhà phát triển và các hãng sản xuất Hiện tại đã có nhữngchiếc điện thoại Android đầu tiên được xuất xưởng như T-Mobile G1 của HTC,SamSung I7500 Bên cạnh đó rất nhiều hãng sản xuất điện thoại lớn trên thế giớinhư Motorola, HTC, SumSung, Sony Ericsson cũng đã cam kết sẽ gắn bó vớiAndroid Ngoài ra Android còn có thể chạy trên các netbook và có thể sẽ trở thànhmột hệ điều hành nữa giành cho netbook

Android được đánh giá là có triển vọng rất lớn và có tốc độ tăng trưởng nhanh trongnhững năm tới Dưới đây là những ưu điểm tạo nên sức cạnh tranh của Android

Sinh viên thực hiện: Nguyễn Quốc Huy- 20061494 - Khóa 51- Lớp Công nghệ phần mềm A

Trang 18

2.1 Tổng quan về Android

2.1.1 Những điểm mạnh của Android

nền tảng hoàn toàn mở (mã nguồn mở – open source), do đó những chiếc điện thoạichạy Android sẽ không mất phí cho hệ điều hành, kéo theo giá thành của nhữngchiếc điện thoại này sẽ giảm xuống Đó chính là một yếu tố cạnh tranh rất lớn củaAndroid

của điện thoại và các ứng dụng của bên thứ ba Tất cả đều có quyền truy nhập nhưnhau đến các khả năng của điện thoại cung cấp cho người dùng với các ứng dụng vàdịch vụ rất rộng rãi Vì thế các ứng dụng có thể phát huy mọi điểm mạnh của mình

mà không gặp trở ngại nào

các ứng dụng mới Và không chỉ phá vỡ rào cản về mặt kỹ thuật mà còn cả rào cản

về mặt địa lý, với Android một nhà phát triển có thể xây dựng ứng dụng cho phépngười dùng thấy được vị trí của bạn bè của họ, thông báo khi họ ở gần nhau và tạo

cơ hội để họ kết nối với nhau

rộng các công cụ và thư viện hữu ích được sử dụng để xây dựng các ứng dụng Ví

dụ Android cho phép các nhà phát triển lấy về vị trí của thiết bị và cho phép cácthiết bị kết nối với nhau Thêm nữa Android còn chứa một tập đầy đủ các công cụđược xây dựng rất sát với nền tảng giúp cho các ứng dụng được tạo ra có hiệu suấtcao

2.1.2 Các tính năng của Android

Giao diện Hỗ trợ màn hình kích thước lớn, card đồ họa VGA, đồ họa 2D,

đồ họa 3D dựa trên OpenGL ES và tương thích với giao diệntruyền thống của các thiết bị di động Một số tính năng khác:autocomplete (gợi ý và tự đồng điền), màn hình chính tiệndụng cho phép tìm kiếm dữ liệu thông tin Ngoài ra Androdcòn cho phép tìm kiếm qua giọng nói

Lưu trữ Sử dụng hệ quản trị cơ sở dữ liệu quan hệ SQLite để lưu trữ

dữ liệu

Kết nối Hỗ trợ nhiều giao thức kết nối khác nhau: GSM/EDGE, IDEN,

CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi và WiMAX

Tin nhắn Hỗ trợ 2 giao thức truyền tải tin nhắn là SMS và MMS

Trình duyệt

web

Trình duyệt web của Android được xây dựng dựa trên nềnWebkit Trình duyệt này đạt được 93/100 điểm với bài kiểmtra Acid3 Hỗ trợ Flash phiên bản 10, hỗ trợ upload file quatrình duyệt

Hỗ trợ Java Ứng dụng trên Android được viết bằng mã Java có thể được

biên dịch để chạy trên máy ảo Dalvik Virtual Machine Tuynhiên Android lại không trợ J2ME như nhiều dòng điện thoại

Sinh viên thực hiện: Nguyễn Quốc Huy- 20061494 - Khóa 51- Lớp Công nghệ phần mềm A

Trang 19

hiện đại khác Ngoài ra ứng dụng trên Android còn có thểđược cài đặt trên thẻ nhớ ngoài nhằm mở rộng dung lượng bộnhớ.

Hỗ trợ Media Một số chuẩn của 3GP và MP4 như H263, H264, MPEG-4 SP,

AAC ; MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF,BMP Cho phép quay phim và xem lại Cho phép gửi ảnh lênPiccassa và video lên Youtupe trực tiếp từ thiết bị Ngoài raAndroid còn đi kèm theo một trình quản lý thư viện(galleries)

Hỗ trợ phần

cứng

Video, camera, màn hình cảm ứng, gia tốc kế, từ phổ kế, cácthiết bị tăng tốc đồ họa 2D và 3D

Thương mại Google cho ra đời một cửa hàng trực tuyến tại địa chỉ

http://www.android.com/market/ bắt đầu từ năm 2008, chophép người dùng tải và cải đặt phần mềm vào Android màkhông phải thông qua máy tính để bàn

Hỗ trợ đa chạm Android có hỗ trợ cảm ứng đa chạm với các thiết bị hỗ trợ

công nghệ này Tuy nhiên tính năng này mặc định bị tắt nhằmtránh vi phạm tới bằng sáng chế của Apple Tính năng này chỉđược bật sẵn trên Nexus One của Google và Motorola Droid

Gọi điện video Không chính thức hỗ trợ, nhưng có thể sử dụng trên chiếc

dễ dàng tạo mới một project

Bảng I-02: Bảng tính năng Android OS

2.2 Kiến trúc Android

Kiến trúc Android gồm 4 tầng:

Trang 20

Hình I-11: Các tầng kiến trúc Android

Đây là các ứng dụng tương tác trực tiếp với người dùng bao gồm các ứng dựnglõi và những ứng dụng của bên thứ ba Ngoài việc cung cấp đầy đủ các ứng dụng cơbản của một chiếc điện thoại thông thường như: tạo cuộc gọi, nhắn tin Androidcòn có những dịch vụ rất hữu ích khác: trình duyệt web, google maps, các ứng dụngmedia, camera, games Hơn nữa Google còn cung cấp kho ứng dụng cho Android

thoải mái download để sử dụng

Đây là nơi chứa các dịch vụ và hệ thống quản lí ứng dụng bao gồm:

trí

khác hoặc chia sẻ dữ liệu của nó cho các ứng dụng

chí cả trình duyệt web được nhúng vào trong ứng dụng

hoặc gỡ bỏ các gói ứng dụng

Sinh viên thực hiện: Nguyễn Quốc Huy- 20061494 - Khóa 51- Lớp Công nghệ phần mềm A

Trang 21

cuộc gọi, tin nhắn

trong code như các chuỗi, icon, các file layout, các đối tượng graphics được

sử dụng

dưới dạng thanh trạng thái

Android cung cấp một tập các thư viện C/C++ được sử dụng bởi các thành phầnkhác nhau trong hệ thống Dưới đây là một số thư viện lõi:

cho các thiết bị nhúng dựa trên nhân Linux

cũng như là các định dạng ảnh tĩnh như MPEG4, H.264, MP3, AAC, AMR,JPG, và PNG

thể hiện đồ họa, kết hợp các lớp đồ họa 2D, 3D từ nhiều ứng dụng

trình duyệt Web Android và trình duyệt Web nhúng

cả các ứng dụng

Máy ảo Dalvik một thành phần rất quan trọng trong Android Nó thực hiện cácứng dụng trên nền Java và đã được đóng gói dưới dạng file dex (Dalvik Executable

- dạng file thực thi của máy ảo Dalvik) phù hợp với các thiết bị mobile bị hạn chế

về bộ nhớ và tốc độ xử lí chậm Không giống như hầu hết các máy ảo dựa trên ngănxếp, Dalvik là một máy ảo dựa thanh ghi Với các máy ảo dựa ngăn xếp, do phảinạp dữ liệu vào ngăn xếp rồi mới thực hiện trên các dữ liệu đó nên chúng thườngcần nhiều lệnh hơn so với những máy ảo dựa thanh ghi Tuy nhiên các máy ảo dựathanh ghi do phải mã hóa thanh ghi nguồn và đích nên các lệnh thường sẽ lớn hơn.Dalvik sử dụng một loại bytecode riêng không phải Java bytecode Android SDKcung cấp công cụ cho phép chuyển các file Java class sau khi biên dịch sang dạngfile dex, tức là dịch từ Java bytecode sang Dalvik bytecode Nhiều file class có thểđược đóng gói vào một file dex Dalvik có cơ chế mã hóa đặc biệt khiến cho cácfile dex có kích thước nhỏ hơn file jar nhằm tối ưu hóa việc sử dụng bộ nhớ Mỗiứng dụng chạy trên một tiến trình của riêng nó tương ứng mỗi tiến trình lại có riêng

nó một DVM, như vậy các tiến trình sẽ không gây ảnh hưởng lẫn nhau Cũng theo

đó, Android cũng hỗ trợ nhiều thực thể DVM chạy song song với nhau cho phépchạy cùng lúc nhiều ứng dụng

Android dựa trên nhân Linux version 2.6 đối với các dịch vụ lõi của hệ thốngnhư bảo mật, quản lí bộ nhớ, quản lí tiến trình, mạng, trình điều khiển Nhân Linuxnhư là một lớp trừu tượng giữa phần cứng và phần còn lại của hệ thống Android

Trang 22

Nhưng Linux không làm việc trực tiếp với các ứng dụng mà thông qua máy ảoDVM Nhân Linux được Google sử dụng không hoàn toàn là nhân Linux được sửdụng cho các phiên bản hệ điều hành cho máy tính để bàn, trong đó Google đã loại

bỏ đi hệ thống quản lý cửa sổ ứng dụng X Window System cũng như bỏ bớt một sốthư viện trong bộ thư viện chuẩn GNU Do đó việc sử dụng lại code cũng như thưviện của các chương trình ứng dụng của các hệ điều hành Linux cho máy tính đểbàn là rất khó khăn

2.3 Phần mềm chạy trên Android

2.3.1 Phân loại

Phần mềm trên Android có 2 dạng chia theo mã nguồn Dạng thứ nhất là cácphần mềm viết bằng mã thuần C cho kiến trúc ARM có thể biên dịch bằng bộ biêndịch mã nguồn mở GCC và cài đặt vào Android thông qua công cụ Android NativeDevelopment Kit Các phần mềm này chạy trực tiếp với nhân Linux, vì vậy cácphần mềm dạng này thường là các thư viện trong lớp Libraries của Android Cáclớp trong các thư viện này có thể được gọi từ các chương trình viết bằng mã Javakhác thông qua máy ảo Dalvik Tuy Google cung cấp công cụ cho phép cài đặt vàthực thi các chương trình viết bằng ngôn ngữ C trên Android, thực tế việc phát triểnứng dụng dạng này là khó khăn, bởi các thư viện C của Android không phải là cácthư viện chuẩn như trên các hệ điều hành khác

Dạng phần mềm thứ hai được viết bằng ngôn ngữ Java Mã Java sau khi đượcbiên dịch sẽ được đóng gói thành một file đơn apk duy nhất Đây chính là dạng filedùng cho việc phân phối và cài đặt các ứng dụng Android trên thiết bị Toàn bộcode trong một gói apk được coi là một ứng dụng Tuy nhiên điểm cần chú ý rằngthực chất Android chỉ sử dụng lại cú pháp của ngôn ngữ Java là chủ yếu chứ không

hỗ trợ đầy đủ ngôn ngữ này Các thư viện Java cũng như các hàm API của Androidchỉ là một phần của bộ chuẩn Java Platform Standard Edition (Java SE) hay bộ thunhỏ dành cho di động Java Platform Micro Edition (Java ME hay còn gọi là J2ME).Máy ảo Java của Android cũng là một dạng khác dựa trên cấu trúc của máy ảo Java

Vì vậy việc tái sử dụng mã nguồn của các ứng dụng viết cho các hệ điều hành khácvào các ứng dụng trên Android cũng khá khó khăn

Trong khuôn khổ đồ án này sẽ tập trung vào nghiên cứu và trình bày về pháttriển ứng dụng trên Android sử dụng ngôn ngữ Java

2.3.2 Các thành phần cơ bản của ứng dụng trên Android

Ứng dụng Android có 4 thành phần chính:

thao tác Ví dụ một activity có thể hiện ra một list cho người dùng lựa chọn Haynhư trong một ứng dụng gửi tin nhắn cần có một activity để hiển thị danh sách cáccontacts cho người dùng lựa chọn, một activity hiện lên màn hình soạn thảo để viếttin, một activity cho phép người dùng xem lại các tin nhắn cũ

Một ứng dụng Android có thể chứa một hoặc nhiều activity Mỗi một activity đượccung cấp một cửa sổ để thao tác trên đó Cửa sổ này có thể là toàn màn hình hoặcnhỏ hơn màn hình và đè lên cửa sổ khác Thành phần trực quan của cửa sổ đượccung cấp bởi một hệ thống các khung nhìn - các đối tượng thừa kế từ lớp View (nhưTextView để thể hiện các dòng văn bản, ButtonView để thể hiện các nút, ) Mỗikhung nhìn điều khiển một vùng hình chữ nhật bên trong cửa sổ Các khung nhìn

Sinh viên thực hiện: Nguyễn Quốc Huy- 20061494 - Khóa 51- Lớp Công nghệ phần mềm A

Trang 23

chính là nơi một activity tương tác với người dùng Các khung nhìn được đặt vàocửa sổ bởi hàm Activity.setContentView(View Oject)

thời gian không xác định Mỗi một service thừa kế từ lớp cơ sở Service Một ví dụ

để có thể hiểu về service là ứng dụng music player Ứng dụng có thể có nhiềuactivity cho phép người dùng lựa chọn bài hát hay bắt đầu chơi nhạc Tuy nhiên bộphận phát nhạc lại không được được điều khiển bởi activity bởi người dùng mongmuốn nhạc vẫn được chơi khi người dùng rời khỏi giao diện của ứng dụng vàchuyển sang một công việc khác Khi đó activity của ứng dụng cần khởi động mộtservice điều khiển việc phát nhạc ở nền Như vậy hệ thống có thể duy trì serviceđiều khiển việc phát nhạc ngay cả khi người dùng chuyển sang một giao diện khác

nhận và hưởng ứng lại những thông báo (broadcasts) được ban ra Rất nhiều thôngbáo bắt nguồn từ trong mã của hệ thống như thông báo timezone thay đổi, pin yếu,

có cuộc gọi đến Ngoài ra một ứng dụng cũng có thể khởi tạo các broadcasts nhằmthông báo cho các ứng dụng khác các thông tin cần thiết Một ứng dụng có thể cótùy ý số lượng các Broadcasts Receiver để hưởng ứng lại các thông báo tương ứng

mà nó cho là quan trọng Tất cả các receiver đó đều thừa kế từ lớp cơ sởBroadcastsReceiver Broadcasts Receiver không thể hiện giao diện trực quan Tuynhiên nó có thể khởi động một activity hưởng ứng lại thông tin nhận được hoặc cóthể sử dụng lớp Notification Manager để cảnh báo người dùng

có thể được sử dụng bởi một ứng dụng khác Content Provider thừa kế từ lớp cơ sởContentProvider để thực hiện một tập các phương thức chuẩn cho phép các ứngdụng lấy hoặc lưu trữ các kiểu dữ liệu mà nó điều khiển Tuy nhiên các ứng dụngkhông nên gọi trực tiếp các hàm này Thay vào đó chúng sử dụng đối tượngContenResolver và các phương thức của chúng Một đối tượng ContenResolver cóthể nói chuyện với bất kì ContentProvider nào, chúng kết hợp với các provider đểquản lí các liên lạc liên tiến trình

2.3.3 Quản lí thành phần

Đặc điểm trung tâm của Android là một ứng dụng có thể sử dụng các thành phầncủa ứng dụng khác Ví dụ, ứng dụng cần tạo ra một danh sách các hình ảnh đã đượcphát triển bởi một ứng dụng khác ta chỉ cần gọi danh sách đó ra mà không phải xâydựng lại trong ứng dụng mới Các ứng dụng không thể kết hợp code với những ứngdụng khác hay liên kết tới code của ứng dụng khác Nó đơn giản chỉ khởi độngđoạn code của ứng dụng khác khi cần thiết Để làm được điều này, hệ thống phải cókhả năng khởi động một tiến trình ứng dụng khi cần đến bất cứ phần nào của nócũng như khởi tạo các đối tượng java cho phần đó Do đó không giống như ứngdụng trên các hệ thống khác, Android không có một lối vào chính (hàm main()).Thay vào đó, nó có những thành phần cần thiết mà hệ thống có thể khởi tạo và chạykhi cần thiết

Các thành phần của một ứng dụng mà nó sử dụng được nhóm vào một tác vụ (task).Đối với người dùng thì tác vụ tương đương với ứng dụng, nhưng bên trong một tác

vụ này không hẳn chỉ chứa các thành phần của ứng dụng đó mà nó còn có thể chứathành phần của các ứng dụng khác do ứng dụng chính gọi Các thành phần trong

Trang 24

một tác vụ này được sắp xếp thành một ngăn xếp, trong đó thành phần gốc chính làthành phần ban đầu khi ứn dụng được kích hoạt Khi một thành phần trong tác vụgọi mới một thành phần khác, thành phần mới này sẽ được đặt lên đỉnh ngăn xếp.Thành phần ở đỉnh ngăn xếp là thành phần hoạt động chính, các thành phần khácvẫn hoạt động ngầm Điều này có thể thấy rõ hơn đối với activity Một activity cóthể gọi một activity khác Activity được gọi sẽ xuất hiện trên màn hình Khi ngườidùng đóng activity này lại, activity gọi sẽ xuất hiện trở lại trên màn hình.

Toàn bộ các thành phần trong một tác vụ cũng có thể được xử lý như một khối đơnkhi chúng có thể bị đẩy xuống hoạt động nền nhường chỗ cho một tác vụ mới, vàcũng có thể được đẩy lên hoạt động chính khi người dùng gọi lại tác vụ này Bảnthân các thành phần trong một tác vụ khi gọi một thành phần mới cũng có thể quyếtđịnh thành phần mới được gọi này cùng tác vụ với mình không hay tạo thành mộttác vụ mới (nói cách khác trong trường hợp này là kích hoạt một ứng dụng hay mộttác vụ khác)

Khi hay tác vụ hoạt động nền, nó vẫn có thể tiếp tục giao tiếp với hệ thống thôngqua thành phần Broadcast Receiver Thành phần này đơn giản đóng vai trò như đôitai của tác vụ, tác vụ chỉ cần ngồi chơi và chờ khi hệ thống có thông báo gọi tới mớiphải hoạt động

Khi một tác vụ nhàn rỗi không hoạt động trong một thời gian, theo mặc định hệđiều hành sẽ loại bỏ tất cả các thành phần của tác vụ của người dùng trừ thành phầngốc Do đó khi quay trở lại trạng thái của tác vụ vẫn giữ nguyên nhưng người dùngphải bắt đầu lại từ đầu Đặc điểm này dựa trên ý tưởng rằng khi đã bỏ quên tác vụnày tức là người dùng đã không còn muốn tiếp tục việc đang làm Việc trở lại ngaythành phần đầu cho phép người dùng nhanh chóng thực hiện công việc mới với tác

vụ cũ

2.3.4 Quản lí tiến trình

Khi khởi chạy một ứng dụng, Android sẽ gọi ra thành phần mặc định của nó, khởichạy trong một tiến trình Linux gồm 1 luồng đơn (thread) Mặc định các thành phầntiếp theo sẽ chạy trong tiến trình và luồng này Nhưng cũng có thể các thành phầncủa cùng 1 tác vụ có thể chạy trong các tiến trình khác nhau hoặc trong các luồngkhác nhau

Mỗi thành phần của ứng dụng đều có những thuộc tính điều khiển được quy địnhtrong tệp điều khiển (tệp manifest), trong đó có thuộc tính quy định thành phần đóchạy trong tiến trình của riêng nó, có thể chia sẻ tiến trình của nó với các thànhphần khác hay không, hay quy định các thành phần của ứng dụng này có thể đượcchạy trong tiến trình của ứng dụng khác, tức là các ứng dụng khác nhau có thể dùngchung các thông tin xác định người dùng của tiến trình Linux và dùng chung chữ kýbảo mật

Tất cả các thành phần sau của một tác vụ đều được gọi và khởi tạo từ luồng chínhtrong tiến trình ban đầu của tác vụ đó Một số thành phần chỉ được phép chạy trongluồng này còn số khác có thể chạy trong luồng khác hoặc trong tiến trình khác Việc kết thúc tiến trình không do chương trình quyết định hay người dùng quản lý

mà hoàn toàn do Android tự quyết định Khi thoát một ứng dụng thực chất là đẩytác vụ của ứng dụng đó xuống hoạt động nền Android sẽ tự động kết thúc một tiếntrình trong một số trường hợp như thiếu bộ nhớ, cần giải phóng cho tác vụ mới có

Sinh viên thực hiện: Nguyễn Quốc Huy- 20061494 - Khóa 51- Lớp Công nghệ phần mềm A

Trang 25

Hình I-12: Vòng đời của Activity

độ ưu tiên cao hơn Việc chọn tiến trình để tắt được dựa trên người dùng Các tiếntrình chạy nền thường được ưu tiên tắt Trước khi tắt 1 tiến trình, trạng thái của cácthành phần đang hoạt động sẽ được lưu lại, và do đó khi người dùng quay trở lại,tiến trình lại được khôi phục như cũ và người dùng không hề biết nó đã bị tắt

Mỗi tiến trình đều có thể có nhiều luồng khác nhau Mặc định 1 tác vụ trên Androidchạy trong một luồng đơn của một tiến trình Nhưng đôi khi ta muốn một số thaotác được thực hiện bên dưới tách biệt với giao diện bên ngoài với người dùng nhằmtối ưu tốc độ tương tác với người dùng, ta có thể sinh ra các luồng con để chạy cácthao tác này Android hỗ trợ khá nhiều lớp quản lý luồng này từ Java

2.3.5 Vòng đời của một số thành phần

Các thành phần ứng dụng đều có vòng đời riêng từ lúc bắt đầu khi Android khởi tạochúng để trả lời lại các đối tượng Itent cho đến lúc kết thúc khi các biểu hiện (đốitượng cụ thể) của chúng bị hủy Trong vòng đời đó, chúng có thể trải qua nhiều giaiđoạn với nhiều trạng thái khác nhau Mục này sẽ trình bày về vòng đời của activity,broadcasts receiver, service bao gồm các trạng thái, các phương thức để thay đổitrạng thácủa chúng

Trang 26

Hình I-13: Vòng đời của Service

Trên đây em đã trình bày cơ bản về cấu trúc hệ điều hành Android và các thànhphần của 1 ứng dụng cũng vòng đời, thời gian hoạt động của 1 số thành phần cơbản Qua đó hình dung được các bước xây dựng 1 ứng dụng qua các thành phần

Sinh viên thực hiện: Nguyễn Quốc Huy- 20061494 - Khóa 51- Lớp Công nghệ phần mềm A

Ngày đăng: 22/11/2014, 08:41

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
6. Google Android Developer guide, http://developer.android.com Link
7. Android Developer Forum, http://www.anddev.org/ Link
8. Diễn đàn Android Việt Nam, http://diendan.vietandroid.com/ Link
1. W.Frank Ableson and Charlie Collins and Robi Sen, Unlocking Android, Manning, 2009 Khác
2. Jason Hunter and William Crawford, Java Servlet Programming, O’reilly, 1998 Khác
3. Chris Haseman ,Android Essentials ,116 pages, 2008 Khác
4. Mark L.Murphy , Beginning Android ,2009 Khác
5. Sayed Y.Hashimi and Satya Komatineni , Pro Android ,2009 Khác

HÌNH ẢNH LIÊN QUAN

Hình I-01: iPhone của Apple - xây dựng ứng dụng thu thuế thu nhập cá nhân trên điện thoại android
nh I-01: iPhone của Apple (Trang 11)
Hình I-0: WebOS của Palm - xây dựng ứng dụng thu thuế thu nhập cá nhân trên điện thoại android
nh I-0: WebOS của Palm (Trang 13)
Hình I-0: BlackBerry OS của RIM - xây dựng ứng dụng thu thuế thu nhập cá nhân trên điện thoại android
nh I-0: BlackBerry OS của RIM (Trang 13)
Hình I-0: Maemo của Nokia - xây dựng ứng dụng thu thuế thu nhập cá nhân trên điện thoại android
nh I-0: Maemo của Nokia (Trang 14)
Hình I-08: Logo của Android - xây dựng ứng dụng thu thuế thu nhập cá nhân trên điện thoại android
nh I-08: Logo của Android (Trang 15)
Hình I-09: Điện thoại Nexus One của Google do HTC sản xuất - xây dựng ứng dụng thu thuế thu nhập cá nhân trên điện thoại android
nh I-09: Điện thoại Nexus One của Google do HTC sản xuất (Trang 16)
Hình I-10: Biểu đồ pháp triển Android từ 2/2010đến 1/2011 - xây dựng ứng dụng thu thuế thu nhập cá nhân trên điện thoại android
nh I-10: Biểu đồ pháp triển Android từ 2/2010đến 1/2011 (Trang 16)
Hình I-11: Các tầng kiến trúc Android - xây dựng ứng dụng thu thuế thu nhập cá nhân trên điện thoại android
nh I-11: Các tầng kiến trúc Android (Trang 20)
Hình I-12: Vòng đời của Activity - xây dựng ứng dụng thu thuế thu nhập cá nhân trên điện thoại android
nh I-12: Vòng đời của Activity (Trang 25)
Hình I-13: Vòng đời của Service - xây dựng ứng dụng thu thuế thu nhập cá nhân trên điện thoại android
nh I-13: Vòng đời của Service (Trang 26)
Hình II-01: Mô tả sơ đồ hệ thống thu thuế - xây dựng ứng dụng thu thuế thu nhập cá nhân trên điện thoại android
nh II-01: Mô tả sơ đồ hệ thống thu thuế (Trang 29)
Hình II-02: Usecase phía client - xây dựng ứng dụng thu thuế thu nhập cá nhân trên điện thoại android
nh II-02: Usecase phía client (Trang 30)
2.2. Sơ đồ trạng thái - xây dựng ứng dụng thu thuế thu nhập cá nhân trên điện thoại android
2.2. Sơ đồ trạng thái (Trang 31)
Hình II-04: Biểu đồ tuần tự Module đăng kí - xây dựng ứng dụng thu thuế thu nhập cá nhân trên điện thoại android
nh II-04: Biểu đồ tuần tự Module đăng kí (Trang 32)
Hình II-05: Biểu đồ tuần tự Module đăng nhập - xây dựng ứng dụng thu thuế thu nhập cá nhân trên điện thoại android
nh II-05: Biểu đồ tuần tự Module đăng nhập (Trang 33)
Hình II-06: Biểu đồ tuần tự Module nộp thuế - xây dựng ứng dụng thu thuế thu nhập cá nhân trên điện thoại android
nh II-06: Biểu đồ tuần tự Module nộp thuế (Trang 34)
Hình II-07: Biểu đồ tuần tự Module kiểm tra lịch sử nộp thuế - xây dựng ứng dụng thu thuế thu nhập cá nhân trên điện thoại android
nh II-07: Biểu đồ tuần tự Module kiểm tra lịch sử nộp thuế (Trang 35)
Hình II-08: Biểu đồ tuần tự Module quản lí thông tin cá nhân - xây dựng ứng dụng thu thuế thu nhập cá nhân trên điện thoại android
nh II-08: Biểu đồ tuần tự Module quản lí thông tin cá nhân (Trang 36)
Hình II-09: Biểu đồ lớp chính trong chương trình - xây dựng ứng dụng thu thuế thu nhập cá nhân trên điện thoại android
nh II-09: Biểu đồ lớp chính trong chương trình (Trang 37)
3.1.4. Bảng lưu trữ thông tin nộp thuế - xây dựng ứng dụng thu thuế thu nhập cá nhân trên điện thoại android
3.1.4. Bảng lưu trữ thông tin nộp thuế (Trang 39)
Bảng II-03: Bảng thông tin cá nhân người dùng - xây dựng ứng dụng thu thuế thu nhập cá nhân trên điện thoại android
ng II-03: Bảng thông tin cá nhân người dùng (Trang 39)
Hình II-10: Mô hình hóa module đăng kí - xây dựng ứng dụng thu thuế thu nhập cá nhân trên điện thoại android
nh II-10: Mô hình hóa module đăng kí (Trang 40)
Hình II-11: Mô hình hóa module đăng nhập - xây dựng ứng dụng thu thuế thu nhập cá nhân trên điện thoại android
nh II-11: Mô hình hóa module đăng nhập (Trang 41)
Hình II-12: Mô hình hóa module quản lí - xây dựng ứng dụng thu thuế thu nhập cá nhân trên điện thoại android
nh II-12: Mô hình hóa module quản lí (Trang 43)
Hình II-14: Màn hình báo lỗi đăng nhập - xây dựng ứng dụng thu thuế thu nhập cá nhân trên điện thoại android
nh II-14: Màn hình báo lỗi đăng nhập (Trang 44)
Hình II-17: Giao diện báo lỗi thông tin nhập - xây dựng ứng dụng thu thuế thu nhập cá nhân trên điện thoại android
nh II-17: Giao diện báo lỗi thông tin nhập (Trang 45)
Hình II-18: Màn hình quản lí chính - xây dựng ứng dụng thu thuế thu nhập cá nhân trên điện thoại android
nh II-18: Màn hình quản lí chính (Trang 46)
Hình II-19: Giao diện quản lí thông tin cá nhân - xây dựng ứng dụng thu thuế thu nhập cá nhân trên điện thoại android
nh II-19: Giao diện quản lí thông tin cá nhân (Trang 47)
Hình II-21: Giao diện nộp thuế. - xây dựng ứng dụng thu thuế thu nhập cá nhân trên điện thoại android
nh II-21: Giao diện nộp thuế (Trang 48)
Hình II-22: Giao diện kiểm tra thông tin thuế. - xây dựng ứng dụng thu thuế thu nhập cá nhân trên điện thoại android
nh II-22: Giao diện kiểm tra thông tin thuế (Trang 49)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w