Hướng dẫn cho nhà phát triển

Các tính năng của Android dành cho doanh nghiệp mang đến cho các tổ chức một nền tảng di động Android an toàn, linh hoạt và hợp nhất — kết hợp các thiết bị, ứng dụng và hoạt động quản lý. Theo mặc định, ứng dụng Android tương thích với các tính năng dành cho doanh nghiệp của Android. Tuy nhiên, bạn có thể sử dụng thêm các tính năng khác để ứng dụng hoạt động tốt nhất trên các thiết bị Android được quản lý:

  • Khả năng tương thích của hồ sơ công việc – Sửa đổi ứng dụng Android để ứng dụng hoạt động tốt nhất trên thiết bị được quản lý.
  • Cấu hình được quản lý – Sửa đổi ứng dụng để cho phép quản trị viên CNTT có thể chỉ định các chế độ cài đặt tuỳ chỉnh cho ứng dụng của bạn.
  • Thiết bị chuyên dụng – Tối ưu hoá ứng dụng của bạn để có thể triển khai ứng dụng đó trên thiết bị Android dưới dạng kiosk.
  • Đăng nhập một lần (SSO) – Đơn giản hoá quy trình đăng nhập cho người dùng khi họ đăng nhập vào nhiều ứng dụng trên thiết bị Android được quản lý.

Điều kiện tiên quyết

  1. Bạn đã tạo một ứng dụng Android.
  2. Bạn đã sẵn sàng sửa đổi ứng dụng của mình sao cho phù hợp nhất với các tổ chức.
  3. Phiên bản tối thiểu: Android 5.0 Lollipop Phiên bản đề xuất: Android 6.0 Marshmallow trở lên.

Lưu ý: Các tính năng dành cho doanh nghiệp của Android được tích hợp vào hầu hết các thiết bị chạy Android 5.0. Tuy nhiên, Android 6.0 trở lên cung cấp thêm các tính năng, đặc biệt là đối với các thiết bị chuyên dụng.

Hồ sơ công việc

Bạn có thể quản lý các ứng dụng và dữ liệu doanh nghiệp của người dùng thông qua hồ sơ công việc. Hồ sơ công việc là hồ sơ công ty được quản lý liên kết với tài khoản người dùng chính trên thiết bị Android. Hồ sơ công việc tách biệt dữ liệu và ứng dụng công việc với dữ liệu và ứng dụng cá nhân một cách an toàn. Hồ sơ công việc này nằm trong một vùng chứa riêng biệt với hồ sơ cá nhân do người dùng của bạn kiểm soát. Những hồ sơ riêng biệt này cho phép các tổ chức quản lý dữ liệu doanh nghiệp mà họ quan tâm, nhưng người dùng sẽ kiểm soát mọi nội dung khác trên thiết bị của họ. Để tìm hiểu sâu hơn về các phương pháp hay nhất, hãy xem hướng dẫn về Hồ sơ công việc. Để biết thông tin tổng quan về các phương pháp hay nhất đó, hãy xem phần bên dưới.

Các tính năng chính của hồ sơ công việc

  • Hồ sơ riêng biệt và bảo mật
  • Managed Google Play để phân phối ứng dụng
  • Ứng dụng công việc có huy hiệu riêng biệt
  • Khả năng quản lý chỉ hồ sơ do quản trị viên kiểm soát

Lợi ích của hồ sơ công việc trên Android 5.0 trở lên

  • Mã hoá toàn bộ thiết bị
  • Một gói ứng dụng Android (APK) cho cả hai hồ sơ khi thiết bị có cả hồ sơ cá nhân và hồ sơ công việc
  • Trình kiểm soát chính sách thiết bị (DPC) bị giới hạn ở hồ sơ công việc
  • Quản trị thiết bị thông qua lớp DevicePolicyManager

Những điều cần cân nhắc đối với hồ sơ công việc

  • Hệ thống Android sẽ ngăn các ý định qua hồ sơ và quản trị viên CNTT có thể bật hoặc tắt ứng dụng hệ thống.
  • Đường dẫn tệp (Giá trị nhận dạng tài nguyên thống nhất [URI]) hợp lệ trên một hồ sơ có thể không hợp lệ trên hồ sơ khác.

Ngăn không cho ý định không thành công giữa các hồ sơ

Bạn khó biết được ý định nào có thể chuyển đổi giữa các hồ sơ và ý định nào bị chặn. Cách duy nhất để biết chắc chắn là kiểm thử. Trước khi ứng dụng của bạn bắt đầu một hoạt động, bạn nên xác minh rằng yêu cầu đó đã được giải quyết bằng cách gọi Intent.resolveActivity().

  • Nếu trả về null, có nghĩa là yêu cầu không được giải quyết.
  • Nếu trả về giá trị nào đó, thì ý định đã được giải quyết và có thể gửi ý định một cách an toàn.

Lưu ý: Để biết hướng dẫn kiểm thử chi tiết, hãy xem bài viết Ngăn chặn ý định không thành công.

Chia sẻ tệp giữa nhiều hồ sơ

Một số nhà phát triển dùng URI để đánh dấu đường dẫn tệp trong Android. Tuy nhiên, vì có các hệ thống tệp riêng biệt khi có hồ sơ công việc, bạn nên:

Sử dụng:
URI nội dung
  • URI nội dung chứa quyền, đường dẫn và mã nhận dạng cho một tệp cụ thể. Bạn có thể tạo tệp này bằng lớp con FileProvider. Tìm hiểu thêm
  • Chia sẻ và cấp quyền truy cập vào URI nội dung bằng cách sử dụng một Intent (Ý định). Bạn chỉ có thể chuyển quyền qua ranh giới hồ sơ bằng cách sử dụng Ý định. Nếu bạn cấp cho một ứng dụng khác quyền truy cập vào tệp của mình bằng cách sử dụng Context.grantUriPermission(), thì quyền đó chỉ được cấp cho ứng dụng đó trong cùng hồ sơ.
Không sử dụng:
URI tệp
  • Chứa đường dẫn tuyệt đối của tệp trên bộ nhớ của thiết bị.
  • Một URI đường dẫn tệp hợp lệ trên một hồ sơ sẽ không hợp lệ trong hồ sơ còn lại.
  • Nếu bạn đính kèm URI tệp vào một ý định, thì trình xử lý sẽ không thể truy cập vào tệp đó trong một hồ sơ khác.

Các bước tiếp theo: Sau khi ứng dụng của bạn hỗ trợ hồ sơ được quản lý, hãy kiểm thử hồ sơ đó trong hồ sơ công việc. Xem nội dung Kiểm thử ứng dụng.

Triển khai cấu hình được quản lý

Cấu hình được quản lý là một tập hợp các hướng dẫn mà quản trị viên CNTT có thể dùng để quản lý thiết bị di động của người dùng theo một cách cụ thể. Những hướng dẫn này áp dụng chung và áp dụng cho mọi dịch vụ EMM, cho phép quản trị viên định cấu hình ứng dụng từ xa trên điện thoại của người dùng.

Nếu phát triển ứng dụng cho doanh nghiệp hoặc chính phủ, có thể bạn sẽ phải đáp ứng các yêu cầu cụ thể của ngành. Khi sử dụng cấu hình được quản lý, quản trị viên CNTT có thể chỉ định từ xa các chế độ cài đặt và thực thi chính sách cho ứng dụng Android của người dùng; ví dụ:

  • Thiết lập xem ứng dụng có thể đồng bộ hoá dữ liệu qua mạng di động/3G hay chỉ đồng bộ hoá Wi-Fi
  • Cho phép hoặc chặn URL trên trình duyệt web
  • Định cấu hình các chế độ cài đặt email của ứng dụng
  • Bật hoặc tắt tính năng in
  • Quản lý dấu trang

Các phương pháp hay nhất để triển khai cấu hình được quản lý

Hướng dẫn Thiết lập cấu hình được quản lý là nguồn chính cung cấp thông tin về cách tạo và triển khai cấu hình được quản lý. Sau khi bạn xem lại tài liệu này, hãy xem các đề xuất bên dưới để được hướng dẫn thêm.

Khi khởi chạy ứng dụng lần đầu tiên

Ngay khi chạy một ứng dụng, bạn có thể xem liệu cấu hình được quản lý đã được thiết lập cho ứng dụng này trong onStart() hoặc onResume() hay chưa. Ngoài ra, bạn có thể tìm hiểu xem ứng dụng của mình được quản lý hay không được quản lý. Ví dụ: nếu getApplicationRestrictions() trả về:

  • Một tập hợp các hạn chế dành riêng cho ứng dụng – Bạn có thể tự định cấu hình các cấu hình được quản lý (mà không yêu cầu hoạt động đầu vào của người dùng).
  • Gói trống – Ứng dụng của bạn hoạt động như không được quản lý (ví dụ: cách ứng dụng hoạt động trong hồ sơ cá nhân).
  • Một gói có một cặp khoá-giá trị duy nhất có KEY_RESTRICTIONS_PENDING được đặt thành true – ứng dụng của bạn đang được quản lý nhưng DPC chưa được định cấu hình đúng cách. Bạn nên chặn người dùng này khỏi ứng dụng của mình và hướng họ đến quản trị viên CNTT của họ.

Theo dõi những thay đổi đối với cấu hình được quản lý

Quản trị viên CNTT có thể thay đổi cấu hình được quản lý và những chính sách mà họ muốn thực thi cho người dùng của mình bất cứ lúc nào. Do đó, bạn nên đảm bảo rằng ứng dụng của mình có thể chấp nhận các quy định hạn chế mới đối với cấu hình được quản lý như sau:

  • Các hạn chế tìm nạp khi chạy – Ứng dụng của bạn nên gọi getApplicationRestrictions() trong onStart()onResume(), đồng thời so sánh với các hạn chế cũ để xem có cần thay đổi hay không.
  • Nghe trong khi chạy – Tự động đăng ký ACTION_APPLICATION_RESTRICTIONS_CHANGED trong các hoạt động hoặc dịch vụ đang chạy, sau khi bạn kiểm tra các quy định hạn chế mới. Ý định này chỉ được gửi đến những trình nghe được đăng ký động và không được gửi đến những trình nghe được khai báo trong tệp kê khai ứng dụng.
  • Huỷ đăng ký trong khi không chạy – Trong onPause(), bạn nên huỷ đăng ký truyền tin của ACTION_APPLICATION_RESTRICTIONS_CHANGED.

Thiết bị chuyên dụng

Thiết bị chuyên dụng là các thiết bị kiosk được dùng cho một mục đích duy nhất, chẳng hạn như màn hình biển hiệu kỹ thuật số, ki-ốt in vé hoặc quầy thanh toán.

Khi thiết bị Android được định cấu hình làm thiết bị chuyên dụng, người dùng sẽ thấy một ứng dụng bị khoá trên màn hình mà không có các nút Màn hình chính hoặc Ứng dụng gần đây để thoát khỏi ứng dụng. Các thiết bị chuyên dụng cũng có thể được định cấu hình để hiển thị một nhóm ứng dụng, chẳng hạn như một kiosk thư viện có một ứng dụng cho danh mục thư viện và trình duyệt web.

Để biết hướng dẫn, hãy xem phần Thiết bị chuyên dụng.

Thiết lập dịch vụ đăng nhập một lần bằng Thẻ tuỳ chỉnh của Chrome

Người dùng doanh nghiệp thường có nhiều ứng dụng trên thiết bị của mình và họ muốn đăng nhập một lần để truy cập vào tất cả ứng dụng công việc. Thông thường, người dùng đăng nhập qua WebView; tuy nhiên, có một vài lý do khiến cách này không lý tưởng:

  1. Người dùng thường cần đăng nhập nhiều lần bằng cùng một thông tin đăng nhập. Giải pháp WebView thường không phải là trải nghiệm đăng nhập một lần (SSO) thực sự.
  2. Việc này có thể gây ra rủi ro bảo mật, chẳng hạn như các ứng dụng độc hại kiểm tra cookie hoặc chèn JavaScript® để truy cập vào thông tin đăng nhập của người dùng. Ngay cả các nhà phát triển đáng tin cậy cũng gặp rủi ro nếu dựa vào SDK của bên thứ ba có khả năng độc hại.

Giải pháp cho cả hai vấn đề là xác thực người dùng bằng Thẻ tuỳ chỉnh của trình duyệt thay vì WebView. Điều này đảm bảo rằng quá trình xác thực:

  • Xảy ra trong một bối cảnh bảo mật (trình duyệt hệ thống) mà ứng dụng lưu trữ không thể kiểm tra nội dung.
  • Có trạng thái cookie dùng chung, giúp đảm bảo người dùng chỉ phải đăng nhập một lần.

Yêu cầu

Thẻ tuỳ chỉnh được hỗ trợ từ API cấp 15 (Android 4.0.3). Để sử dụng Thẻ tuỳ chỉnh, bạn cần có một trình duyệt được hỗ trợ, chẳng hạn như Chrome. Chrome 45 trở lên sẽ triển khai tính năng này dưới dạng Thẻ tuỳ chỉnh của Chrome.

Làm cách nào để triển khai SSO với Tab tuỳ chỉnh?

Google đã cấp phép nguồn mở cho một thư viện ứng dụng OAuth sử dụng Thẻ tuỳ chỉnh, góp phần tạo ra thư viện này là nhóm hoạt động của OpenSL Connect (phát hành) trực thuộc tổ chức OpenSL Foundation. Để thiết lập Thẻ tuỳ chỉnh cho tính năng SSO bằng thư viện AppAuth, hãy xem tài liệu và mã mẫu trên GitHub.

Kiểm tra ứng dụng của bạn

Sau khi phát triển ứng dụng, bạn nên kiểm thử ứng dụng đó – cả trong hồ sơ công việc và trên thiết bị được quản lý toàn bộ. Xem hướng dẫn bên dưới.

Sử dụng Test DPC (Kiểm thử DPC) để kiểm thử ứng dụng Android

Chúng tôi cung cấp ứng dụng Kiểm thử DPC để giúp nhà phát triển Android kiểm thử ứng dụng của họ trong môi trường doanh nghiệp. Khi sử dụng Test DPC, bạn có thể đặt các chính sách EMM hoặc giá trị cấu hình được quản lý trên một thiết bị — như thể một tổ chức quản lý thiết bị bằng EMM. Để cài đặt DPC kiểm thử trên một thiết bị, hãy chọn một trong các phương thức sau:

Để biết thêm thông tin về cách định cấu hình DPC kiểm thử, hãy xem hướng dẫn bên dưới và Hướng dẫn sử dụng DPC kiểm thử.

Cung cấp hồ sơ công việc

Để kiểm thử ứng dụng của bạn trong hồ sơ công việc, trước tiên, bạn cần cung cấp hồ sơ công việc trên thiết bị bằng ứng dụng Kiểm thử DPC như sau:

  1. Cài đặt DPC kiểm thử trên thiết bị.
  2. Trong trình chạy Android, nhấn vào biểu tượng ứng dụng Set up Test DPC (Thiết lập DPC kiểm thử).
  3. Làm theo hướng dẫn trên màn hình.
  4. Cài đặt ứng dụng của bạn trên thiết bị rồi kiểm thử xem ứng dụng chạy như thế nào trong hồ sơ công việc.

Android tạo một hồ sơ công việc và cài đặt một bản sao của DPC kiểm thử trong hồ sơ công việc. Bạn sử dụng phiên bản có huy hiệu công việc của Test DPC để thiết lập các chính sách và cấu hình được quản lý trong hồ sơ công việc. Để tìm hiểu thêm về cách thiết lập hồ sơ công việc cho hoạt động phát triển, hãy đọc bài viết Hồ sơ công việc hướng dẫn dành cho nhà phát triển.

Cấp phép cho một thiết bị được quản lý toàn bộ

Các tổ chức sử dụng thiết bị được quản lý hoàn toàn vì có thể thực thi nhiều chính sách quản lý trên thiết bị. Để cấp phép cho một thiết bị được quản lý hoàn toàn, hãy làm theo các bước sau:

  1. Cài đặt DPC kiểm thử trên thiết bị.
  2. Kiểm tra để đảm bảo thiết bị không có người dùng nào khác hoặc không có hồ sơ công việc.
  3. Xác nhận rằng không có tài khoản nào trên thiết bị.
  4. Chạy lệnh Cầu gỡ lỗi Android (adb) sau đây trong thiết bị đầu cuối của bạn:
    adb shell dpm set-device-owner com.afwsamples.testdpc/.DeviceAdminReceiver
  5. Sau khi cấp phép xong chủ sở hữu thiết bị, bạn có thể kiểm thử ứng dụng của mình trên thiết bị đó. Bạn nên kiểm thử cụ thể cách hoạt động của cấu hình được quản lýý định trên thiết bị đó.

Bạn cũng có thể sử dụng các phương thức cấp phép khác – xem Hướng dẫn sử dụng DPC kiểm thử. Để tìm hiểu cách quản trị viên CNTT thường đăng ký và cấp phép cho các thiết bị chạy Android, hãy đọc bài viết Cấp phép cho thiết bị.

Thử nghiệm toàn diện

Sau khi hoàn tất việc kiểm thử ứng dụng trong các môi trường nêu trên, có thể bạn nên kiểm thử ứng dụng trong môi trường phát hành sản xuất toàn diện. Quy trình này bao gồm các bước mà khách hàng cần thực hiện để triển khai ứng dụng của bạn trong tổ chức của họ, bao gồm:

  • Phân phối ứng dụng thông qua Play
  • Cấu hình được quản lý phía máy chủ
  • Kiểm soát chính sách hồ sơ phía máy chủ

Bạn cần truy cập vào bảng điều khiển EMM để hoàn tất quy trình kiểm thử toàn diện. Cách dễ nhất để có được một bảng điều khiển kiểm thử là yêu cầu một bảng điều khiển kiểm thử từ EMM của bạn. Sau khi bạn có quyền truy cập, hãy hoàn thành những việc sau:

  1. Tạo một phiên bản thử nghiệm của ứng dụng bằng ApplicationId mới.
  2. Xác nhận quyền sở hữu miền Google được quản lý và liên kết miền đó với EMM của bạn. Nếu đã có một miền thử nghiệm được liên kết với một giải pháp EMM, bạn có thể cần phải huỷ liên kết miền đó để thử nghiệm miền đó với EMM mà bạn muốn. Vui lòng tham khảo ý kiến của EMM của bạn để biết các bước huỷ liên kết cụ thể.
  3. Xuất bản ứng dụng của bạn lên kênh riêng tư cho miền Google được quản lý của họ.
  4. Sử dụng bảng điều khiển của EMM và ứng dụng EMM để:
    1. Thiết lập thiết bị làm việc.
    2. Phân phối ứng dụng của bạn.
    3. Đặt cấu hình được quản lý.
    4. Đặt chính sách thiết bị.

Quy trình này sẽ khác nhau tuỳ theo EMM của bạn. Vui lòng tham khảo tài liệu của EMM để biết thêm chi tiết. Xin chúc mừng! Bạn đã hoàn tất các bước này và xác minh rằng ứng dụng của bạn hoạt động tốt cho người dùng doanh nghiệp.