Ngày nay, việc ứng dụng mã vạch đã trở nên phổ biến đối với mọi người kể cả trên thế giới và Việt Nam. Mỗi khi đi siêu thị chúng ta vẫn thấy người thu ngân dùng một thiết bị quét mã vạch in trên sản phẩm giúp cho việc thanh toán dễ dàng hơn. Đấy mới chỉ là một ứng dụng nhỏ của việc sử dụng mã vạch vào đời sống thường ngày.
Cùng với sự phát triển của công nghệ, mã vạch đã cải tiến không chỉ còn đơn giản là lưu mã của sản phẩm mà còn có khả năng lưu được nhiều thông tin của sản phẩm hơn với việc sử dụng mã vạch 2 chiều.
Một lợi thế của ứng dụng mã vạch là khả năng tiện dụng, chúng ta có thể sử dụng tại bất kỳ đâu, bất kỳ khi nào bằng việc sử dụng một thiết bị thông minh có hỗ trợ máy ảnh (ví dụ: điện thoại di động) có khả năng đọc mã vạch và giải mã mã vạch đó.
Đặt trong hoàn cảnh giữa hai thiết bị Android không có sự bất kỳ kết nối nào (không Bluetooth, không Wi-Fi) mà chúng lại muốn chia sẽ dữ liệu cho nhau. Khóa luận sẽ đưa ra một giải pháp cho việc lưu trữ, chia sẻ thông tin này dựa trên mã vạch 2 chiều QR kết hợp với nền tảng Google Android − một nền tảng di động mới đầy hứa hẹn và là đối thủ xứng tầm của iPhone.
Khóa luận sẽ tập trung nghiên cứu về các nền tảng di động, các đặc điểm của chúng, đi sâu nghiên cứu nền tảng Google Android và công nghệ mã vạch hiện nay, cuối cùng là ứng dụng vào giải quyết bài toán ứng dụng lưu trữ thông tin bằng chuỗi mã vạch
Nội dung khóa luận bao gồm 6 phần với các nội dung chính sau:
Mở đầu: Đặt vấn đề
Chương 1: Giới thiệu khái quát các nền tảng di động hiện nay, đưa ra các điểm mạnh, điểm yếu của từng nền tảng.
Chương 2: Giới thiệu về nền tảng di động Google Android, các đặc điểm, cấu trúc và các công cụ phát triển của Android
Chương 3: Trình bày về mã vạch và mã QR, các ứng dụng của chúng trong đời sống hàng ngày. Chương này cũng trình bày về thư viện mã nguồn mở Zxing, ứng dụng và cách sử dụng của thư viện mở này.
Chương 4: Ứng dụng vào giải quyết bài toán “Ứng dụng lưu trữ thông tin bằng chuỗi và mã vạch” trên Android. Ứng dụng giúp lưu trữ và chia sẽ thông tin giữa các điện thoại Android với nhau.
Kết luận: Tổng kết lại toàn khóa luận, những gì đã làm được, so sánh với các khóa luận trước về Android và đưa ra hướng phát triển tiếp theo cho khóa luận.
74 trang |
Chia sẻ: tuandn | Lượt xem: 2576 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Khóa luận Ứng dụng lưu trữ thông tin bằng chuỗi mã vạch, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Lại Quang Tùng
ỨNG DỤNG LƯU TRỮ THÔNG TIN
BẰNG CHUỖI MÃ VẠCH
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
HÀ NỘI - 2009
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Lại Quang Tùng
ỨNG DỤNG LƯU TRỮ THÔNG TIN
BẰNG CHUỖI MÃ VẠCH
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Cán bộ hướng dẫn: TS. Trương Anh Hoàng
HÀ NỘI - 2009
Lời cảm ơn
Trước tiên, em xin gửi lời cảm ơn sâu sắc tới thầy Trương Anh Hoàng (bộ môn Công Nghệ Phần Mềm, trường Đại học Công Nghệ, Đại học Quốc Gia Hà Nội). Thầy đã tận tình chỉ dẫn cho em từ những bước đi đầu tiên đến khi hoàn thành đề tài khóa luận này. Thầy luôn giúp em giải quyết vấn đề trong những lúc khó khăn. Ở thầy em học được không chỉ là sự hiểu biết mà còn là cách làm việc và lẽ sống.
Em xin gửi lời cảm ơn tới tất cả các thầy, cô giáo trong khoa Công nghệ thông tin – trường Đại học Công Nghệ – Đại học Quốc Gia Hà Nội đã nhiệt tình giảng dạy cho chúng em những tri thức của kỷ nguyên mới – kỷ nguyên công nghệ và truyền thông.
Cảm ơn những người bạn của tôi, những người đã giúp đỡ tôi rất nhiều trong học tập, trong cuộc sống và hoàn thành khóa luận này.
Cuối cùng, con xin gửi lời cảm ơn đến bố, mẹ và gia đình. Bố mẹ luôn là chỗ dựa tinh thần vững chắc cho con.
Hà Nội, ngày 22 tháng 5 năm 2009
Lại Quang Tùng
Tóm tắt
Mã vạch ngày nay đã trở nên phổ biến với mỗi người trong chúng ta, không chỉ đem lại sự thuận tiện cho người sử dụng, nó còn mang lại một phong cách mới trong mua sắm và tra thông tin về sách sản phẩm. Không dừng lại ở đó, tiềm năng của mã vạch còn rất lớn khi xuất hiện các loại mã vạch hai chiều, ghi được nhiều thông tin hơn các mã vạch một chiều trước kia.
Khóa luận sẽ trình bày về mã vạch nói chung và mã vạch QR nói riêng, giới thiệu về thư viện mã nguồn mở Zxing để đọc mã vạch, cách sử dụng thư viện này để phát triển phần mềm. Khóa luận cũng đi nghiên cứu về các nền tảng di động và đặc biệt là nền tảng Android. Ở phần cuối, khóa luận sẽ trình bày ứng dụng thư viện Zxing vào việc xây dựng “Ứng dụng lưu trữ thông tin bằng chuỗi mã vạch” trên nền tảng Android. Ứng dụng này xuất phát cho phép mã hóa các tệp nhỏ bất kỳ thành một chuỗi các mã vạch, và giải mã chúng để trở lại thành tệp ban đầu. Cơ sở này cho phép ta truyền số liệu giữa hai thiết bị thông qua màn hình (hoặc các thiết bị hiển thị được hình ảnh như giấy) và camera. Phần phụ lục cung cấp một số thuật ngữ thường dùng của Android.
Mục lục
Danh mục ký hiệu viết tắt
Ký hiệu
Giải thích
Tiếng Anh
Tiếng Việt
API
Application Programming Interface
Giao diện lập trình ứng dụng
CDMA
Code Division Multiple Access
Một công nghệ trong hệ thống thông tin di động
GPRS
General Packet Radio Service
Gói dịch vụ vô tuyến tổng hợp
GSM
Global System for Mobile Communications
Hệ thống thông tin di động toàn cầu
J2SE
Java 2 Standard Edition
Là đặc tả và cũng là nền tảng thực thi cho các ứng dụng Java
MIDP
Mobile Information Device Profile
Thuộc tính thông tin thiết bị di động
OS
Operating System
Hệ điều hành
PC
Personal Computer
Máy tính cá nhân
SDK
Software Development Kit
Bộ công cụ phát triển phần mềm
USB
Universal Serial Bus
Một chuẩn kết nối tuần tự trong máy tính
Wi-Fi
Wireless Fidelity
Hệ thống mạng không dây
Danh mục bảng biểu
Bảng 1: Thị trường di động năm 2008 [1] 3
Bảng 2: Mối quan hệ giữa tác nhân và các ca sử dụng 35
Bảng 3: Bảng hành động của tác nhân và phản ứng của hệ thống với ca sử dụng Encode 36
Bảng 4: Bảng hành động của tác nhân và phản ứng của hệ thống với ca sử dụng Decode 36
Bảng 5: Bảng hành động của tác nhân và phản ứng của hệ thống với ca sử dụng Help 37
Bảng 6: Biểu đồ tuần tự ca sử dụng Decode files 40
Bảng 7: Bảng ca kiểm thử mã hóa tập tin 47
Bảng 8: Bảng ca kiểm thử giải mã tập tin 48
Bảng 9: Bảng ca kiểm thử giải mã ảnh 49
Danh mục hình vẽ
Hình 1: Bản đồ phát triển điện thoại di động [2] 4
Hình 2: Điện thoại Android, HTC Dream (trái) và HTC Magic (phải) 12
Hình 3: Nhân Linux trên Android 14
Hình 4: Thư viện lâp trình ứng dụng trên Android 14
Hình 5: Khung ứng dụng 16
Hình 6: Các ứng dụng trên Android 16
Hình 7: Vòng đời của một hoạt động 19
Hình 8: Một ảnh mã QR 28
Hình 9: Biểu đồ ca sử dụng hệ thống 35
Hình 10: Biểu đồ tuần tự của hệ thống 38
Hình 11: Biểu đồ tuần tự ca sử dụng Encode 39
Hình 12: Biểu đồ tuần tự ca sử dụng Decode Images 41
Hình 13: Biểu đồ hoạt động của hệ thống 42
Hình 14: Biểu đồ lớp của hệ thống 45
Hình 15: Thiết kế giao diện chương trình 46
Hình 16: Mã hóa tập tin ringtone.mid 49
Hình 17: Các ảnh mã QR được chương trình tạo ra từ tập tin MID ringtone.mid 52
Hình 18: Một số hình ảnh về giải mã các tập tin ảnh 53
Hình 19: Màn hình danh sách các ứng dụng 56
Hình 20: Màn hình chính của chương trình 56
Hình 21: Cửa sổ chức năng mã hóa 57
Hình 22: Cửa sổ giải mã 57
Hình 23: Nhập đường dẫn tập tin ảnh đầu tiên được mã hóa 57
Mở đầu
Ngày nay, việc ứng dụng mã vạch đã trở nên phổ biến đối với mọi người kể cả trên thế giới và Việt Nam. Mỗi khi đi siêu thị chúng ta vẫn thấy người thu ngân dùng một thiết bị quét mã vạch in trên sản phẩm giúp cho việc thanh toán dễ dàng hơn. Đấy mới chỉ là một ứng dụng nhỏ của việc sử dụng mã vạch vào đời sống thường ngày.
Cùng với sự phát triển của công nghệ, mã vạch đã cải tiến không chỉ còn đơn giản là lưu mã của sản phẩm mà còn có khả năng lưu được nhiều thông tin của sản phẩm hơn với việc sử dụng mã vạch 2 chiều.
Một lợi thế của ứng dụng mã vạch là khả năng tiện dụng, chúng ta có thể sử dụng tại bất kỳ đâu, bất kỳ khi nào bằng việc sử dụng một thiết bị thông minh có hỗ trợ máy ảnh (ví dụ: điện thoại di động) có khả năng đọc mã vạch và giải mã mã vạch đó.
Đặt trong hoàn cảnh giữa hai thiết bị Android không có sự bất kỳ kết nối nào (không Bluetooth, không Wi-Fi) mà chúng lại muốn chia sẽ dữ liệu cho nhau. Khóa luận sẽ đưa ra một giải pháp cho việc lưu trữ, chia sẻ thông tin này dựa trên mã vạch 2 chiều QR kết hợp với nền tảng Google Android − một nền tảng di động mới đầy hứa hẹn và là đối thủ xứng tầm của iPhone.
Khóa luận sẽ tập trung nghiên cứu về các nền tảng di động, các đặc điểm của chúng, đi sâu nghiên cứu nền tảng Google Android và công nghệ mã vạch hiện nay, cuối cùng là ứng dụng vào giải quyết bài toán ứng dụng lưu trữ thông tin bằng chuỗi mã vạch
Nội dung khóa luận bao gồm 6 phần với các nội dung chính sau:
Mở đầu: Đặt vấn đề
Chương 1: Giới thiệu khái quát các nền tảng di động hiện nay, đưa ra các điểm mạnh, điểm yếu của từng nền tảng.
Chương 2: Giới thiệu về nền tảng di động Google Android, các đặc điểm, cấu trúc và các công cụ phát triển của Android
Chương 3: Trình bày về mã vạch và mã QR, các ứng dụng của chúng trong đời sống hàng ngày. Chương này cũng trình bày về thư viện mã nguồn mở Zxing, ứng dụng và cách sử dụng của thư viện mở này.
Chương 4: Ứng dụng vào giải quyết bài toán “Ứng dụng lưu trữ thông tin bằng chuỗi và mã vạch” trên Android. Ứng dụng giúp lưu trữ và chia sẽ thông tin giữa các điện thoại Android với nhau.
Kết luận: Tổng kết lại toàn khóa luận, những gì đã làm được, so sánh với các khóa luận trước về Android và đưa ra hướng phát triển tiếp theo cho khóa luận.
Các nền tảng di động
Hiện nay, chúng ta biết đến rất nhiều nền tảng di động khác nhau như: Brew, Java ME, BlackBerry, iPhone…Nhưng không hẳn ai trong mỗi chúng ta đều biết về chúng, chúng có những ưu điểm gì những nhược điểm gì? Trong nội dung chương này, khóa luận sẽ giới thiệu về một số nền tảng di động phổ biển hiện nay và những đặc điểm của chúng để thấy được điểm mạnh, điểm yếu của mỗi nền tảng. Trước hết là một số hình ảnh tổng quan về thị trường di động. Bảng 1 là thống kê năm 2008 về thị phần của thị trường di động [1]. Hình 1 là bức tranh toàn cục về các nền tảng di động và các công ty phát triển chúng [2].
Thị trường di động năm 2008 [1]
Bản đồ phát triển điện thoại di động [2]
Brew
Giới thiệu
Brew [3] (Binary Runtime Environment for Wireless - môi trường thực thi nhị phân cho thiết bị không dây) là nền tảng ứng dụng di động được hãng Qualcomm phát triển, ra đời chính thức từ năm 2001. Brew có nguồn gốc phát triển dành cho các điện thoại CDMA, nhưng đã chuyển sang hướng phát triển mới bao gồm cả GSM/GPRS. Nó cho phép tải và chạy những chương trình nhỏ như trò chơi, hay gửi tin nhắn, chia sẻ hình ảnh, xác định vị trí, v.v….
Một ưu thế của nền tảng này đó là các nhà phát triển ứng dụng có thể dễ dàng chuyển các ứng dụng của họ sang các thiết bị của Qualcomm. BREW làm việc ở giữa ứng dụng với hệ điều hành trên chíp của thiết bị không dây, cho phép những người phát triển phần mềm ứng dụng không cần phải viết mã cho giao tiếp hệ thống hay phải hiểu các ứng dụng không dây.
Ưu nhược điểm
Ưu điểm
Kiểm thử: nhiều người phát triển có thể cho rằng việc kiểm thử phức tạp của ứng dụng Brew làm chậm ngày phát hành hay chi phí cao của phần mềm. Tuy nhiên việc kiểm thử kỹ lưỡng sẽ giúp các ứng dụng trên Brew cuối cùng ít lỗi nhất và có chất lượng cao hơn.
Giao diện lập trình ứng dụng Brew (Brew API): thư viện lập trình ứng dụng của Brew mạnh và dễ sử dụng hơn của nhiều nền tảng khác (như API của Java ME).
Đồ họa: phát triển đồ họa cho các trò chơi hay ứng dụng khác dễ dàng hơn các nền tảng khác, bởi Brew cung cấp khả năng truy cập vào vùng đệm màn hình.
Không giới hạn kích thước bộ nhớ: Brew không giới hạn kích thước bộ nhớ như J2ME (có giới hạn là 128K).
Giảm sự cạnh tranh cho những người phát triển ứng dụng: do người phát triển phải trả phí kiểm thử phần mềm của họ, điều này làm giảm tính cạnh tranh. Trong phần lớn trường hợp, chúng ta không phải lo về các phần mềm miễn phí.
Nhược điểm
Không phổ biến: dù có nhiều ưu điểm nó vẫn không phổ biến như các nền tảng khác như Java ME.
Tốn phí kiểm thử: để phần mềm của mình có thể được chấp nhận và sẵn sàng bán, nó phải được kiểm thử bởi NTSL (National Software Testing Labs) và tốn ít nhất khoảng 400 đô la Mỹ.
Không nén được: mã nguồn Brew không thể nén lại vì lý do an ninh và có thể làm tăng kích thước phần mềm.
Hồ sơ thiết bị: hồ sơ thiết bị của Brew thường rất đắt, không miễn phí như MIDP (Mobile Information Device Profile) của J2ME.
Không tương thích: mặc dù có nơi để kiểm thử, nhiều thiết bị di động vẫn không tương thích với nền tảng Brew [4].
Java ME
Giới thiệu
Java ME (viết tắt của Java Micro Edition) là một nhánh phát triển của nền tảng Java, nhằm mục đích cung cấp một bộ API để phát triển ứng dụng trên các thiết bị nhúng như điện thoại di động, PDA, các thiết bị cầm tay…Trước kia Java ME có tên khác là J2ME (Java 2 Micro Edition).
Ưu nhược điểm
Ưu điểm
Khả chuyển: viết một lần chạy mọi nơi, đây là lợi thế lớn nhất của Java ME. Các ứng dụng, nhất là ứng dụng trò chơi trên máy bàn dễ dàng chuyển sang cho các thiết bị cầm tay.
Bảo mật: mã nguồn được chạy trong giới hạn của máy ảo Java. MIDlet có thể được ký hiệu bằng mật mã và xác nhận trên thiết bị. Java ME có kiến trúc phân quyền cao cấp.
Bộ giao diện lập trình ứng dụng phong phú, ngày càng hoàn thiện hơn. Ngoài ra, Java ME được sự ủng hộ của các hãng truyền thông và nhà sản xuất thiết bị cầm tay lớn.
Các công cụ phát triển sẵn có, miễn phí. Ví dụ như Netbeans, Eclipse, Wireless toolkit…
Nhược điểm
Nhược điểm lớn nhất của Java ME là không tận dụng hết được khả năng đặc trưng của các thiết bị. Nhu cầu và sự phát triển của các thiết bị cầm tay đòi hỏi thư viện API của Java ME phải ngày càng hoàn thiện hơn để theo kịp các nền tảng khác nếu không muốn bị tụt hậu.
Symbian
Giới thiệu
Symbian là một hệ điều hành mở được thiết kế cho các thiết bị di động của công ty Symbian, hiện nay nó thuộc sở hữu của nhiều công ty khác (Nokia, Ericsson, Sony Ericsson, Panasonic, Samsung…). Symbian hỗ trợ Java, đồng bộ hóa máy tính, truy cập Bluetooth và chuyển gói dữ liệu GPRS. Symbian là hệ điều hành phổ biến nhất của các điện thoại và các thiết bị thông minh.
Ưu nhược điểm
Ưu điểm
Ưu điểm đầu tiên có thể kể đến là sự phổ biến. Ngay từ đầu, hệ điều hành Symbian phát triển với mục đích lấy được đơn đặt hàng cho các công ty phát triển thiết bị viễn thông. Điện thoại đầu tiên sử dụng hệ điều hành Symbian là Nokia 9210 năm 2001. Sau đó, đã có hơn 1 tỉ điện thoại được bán khắp thế giới năm 2007, hơn một trăm triệu là điện thoại thông minh, trong đó có đến ¾ chạy hệ điều hành Symbian [5].
Trên thị trường thiết bị di động không có chuẩn nào về cỡ màn hình, bàn phím, các nút… Symbian đã phân loại giao diện đồ họa từ các thành phần hệ thống khác nhau. Nó cho phép hệ thống thích hợp với mọi loại cỡ và độ phân giải màn hình kể cả màn hình cảm ứng. Nó còn cho phép tạo sự thêm độc đáo bằng phần cứng cảm nhận gia tốc.
Điểm mạnh nhất của Symbian là hệ điều hành mở hỗ trợ đa ngôn ngữ (C++ và Java). Việc lập trình với ngôn ngữ C++ trên PC với sự hỗ trợ của bộ công cụ Microsoft Visual Studio và bộ giả lập rất dễ dàng. Bên cạnh đó, Symbian cũng hỗ trợ cả Java ME.
Nhược điểm
Hiện nay do sự phát triển của nhiều nền tảng di động mới nổi lên như BlackBerry, iPhone hay Google Android thì hệ điều hành Symbian đang đứng trước khó khăn để theo kịp các đối thủ.
BlackBerry
Giới thiệu
Hệ điều hành BlackBerry [6] là một phần mềm nền tảng độc quyền của RIM (Research in Motion, Canada) cho dòng thiết bị cầm tay BlackBerry và các thiết bị hỗ trợ BlackBerry. Nó là hệ điều hành cung cấp chức năng đa nhiệm, sử dụng bàn phím Qwerty, cùng với bi xoay hay màn hình cảm ứng. Hiện tại hệ điều hành BlackBerry 4 hỗ trợ MIDP 2.0, cho phép kích hoạt và đồng bộ hoàn toàn với thư điện tử Microsoft Exchange, lịch, các tác vụ, ghi chú và danh bạ…
Người lập trình thứ ba có thể viết phần mềm sử dụng các API do BlackBerry cung cấp, nhưng bất kể chương trình nào sử dụng các chức năng giới hạn phải có chữ ký điện tử, để có thể đồng bộ được với tài khoản của người phát triển ở RIM. Điều này đảm bảo thủ tục bản quyền tác giả của một ứng dụng, nhưng không đảm bảo chất lượng hay bảo mật của mã nguồn.
Ưu nhược điểm
Ưu điểm
Thiết kế tiện lợi, nhiều chức năng, ứng dụng phong phú, phù hợp với nhiều mục đích nhất là doanh nhân với bàn phím Qwerty, gửi nhận thư điện tử… Hiện nay, RIM đã có mở một kho ứng dụng App World của mình, cộng thêm ứng dụng giải trí và tiện ích trên BlackBerry còn ít, điều này hứa hẹn nhiều cơ hội cho người lập trình. Một lợi thế nữa của BlackBerry là một trong những hệ điều hành phổ biến nhất cho các thiết bị di động (vị trí thứ 2 sau Symbian).
Nhược điểm
Lập trình trên BlackBerry gặp nhiều khó khăn do có ít tài liệu, công cụ hỗ trợ, cộng đồng phát triển không lớn và cũng như Symbian, BlackBerry đang giảm ưu thế với sự nổi nên của Android và iPhone.
Windows Mobile
Giới thiệu
Windows Mobile là một hệ điều hành nhỏ gọn kết hợp với một số các ứng dụng cơ bản dành cho các thiết bị di động dựa trên các API của Microsoft Win32. Windows Mobile có thể chạy trên nhiều nền tảng phần cứng khác nhau như: Pocket PC, Smartphone, v.v… Nó được thiết kế có chút tương đồng với phiên bản Windows cho máy bàn.
Ưu nhược điểm
Ưu điểm
Ưu điểm lớn nhất của Windows Mobile là nó có thư viện API khá giống với API trên Win32, các công cụ hỗ trợ lập trình đầy đủ với Visual Studio, điều này làm cho những người phát triển trên Win32 không mất công tìm hiểu lại các API và các công cụ lập trình.
Nhược điểm
Sự có mặt của iPhone và Android là hai trở ngại lớn với Windows Mobile. Hai nền tảng này đang hoàn thiện và được người dùng rất ưa chuộng.
iPhone
Giới thiệu
Hệ điều hành iPhone là một hệ điều hành được phát triển bởi hãng Apple Inc, chạy trên iPhone (cả hai mẫu 2G và 3G) và Ipod cảm ứng. Nó dựa trên nhân Mac của hệ điều hành Mac X và sử dụng nền tảng Darwin. Hệ điều hành iPhone có bốn lớp trừu tượng: lớp Core OS, lớp Core Services, lớp Media và lớp Cocoa Touch. Hệ điều hành sử dụng dưới 240 MB trong tổng số bộ nhớ của thiết bị.
Vào 3/2008 bộ công cụ phát triển phần mềm chính thức ra mắt, cho phép người phát triển tạo ứng dụng cho iPhone và Ipod Touch và kiểm thử qua một bộ giả lập iPhone. Tuy nhiên, việc tải một ứng dụng lên trên thiết bị chỉ có thể sau khi trả phí phát triển chương trình iPhone (iPhone Developer Program fee). Từ khi ra bản Xcode 3.1, Xcode trở thành môi trường phát triển cho iPhone SDK. Hiện nay Xcode chỉ được cài trên Mac OS.
Người phát triển có thể đặt bất kỳ giá nào trên mức thấp nhất cho các ứng dụng của họ để phân phối thông qua App Store, tại đó họ được trả 70% lợi nhuận. Ngược lại, họ cũng có thể phát hành ứng dụng miễn phí và không phải trả khoản phí nào để phát hành và phân phối các ứng dụng đó [7].
Ưu nhược điểm
Ưu điểm
Màn hình cảm ứng đa điểm: iPhone sử dụng hoàn toàn bằng cảm ứng và không sử dụng các nút. Với iPhone ta có thể điều khiển trên màn hình kể cả việc trượt của các ngón tay. Ta có thể phóng to ảnh bằng cách trượt hai ngón tay ra xa và thu nhỏ bằng cách ngược lại.
Bộ cảm nhận gia tốc: Những phản ứng nhanh chóng của bộ cảm nhận gia tốc thay đổi độ phân giải màn hình từ dọc sang ngang tự động khi ta đặt điện thoại nằm ngang. Điều này làm sinh động thêm cho các trò chơi.
Chất lượng âm thanh, hình ảnh hoàn hảo, phù hợp cho các trò chơi và có chức năng đa nhiệm là những đặc điểm nổi trội của iPhone.
Nhược điểm
Không gửi được tin nhắn đa phương tiện (MMS) và IM (Instant Messaging), thiếu bộ nhớ mở rộng. Việc lập trình trên cho iPhone phải thực hiện trên hệ điều hành Mac, do đó không phải ai cũng có thể lập trình cho iPhone. Hơn thế, nếu muốn đưa chương trình ra máy thật người lập trình phải trả một khoản phí lập trình, điều này làm giảm tính cạnh tranh so với các đối thủ khác.
Android
Giới thiệu
Android là một phầm mềm nền tảng cho các thiết bị di động, được xây dựng trên nhân Linux, được Google phát triển và sau này là Liên minh thiết bị cầm tay mở. Nó cho phép người phát triển viết mã trên ngôn ngữ Java, điều khiển các thiết bị thông qua thư viện Java do Google phát triển.
Tháng 11/2007 nền tảng Android chính thức được giới thiệu với sự công bố của Liên minh thiết bị cầm tay mở (Open Handset Alliance). Mục tiêu của Google đang muốn đưa cỗ máy tìm kiếm của họ thống lĩnh các thiết bị di động khi mà điện thoại thông minh đang phát triển mạnh mẽ như hiện nay.
Ưu nhược điểm
Ưu điểm
Google Android là nền tảng mở, cho phép người dùng có thể tùy biến nền tảng theo ý thích, hơn nữa lại có một Liên minh thiết bị cầm tay mở hậu thuẫn, Google Android đang là đối thủ xứng tầm của iPhone của Apple. Google đang tích cực mở rộng cộng đồng phát triển các ứng dụng cho Android. Bộ công cụ phát triển phần mềm (SDK) đầy đủ, hỗ trợ đa nền (Linux, Windows hay Mac OS) do chạy trên máy ảo Java. Thư viện ngày càng hoàn thiện, dễ dàng cho người lập trình.
Nhược điểm
Có hỗ trợ cảm ứng đa điểm, nhưng chức năng này bị tắt (do sợ vi phạm bản quyền với iPhone), giao điện không bắt mắt, khả năng hỗ trợ bộ nhớ kém iPhone, không đồng bộ được với máy tính. Hi vọng trong thời gian tới Google sẽ sớm khắc phục những nhược điểm này.
Nền tảng Android
Chương này giới thiệu về nền tảng Android, khái niệm, các đặc điểm của nền tảng Android. Tiếp đến là đi sâu trình bày về kiến trúc và giới thiệu bộ công cụ lập trình cho Android.
Khái niệm
Điện thoại Android, HTC Dream (trái) và HTC Magic (phải)
Android là một hệ thống, một hệ điều hành dựa trên Java và chạy trên nhân linux 2.6. Nó được phát triển bởi Liên minh thiết bị cầm tay mở (Open Handset Alliance), với phương châm mang lại phong cách sử dụng Internet mới và mở cho điện thoại di động.
Android cung cấp một tập hợp đầy đủ các phần mềm cho thiết bị di động bao gồm: hệ điều hành, các khung ứng dụng và các ứng dụng cơ bản.
Đặc điểm
Tính mở
Android được xây dựng từ dưới đi lên cho phép người phát triển tạo các ứng dụng di động hấp dẫn với đầy đủ các điểm mạnh của các thiết bị cầm tay hiện có. Android hoàn toàn mở, một ứng dụng có thể gọi tới bất kể một chức năng lõi của điện thoại như tạo cuộc gọi, gửi tin nhắn hay sử dụng máy ảnh, cho phép người phát triển tạo phong phú hơn, liên kết hơn các tính năng cho người dùng. Android được xây dựng trên nhân Linux mở. Thêm nữa, nó sử dụng một máy ảo mà đã được tối ưu