Chuẩn bị phát hành ứng dụng

Để chuẩn bị phát hành ứng dụng, bạn cần định cấu hình, xây dựng và kiểm thử một phiên bản phát hành của ứng dụng đó. Có những tác vụ định cấu hình như làm sạch mã và sửa đổi mã cơ bản nhằm giúp tối ưu hoá ứng dụng của bạn. Quy trình xây dựng này tương tự như quy trình xây dựng gỡ lỗi, do đó bạn có thể thực hiện việc này bằng cách sử dụng bộ công cụ SDK Android và JDK.

Các tác vụ kiểm thử đóng vai trò là lần kiểm tra cuối cùng giúp đảm bảo ứng dụng của bạn hoạt động như mong đợi trong các điều kiện thực tế. Firebase cung cấp cho bạn một tập hợp gồm rất nhiều thiết bị thử nghiệm (gồm cả thiết bị thực và ảo) thông qua Phòng thử nghiệm Firebase để bạn có thể sử dụng nhằm cải thiện chất lượng ứng dụng của mình.

Khi hoàn tất việc chuẩn bị phát hành ứng dụng, bạn sẽ có một tệp APK đã ký. Bạn có thể trực tiếp phân phối tệp này cho người dùng hoặc phân phối thông qua một nền tảng phân phối ứng dụng như Google Play.

Tài liệu này tóm tắt các nhiệm vụ chính bạn cần thực hiện để chuẩn bị phát hành ứng dụng. Các nhiệm vụ được mô tả trên trang này sẽ áp dụng cho mọi ứng dụng Android, bất kể các ứng dụng này được phát hành hay phân phối cho người dùng bằng cách nào. Nếu bạn đang phát hành ứng dụng thông qua Google Play, hãy đọc bài viết Tự tin phát hành.

Lưu ý: Phương pháp hay nhất là đảm bảo ứng dụng của bạn đáp ứng mọi tiêu chí phát hành về chức năng, hiệu suất và độ ổn định trước khi bạn thực hiện các nhiệm vụ nêu trên trang này.

Cho thấy vai trò của quá trình chuẩn bị trong quá trình phát triển

Hình 1. Chuẩn bị phát hành ứng dụng là tác vụ phát triển bắt buộc và là bước đầu tiên trong quy trình phát hành.

Việc cần làm để chuẩn bị phát hành ứng dụng

Để phát hành ứng dụng đến người dùng, bạn cần tạo một gói sẵn sàng phát hành mà người dùng có thể cài đặt và chạy trên thiết bị chạy Android của họ. Gói sẵn sàng phát hành chứa các thành phần giống như trong tệp APK gỡ lỗi — mã nguồn đã biên dịch, tài nguyên, tệp kê khai và các thành phần khác. Gói này được tạo bằng các công cụ xây dựng tương tự. Tuy nhiên, không giống như tệp gỡ lỗi APK, tệp APK sẵn sàng phát hành được ký bằng chứng chỉ của riêng bạn và được tối ưu hoá bằng công cụ zipalign.

Cho thấy 5 tác vụ bạn cần thực hiện để chuẩn bị phát hành ứng dụng

Hình 2. Có 5 tác vụ chính để chuẩn bị phát hành ứng dụng.

Các tác vụ ký và tối ưu hoá thường được thực hiện liền mạch nếu bạn xây dựng ứng dụng bằng Android Studio. Ví dụ: bạn có thể sử dụng Android Studio với các tệp xây dựng trên Gradle để đồng thời biên dịch, ký và tối ưu hoá ứng dụng của mình. Bạn cũng có thể định cấu hình các tệp bản dựng trên Gradle để làm điều tương tự khi xây dựng qua dòng lệnh. Để biết thêm thông tin chi tiết về cách sử dụng tệp bản dựng trên Gradle, hãy xem phần Định cấu hình bản dựng.

Để chuẩn bị cho việc phát hành ứng dụng, thường thì bạn thực hiện 5 tác vụ chính, như minh hoạ trong hình 2. Mỗi tác vụ chính có thể bao gồm một hoặc nhiều tác vụ nhỏ hơn, tuỳ thuộc vào cách bạn phát hành ứng dụng. Ví dụ: nếu phát hành ứng dụng thông qua Google Play, có thể bạn sẽ muốn thêm các quy tắc lọc đặc biệt vào tệp kê khai trong khi định cấu hình ứng dụng để phát hành. Tương tự, để đáp ứng các nguyên tắc phát hành của Google Play, có thể bạn phải chuẩn bị ảnh chụp màn hình và tạo văn bản quảng cáo trong quá trình thu thập tài liệu phục vụ việc phát hành.

Thường thì bạn sẽ cần thực hiện các tác vụ nêu trong hình 2 sau khi đã gỡ lỗi và kiểm thử kỹ ứng dụng của mình. SDK Android chứa một số công cụ giúp bạn kiểm thử và gỡ lỗi các ứng dụng Android. Để biết thêm thông tin, hãy xem phần Gỡ lỗi ứng dụngKiểm thử ứng dụng.

Thu thập tài liệu và tài nguyên

Để chuẩn bị phát hành ứng dụng, bạn cần thu thập một số mục hỗ trợ. Tối thiểu, các mục này phải bao gồm các khoá mã hoá để ký ứng dụng của bạn và một biểu tượng ứng dụng. Cũng có thể bạn cần chuẩn bị một thoả thuận cấp phép người dùng cuối.

Khoá mã hoá

Android yêu cầu tất cả các tệp APK đều phải có chữ ký số kèm theo chứng chỉ trước khi được cài đặt hoặc cập nhật trên một thiết bị. Đối với Cửa hàng Google Play, tất cả ứng dụng tạo sau tháng 8 năm 2021 đều phải sử dụng Tính năng ký ứng dụng của Play. Tuy nhiên, để tải tệp AAB lên Play Console, bạn vẫn cần phải ký bằng chứng chỉ của nhà phát triển. Các ứng dụng cũ hơn vẫn có thể tự ký. Tuy nhiên, cho dù sử dụng Tính năng ký ứng dụng của Play hay tự ký, bạn luôn phải ký ứng dụng thì mới tải lên được.

Để tìm hiểu các yêu cầu về chứng chỉ, hãy xem phần Ký ứng dụng.

Lưu ý quan trọng: Ứng dụng của bạn phải được ký kèm theo một khoá mã hoá có kỳ hạn hiệu lực kết thúc sau ngày 22 tháng 10 năm 2033.

Cũng có thể bạn phải lấy các khoá phát hành khác nếu ứng dụng của bạn truy cập vào một dịch vụ hoặc sử dụng một thư viện của bên thứ ba đòi hỏi bạn phải sử dụng một khoá dựa trên khoá riêng tư của mình.

Biểu tượng ứng dụng

Biểu tượng của ứng dụng giúp người dùng xác định ứng dụng của bạn trên Màn hình chính của thiết bị và trong cửa sổ Trình chạy. Biểu tượng ứng dụng cũng xuất hiện trong các phần Quản lý ứng dụng, Tệp đã tải xuống, v.v. Ngoài ra, các dịch vụ phát hành như Google Play sẽ cho người dùng thấy biểu tượng của bạn. Hãy đảm bảo bạn có biểu tượng ứng dụng và biểu tượng đó đáp ứng các nguyên tắc về biểu tượng mà chúng tôi đề xuất.

Lưu ý: Nếu phát hành ứng dụng trên Google Play, bạn cần tạo một phiên bản biểu tượng có độ phân giải cao. Để biết thêm thông tin, hãy xem phần Thêm thành phần xem trước làm nổi bật ứng dụng của bạn.

Thoả thuận cấp phép người dùng cuối

Hãy cân nhắc việc chuẩn bị cho ứng dụng của bạn một thoả thuận cấp phép người dùng cuối (EULA). Thoả thuận cấp phép người dùng cuối có thể giúp bảo vệ con người, tổ chức và tài sản trí tuệ của bạn, do đó bạn nên cung cấp một thoả thuận như vậy cho ứng dụng của mình.

Tài liệu khác

Có thể bạn cũng phải chuẩn bị tài liệu quảng cáo và tiếp thị để quảng bá ứng dụng. Ví dụ: nếu phát hành ứng dụng trên Google Play, bạn cần chuẩn bị một số văn bản quảng cáo, cũng như cần phải tạo ảnh chụp màn hình của ứng dụng. Để biết thêm thông tin, hãy xem nội dung Thêm tài sản xem trước để làm nổi bật ứng dụng của bạn.

Định cấu hình ứng dụng để phát hành

Sau khi thu thập tất cả tài liệu hỗ trợ, bạn có thể bắt đầu định cấu hình ứng dụng để phát hành. Phần này cung cấp thông tin tóm tắt về các thay đổi về cấu hình mà chúng tôi đề xuất bạn thực hiện đối với mã nguồn, tệp tài nguyên và tệp kê khai ứng dụng trước khi phát hành ứng dụng.

Tuy hầu hết thay đổi về cấu hình nêu trong phần này là không bắt buộc, nhưng chúng được coi là các phương pháp lập trình hay và chúng tôi khuyến khích bạn thực hiện những thay đổi như vậy. Trong một số trường hợp, có thể trong quá trình phát triển bạn đã triển khai việc thay đổi cấu hình này.

Chọn mã ứng dụng phù hợp

Hãy nhớ chọn một mã ứng dụng phù hợp trong suốt thời gian hoạt động của ứng dụng. Sau khi phân phối ứng dụng cho người dùng, bạn không thể thay đổi mã ứng dụng này. Để thiết lập giá trị này, hãy sử dụng thuộc tính applicationId trong tệp build.gradle hoặc build.gradle.kts ở cấp mô-đun. Để biết thêm thông tin, hãy xem phần Thiết lập mã ứng dụng.

Tắt tính năng gỡ lỗi

Để định cấu hình về việc liệu tệp APK của bạn có thể gỡ lỗi hay không, hãy sử dụng cờ debuggable đối với Groovy hoặc cờ isDebuggable đối với tập lệnh Kotlin:

Kotlin

  android {
    ...
    buildTypes {
      release {
        isDebuggable = false
        ...
      }
      debug {
        isDebuggable = true
        ...
      }
    }
    ...
  }
  

Groovy

  android {
    ...
    buildTypes {
      release {
        debuggable false
        ...
      }
      debug {
        debuggable true
        ...
      }
    }
    ...
  }

Bật và định cấu hình tính năng rút gọn ứng dụng

Khi bật tính năng rút gọn (shrinking) cho bản phát hành, bạn có thể tự động hoá nhiều tính năng tối ưu hoá sau đây. Ví dụ: bạn có thể thêm các quy tắc ProGuard để xoá các câu lệnh nhật ký, sau đó trình rút gọn sẽ xác định và xoá mã cũng như tài nguyên không dùng đến. Trình rút gọn này cũng có thể thay thế tên lớp và tên biến bằng tên ngắn hơn để giảm kích thước tệp DEX hơn nữa.

Tắt tính năng ghi nhật ký

Huỷ kích hoạt tính năng ghi nhật ký trước khi tạo bản dựng ứng dụng để phát hành. Bạn có thể tắt tính năng ghi nhật ký bằng cách xoá các lệnh gọi đến phương thức Log trong tệp nguồn. Ngoài ra, hãy xoá mọi tệp nhật ký hoặc tệp kiểm thử tĩnh đã tạo trong dự án của bạn.

Ngoài ra, hãy xoá tất cả các lệnh gọi Debug theo dõi mà bạn đã thêm vào mã của mình, chẳng hạn như các lệnh gọi phương thức startMethodTracing()stopMethodTracing().

Lưu ý quan trọng: Hãy nhớ tắt tính năng gỡ lỗi cho ứng dụng nếu sử dụng WebView để cho thấy nội dung có tính phí hoặc nếu sử dụng giao diện JavaScript, vì việc gỡ lỗi cho phép người dùng chèn tập lệnh và trích xuất bằng cách sử dụng Công cụ của Chrome cho nhà phát triển. Để tắt tính năng gỡ lỗi, hãy sử dụng phương thức WebView.setWebContentsDebuggingEnabled().

Dọn dẹp các thư mục dự án

Hãy dọn dẹp dự án của bạn và đảm bảo dự án tuân thủ cấu trúc thư mục trình bày trong phần Tổng quan về dự án. Việc để lại các tệp bị thất lạc hoặc mất nguồn gốc trong dự án có thể cản trở quá trình biên dịch ứng dụng và khiến ứng dụng của bạn hoạt động không như mong muốn. Ở mức tối thiểu, hãy thực hiện các tác vụ dọn dẹp sau đây:

  • Xem xét nội dung trong các thư mục cpp/, lib/src/. Thư mục cpp/ chỉ được chứa các tệp nguồn liên kết với Android NDK, chẳng hạn như các tệp nguồn C hoặc C++, tệp tiêu đề hoặc tệp makefile. Thư mục lib/ chỉ được chứa các tệp thư viện bên thứ ba hoặc tệp thư viện riêng tư, bao gồm cả thư viện dùng chung tạo sẵn và thư viện tĩnh. Thư mục src/ chỉ được chứa các tệp nguồn của ứng dụng (tệp Java, Kotlin và AIDL). Thư mục src/ không được chứa bất kỳ tệp JAR nào.
  • Kiểm tra dự án của bạn để tìm các tệp dữ liệu riêng tư hoặc thuộc quyền sở hữu riêng mà ứng dụng không sử dụng rồi loại bỏ các tệp đó. Ví dụ: tìm trong thư mục res/ của dự án các tệp đối tượng có thể vẽ, tệp bố cục và tệp có giá trị cũ mà bạn không còn sử dụng rồi xoá các tệp đó.
  • Kiểm tra thư mục lib/ để tìm các thư viện kiểm thử và xoá các thư viện đó nếu ứng dụng không dùng nữa.
  • Xem xét nội dung của thư mục assets/ và thư mục res/raw/ để tìm các tệp tài sản chưa xử lý và các tệp tĩnh mà bạn cần cập nhật hoặc loại bỏ trước khi phát hành.

Xem xét và cập nhật tệp kê khai và chế độ cài đặt bản dựng Gradle

Xác minh rằng tệp kê khai và các mục sau đây trong tệp bản dựng đã được thiết lập chính xác:

  • Phần tử <uses-permission>

    Chỉ xác định các quyền liên quan và cần thiết cho ứng dụng.

  • Các thuộc tính android:iconandroid:label

    Bạn phải chỉ định giá trị cho các thuộc tính này (nằm trong phần tử <application>).

  • Các thuộc tính versionCodeversionName

    Bạn nên chỉ định giá trị cho các thuộc tính này (nằm trong tệp build.gradle hoặc build.gradle.kts ở cấp mô-đun của ứng dụng). Để biết thêm thông tin chi tiết, vui lòng xem phần Lập phiên bản ứng dụng.

Bạn có thể thiết lập một số phần tử tệp bản dựng bổ sung nếu đang phát hành ứng dụng trên Google Play. Ví dụ: các thuộc tính minSdktargetSdk nằm trong tệp build.gradle hoặc build.gradle.kts ở cấp mô-đun của ứng dụng. Để biết thêm thông tin về các thành phần này cũng như các chế độ cài đặt khác trên Google Play, hãy xem Các bộ lọc trên Google Play.

Các vấn đề về khả năng tương thích của địa chỉ

Android cung cấp một số công cụ và kỹ thuật giúp ứng dụng của bạn tương thích với nhiều loại thiết bị. Để ứng dụng của bạn tiếp cận được nhiều người dùng nhất, hãy cân nhắc thực hiện những việc sau:

Thêm tính năng hỗ trợ cho nhiều cấu hình màn hình
Đảm bảo bạn đáp ứng các phương pháp hay nhất trong việc hỗ trợ nhiều màn hình. Bằng cách hỗ trợ nhiều cấu hình màn hình, bạn có thể tạo một ứng dụng hoạt động đúng cách và hiển thị tốt trên mọi kích thước màn hình được Android hỗ trợ.
Tối ưu hoá ứng dụng cho màn hình lớn hơn.
Bạn có thể tối ưu hoá ứng dụng của mình để hoạt động tốt trên các thiết bị có màn hình lớn như máy tính bảng và thiết bị có thể gập lại. Ví dụ: bố cục chi tiết dạng danh sách có thể cải thiện khả năng hữu dụng trên màn hình lớn.
Cân nhắc việc sử dụng thư viện Jetpack.
Jetpack là một bộ thư viện giúp nhà phát triển làm theo những phương pháp hay nhất, giảm bớt việc sử dụng mã nguyên mẫu và viết mã có khả năng hoạt động nhất quán giữa các phiên bản và thiết bị Android.

Cập nhật URL cho máy chủ và dịch vụ

Nếu ứng dụng của bạn truy cập các máy chủ hoặc dịch vụ từ xa, hãy nhớ sử dụng URL hoặc đường dẫn tạo cho máy chủ hoặc dịch vụ đó chứ không phải URL hoặc đường dẫn kiểm thử.

Triển khai dịch vụ cấp phép của Google Play

Nếu bạn phát hành một ứng dụng có tính phí thông qua Google Play, hãy cân nhắc việc thêm tính năng hỗ trợ cho Dịch vụ cấp phép của Google Play. Dịch vụ cấp phép giúp bạn kiểm soát quyền truy cập vào ứng dụng của mình dựa trên việc xem người dùng hiện tại đã mua ứng dụng đó hay chưa. Ngay cả khi phát hành ứng dụng thông qua Google Play, bạn không bắt buộc phải sử dụng Dịch vụ cấp phép của Google Play.

Hãy xem phần Cấp phép ứng dụng để biết thêm thông tin về Dịch vụ cấp phép của Google Play và cách sử dụng dịch vụ đó trong ứng dụng.

Tạo bản dựng ứng dụng để phát hành

Sau khi hoàn tất việc định cấu hình ứng dụng, bạn có thể xây dựng ứng dụng thành tệp APK sẵn sàng phát hành đã được ký và tối ưu hoá. JDK cung cấp các công cụ dùng để ký tệp APK (Keytool và Jarsigner). SDK Android cung cấp các công cụ để biên dịch và tối ưu hoá tệp APK. Nếu sử dụng Android Studio hoặc hệ thống xây dựng của Gradle qua dòng lệnh, bạn có thể tự động hoá toàn bộ quy trình xây dựng. Để biết thêm thông tin về cách định cấu hình bản dựng trên Gradle, hãy xem nội dung Định cấu hình các biến thể bản dựng.

Nếu sử dụng một hệ thống tích hợp liên tục, bạn có thể định cấu hình một tác vụ để tự động hoá quy trình phát hành. Điều này không chỉ giới hạn ở việc tạo tệp APK hoặc AAB phát hành. Bạn cũng có thể định cấu hình tác vụ để tự động tải (các) cấu phần bản dựng lên Play Console.

Dùng Android Studio để tạo bản dựng

Bạn có thể sử dụng hệ thống xây dựng trên Gradle, được tích hợp với Android Studio để tạo một tệp APK sẵn sàng phát hành. Tệp APK này được ký bằng khoá riêng tư của bạn và được tối ưu hoá. Để tìm hiểu cách thiết lập và chạy các bản dựng trong Android Studio, hãy xem nội dung Tạo bản dựng và chạy ứng dụng.

Quá trình xây dựng giả định rằng bạn có một chứng chỉ và khoá riêng tư phù hợp để ký ứng dụng. Nếu bạn không có chứng chỉ và khoá riêng tư phù hợp, Android Studio có thể giúp bạn tạo. Để biết thêm thông tin về quy trình ký, hãy xem phần Ký ứng dụng.

Chuẩn bị các máy chủ và tài nguyên bên ngoài

Nếu ứng dụng của bạn dựa vào một máy chủ từ xa, hãy đảm bảo rằng máy chủ đó được bảo mật và định cấu hình để sử dụng cho ứng dụng công khai. Điều này đặc biệt quan trọng nếu bạn triển khai thanh toán trong ứng dụng và thực hiện bước xác minh chữ ký trên máy chủ từ xa.

Ngoài ra, nếu ứng dụng của bạn tìm nạp nội dung qua một máy chủ từ xa hoặc một dịch vụ theo thời gian thực (chẳng hạn như nguồn cấp nội dung), hãy đảm bảo rằng nội dung bạn đang cung cấp đã cập nhật và sẵn sàng cho bản phát hành công khai.

Kiểm thử ứng dụng để phát hành

Việc kiểm thử phiên bản phát hành của ứng dụng giúp đảm bảo ứng dụng của bạn chạy đúng cách trong tình trạng mạng và thiết bị thực tế. Tốt nhất là bạn nên kiểm thử ứng dụng trên ít nhất một thiết bị có kích thước bằng với điện thoại di động và một thiết bị có kích thước bằng với máy tính bảng để đảm bảo rằng các phần tử giao diện người dùng có kích thước chính xác cũng như hiệu suất hoạt động và hiệu suất pin của ứng dụng ở mức chấp nhận được. Phòng thử nghiệm Firebase cũng có thể hữu ích cho việc kiểm thử trên nhiều thiết bị và phiên bản hệ điều hành Android.

Trước khi bắt tay vào việc kiểm thử, hãy xem nội dung Chất lượng ứng dụng cốt lõi. Sau khi kiểm thử xong và hài lòng rằng phiên bản phát hành của ứng dụng hoạt động chính xác, bạn có thể phát hành ứng dụng cho người dùng. Để biết thêm thông tin, hãy xem nội dung Phát hành ứng dụng cho người dùng.