5

Tôi đang phát triển một ứng dụng Android sử dụng Google Cloud Endpoints trên Google App Engine (bằng Python) cho chương trình phụ trợ của nó. Ứng dụng Android cho phép người dùng sử dụng Dịch vụ của Google Play trên thiết bị Android và tất cả đều hoạt động tuyệt vời. Tuy nhiên, bây giờ tôi có người dùng thực tế, tôi muốn có thể kiểm tra tất cả điều này trước khi triển khai bất kỳ thay đổi API công cụ ứng dụng nào cho sản xuất và tôi chưa tìm ra cách để ứng dụng Android trò chuyện với máy chủ phát triển cục bộ của tôi ở mọi nơi. testing recommendations gợi ý rằng tôi chỉ cần thực hiện một số thao tác thủ công với API Explorer, nhưng vì tôi đang sử dụng Endpoints Proto Datastore cho API của mình, điều này làm cho việc phát triển Android trở nên dễ dàng. làm cho phức tạp hơn nhiều so với những gì tôi có thể tạo ra bằng tay.Thử nghiệm cục bộ cho Ứng dụng Android sử dụng Điểm cuối đám mây cho Máy ứng dụng của Google

Một câu trả lời cho this question gợi ý rằng có cách để trỏ máy khách Android vào máy chủ cục bộ, nhưng trong khi tôi có thể sử dụng đối số --host để máy chủ mặc định của dev_appserver nghe nội dung khác ngoài localhost, tôi có thể ' t dường như tìm cách để làm tương tự cho máy chủ API. Và ngay cả khi tôi có thể làm điều đó, nó chỉ có thể là bước đầu tiên để thiết lập thử nghiệm cục bộ từ đầu đến cuối cho ứng dụng Android của tôi.

Ai đó có thể đăng thêm chi tiết về cách tôi có thể thực hiện việc này hay không, vui lòng khai sáng cho tôi về các phương pháp hay nhất để thử nghiệm các ứng dụng Android sử dụng Google Cloud Endpoints trên App Engine? Cảm ơn trước vì bất kỳ câu trả lời nào.

Trả lời

2

Trong môi trường cục bộ, dev_appserver là máy chủ API. Nếu bạn đã định cấu hình để có thể truy cập từ các máy khác với máy chủ cục bộ (ví dụ: một máy/thiết bị khác trên mạng), bạn cũng có thể truy cập các yêu cầu API.

Tuy nhiên, hiện tại có issue với máy chủ cục bộ và yêu cầu được nén. Cho đến khi đó là cố định, bạn sẽ cần phải vô hiệu hóa gzipping trong thư viện khách hàng trong ứng dụng Android của bạn (xem này post).

8

Được rồi, cuối cùng đã làm việc, nhờ các mẹo, Dan! Dưới đây là các chi tiết còn lại có thể tiết kiệm cho tôi một vài giờ - hy vọng điều này hữu ích cho người khác.

1) Như tôi đã dự kiến ​​và đã đề cập trước đó, dev_appserver.py cần được chạy với --host = 0.0.0.0 để nó có thể nghe trên mạng cục bộ.

2) Để phân tích cú pháp mã thông báo ID đúng cách để làm cho xác thực người dùng được cài đặt, bạn cần cài đặt thư viện PyCrypto - nó không được cài đặt theo mặc định, vì vậy chỉ cần có nó trong app.yaml của bạn không đủ . Tôi tìm thấy các tệp nhị phân cho Windows here.

3) Sau đó, trong lớp Tictactoe.java tương đương đã tạo, tôi phải thay đổi DEFAULT_ROOT_URL thành http://<my-local-machine>:8080/_ah/api/ (đây là nơi máy cục bộ của tôi đang chạy), để yêu cầu được chuyển đến mạng cục bộ. Ngoài ra (và có lẽ ít xâm lấn hơn), bạn có thể sử dụng builder.setRootUrl vào cùng một địa chỉ từ bất cứ nơi nào bạn khởi tạo trình xây dựng của mình. Bằng cách này bạn không muck với các lớp học tạo ra của bạn.

4) Tôi cũng phải thực hiện thay đổi Dan được đề cập mô tả here.

Sau khi thực hiện bốn điều đó, mọi thứ dường như đang hoạt động ngay bây giờ và tôi có thể thử nghiệm ứng dụng của mình tại địa phương - Hoan hô!

+0

cảm ơn, đã lưu ngày của tôi! –