Quy trình phát triển một ứng dụng cho thiết bị di động thông thường khá giống nhau tuy nhiên trong khuôn khổ có hạn của đồ án tốt nghiệp em chỉ xin trình bày quy trình cho Android. Quy trình phát triển ứng dụng cho Android bao gồm các bước cơ bản sau:
1. Quy trình phát triển một ứng dụng
Hình 9: Quy trình phát triển ứng dụng cho thiết bị di động
Quy trình phát triển một ứng dụng bao gồm các bước chính sau:
• Tạo một project: Sau khi tìm hiểu yêu cầu và cài đặt môi trường chúng ta sẽ tiến hành tạo một project cho dự án.
• Modify application code: Quá trình này sẽ có những sửa chữa, phát triển dự án.
• Maintain the project: Quá trình duy trì và phát triển dự án diễn ra song song với công việc bước 2.
• Bước tiếp theo sẽ tiến hành build và biên dịch code (cho một hay nhiều phiên bản cho các dòng điện thoại).
• Kiểm thử và đóng gói sản phẩm.
• Tiếp theo phần mềm có thể được thương mại hóa qua việc đăng kí hoặc cho phép sử dụng miễn phí.
• Triển khai sản phẩm.
• Chạy ứng dụng.
2. Phát hành sản phẩm (cho hệ điều hành Android)
Chương trình sau khi phát triển để có thể đóng gói thành tệp apk và cải đặt lên máy thật cần trải qua một số bước sau đây.
a. Xác thực cho gói chương trình:
Như đã trình bày trong phần bảo mật, mỗi gói chương trình để cài đặt lên Android cần có một mã xác thực do chính người viết tạo nên. Khi chạy trên máy ảo,
các công cụ hỗ trợ đã tự động tạo cho gói cài đặt một mã xác thực dùng cho máy ảo, tuy nhiên mã này không được sử dụng cho chương trình trên máy thật.
Mã xác thực cần hội tụ các đặc điểm sau:
• Thuộc sở hữu của người viết (không trùng lặp với người khác).
• Đại diện được cho thông tin cá nhân, cơ quan, tổ chức của người viết phần mềm.
• Có thời gian hết hạn phù hợp với tuổi thọ của chương trình.
• Không phải là mã xác thực trong chế độ chạy thử trên máy ảo.
Để tạo mã xác thực và gắn vào gói cài đặt của chương trình ta có hai bộ công cụ. Bộ thứ nhất là các công cụ Keytool để sinh mã và Jarsigner để gắn mã với gói cài đặt chương trình trong bộ SDK của Android. Bộ thứ hai được tích hợp trong plugin ADT cho Elipse với trình Export Wizard.
Thông thường tất cả chương trình của cùng một tác giả nên cùng được gắn bởi một khóa xác thực duy nhất, bởi khóa xác thực này có tác dụng xác định tác giả của phần mềm cũng như quan hệ giữa các phần mềm với nhau. Khi cập nhật phiên bản mới cho phần mềm sẽ xảy ra hai trường hợp. Trường hợp thứ nhất ta sử dụng lại mã xác thực đã gán cho phiên bản trước đó, nếu tất cả xác thực gán cho phiên bản mới đều phù hợp với các xác thực của phiên bản cũ thì hệ thống cho phép ta thay đổi các phần mới. Ngược lại nếu ta gán mã xác thực mới, để có thể cài đặt ta phải đổi tên gói chương trình, và khi cài đặt là cài đặt một chương trình mới và tách biệt với chương trình cũ. Một vấn đề nữa là Android cho phép các chương trình khác nhau có cùng mã xác nhận sẽ cùng được chạy trong một tiến trình và được coi như một chương trình. Vì vậy chương trình nên chia thành các module dùng chung xác thực để tiện cập nhật cũng như chia sẻ dữ liệu và mã. Một điểm nữa trong khóa xác thực, đó là chia sẻ dữ liệu và chức năng thông qua phân quyền dựa trên mã xác thực. Một ứng dụng có thể chia sẻ dữ liệu cũng như các chức năng mà nó thực hiện cho các ứng dụng khác có mã xác thực nhất định. Vì vậy khi gán chung một mã xác thực cho nhiều ứng dụng, đồng thời kết hợp với việc phân quyền dựa trên mã xác thực, mã và dữ liệu của chương trình có thể được sử dụng một cách hiệu quả hơn.
Một điều lưu ý với mã xác thực là thời gian hết hạn của nó. Ta cần xác định thời gian hết hạn của mã phù hợp với tuổi thọ của các chương trình được gán mã xác thực đó. Khi mã hết hạn thì người dùng không thể cập nhật phiên bản mới hơn cho chương trình. Thông thường thời hạn cho mã xác thực này là 12 năm. Các chương trình được phát hành trên Android Market của Google cần có thời hạn cho mã xác thực nằm sau ngày 22/10/2033..
b. Gán phiên bản:
Chương trình cần được gán phiên bản do một số yêu cầu như sau:
sử dụng, từ đó họ biết các đặc điểm của chương trình do ta đã cung cấp trước.
• Các chương trình khác, đặc biết các chương trình có liên quan đến chương trình của ta cần biết phiên bản của chương trình để xác định tính tương thích.
• Các dịch vụ phát hành chương trình của ta cần biết phiên bản của phần mềm để quảng bá sản phẩm cho phù hợp.
Tuy nhiên Android không quan tâm đến phiên bản của phần mềm cũng như đưa ra các thông báo cập nhật hay tương thích. Việc cập nhật phần mềm sẽ do người dùng tự quyết định. Android cũng không cung cấp cho các ứng dụng phiên bản của mình, mà các ứng dụng sẽ phải khai báo phiên bản API tối thiểu của hệ thống tương thích với chương trình, từ đó Android có cho phép cài đặt hay không.
Phiên bản của chương trình được thiết lập trong tệp cấu hình AndroidManifest.xml tại các thuộc tính của thẻ <manifest>. Có hai loại mã phiên bản và ta nên thiết lập cho cả hai. Loại thứ nhất là một số nguyên, thường bắt đầu từ 1 và tăng dần qua các phiên bản. Loại mã phiên bản này thích hợp cho chương trình dễ dàng xử lý. Loại mã phiên bản thứ hai sử dụng để hiển thị cho người sử dụng, khó xử lý trong chương trình hơn nhưng dễ hiểu với người dùng. Đây là một chuỗi văn bản theo quy ước nào đó, thường là theo khuôn dạng hay gặp là <major>.<minor>.<point>. <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.package.name" android:versionCode="2" android:versionName="1.1"> <application android:icon="@drawable/icon" android:label="@string/app_name"> ... </application> </manifest>
c. Một số chuẩn bị khác trước khi phát hành sản phẩm:
• Kiểm tra lại phần mềm.
• Tạo giấy phép bản quyền.
• Tạo tên gọi cũng như biểu tượng cho chương trình.
• Tắt chức năng cho phép gỡ rỗi cũng như loại bỏ các đoạn mã nguồn gỡ rối khác, và loại bỏ các tệp tin dữ liệu thử nghiệm, rác.
CHƯƠNG III: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG