2012-01-06 24 views
8

Có một phác thảo hoặc mồi nào về cách bạn phát triển một ứng dụng có "tiện ích bổ sung" không?Làm thế nào để phát triển một ứng dụng có phần bổ trợ?

Ví dụ: cách phát triển một số loại khung để thêm "chủ đề" vào ứng dụng?

Có ứng dụng cơ bản với 2 chủ đề. Người dùng có thể tải xuống một ứng dụng khác cho một chủ đề nhất định.

Ứng dụng gốc và ứng dụng đã tải xuống mới nói chuyện với nhau như thế nào?

Bạn sẽ phát triển ứng dụng gốc để nhận thông tin chủ đề và nội dung đồ họa từ ứng dụng chỉ dành cho chủ đề thứ 2 như thế nào?

Sự hiểu biết của tôi là các ứng dụng hoàn toàn tách biệt vì vậy đây là lý do tại sao tôi không rõ cách thực hiện điều này.

Trả lời

6

Ứng dụng gốc và ứng dụng đã tải xuống mới nói chuyện với nhau như thế nào?

Với chủ đề, ai nói họ phải nói chuyện cùng nhau?

Bạn sẽ phát triển ứng dụng gốc để nhận thông tin chủ đề và nội dung đồ họa từ ứng dụng chỉ dành cho chủ đề thứ 2 như thế nào?

BướC# 1: Chọn quy ước đặt tên cho gói của bạn. Ví dụ: nếu ứng dụng cơ sở của bạn là com.abc.app, chủ đề của bạn có thể là com.abc.app.theme.*.

BướC# 2: Khi đến lúc người dùng chọn chủ đề, hãy sử dụng PackageManagergetInstalledApplications() để tìm chủ đề của bạn bằng cách kiểm tra tên gói của họ.

BướC# 3: Khi đến lúc sử dụng chủ đề, hãy gọi getResourcesForApplication() trên PackageManager để tải ứng dụng chủ đề Resources, để bạn có thể tìm hiểu nội dung của mình.

Tôi chắc chắn rằng có những chiến lược (ví dụ, chủ đề chủ yếu là băng tải, triển khai nội dung của nó trong thư mục trên bộ nhớ ngoài, từ đó ứng dụng chính của bạn đọc thông tin), nhưng đây là với, vì nó cần phải có sự can thiệp của người dùng ít nhất.

+0

Về: "getResourcesForApplication() trên PackageManager để lấy Tài nguyên của ứng dụng chủ đề" ... Bạn có thể thực hiện việc này với các ứng dụng bên ngoài của riêng bạn? Có một số loại tính năng bảo mật mà tôi cần triển khai để đảm bảo rằng chỉ ứng dụng của tôi mới có thể truy cập vào các tài nguyên đó và không ứng dụng bên thứ ba nào khác có thể truy cập được không? Đây sẽ là phần còn thiếu mà tôi nghĩ rằng tôi sẽ cần để bắt đầu. –

+1

@ CamilleSévigny: "Bạn có thể làm điều này với các ứng dụng bên ngoài của riêng bạn?" -- Vâng. "Có một số loại tính năng bảo mật mà tôi cần phải triển khai để đảm bảo rằng chỉ ứng dụng của tôi mới có thể truy cập các tài nguyên đó và không ứng dụng bên thứ ba nào khác có thể truy cập được không?" - Tất cả các tài nguyên của tất cả các ứng dụng đều có thể đọc được bởi tất cả các ứng dụng, cho dù bạn có thích hay không. – CommonsWare

+0

"tất cả các tài nguyên của tất cả các ứng dụng đều có thể đọc được bởi tất cả các ứng dụng, cho dù bạn có thích hay không." ... Không đùa. Tôi không ý kiến. Cảm ơn bạn đã trả lời. –

0

Tôi tin rằng thiết kế sạch sẽ nhất trong trường hợp này là có một ứng dụng trong Market và có sẵn các chủ đề trên máy chủ của riêng bạn. Sau đó, người dùng có thể tải xuống ứng dụng chỉ một lần từ Market và sau đó áp dụng các chủ đề có sẵn trên máy chủ của bạn.

Tuy nhiên, nếu bạn muốn có chúng dưới dạng mục nhập Thị trường riêng biệt, bạn có thể đặt cờ android: sharedUserId trên tệp kê khai để làm cho tất cả chúng chạy dưới cùng một ID người dùng, cho phép bạn chia sẻ tệp (bitmap) vv) giữa chúng. Hãy nhớ rằng tất cả chúng phải được ký với cùng một chứng chỉ.

Điều gây nhầm lẫn cho người dùng là họ có thể tải xuống tiện ích bổ sung trước khi tải xuống ứng dụng chính ... trong trường hợp này, bạn phải hiển thị thông báo lỗi yêu cầu họ tải xuống ứng dụng chính .

+0

Tôi đồng ý với phương pháp "có chủ đề có sẵn trên máy chủ của riêng bạn" - tôi giả định OP đã xem xét và miễn nhiệm vì lý do nào đó. Tuy nhiên, 'sharedUserId' là nguy hiểm, vì bất kỳ thay đổi nào trong đó có nghĩa là ứng dụng của bạn không còn có thể đọc các tệp của riêng nó nữa. – CommonsWare

+0

'sharedUserId' có thể hoạt động để tạo một ứng dụng phiên bản" Đầy đủ "hoạt động như một chìa khóa cho ứng dụng chính, để bật các tính năng không? – Izkata

+0

Không có "máy chủ" lol. Tôi đồng ý rằng tải xuống từ một nguồn bên ngoài sẽ tốt đẹp, nhưng đây không phải là một lựa chọn. Tôi đang cố gắng mô phỏng các ứng dụng khác trên thị trường nơi bạn thấy "Chủ đề XXX cho ứng dụng YYY". Đây không phải là ứng dụng hoàn chỉnh mà là các tiện ích bổ sung cho chúng. –

Các vấn đề liên quan