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

0962TÌM HIẾU VÀ PHÁT TRIỀN ỨNG DỤNG CALCULATOR TRÊN HỆ ĐIỀU HÀNH ANDROID

86 4 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

Tiêu đề Tìm Hiểu Và Phát Triển Ứng Dụng Calculator Trên Hệ Điều Hành Android
Tác giả Lê Quốc Việt
Người hướng dẫn ThS. H Quang Khải
Trường học Trường Đại Học Công Nghệ Thông Tin
Thể loại báo cáo khóa luận tốt nghiệp
Năm xuất bản 2012
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 86
Dung lượng 3,79 MB

Cấu trúc

  • I. Gi i thi u đ tài (13)
    • 1) Tên đ tài (13)
    • 2) Th c tr ng (13)
    • 3) Nhu c u (13)
    • 4) N i dung (15)
    • 5) Ph ng pháp th c hi n (16)
  • II. Gi i thi u các ch c n ng (16)
    • 1) Giao di n (16)
    • 2) Các ch c n ng (19)
  • III. ánh giá k t qu (19)
  • I. Tìm hi u h đi u hành Android (21)
    • 1) Gi i thi u h đ i u hành Android (21)
    • 2) c đ i m c a H H Android (0)
    • 3) C u trúc h th ng Android (30)
    • 4) Chu k ng d ng Android (0)
    • 5) Các thành ph n trong ng d ng android (34)
  • II. Xây d ng ng d ng trên h đ i u hành android (43)
    • 1) Yêu c u h th ng (43)
    • 2) Cài đ t Android SDK (43)
  • III. Thu t toán đã dùng (51)
  • I. Gi i thi u các ch c n ng (53)
  • II. Chi ti t t ng ch c n ng (53)
    • 1) Máy tính C b n (53)
    • 2) Máy tính Khoa h c (56)
    • 3) Gi i ph ng trình (58)
    • 4) Các công th c toán h c (62)
    • 5) Chuy n đ i (67)
    • 6) History (68)
  • I. u đi m và khuy t đi m (72)
  • II. H ng phát tri n (73)
  • III. T đ ánh giá (74)
  • Hinh 2.1 Các h đ i u hành di đ ng hi n nay (0)

Nội dung

Gi i thi u đ tài

Tên đ tài

Tìm hi u và phát tri n ng d ng Calculator trên h đi u hành Android

Th c tr ng

Mặc dù mới xuất hiện trên thị trường Việt Nam, lập trình Android đang trở thành lĩnh vực hấp dẫn với nhiều tiềm năng trong ngành phát triển ứng dụng di động, và điều này hứa hẹn sẽ tiếp tục phát triển mạnh mẽ trong tương lai.

Sự phát triển của các thiết bị di động đang trở thành một chủ đề nóng và thu hút sự quan tâm Cùng với sự bùng nổ của ngành công nghệ phần mềm tại Việt Nam, nghề lập trình di động cũng đang trong giai đoạn phát triển mạnh mẽ Đây là một ngành nghề mới mẻ, và hiện tại đang đối mặt với tình trạng nhân lực khan hiếm, tạo ra cơ hội việc làm hấp dẫn cho những ai có kỹ năng trong lĩnh vực này.

Xây dựng ứng dụng di động trên smartphone là lĩnh vực phát triển nhanh nhất trong ngành CNTT, với 1,4 tỷ thuê bao và 452 triệu smartphone được bán ra trong năm 2012, cùng với 6,7 triệu ứng dụng di động được tải xuống trước năm 2014 Xu hướng và tiềm năng của lĩnh vực lập trình di động, đặc biệt là lập trình Android, đã mang đến làn sóng mới trong ngành công nghệ thông tin Đồng thời, với sự phát triển mạnh mẽ, nhu cầu nhân lực cũng đang gia tăng, tạo ra hàng trăm vị trí tuyển dụng nhưng vẫn khó tìm được ứng viên phù hợp.

Kể từ năm 2012, đã có hàng triệu ứng dụng được phát triển cho cả hai nền tảng iOS và Android Với sự phát triển nhanh chóng của công nghệ, việc tìm ra những ứng dụng tốt và hữu ích thực sự không phải là nhiệm vụ dễ dàng Do đó, việc phát triển các ứng dụng phù hợp với nhu cầu người dùng hiện nay là một mục tiêu thiết yếu.

Nhu c u

Khi máy tính và Internet lần đầu xuất hiện tại Việt Nam, công nghệ thông tin đã đem lại một cuộc cách mạng với nhiều tiện ích đa dạng, không chỉ phục vụ cho học tập, làm việc hay quản lý mà còn đáp ứng nhu cầu giải trí phong phú của mọi tầng lớp Tiếp theo đó, sự phát triển của công nghệ di động đã biến điện thoại di động trở thành thiết bị không thể thiếu trong cuộc sống hàng ngày của mỗi người.

Ngày nay, smartphone Android không chỉ phục vụ nhu cầu nghe gọi mà còn cung cấp nhiều tiện ích hiện đại, hữu ích cho người dùng Đặc biệt, ứng dụng Calculator trên các thiết bị này mang đến các chức năng tính toán từ cơ bản đến nâng cao, rất phù hợp cho học sinh, sinh viên và những người làm việc liên quan đến toán học.

T nh ng nhu c u trong cu c s ng, em quy t đnh l a ch n th c hi n đ tài vi t ng d ng giúp cho vi c tính toán tr nên đ n gi n h n và ít t n th i gian h n

Calculator trên nền tảng Android có nhiều ứng dụng khác nhau, nhưng phần lớn chúng đều khá đơn giản Trong số đó, máy tính khoa học (Scientific calculator) là một lựa chọn phổ biến, cung cấp nhiều tính năng hữu ích cho người dùng.

Hình 1.1 Giao di n ng d ng Scientific calculator 1

V i Scientific calculator, giao di n đ h a thu n l i

Hình 1.2 Giao di n ng d ng Scientific calculator 2

Bàn phim r t nhi u phím ghép và r t đ p và khá đ y đ

Hình 1.3 Giao di n ng d ng Scientific calculator 3

Hình 1.4 Giao di n ng d ng Scientific calculator 4

Bài viết này sẽ giới thiệu về việc phát triển ứng dụng "Calculator" trên hệ điều hành Android, nhằm cung cấp các chức năng cần thiết cho học sinh, sinh viên Ứng dụng sẽ bao gồm các tính năng cơ bản của "Scientific calculator" và tiếp tục phát triển thêm những chức năng phù hợp với nhu cầu tính toán học tập của người dùng.

N i dung

Nội dung chính của bài viết này là tìm hiểu về hệ điều hành Android, cụ thể là cách hoạt động trên các thiết bị di động Từ đó, bài viết sẽ giới thiệu về việc phát triển ứng dụng di động mang tên “Calculator”, ứng dụng này nhằm hỗ trợ học sinh, sinh viên và bất kỳ ai có nhu cầu tính toán.

Ph ng pháp th c hi n

 Thu th p, đ c tài li u, nghiên c u tìm hi u cách làm vi c và l p trình trên n n t ng Android

 Nghiên c u s d ng ngôn ng Java và các th vi n trong Android đ l p trình ng d ng

 S d ng s d ng công c Android SDK, Eclipse SDK trên h đi u hành Windows 7 làm môi tr ng và Java trên Android làm ngôn ng l p trình

 Phát tri n ng d ng Calculator trên thi t b di đ ng v i h đi u hành Android

Gi i thi u các ch c n ng

Giao di n

Hình 1.5 Màn hình ng d ng c a đ tài

Giao di n bao g m m t bàn phím s các phép tính và màn hình hi n th tính toán g m 2 dòng đ nh p bi u th c và hi n th t t c b ng Ti ng vi t

Hình 1.6 Màn hình ng d ng c a đ tài

Hình 1.7 Màn hình hi n th k t qu c a ng d ng

Hình 1.8 H th ng menu c a ng d ng

Các ch c n ng

 Máy tính c b n: ta có th thao tác các phép tính 2 ngôi t đ n gi n t p trong đó có các phép toán + - * / các s th c

 Máy tính khoa h c: b sung thêm các ch c n ng khác ph c t p h n Ví d các phép toán l y th a, c n b c 2, c n b c 3, giai th a, log ,… các phép toán l ng giác sin, cos, tan ch đ radian

Giải các phương trình bao gồm phương trình bậc 2, phương trình bậc 3, hệ phương trình đồng thời và hệ phương trình đồng thời ba biến, nhằm tìm ra lời giải cho bài toán.

 Chuy n đ i c s gi a các h DECIMAL, BINARY, HEX, OCTAL

 Cung c p các công th c toán h c t c n b n đ n nâng cao

 Ch c n ng history có th xu t ra file.

ánh giá k t qu

Phát tri n khá thành công m t s ch c n ng c a ng d ng Calculator ng d ng đ c xây d ng trên n n t ng Android v i giao di n và ch c n ng g n g i ng i s d ng là h c sinh sinh viên

Trong quá trình tìm hiểu và phát triển ứng dụng, tôi đã hoàn thiện các kỹ năng cơ bản cần thiết để phát triển một ứng dụng phần mềm đơn giản Bên cạnh đó, tôi còn thu thập được nhiều kiến thức mới về hệ điều hành Android, bao gồm lịch sử hình thành, đặc trưng, cấu trúc của hệ điều hành Android, chu kỳ ứng dụng và các thành phần trong ngữ cảnh Android Tôi cũng đã nắm vững ngôn ngữ Java trong phát triển ứng dụng di động Một điều quan trọng mà tôi nhận thấy là kinh nghiệm thực tiễn trong quá trình làm việc, khả năng tự tìm hiểu và phát triển ứng dụng đầu tiên, cũng như khả năng làm việc dưới áp lực trong một khoảng thời gian hạn chế.

Trong quá trình phát triển ứng dụng Android đầu tiên, tôi đã rút ra nhiều kinh nghiệm quý báu và nhận thấy những điểm cần cải thiện Chương trình hiện tại vẫn còn thô sơ và cần được tối ưu hóa hơn nữa để nâng cao hiệu suất và trải nghiệm người dùng.

Ch ng II: CÁC KI N TH C CÓ LIÊN QUAN

Tìm hi u h đi u hành Android

Gi i thi u h đ i u hành Android

a) Gi i thi u m t s h đi u hành trên thi t b di đ ng

Hi n nay trên th gi i có r t nhi u h đi u hành cho đi n tho i và các thi t b di đ ng.Sau đây mình xin gi i thi u s qua m t s h đi u hành này:

Hinh 2.1 Các h đ i u hành di đ ng hi n nay

Windows Phone 7 là hệ điều hành di động được phát triển bởi Microsoft, kế thừa từ nền tảng Windows Mobile Hệ điều hành này được ra mắt tại châu Âu, Singapore và Úc vào ngày 21 tháng 10 năm 2010, và sau đó tại Mỹ và Canada vào ngày 8 tháng 11 cùng năm.

Windows Mobile là hệ điều hành nổi bật của Windows Phone 7, được ưa chuộng bởi khả năng quản lý email hiệu quả, hỗ trợ làm việc và tương thích với máy tính Hệ điều hành này cũng cho phép người dùng trải nghiệm nhiều ứng dụng độc đáo trong hệ sinh thái của Microsoft.

Mobilephone-Symbian, hai t trên “ghép” l i đã đem đ n m t th h đi n tho i thông minhSmartphone

Tháng 6/1998, Symbian ra đ i t i London - Anh

H đi u hành Symbian là h đi u hành ph bi n trên các máy đi n tho i Nokia và m t s đi n tho i SamSung

IOS là h đi u hành c a Apple Nó đ c cài trên đi n tho i Iphone, iPod Touch, iPad và Apple TV

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

S c m nh c a WebOS là xu th m ng xã h i và web 2.0

(s đ c gi i thi u chi ti t ph n sau) b) L ch s Android

Android là m t h đi u hành dành cho thi t b di đ ng nh đi n tho i, máy tính b ng và netbooks

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

T p đoàn Android (Inc) đ c thành l p t i Palo Alto, California, Hoa K vào tháng

Vào năm 2003, Andy Rubin, Rich Miner và một số thành viên khác đã thành lập Android Inc với mục tiêu phát triển các thiết bị di động thông minh phục vụ lợi ích con người Nhân viên chủ chốt trong việc thành lập Android bao gồm Andy Rubin, người sáng lập Danger Inc, Andy McFadden, từng làm việc với Rubin tại WebTV, và Chris White, người đứng đầu thiết kế và giao diện của WebTV Richard Miner, đồng sáng lập Wildfire Communications Inc, cũng là một nhân tố quan trọng, đóng góp vào sự phát triển ngành công nghiệp không dây của công ty Ban đầu, Android chỉ là phần mềm dành cho điện thoại di động.

Vào tháng 8 năm 2005, Google đã mua lại Android Inc, biến công ty này thành một công ty con của Google Inc Sau thương vụ này, các nhân viên chủ chốt của Android Inc, bao gồm Andy Rubin, Rich Miner và Chris White, vẫn tiếp tục làm việc tại công ty.

Google, thông qua nhóm nghiên cứu do Rubin dẫn đầu, đã phát triển một hệ điều hành di động dựa trên nhân Linux Hệ điều hành này được thiết kế để các nhà sản xuất thiết bị cầm tay và nhà cung cấp có thể sử dụng linh hoạt và nâng cấp dễ dàng Google đã công bố danh sách nhiều thành phần phần mềm và các đối tác phát triển, cho thấy họ đang hợp tác để phát triển một hệ điều hành riêng cho di động Ý định của Google là tham gia vào thị trường di động, bắt đầu từ tháng 12 năm 2006 Các báo cáo từ BBC và The Wall Street Journal cho thấy Google đang có kế hoạch xây dựng một công cụ tìm kiếm dành riêng cho điện thoại di động, và các phương tiện in ấn cùng trực tuyến đã viết nhiều bài về sự phát triển này.

Vào tháng 9 năm 2007, báo cáo nghiên cứu của Evalueserve đã chỉ ra rằng Google đã đóng góp đáng kể vào sự phát triển của ngành công nghiệp điện thoại di động Một số suy đoán cho rằng Google đã xác định thông số kỹ thuật, mẫu thiết kế điện thoại, nhà sản xuất phần cứng và nhà khai thác mạng.

Android là một nền tảng phát triển ứng dụng di động rất lớn, với hơn 70.000 ứng dụng hiện có và liên tục được cập nhật Các ứng dụng này được phát triển chủ yếu bằng ngôn ngữ Java và tích hợp với thư viện Java của Google Các nhà phát triển có thể sử dụng máy tính chạy hệ điều hành Windows, MacOS hoặc Linux kết hợp với Android SDK để phát triển ứng dụng cho Android Hệ điều hành Android bao gồm khoảng 12 triệu dòng mã, trong đó có 3 triệu dòng XML, 2,8 triệu dòng C, 2,1 triệu dòng Java và 1,75 triệu dòng C++.

Andorid đ c phát tri n nh m c nh tranh v i các h đi u hành di đ ng khác nh iOS (Apple), BlackBerry OS, Windows Mobile (Microsoft), Symbian (Nokia), Samsung (Bada), WebOS (Palm)

B ng Tóm T t Các phiên b n Android:

Tích h p v i các d ch v Google Trình duy t web có kh n ng hi n th , phóng to các trang web HTML và XHTML

T i và c p nh t ng d ng t Android Market

H tr đa nhi m, IM, k t n i Wi-Fi và Bluetooth

Rút ng n th i gian m trình Camera, ch p nh nhanh h n

C i thi n th i gian thu nh n tín hi u GPS

T i tr c ti p video lên YouTube ho c Picasa

B sung h p tìm ki m nhanh và tìm ki m b ng gi ng nói Tích h p Camera, tính n n quay phim và ch p hình Kh n ng chuy n đ i gi a ch đ quay phim và ch p hình

Hi n th tr ng thái c a pin

Tính n ng chuy n v n b n thành gi ng nói h tr đa ngôn ng

H tr đ ng b danh b và email v i nhi u tài kho n

H tr Bluetooth 2.1 Trình duy t web giao di n m i, h tr HTML5

B sung ch c n ng cho l ch làm vi c Calendar

B sung widget Tips (m o s d ng) lên màn hình chính

H tr nâng cao Microsoft Exchange Tính n ng t o đi m phát sóng Wi-Fi di đ ng (Hotspot)

Bàn phím h tr nhi u ngôn ng Android Flash 10.1

Tinh ch nh giao di n ng i dùng đ n gi n và truy c p nhanh h n

Bàn phím m i h tr nh p li u nhanh h n

Ch n t và h tr copy/paste thu n ti n NFC (Near Field Communication) àm tho i Internet

T i u dành riêng cho máy tính b ng & các thi t b có m n hình to a nhi m, thông báo m i, h tr tùy bi n màn hình chính, các wibget

H tr giao th c truy n t i hình nh, đa ph ng ti n

Giao di n ng i dùng hoàn toàn m i Thanh c nh báo m i

Vi c c t, dán n i dung đã tr nên đ n gi n h n

Ch p nh màn hình không c n cài thêm ph n m m

H n ch k t n i Wifi y u ang ch phát hành

Giao di n trên Jelly Bean s tr nên m t, nhanh, và nh y h n trong các thao tác giao ti p v i

Lê Qu c Vi t – 0851010328 Trang 17 màn hình cho phép người dùng thay đổi thanh thông báo, giúp hiển thị nhiều thông tin hơn Google Search trên Android Jelly Bean mang đến trải nghiệm mới mẻ và hấp dẫn hơn so với phiên bản Ice Cream Sandwich.

2) Đ c đi m c a HĐH Android a) Nh ng nét đ c tr ng:

 Application framework: cho phép s d ng l i và thay th các thành ph n

 Dalvik virtual machine: t i u hóa cho thi t b di đ ng

 Intergrated browser: d a trên c ch WebKit mã ngu n m

 SQLite: cho b nh d li u c u trúc

 Media support: cho các đnh d ng audio, video và hình nh thông d ng

 GSM Telephony: (ph thu c vào ph n c ng)

 Bluetooth, EDGE, 3G, và WiFi (ph thu c vào ph n c ng)

 Camera, GPS, la bàn, và gia t c k : (ph thu c vào ph n c ng)

Môi trường phát triển phong phú bao gồm thiết bị mô phỏng, công cụ dò tìm lỗi, và định hình hình ảnh Ngoài ra, còn có một plugin dành cho Eclipse IDE hỗ trợ phát triển ứng dụng Android.

 Là h đi u hành mã ngu n m

Android đã thu hút nhiều nhà phát triển và cộng đồng xã hội khi Google phân phối miễn phí hệ điều hành này cùng với các mã nguồn mở Điều này đã tạo điều kiện cho bất kỳ ai muốn tham gia phát triển phần mềm cho Google Nhờ vậy, chỉ trong một thời gian ngắn, các lập trình viên và nhà phát triển có thể nhanh chóng cho ra mắt phiên bản Android tùy chỉnh của riêng mình.

 Kho ng d ng phong phú

Với kho ứng dụng phong phú, người dùng có thể dễ dàng lựa chọn những ứng dụng phù hợp với nhu cầu sử dụng của mình Hiện tại, Android Market cung cấp hơn 500 nghìn ứng dụng cho người dùng.

Hệ điều hành Android hiện đang chiếm ưu thế trên nhiều thiết bị di động Các nhà sản xuất như Sony Ericsson, Samsung, HTC và Motorola cung cấp cho người dùng sự đa dạng và mẫu mã sản phẩm phong phú.

Khi nói đến phần mềm, Android có khả năng chạy nhiều ứng dụng cùng một lúc và có tính năng quản lý không gian di động, điều này không phải thiết bị di động nào cũng hỗ trợ Android còn được cài đặt sẵn ActiveSync, cho phép người dùng đồng bộ danh bạ, email và thông tin cá nhân khi thiết bị kết nối với máy tính một cách dễ dàng.

 Android OS có nhi u l h ng b o m t

Hình 2.4 Các ng d ng Android

Hệ điều hành Android được xây dựng trên nền tảng Linux và nổi bật với tính bảo mật cao Tuy nhiên, khi người dùng vô tình cài đặt một phần mềm độc hại nào đó từ Android Market, thiết bị Android không có biện pháp bảo vệ hiệu quả.

M c dù Google c ng đã đ a ra m t vài bi n pháp b o v ng i dùng nh g b t t c malware và tài kho n c a các nhà phát tri n liên quan trên Android Market nh ng đi u này v n ch a đ đ m b o

Mô hình sau th hi n m t cách t ng quát các thành ph n c a h đi u hành Android

M i m t ph n s đ c đ c t m t cách chi ti t d i đây

Hình 2.5 C u tr c h th ng Android a) Applications (t ng ng d ng)

Android đ c tích h p s n m t s ng d ng c n thi t c b n 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 b) Application framework

Bằng cách cung cấp một nền tảng phát triển mạnh mẽ, Android cho phép các nhà phát triển khởi tạo các ứng dụng đa dạng và sáng tạo Nhà phát triển có thể tự do tận dụng các thiết bị phần cứng, thông tin đa dạng truy cập, các dịch vụ truyền thông, thiết lập hệ thống thông báo, thêm các thông báo trên thanh trạng thái, và nhiều tính năng khác.

C u trúc h th ng Android

Mô hình sau th hi n m t cách t ng quát các thành ph n c a h đi u hành Android

M i m t ph n s đ c đ c t m t cách chi ti t d i đây

Hình 2.5 C u tr c h th ng Android a) Applications (t ng ng d ng)

Android đ c tích h p s n m t s ng d ng c n thi t c b n 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 b) Application framework

Bằng cách cung cấp một nền tảng phát triển mạnh mẽ, Android cho phép các nhà phát triển khéo léo xây dựng các ứng dụng đa dạng và sáng tạo Nhà phát triển có quyền tự do tận dụng các thiết bị phần cứng, thông tin đa dạng truy cập, dịch vụ chuyển nhượng, thiết lập hệ thống thông báo, thêm các thông báo trên thanh trạng thái, và nhiều tính năng hấp dẫn khác.

Nhà phát triển có thể truy cập vào các API thông qua một khuôn khổ nhất định dành cho các người dùng lõi Các kiến trúc người dùng được thiết kế nhằm tối ưu hóa việc sử dụng lại các thành phần; bất kỳ người dùng nào cũng có thể xuất bản khẩn cấp của mình và người dùng khác sau đó có thể sử dụng những khẩn cấp này (có thể hạn chế bởi một thiết bị cụ thể trong khuôn khổ) Cách tiếp cận này cho phép các thành phần tự động được thay thế bởi người sử dụng.

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:

 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,…

 M t “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 đó

 M t “Resource Manager” cung c p truy xu t t i các tài nguyên không ph i là mã ngu n, ch ng h n nh : localized strings, graphics, and layout files

 M t “Notifycation Manager” cho phép t t c các ng d ng hi n th các custom alerts trong status bar

Activity Manager đ c dùng đ qu n lý chu trình s ng c a ng d ng và đi u h ng các activity c) Library

M t Android bao g m m t t p h p các th viên C/C++ đ c s d ng b i nhi u thành ph n khác nhau trong h th ng Android M t s các th vi n c b n đ c li t kê d i đây:

 Media Libraries th vi n này h tr cho vi c ch i nh c, quay phim, ch p hình theo các đnh d ng file MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG

 Surface Manager – Qu n lý truy c p đ n các h th ng con hi n th c ng nh các l p đ h a 2D, 3D t t ng ng d ng

 LibWebCore – Th vi n đ c dùng đ t o nên thành ph n webview trong Android và có th nhúng đ c vào nhi u ng d ng

 SGL – Th vi n h tr đ ho 2D

 FreeType - bitmap and vector font rendering

 SQLite – M t c s d li u nh đ c dùng cho các thi t b c m tay có b nh h n ch , SQLite không có quan h nh các c s d li u khác d) Android Runtime (môi tr ng th c thi)

Android cung cấp nhiều thư viện cơ bản hỗ trợ các chức năng cần thiết trong ngôn ngữ lập trình Java Tất cả các ứng dụng Android đều chạy trong một môi trường riêng biệt Máy ảo Dalvik được phát triển đặc biệt cho thiết bị Android, giúp tối ưu hóa hiệu suất và quản lý tài nguyên.

Máy ảo Dalvik (VM Dalvik) có khả năng thực thi hiệu quả các tệp tin Dalvik (dex) và được tối ưu hóa cho các thiết bị di động VM này dựa trên kiến trúc register-based và chạy các lớp đã được biên dịch bởi trình biên dịch Java, chuyển đổi thành định dạng dex Đồng thời, VM Dalvik sử dụng nhân Linux để thực hiện các chức năng cơ bản như quản lý bộ nhớ và tài nguyên hệ thống.

Android được phát triển trên nền tảng Linux phiên bản 2.6, cung cấp hệ thống dịch vụ với các chức năng quản lý bộ nhớ, quản lý tiến trình, các tầng mạng và các mô hình điều khiển Kernel Linux hoạt động như một lớp trung gian giữa phần cứng và phần mềm, đảm bảo sự tương tác hiệu quả giữa các thành phần trong hệ thống.

4) Chu kỳ ng d ng Android a) Activity Stack

Trong hệ thống quản lý các activity, mỗi activity mới được khởi động sẽ được đặt vào một stack và trở thành activity đang chạy, trong khi activity trước đó sẽ không bị thay thế trong suốt quá trình hoạt động của activity mới.

N u ng i dùng nh n nút Back thì activity k t ti p c a stack s di duy n lên và tr thành active

Hình 2.6 Activity Stack b) 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:

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

Activity là một thành phần trong ứng dụng Android, được sử dụng để hiển thị giao diện người dùng Khi một Activity tạm dừng, nó vẫn tồn tại trong bộ nhớ nhưng không hiển thị trên màn hình Điều này có nghĩa là Activity có thể được khôi phục lại sau khi người dùng quay lại, giúp duy trì trạng thái của ứng dụng Tuy nhiên, nếu hệ thống cần bộ nhớ, Activity có thể bị hủy để giải phóng tài nguyên.

Nú nú hoàn toàn bao phủ bởi các hoạt động khác, nhưng vẫn duy trì trạng thái và thông tin thành viên bên trong Người dùng không thể nhìn thấy nó và thường bỏ lỡ trong trường hợp hệ thống cần vùng nhớ cho tác vụ khác Các phương thức của chu kỳ sống cũng rất quan trọng.

Ph ng th c: onCreate() đ c g i khi activity l n đ u tiên đ c t o

Ph ng th c: onRestart() đ c g i sau khi activity đã đ c d ng, ch m t kho ng đang kh i đ ng l n n a (stared again)

Ph ng th c: onStart() đ c g i tr c khi m t activity visible v i ng i dùng Theo sau b i onResume() n u activity đ n tr ng thái hi n th ho c onStop() n u nó tr nên n

Ph ng th c: onResume()đ c g i tr c khi activity b t đ u t ng tác v i ng i dùng

Ph ng th c: onPause() đ c g i khi h th ng đang resuming activity khác

Phương thức onStop() được gọi khi activity không còn hiển thị cho người dùng Điều này có thể xảy ra khi activity bị che khuất bởi một activity khác hoặc khi nó đang bị hủy Sau onStop(), activity có thể được tiếp tục với onRestart() nếu nó đang tương tác với người dùng, hoặc onDestroy() nếu activity đang bị hủy.

Ph ng th c: onDestroy() đ c g i tr c khi activity b h y

5) Cácthànhph ntrong ngd ngandroid a) View

Trong một ứng dụng Android, giao diện người dùng được xây dựng từ các đối tượng View và ViewGroup Có nhiều loại View và ViewGroup khác nhau, mỗi loại đều là một phần của lớp View, và tất cả các loại này được gọi chung là các Widget.

T t c m i widget đ u có chung các thu c tính c b n nh là cách trình bày v trí, background, kích th c, l ,… T t c nh ng thu c tính chung này đ c th hi n h t trong đ i t ng View

In the Android platform, screens are organized in a hierarchical structure known as a view hierarchy A screen consists of a collection of layouts and widgets arranged appropriately To display a screen, the `setContentView(R.layout.main);` method must be called within the `onCreate` function of an Activity, which loads the XML layout file and converts it into bytecode for rendering.

Hình 2.8 T ch c view trong ng d ng Android b) ViewGroup

ViewGroup là một thành phần quan trọng trong lập trình giao diện người dùng, đóng vai trò là các widget Layout để sắp xếp các đối tượng khác trên màn hình Một trong những loại ViewGroup phổ biến là LinearLayout, cho phép bố trí các thành phần theo chiều ngang hoặc chiều dọc.

Hình 2.9 Ví d linearlayout trong ng d ng Android

LinearLayout đ c dùng đ b trí các thành ph n giao di n theo chi u ngang ho c chi u d c nh ng trên m t line duy nh t mà không có xu ng dòng

LinearLayout cho phép các thành phần bên trong không bị phụ thuộc vào kích thước của màn hình Các thành phần trong LinearLayout được sắp xếp theo tỷ lệ cân xứng, tạo ra sự đồng đều giữa các thành phần.

FrameLayout là một loại bố cục được sử dụng để sắp xếp các đối tượng theo kiểu dạng lớp (layer) tương tự như trong Photoshop Các đối tượng thuộc layer bên dưới sẽ bị che khuất bởi các đối tượng thuộc layer bên trên FrameLayout thường được sử dụng khi muốn tạo ra các đối tượng có khung hình bên ngoài, chẳng hạn như nút hình ảnh (image button).

Layout này cho phép bố trí các widget tại bất kỳ vị trí nào trong layout dựa vào hai thuộc tính tọa độ x, y Tuy nhiên, kiểu layout này ít được sử dụng vì tọa độ các đối tượng luôn cố định và không thể điều chỉnh được khoảng cách giữa các đối tượng Khi chuyển đổi sang một màn hình có kích thước khác với thiết kế ban đầu, vị trí của các đối tượng sẽ không còn chính xác như ban đầu Đây là mẫu XML Layout mà sử dụng AbsoluteLayout.

Layout này cho phép b trí các widget theo m t tr c đ i x ng ngang ho c d c

Lê Qu c Vi t – 0851010328 Trang 27 g) TableLayout

Các thành ph n trong ng d ng android

Trong một ứng dụng Android, giao diện người dùng được xây dựng từ các đối tượng View và ViewGroup Có nhiều loại View và ViewGroup khác nhau, mỗi loại đều là một phần mở rộng của lớp View, và tất cả các loại này được gọi chung là các Widget.

T t c m i widget đ u có chung các thu c tính c b n nh là cách trình bày v trí, background, kích th c, l ,… T t c nh ng thu c tính chung này đ c th hi n h t trong đ i t ng View

In the Android platform, screens are organized in a hierarchical structure resembling a tree A screen is essentially a collection of layouts and widgets arranged appropriately To display a screen, the `setContentView(R.layout.main)` method must be called within the `onCreate` function of an Activity, which loads the XML layout file and compiles it into bytecode.

Hình 2.8 T ch c view trong ng d ng Android b) ViewGroup

ViewGroup là một thành phần quan trọng trong Android, đóng vai trò như các widget Layout để bố trí các đối tượng khác trên màn hình Một trong những loại ViewGroup phổ biến là LinearLayout, cho phép sắp xếp các thành phần con theo chiều ngang hoặc chiều dọc một cách dễ dàng.

Hình 2.9 Ví d linearlayout trong ng d ng Android

LinearLayout đ c dùng đ b trí các thành ph n giao di n theo chi u ngang ho c chi u d c nh ng trên m t line duy nh t mà không có xu ng dòng

LinearLayout cho phép các thành phần bên trong không bị phụ thuộc vào kích thước màn hình Các thành phần trong LinearLayout được sắp xếp theo tỷ lệ cân xứng và có khoảng cách nhất định giữa chúng.

FrameLayout được sử dụng để bố trí các đối tượng theo kiểu giống như các Layer trong Photoshop Các đối tượng thuộc Layer bên dưới sẽ bị che khuất bởi các đối tượng thuộc Layer nằm trên FrameLayout thường được sử dụng khi muốn tạo ra các đối tượng có khung hình bên ngoài, chẳng hạn như contact image button.

Layout này cho phép người dùng sắp xếp các widget ở bất kỳ vị trí nào thông qua hai thuộc tính tọa độ x và y Tuy nhiên, kiểu layout này ít được sử dụng vì tọa độ của các đối tượng luôn cố định và không thể điều chỉnh khoảng cách giữa chúng Khi chuyển đổi giữa các màn hình có kích thước khác nhau, vị trí của các đối tượng sẽ không còn chính xác như ban đầu Đây là một mẫu XML Layout sử dụng AbsoluteLayout.

Layout này cho phép b trí các widget theo m t tr c đ i x ng ngang ho c d c

Lê Qu c Vi t – 0851010328 Trang 27 g) TableLayout

Layout này được sử dụng khi cần thiết kế một bảng chứa dữ liệu hoặc cần bố trí các widget theo hàng và cột Nút này là đối tượng có thể nói là được sử dụng nhiều nhất trong giao diện người dùng Android.

In XML, the attributes for a button include "android:id," which uniquely identifies the button, and "android:layout_width" and "android:layout_height," which define its dimensions relative to other elements Using "wrap_content" allows the button to size itself to its content, while "fill_parent" makes the button expand to fill its parent view The "android:text" attribute specifies the displayed text, and "android:gravity" aligns the text within the button Additionally, "android:textStyle" can be set to "bold," and "android:textSize" adjusts the font size and style of the text.

Android: background xác đnh thu c tính background các ngu n tài nguyên drawable đ s d ng cho n n nút (trong đó, khi đ c l u res / drawable / android.xml, đ c tham chi u nh @ drawable / Android)

C ng t ng t nh Button, ImageButton ch có thêm m t thu c tính android:src “@drawable/icon” đ thêm hình nh vào và không có th text

Hình 2.12 mô tả ví dụ về ImageButton và ImageView ImageView được sử dụng để hiển thị một hình ảnh mà không có hình dáng của một nút bấm như ImageButton Bên cạnh đó, ListView được sử dụng để hiển thị một danh sách các thông tin theo từng cell Mỗi cell thường được tải lên từ một file XML đã được định nghĩa với số lượng thông tin và loại thông tin cần hiển thị.

Lê Qu c Vi t – 0851010328 Trang 29 th hi n đ c m t list thông tin lên m t screen thì c n ph i có 3 y u t chính:

 Data Source: Data Source có th là m t ArrayList, HashMap ho c b t k m t c u trúc d li u ki u danh sách nào

Adapter là một lớp trung gian giúp ánh xạ dữ liệu từ Data Source vào vị trí hiển thị trong ListView Cụ thể, nếu trong Data Source có một trường "name" và trong ListView có một TextView để hiển thị trường "name" này, thì ListView sẽ không thể hiển thị dữ liệu nếu không có Adapter gán dữ liệu vào cho đối tượng hiển thị.

 ListView: ListView là đ i t ng đ hi n th các thông tin trong Data Source ra m t cách tr c quan và ng i dùng có th thao tác tr c ti p trên đó l) TextView

TextView tác d ng là đ hi n th v n b n v i các thu c tính t ng t button setText gán chu i settext, l y chu i gettext ,setSelection, setText("") đây là các ph ng th c x lý th ng g p m) EditText

Trong Android đ i t ng EditText đ c s d ng nh m t TextField ho c m t TextBox

Các thu c tính c n chú ý s d ng EditText đó là:

 android:inputType = “…” s d ng đ xác đnh ph ng th c nh p cho EditText

Ch ng h n nh khi b n mu n m t ô đ nh p password hay m t ô đ nh p Email thì thu c tính này s làm đi u đó

 android:singleLine = “true” EditText c a b n s tr thành m t TextField, ng c l i s là TextBox n) CheckBox

Nh n 2 giá tr true ho c false i t ng CheckBox cho phép ch n nhi u item cùng m t lúc, thu c tính đáng chú ý là android:checked nh n 2 giá tr true ho c false o) MenuOptions

Android cung cấp khả năng hiển thị menu động, cho phép người dùng thực hiện các thao tác như thêm menu con hoặc xóa một thành phần bất kỳ Option Menu sẽ được kích hoạt khi nhấn nút Menu trên bàn phím, hiển thị bên cạnh màn hình.

Trong android, Data đ c l u tr v i nhi u option khác nhau:

 Shared Preferences: D li u là private, d i d ng c p Key-Value

 Internal Storage: L u d li u ch đ private và l u trên các thi t b v t lý

 External Storage: L u d li u ch đ public và l u trên các thi t b v t lý ngoài nh Sdcard

 SQLite Databases: Là hình th c l u d li u có c u trúc và h tr truy v n theo câu l nh SQL

Sau đây xin trình bày m t s lo i ki u l u tr nh sau:

D li u là ki u c b n: booleans, floats, ints, longs, and strings

Hi u qu trong vi c l u thông tin c u hình, thông tin k t n i, ng d ng…

 File đ c l u tr c ti p trên thi t b b nh trong.(Internal Storage)

 D di u này là private và ch ch u s qu n lí c a chính ng d ng đang ch y nó, các ng d ng khác không th truy c p đ c

 T o ghi private file trong Internal Storage:

 Khi đ c file t b nh trong ta dùng ph ng th c openFileInput() đ t o m t đ i t ng FileInputStream

 Sau đó thao tác v i file b ng các ph ng th c: read(),close()

Tip : Nh ng file th ng xuyên s d ng trong quá trình ch y ng d ng ta c n l u chúng c đnh t i m t n i : res/raw

T ng t c đ cho ch ng trình, tuy nhiên ph i th ng xuyên d n d p file cache đ t i u không gian nh trong

 L u tr ngoài ( External Storage ) u đi m:

Không gian l u tr l n,D di chuy n gi a các thi t b :PC, Mobile,D thay th nâng c p

Tính b o m t không cao : public data,T c đ truy c p th p

Xây d ng ng d ng trên h đ i u hành android

Yêu c u h th ng

tìm hi u và phát tri n m t ng d ng android thì c n có môi tr ng làm vi c, đ i v i Android môi tr ng làm vi c thông d ng nh t là SDK Android Emulator

SDK Android Emulator là một tiện ích miễn phí cho Windows, Mac và Linux, cho phép lập trình viên thử nghiệm ứng dụng Android trên máy tính Được thiết kế bởi Google, công cụ này giúp các nhà phát triển kiểm tra ứng dụng của họ trước khi triển khai trên thiết bị di động Để sử dụng Android Emulator, người dùng cần cài đặt môi trường hỗ trợ Java, Android SDK và các thiết lập cần thiết, bao gồm Eclipse hoặc NetBeans.

Cài đ t Android SDK

Vào đa ch sau đ Download JDK : http://www.oracle.com/technetwork/java/javase/downloads/index.html

Lê Qu c Vi t – 0851010328 Trang 33 b) Download eclipse

C n có eclipse 3.5 (3.4 c ng đ c) http://www.eclipse.org/downloads/

Vào link bên trên, down eclipse(v r i gi i nén, v y là đã có th dùng đ c eclipse r i

Hình 2.16 Download eclipse c) Cài đ t ADT plugin

 M eclipse lên, b m vào Help  Install new software

 cái form hi n lên đó, b n ch n Add…

 m c Name, nh p tên gì c ng đ c, ví d nh : ADT plugin

 m c Location, nh p vào link này: http://dl-ssl.google.com/android/eclipse/

 Sau đó b m OK, có cho ch n gì thì c ch n h t r i b m next hoài cho đ n lúc xong

Ch đ i khi nào cài xong rùi ch eclipse kh i đ ng l i

Trong quá trình cài đặt yêu cầu máy của bạn, hãy chắc chắn rằng bạn nhấn nút OK hoặc nút tương ứng với thông báo hiện lên Đặc biệt, bạn cần cài đặt Android SDK để hoàn tất quá trình này.

 T i Android SDK t i link này http://developer.android.com/sdk/index.html (nh chú ý là nó chia ra Window, Mac và Linux)

 M Eclipse  window  preferences  Android  trong m c SDK location ch n Browse  đ a đ ng d n đ n th m c SDK(th m c mà b n m i down v và gi i nén đó)  b m apply

 Eclipse  window  Android SDK and AVD manager  Available packages  ch n h t và cài h t (h i lâu m t chút)

 Sau khi xong thì b m vào Installed packages s th y nh sau:

Lê Qu c Vi t – 0851010328 Trang 39 e) T o m t đi n tho i o (AVD)

 Eclipse  window  Android SDK and AVD manager  cái c a s m i đó, ch n m c Virtual devices  b m nút New…

 M c Name: đ t tên gì c ng đ c, c t là d nh và phân bi t nó đang là level bao nhiêu

 M c target: ch n anh nào có API level 4 là ok

 Sdcard size: b n gõ vào 256 (ho c h n thì tùy b n)

 Sau đó b m Create AVD f) T o m t project HelloWold

Tham kh o t i: http://developer.android.com/resources/tutorials/hello-world.html u tiên vào Eclipse->File > New > Project>Android>Android Project g m có:

 Build Target:b n ch n phiên b n android và

 Application name:tên ng d ng tùy ch n

 Package name:tên gói ban đ u(b n ph i đ t tên 2 ho c 3 gói -ch ng lên nhau vd com.google ho c demo.root.exam

 Create Activity:l p ban đ u trong gói trên

 Min SDK Version:không c n đi n vào c ng đ c,Ho c đi n vào thì chì ch rõ API bao nhiêu ví d Android 2.2->API:8

Thu t toán đã dùng

Thu t toán tính giá tr bi u th c

Thu t toán gi i ph ng trình

Ch ng III: TH C HI N TÀI

Gi i thi u các ch c n ng

Ch ng trình Calculator cung c p 6 ch c n ng chính bao g m máy tính c b n, khoa h c, gi i ph ng trình, công th c toán h c, chuy n đ i, và history.

Chi ti t t ng ch c n ng

Máy tính C b n

 ng d ng cung c p các ch c n ng tính toán c b n hai ngôi bao g m :+ - * / s th c

 D u “)” và “(” giúp ng i dùng có th nh p các bài toán có nhi u c p u tiên khác nhau

 Ch c n ng C: có nhi m v reset l i các giá tr nh p vào 2 edittext nh p và k t qu

 Ch c n ng BC: có nhi m v xóa m t kí t tr c v trí đang focus vi t t t c a t Backspace

Hai nút chính trong giao diện là nút "Lên" và "Xuống", giúp người dùng truy cập vào các tính toán trong phiên làm việc hiện tại Chức năng của hai nút này cho phép người dùng theo dõi và truy xuất thông tin một cách liên tục khi màn hình được cập nhật.

Màn hình giao di n g m có : 1 edittext đ nh p bi u th c, 1 textview đ hi n th k t qu , M t bàn phím s bao g m các button s và các button ch c n ng (+ * - / c bc ( )

Hình 3.1 Giao di n máy tính c b n

Giao di n các ch c n ng:

Hình 3.2 Giao di n máy tính c b n

 Ng i dùng s d ng các phím s trên giao di n đ nh p bi u th c mình c n tính toán, sao khi nh p xong nh n button b ng trên bàn phím đ nh n đ c k t qu

Sử dụng các phím chức năng như C để reset lại nội dung của EditText và phím BS để xóa một ký tự Hai phím mũi tên lên và xuống hiển thị lịch sử tính toán của phiên làm việc hiện tại và các phiên trước đó Dữ liệu này được lưu trữ vào file, vì vậy khi tắt ứng dụng, dữ liệu vẫn được giữ nguyên.

Tính toán t t các bài toán gi i h n s d ng là s th c và bi u th c có đ u tiên

 ch c n ng này tôi s d ng các k thu t x lý String, Regular Expressions đ nh p li u ki m tra d li u l u history

 tính đ c giá tr bi u th c đây tôi s d ng gi i thu t chuy n đ i bi u th c toán h c t trung t sang h u t kí pháp Ba Lan đ tính toán bi u th c

Máy tính Khoa h c

 Ý ngh a ây là ch c n ng nâng cao c a máy tính c b n, ng d ng cung c p và m r ng thêm các ch c n ng nh sau:

 Ch c n ng gi i các phép toán l ng giác ch đ degree Các hàm sin, cos, tan

Chức năng tính toán lãi suất có thể được thực hiện thông qua các công thức đơn giản Lãi suất có thể tính bằng cách sử dụng công thức S = C * (1 + r)^n, trong đó S là số tiền cuối cùng, C là số tiền gốc, r là lãi suất và n là số kỳ hạn Tuy nhiên, khả năng hiển thị kết quả dưới dạng số âm vẫn còn hạn chế Ví dụ:

Hình 3.3 Hi n th nh p xu t

 Ch c n ng tính logarit c s 10 c a m t s th c

 Ch c n ng l u tr s nh M nút MR có nhi m v truy xu t giá tr nh M M+ c ng d n giá tr M M- có nhi m v l y M tr đi m t giá tr xác đnh

Hình 3.4 Giao di n máy tính khoa h c

Màn hình các ch c n ng

Hình 3.5 Ví d các ch c n ng

Tính toán t t các bài toán có đ ph c t p cao và bi u th c có đ u tiên

Gi ng nh máy tính c b n

Gi i ph ng trình

Ý nghĩa của công cụ này là cung cấp cho người dùng khả năng thực hiện các bài toán giải phương trình thuộc nhiều loại khác nhau Công cụ này hỗ trợ người dùng giải 4 loại phương trình: phương trình bậc nhất, phương trình bậc 3, hệ phương trình 2 biến x;y, và hệ phương trình 3 biến x;y;z.

Ngoài ra ch c n ng này còn có m t ch c n ng m r ng đó là in l i gi i c a bài toán

Hình 3.7 Menu gi i ph ng trình

Hình 3.8 Giao di n gi i ph ng trình b c 2 ch c n ng này có m r ng thêm in l i gi i c a bài toán minh h a trên hình

Hình 3.8 Giao di n gi i ph ng trình b c 3

Gi i h ph ng trình b c nh t 2 n:

Hình 3.9 Giao di n gi i ph ng trình b c nh t 2 n x,y

Gi i h ph ng trình b c nh t 3 n:

Hình 3.10 Giao di n gi i ph ng trình b c nh t 3 n x,y,z

Cách sử dụng giao diện người dùng trong các loại phần trình diễn bao gồm các EditText để nhập thông số cần thiết, bàn phím để nhập liệu, và các nút chức năng như BC, C, v.v.

Ng i dùng ch c n nh p đ y đ các thông s và nh n nút b ng đ nh n đ c k t quà hi n th l i gi i trên giao di n có nút In có tác d ng load m t form hi n th l i gi i

Ch ng trình gi i quy t các bài toán gi i ph ng trình c b n t ph ng trình b c 2,3 đ n các h ph ng trình 2 , 3 n, tìm đ c nghi m th c c a ph ng trình b c 3

Tuy nhiên ch a gi i quy t đ c vi c tìm nghi m th c c a ph ng trình b c 2 , ch a in l i gi i c a các ph ng trình b c còn l i

Giải thuật số dường như là một phần không thể thiếu trong việc giải các loại phương trình Các giải thuật này bao gồm: giải phương trình bậc 2, giải phương trình bậc 3, giải hệ phương trình bậc nhất 2 ẩn và giải hệ phương trình bậc nhất 3 ẩn.

Các công th c toán h c

Trong toán học, có nhiều công thức từ đơn giản đến phức tạp, và việc hiểu cũng như ghi nhớ chúng là một thách thức lớn đối với người học Việc này giúp người dùng áp dụng nhanh chóng và chính xác các công thức để giải quyết các bài toán Ngoài ra, máy tính cũng cung cấp rất đa dạng các công thức toán học được phân chia theo các chủ đề và nội dung khác nhau.

Ch ng trình s d ng listview đ th hi n m t danh sách các lo i công th c toán h c M i lo i s t p h p m t listview cung c p các công th c t ng d ng

Các d ng công th c mà ch ng trình cung c p cho ng i dùng:

 H ng đ ng th c đáng nh

 Công th c đ o hàm và tích phân

Màn hình giao di n chính:

Hình 3.11 List các lo i công th c đ c cung c p

Giao di n chi ti t t ng lo i công th c :

 H ng đ ng th c đáng nh

Hình 3.12 H ng đ ng th c đ áng nh

Hình 3.13 Các công th c l ng giác

Hình 3.14 Các công th c logarit

 Công th c đ o hàm và nguyên hàm

Hình 3.15 Các công th c đ o hàm

Hình 3.16 Các công th c tích phân

Hình 3.17 Các công th c l y th a

Người dùng có thể chọn các công thức toán học từ menu của ứng dụng, nơi cung cấp danh sách các công thức có sẵn Khi người dùng tập trung và nhấn vào một công thức cụ thể, ứng dụng sẽ cung cấp tất cả các công thức liên quan mà người dùng cần đến.

Chương trình đã cung cấp cho người dùng nhiều công thức toán học cấp 3 phổ thông, nhưng giao diện và nội dung vẫn cần được cải thiện Các công thức này cần được nâng cấp để đáp ứng tốt hơn nhu cầu của người học.

 Gi i thu t s d ng: ch c n ng này ch ng trình c ng không s d ng thu t toán mà ch d a k thu t l p trình c b n mà ngôn ng Android cung c p.

Chuy n đ i

Chương trình "Chuyển đổi" cung cấp tiện ích cho người dùng trong việc chuyển đổi giá trị theo từng học số Nó cho phép chuyển đổi giữa 4 hệ thống: thập phân, nhị phân, bát phân và thập lục phân.

Hình 3.18 Giao di n ch c n ng chuy n đ i c s

Chương trình có giao diện tiện dụng bao gồm màn hình hiển thị kết quả và các phím tiện ích như nhấn bs, c, history (lên, xuống) Bàn phím nhập giá trị bao gồm các phím số từ 0 đến 9 và 6 phím ký tự từ a đến f Hệ thống cũng tích hợp các radio button cho phép người dùng chọn học sinh một cách dễ dàng.

Khi kh i đ ng h m c đ nh là h th p phân, chỉ những radio button được chọn mới được hiển thị, và bàn phím sẽ chỉ cho phép nhập các ký tự tương ứng Ví dụ, trong hệ thập phân, các phím từ 0 đến 9 sẽ được kích hoạt, trong khi đó, hệ nhị phân chỉ cho phép các phím 1 và 0.

Khi người dùng muốn chuyển đổi giữa các học sinh, họ cần chọn học sinh ban đầu bằng cách đánh dấu vào radio button của học sinh đó Sau đó, họ nhập giá trị cần chuyển đổi và không quên chọn học sinh cần chuyển đổi giá trị Kết quả sẽ hiển thị trên màn hình.

Ch ng trình th c hi n t t kh n ng chuy n đ i qua l i gi a 4 lo i c s (th p phân , nh phân, bát phân và th p l c phân)

V i ch c n ng này, ch ng trình không s d ng thu t toán ph c t p mà ch dùng các hàm chuy n đ i c s c a ngôn ng (Integer.parseInt, Integer.toBinaryString, Integer.toOctalString, Integer.toHexString).

History

Chương trình sử hữu chức năng lưu trữ lịch sử công việc, cho phép người dùng theo dõi các tính toán và giải phương trình đã thực hiện qua các phiên làm việc Lịch sử này được lưu trữ trên thiết bị ngoài của người dùng, đảm bảo dễ dàng truy cập và quản lý Người dùng có thể lưu lại các kết quả tính toán và chuyển đổi vào một file *.txt, từ đó có thể tổng hợp và truy xuất lịch sử công việc của chính mình một cách tiện lợi.

Hình 3.19 Ví d ch c n ng history

Chương trình cung cấp hai nút là Up và Down, với biểu tượng mũi tên hướng lên và hướng xuống Người dùng cần tương tác với hai nút này để truy cập các biểu thức và kết quả tính toán trước đó Tuy nhiên, hai nút này chỉ hoạt động khi người dùng đã hoàn tất việc nhập biểu thức.

Hi n th thành công history c a 2 ch c n ng máy tính c b n và máy tính khoa h c và có th xu t ra file có đ nh d ng * txt

 Gi i thu t s d ng: ch c n ng này ch ng trình ch y u làm vi c v i File trong Android c th là file txt l u trong data đây dùng FileOutputStream và OutputStreamWriter đ l u xu ng file

u đi m và khuy t đi m

Qua quá trình thực hiện đề tài khóa luận, em đã gặp nhiều khó khăn, nhưng nhờ sự hỗ trợ của thầy hướng dẫn - ThS H Quang Khải, cũng như sự động viên từ bạn bè và gia đình, em đã hoàn thành đề tài của mình một cách khá tốt Từ đó, em xin rút ra một số đánh giá về kết quả thực hiện đề tài.

V u đi m c a đ tài, b c đ u em tìm hi u đ c các v n đ c b n c a h đi u hành m i – Android và ng d ng các ki n th c đ vi t ra m t ch ng trình ng d ng đ n gi n

Chương trình ngữ dụng đã được xây dựng với các chức năng cơ bản và bắt đầu phát triển thêm các chức năng hữu ích cho người dùng Giao diện thân thiện, phù hợp với người sử dụng tiếng Việt, bàn phím dễ dàng trong việc nhập liệu, và cung cấp các chức năng toán học phù hợp với người dùng Việt Nam Tuy nhiên, còn nhiều khuyết điểm cần cải tiến, đặc biệt là việc cập nhật kiến thức tìm hiểu sâu hơn Chương trình ngữ dụng còn gặp một số hạn chế như các chức năng toán học chưa đầy đủ, thiếu các phép toán thống kê, hàm lượng giác, khả năng hiển thị phân số, chức năng tính số thực, và các phép toán ma trận Chương trình còn thiếu tính ổn định do chưa đạt được tiêu chuẩn toán học Khả năng bày trí và hiển thị còn kém, đòi hỏi ngữ dụng cần chú trọng và chuyên nghiệp hơn Cuối cùng, chương trình ngữ dụng chưa cung cấp khả năng cấu hình giao diện cho người dùng, chẳng hạn như thay đổi màu sắc, phông nền và kết quả hiển thị.

H ng phát tri n

Qua các u khuy t đi m đ c nêu ra m c tr c và nhu c u c a s phát tri n ng d ng , đ tài c n ti p t c phát tri n h n

V các ki n th c liên quan c n ph i ti p t c hoàn thi n th c nâng cao v c s d li u, đ h a và các ki n th c nâng cao khác…

Chương trình ngữ dụng Calculator đã hoàn thiện các chức năng cần thiết, bao gồm việc lưu trữ lịch sử cho các chức năng còn lại và các chức năng của máy tính khoa học.

Bài viết đề xuất cung cấp các chức năng mới như tính toán lượng giác (có thể chuyển đổi giữa radian và độ), tính toán diện tích, tính toán ma trận, vector, và các chức năng lưu trữ dữ liệu cho các hàm số Ngoài ra, còn bổ sung các tính năng chuyển đổi khác và tùy chọn cho người dùng để cá nhân hóa trải nghiệm Giao diện chương trình cần nâng cao khả năng hiển thị các ký tự toán học, phân số, và hiển thị kết quả với dữ liệu quá nh và quá lớn, đồng thời cải thiện giao diện phím bấm Tối ưu thuật toán giúp chương trình chạy nhanh hơn và tính toán chính xác hơn.

T đ ánh giá

Trong quá trình thực hiện đề tài, mặc dù gặp nhiều khó khăn, nhưng với quyết tâm và nỗ lực, cuối cùng em cũng đã vượt qua những thử thách để hoàn thành nhiệm vụ của mình.

Tình huống khó khăn đã giúp em vận dụng các kiến thức đã học và khám phá thêm nhiều kiến thức bổ ích Sau khi hoàn thành đề tài, em có thêm kinh nghiệm về công nghệ di động hiện tại và những kinh nghiệm khi phát triển ứng dụng mang lại Những kinh nghiệm này là tài sản quý giá, giúp em tự tin hơn trên con đường nghề nghiệp sau này.

Mặc dù đã có rất nhiều cố gắng và nỗ lực, nhưng vì thời gian và khan hiếm nghiên cứu có hạn, đề tài vẫn còn nhiều hạn chế và vẫn còn khá đơn giản Em rất mong nhận được sự đóng góp ý kiến của quý thầy cô, bạn bè để đề tài của em có thể phát triển hơn, có tính thực tiễn cao hơn và có thể ứng dụng rộng rãi.

 Android Essentials 2008 by Chris Haseman

 Java Regular Expressions: Taming the java.util.regex Engine (so kh p d li u)

1 Thu t toán tính giá tr bi u th c

Ph ng pháp chuy n t bi u th c trung t sang h u t

Có hai cách đ chuy n m t bi u th c t trung t sang hai lo i còn l i đó là dùng:

- Expression Tree (cây bi u th c)

Sử dụng Stack là phương pháp hiệu quả trong việc cài đặt, giúp đơn giản hóa quá trình chuyển đổi dữ liệu Bên cạnh đó, Expression Tree cũng hỗ trợ việc chuyển đổi dữ liệu một cách trực quan và dễ hiểu, đồng thời giảm thiểu thời gian cài đặt Trong bài viết này, tôi sẽ trình bày các kỹ thuật sử dụng Stack một cách chi tiết.

Khi bắt đầu làm việc với biểu thức toán học, điều quan trọng đầu tiên là xác định thứ tự thực hiện các toán tử Các toán tử hai ngôi phổ biến bao gồm cộng (+), trừ (-), nhân (*), chia (/) và phép chia lấy dư (%) Theo quy tắc, các toán tử nhân và chia sẽ được thực hiện trước, sau đó là các phép cộng và trừ.

%” có cùng đ u tiên và cao h n hai toán t “+, -”

B c 2 : nh d ng l i bi u th c Infix tr c khi chuy n đ i

Các bi u th c Infix khi nh p vào có th d th a các kho ng tr ng, các kí t không phù h p ho c vi t sai cú pháp

B c 4:Các ph ng th c ki m tra toán t và toán h ng

Trong quá trình toán toán chuyển đổi, cần áp dụng các phương pháp kiểm tra để xác định xem một thành phần của chuỗi có phải là toán tử toán học hay không Thay vì sử dụng các cấu trúc điều kiện if hoặc switch dài dòng và tốn thời gian trong phát triển, chúng ta sẽ sử dụng biểu thức chính quy (Regex) để thực hiện việc kiểm tra này.

B c 5: Chuy n bi u th c Infix sang Postfix

Lý do tôi trình bày thuật toán chuyển đổi sang postfix trước là vì thuật toán này phổ biến và dễ cài đặt hơn Bên cạnh đó, tôi cũng sẽ so sánh sự khác biệt giữa thuật toán chuyển từ infix sang prefix trong phần sau.

Thu t toán đ chuy n m t bi u th c Infix sang d n Prefix: c t ng token trong bi u th c infix t trái qua ph i, v i m i token ta th c hi n các b c sau:

- N u là toán h ng: cho ra output

- N u là d u m ngo c “(“: cho vào stack

- N u là d u đóng ngo c “)”: l y các toán t trong stack ra và cho vào output cho đ n khi g p d u m ngo c “(“ (D u m ngo c c ng ph i đ c đ a ra kh i stack)

• Ch ng nào đnh stack là toán t và toán t đó có đ u tiên l n h n ho c b ng toán t hi n t i thì l y toán t đó ra kh i stack và cho ra output

Sau khi duy t h t bi u th c infix, n u trong stack còn ph n t thì l y các token trong đó ra và cho l n l t vào output

Hãy xem ví d sau đ hi u rõ h n thu t toán này

Chúng ta s chuy n bi u th c A*B+C*((D-E)+F)/G t d ng Infix sang d ng Postfix:

Khi thực hiện phép toán P, chúng ta sử dụng một stack S để lưu trữ các phần tử trong P Trong quá trình chuyển đổi, khi di chuyển từ trái sang phải, biểu thức Q sẽ được hình thành.

1 c và ghi nh n giá tr a, ghi giá tr a vào P V y P = "a"

2 c toán t "*" a toán t này vào stack S: S = "*"

3 c d u ngo c m "(", đ a d u ngo c này vào stack: S = "*("

7 c d u ngo c đóng ")" L n l t l y các toán t cu i stack ra kh i stack đ t vào cu i P cho đ n khi g p d u ngo c m "(" trong stack thì gi i phóng nó: S "*"; P="a b c +"

8 c toán t "-" Cu i stack S có toán t "*" có m c u tiên l n h n toán t "-", ta l y toán t "*" ra kh i stack, đ t vào cu i P, đ t toán t "-" vào stack: S="-"; P=" a b c + * "

10 c toán t "^", đ a toán t "^" vào cu i stack: S="-^"

12 ã đ c h t bi u th c Q, l n l t l y các ph n t cu i trong stack đ t vào P cho đ n h t P="a b c + * d 5 ^ -"

B c 6: Tính giá tri bi u th c Postfix

L p qua các token c a c a bi u th c postfix t trái qua ph i:

- N u là toán h ng: push vào stack

- N u là toán t : pop hai toán h ng trong stack ra và tính giá tr c a chúng d a vào toán t này Push k t qu đó l i vào stack

Ph n t còn sót l i trong stack sau vòng l p chính là k t qu c a bi u th c

Ví d bi u th c trung t 6*3-1 có k t qu là 17, chuy n sang h u t ta đ c:

L p t trái qua ph i c a bi u th c

- *: pop 6 và 3 ra r i tính 6*3, push 18 vào Stack

- pop 18 và 1 ra r i tính 18-1, push 17 vào Stack

2 Thu t toán gi i ph ng trình a Ph ng trình b c 2: Đ i u ki n: A 0

N u ∆≠ 0 thì b Ph ng trình b c 3: ax 3  bx 2 cx d 0 thu t toán này ch ng trình tham kh o t website http://www.1728.org/cubic2.htm

Và các ngu n khác trên internet đây minh h a : 2 x 3 4 x 2 22 x 24 0

Tr c tiên chúng ta xác đnh m t bi n f: f = (3c/a) - (b²/a²)

Ti p theo chúng ta tính giá tr g: g = (2b³/a³) - (9bc/a²) + (27d/a)

N胤u h > 0, ph ng trình ch羽 có duy nh違t 1 nghi宇m th英c

Trong tr 噂ng h叡p đ印c bi宇t khi mà f = 0, g = 0 và h = 0 thì t違t c衣

3 nghi宇m là th英c và b逸ng nhau

Khi h

Ngày đăng: 20/10/2022, 06:27

HÌNH ẢNH LIÊN QUAN

Hình 1.1 Giao di n  ng d ng Scientific calculator 1 - 0962TÌM HIẾU VÀ PHÁT TRIỀN ỨNG DỤNG CALCULATOR TRÊN HỆ ĐIỀU HÀNH ANDROID
Hình 1.1 Giao di n ng d ng Scientific calculator 1 (Trang 14)
Hình 1.5. Màn hình  ng d ng c a  đ  tài - 0962TÌM HIẾU VÀ PHÁT TRIỀN ỨNG DỤNG CALCULATOR TRÊN HỆ ĐIỀU HÀNH ANDROID
Hình 1.5. Màn hình ng d ng c a đ tài (Trang 16)
Hình 2.3 Các phiên b n android - 0962TÌM HIẾU VÀ PHÁT TRIỀN ỨNG DỤNG CALCULATOR TRÊN HỆ ĐIỀU HÀNH ANDROID
Hình 2.3 Các phiên b n android (Trang 25)
Hình 2.4 Các  ng d ng Android - 0962TÌM HIẾU VÀ PHÁT TRIỀN ỨNG DỤNG CALCULATOR TRÊN HỆ ĐIỀU HÀNH ANDROID
Hình 2.4 Các ng d ng Android (Trang 29)
Hình 2.5 C u tr c h  th ng Android - 0962TÌM HIẾU VÀ PHÁT TRIỀN ỨNG DỤNG CALCULATOR TRÊN HỆ ĐIỀU HÀNH ANDROID
Hình 2.5 C u tr c h th ng Android (Trang 30)
Hình 2.6 Activity Stack - 0962TÌM HIẾU VÀ PHÁT TRIỀN ỨNG DỤNG CALCULATOR TRÊN HỆ ĐIỀU HÀNH ANDROID
Hình 2.6 Activity Stack (Trang 32)
Hình 2.7 Chu k  s ng c a activity - 0962TÌM HIẾU VÀ PHÁT TRIỀN ỨNG DỤNG CALCULATOR TRÊN HỆ ĐIỀU HÀNH ANDROID
Hình 2.7 Chu k s ng c a activity (Trang 33)
Hình 2.9 Ví d  linearlayout trong  ng d ng Android - 0962TÌM HIẾU VÀ PHÁT TRIỀN ỨNG DỤNG CALCULATOR TRÊN HỆ ĐIỀU HÀNH ANDROID
Hình 2.9 Ví d linearlayout trong ng d ng Android (Trang 35)
Hình 2.10 Ví d  AbsoluteLayout - 0962TÌM HIẾU VÀ PHÁT TRIỀN ỨNG DỤNG CALCULATOR TRÊN HỆ ĐIỀU HÀNH ANDROID
Hình 2.10 Ví d AbsoluteLayout (Trang 37)
Hình 2.11 Ví d  button - 0962TÌM HIẾU VÀ PHÁT TRIỀN ỨNG DỤNG CALCULATOR TRÊN HỆ ĐIỀU HÀNH ANDROID
Hình 2.11 Ví d button (Trang 38)
Hình 2.12 Ví d  ImageButton - 0962TÌM HIẾU VÀ PHÁT TRIỀN ỨNG DỤNG CALCULATOR TRÊN HỆ ĐIỀU HÀNH ANDROID
Hình 2.12 Ví d ImageButton (Trang 39)
Hình 2.13 Ví d  ListView - 0962TÌM HIẾU VÀ PHÁT TRIỀN ỨNG DỤNG CALCULATOR TRÊN HỆ ĐIỀU HÀNH ANDROID
Hình 2.13 Ví d ListView (Trang 39)
Hình 2.17 Cài  đ t ADT plugin - 0962TÌM HIẾU VÀ PHÁT TRIỀN ỨNG DỤNG CALCULATOR TRÊN HỆ ĐIỀU HÀNH ANDROID
Hình 2.17 Cài đ t ADT plugin (Trang 46)
Hình 2.19 Cài  đ t SDK - 0962TÌM HIẾU VÀ PHÁT TRIỀN ỨNG DỤNG CALCULATOR TRÊN HỆ ĐIỀU HÀNH ANDROID
Hình 2.19 Cài đ t SDK (Trang 47)
Hình 2.20 Cài  đ t SDK - 0962TÌM HIẾU VÀ PHÁT TRIỀN ỨNG DỤNG CALCULATOR TRÊN HỆ ĐIỀU HÀNH ANDROID
Hình 2.20 Cài đ t SDK (Trang 48)

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

TÀI LIỆU LIÊN QUAN

w