MỤC LỤC
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.
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ỹ. 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 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. 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].
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. 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.
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ạ…. 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.
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. 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 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 sử dụng nhân Linux 2.6 làm nhân cho các dịch vụ hệ thống như bảo mật, quản lý bộ nhớ, quản lý tiến trình (xử lý tiến trình, đa luồng), ngăn xếp mạng và trình điều khiển thiết bị (giao tiếp USB, giao tiếp hồng ngoại, không đây, v.v…). Thông thường cửa sổ này phủ đầy màn hình, ngoài ra nó cũng có thể có thêm các cửa sổ con khác như là hộp thoại…Nội dung của cửa sổ của hoạt động được cung cấp bởi một hệ thống cấp bậc các View (là đối tượng của lớp Views).
Các thông tin về trạng thái và các dữ liệu mà hoạt động đang sử dụng vẫn được lưu giữ (bởi chương trình quản lý của hệ thống) nhưng khi hệ thống rơi vào trạng thái thiếu bộ nhớ thì những thông tin trên có thể bị giải phóng. Toàn bộ các tài nguyên đang được sử dụng bởi hoạt động vẫn tiếp tục được lưu giữ, người dùng có thể thấy giao diện nhưng không tương tác được với hoạt động do trong qua trình này hoạt động không ở trạng thái chạy tiền cảnh. Khi đó dịch vụ này sẽ cung cấp cho ứng dụng cơ chế để giao tiếp với chúng thông qua giao diện gọi là IBinder (đối với dịch vụ chơi nhạc có thể cho phép dừng hoặc chuyển qua bài nhạc kế tiếp).
Các ứng dụng có thể lưu trữ dữ liệu của mình trong các tập tin hoặc sử dụng cơ sở dữ liệu SQLite sẵn có v.v… Content Provider có chức năng cung cấp một tập hợp các phương thức cho phép một ứng dụng có thể lưu trữ và lấy dữ liệu được quản lý bởi content provider đó. Các hoạt động, dịch vụ và content provider có thể cùng được khai báo trong tập tin khai báo hoặc có thể được tạo tự động trong mã (như đối tượng BroadcastReceiver) và được đăng ký với hệ thống bằng cách gọi Context.registerReceiver(). Thành phần quan trọng nhất của bộ công cụ này là trình giả lập Android và bộ plug-in phát triển ứng dụng Android trên Eclipse ADT, bên cạnh đó bộ SDK cũng bao gồm các công cụ khác cho việc gỡ rối, đóng gói và cài đặt ứng dụng trên trình giả lập và trên thiết bị.
Có thể sử dụng công cụ này để hủy các tiến trình, chọn một tiến trình cụ thể để gỡ rối, sinh các dữ liệu truy vết, xem bộ nhớ heap và thông tin về các luồng, chụp ảnh màn hình của trình giả lập.
Việc lưu trữ nhiều thông tin hơn đã dẫn đến việc phát triển của các ma trận mã (một dạng của mã vạch 2D), trong đó không chứa các vạch mà là một lưới các ô vuông. Các mã vạch cụm là trung gian giữa mã vạch 2D thực thụ và mã vạch tuyến tính và chúng được tạo ra bằng cách đặt các mã vạch tuyến tính truyền thống trên các loại giấy hay các vật liệu có thể in ấn mà cho phép có nhiều hàng. Điều này đưa đến các ứng dụng mới và đa dạng hướng về người tiêu dùng, nhằm làm đơn giản việc nhập dữ liệu vào điện thoại di động, vốn không mấy hấp dẫn.
Mã QR cũng được thêm vào danh thiếp, làm đơn giản đi rất nhiều việc nhập dữ kiện cá nhân của người mới quen vào sổ địa chỉ trên điện thoại di động. Zxing [12] (viết tắt của “zebra crossing”) là một thư viện mã nguồn mở, xử lý nhiều định dạng mã vạch 1 chiều và 2 chiều, được cài đặt bằng Java. Mục đích của thư viện này là sử dụng máy ảnh trên điện thoại di động để chụp và giải mã các mã vạch trên thiết bị, không cần phải kết nối với máy chủ.
Tự gọi: để mã hóa một chuỗi ra ảnh mã QR, ta chỉ việc tạo một Intent xác định hành động mã hóa, xác định loại và dữ liệu mã hóa sau đó gọi phương thức startActivity(). Tự gọi: nếu Barcode Scanner (bộ quét mã vạch) đã được cài đặt trên điện thoại Android, ta có thể cho nó quét và trả lại kết quả, chỉ việc thông qua một Intent.
Mục đích: Hiển thị cửa sổ chức năng mã hóa, cho phép người dùng nhập đường dẫn tới tập tin cần mã hóa và thực hiện kiểm tra đường dẫn và mã hóa tập tin đó. Ngoại lệ: Nếu người dùng nhập tập tin không tồn tại hoặc tập tin quá lớn thì hệ thống sẽ thông báo cho chúng ta và không thực hiện xử lý tiếp đến khi chúng ta nhập tập tin thỏa mãn. Nếu người sử dụng nhập tập tin không tồn tại, hoặc trong quá trình giải mã xảy ra lỗi, hệ thống sẽ thông báo và không tiếp tục thực hiện giải mã.
Từ đặc tả chi tiết ca sử dụng Encode ta có biểu đồ tuần tự biểu diễn các hành động xảy ra thứ tự theo thời gian giữa tác nhân người sử dụng và hệ thống khi người dùng sử dụng chức năng Encode một tập tin. Từ đặc tả chi tiết ca sử dụng Decode files ta suy ra biểu đồ tuần tự biểu diễn các hành động xảy ra thứ tự theo thời gian giữa tác nhân người sử dụng và hệ thống khi người sử dụng chức năng Decode files. Từ đặc tả chi tiết ca sử dụng Decode images ta có biểu đồ tuần tự biểu diễn các hành động xảy ra thứ tự theo thời gian giữa tác nhân người sử dụng và hệ thống khi người sửu dụng sử dụng chức năng Decode images.
Biểu đồ hoạt động cho thấy rừ dũng hoạt động của hệ thống, gồm cỏc trạng thỏi hoạt động, trong đó mỗi trạng thái sẽ chuyển sang một trạng thái khác khi một hoạt động tương ứng được thực hiện. Lớp decode: tạo giao diện cho ca sử dụng Decode, chức năng chính của lớp này là giải mã các tập tin ảnh và quét các ảnh QR để khôi phục lại tập tin ban đầu. − onActivityResult(): phương thức này là phương thức Overide của lớp cơ sở Activity được gọi sau khi kết thúc một Intent gọi đến Barcode Scanner (quét mã vạch).
Hiện tại thực nghiệm vẫn đang tiến hành để hoàn thiện chương trình và có thể chuyển hướng phát triển sang hướng tiếp theo đó là truyền dữ liệu giữa hai thiết bị di động sử dụng hai nền tảng khác nhau (có thể là BlackBerry, Android, iPhone, Window Mobile, Symbian…) với nhau.