Tại sao các thiết bị phát triển cung cấp cho bạn nhiều tài nguyên hơn một thiết bị thông thường?


9

Tôi đã tạo một ứng dụng hoạt động trên iPod Touch thế hệ thứ 4 và iPod touch thế hệ thứ 5 của công ty tôi.

Chúng tôi sắp phát hành, khi chúng tôi tìm thấy một sự cố xảy ra sau khi bất kỳ thiết bị không phải nhà phát triển nào chạy ứng dụng *.

Ý tưởng cho rằng một thiết bị được đăng ký là 'thiết bị dành cho nhà phát triển' cung cấp cho ứng dụng của bạn nhiều tài nguyên hơn để sử dụng. Điều này dường như không đúng với tôi, vì tôi không thể nghĩ ra bất kỳ lý do nào sẽ tồn tại - tôi cảm thấy có nhiều khả năng là vấn đề với việc xây dựng hoặc lập hồ sơ dự phòng.

Tuy nhiên, điều đó đã thúc đẩy một cuộc thảo luận. Tại sao các thiết bị như bộ phát triển bảng điều khiển trò chơi, thiết bị có nhiều khả năng hơn nền tảng đích, lại tồn tại ở nơi đầu tiên? Tất nhiên thật tuyệt khi nhấn mạnh vào việc kiểm tra một chương trình, nhưng liệu một đại diện chính xác hơn của nền tảng đích có ý nghĩa hơn không?

TL; DR - Tại sao bộ công cụ phát triển có nhiều tài nguyên hơn nền tảng đích?

* Với một thiết bị không dành cho nhà phát triển là bất kỳ> thế hệ thứ 3. Thiết bị iOS tải xuống ứng dụng từ máy chủ của chúng tôi, không phải trực tiếp từ máy tính có cài đặt ứng dụng & xcode.

Lưu ý có một câu hỏi khác đọc tương tự, nhưng nó thực sự khác nhau, bởi vì câu hỏi khác đang hỏi về giả lập và tôi hiểu rằng có sự khác biệt lớn giữa việc sử dụng trình giả lập và thiết bị thực tế.


7
@gnat - Bài đăng này không phải là bản sao Tại sao cần phải kiểm tra ứng dụng iPhone của tôi . Tôi hiểu rằng có sự khác biệt lớn giữa việc sử dụng trình giả lập và thiết bị thực tế ...
Katamaritaco

Câu trả lời:


8

Môi trường phát triển (đối với mọi thứ - có thể là ứng dụng java độc lập hoặc môi trường di động hoặc thiết bị nhúng) thường có khả năng gỡ lỗi từ xa, ghi nhật ký nâng cao và các loại nội tâm khác của môi trường (thường không muốn để thêm tất cả các móc cho bộ phân tích logic trên thiết bị nhúng sản xuất).

Những điều bổ sung này có thêm nguồn lực. Việc mở một trình sửa lỗi từ xa đối với vm hoặc môi trường từ xa khác sẽ lấy một số tài nguyên ở đầu bên kia. Trong lĩnh vực di động bị giới hạn nghiêm trọng, có thể các tài nguyên bổ sung này sẽ đưa nó vượt quá giới hạn được cấp cho một ứng dụng tiêu chuẩn. Do đó, nhiều tài nguyên hơn được cung cấp cho môi trường phát triển để nó không đạt đến giới hạn tài nguyên khi nó bắt đầu thực hiện ghi nhật ký hoặc gỡ lỗi bổ sung.

Điều này đi xa hơn đến mức bạn luôn cần phải kiểm tra một cái gì đó trong gương của môi trường sản xuất. Tin tưởng rằng nó hoạt động trên các máy của nhà phát triển với tất cả các điều chỉnh và các biến khác nhau của họ không đủ để xác minh rằng nó hoạt động chính xác trong sản xuất.


1
Có, QA luôn cần kiểm tra trong môi trường người dùng cuối chứ không phải môi trường phát triển.
17 của 26 tháng

Vài năm trước, tôi đã tham gia vào một dự án phải phát triển hai bo mạch CPU hoàn toàn khác nhau. Kỹ sư phần cứng làm bảng tôi đã tham gia rất nhiều vào việc đặt một loạt các đầu nối thử nghiệm lên bảng của anh ta, lấy bảo hiểm cho giai đoạn gỡ lỗi, để chắc chắn rằng chúng tôi có thể thăm dò bất cứ điều gì. Ông mất rất nhiều động tĩnh vì lãng phí bất động sản và tiền bạc. Người kia đã không lãng phí bất kỳ tiền và bất động sản như vậy. Điều buồn cười: Chúng tôi không bao giờ cần các kết nối trên bảng của chúng tôi. Việc tích hợp các bảng khác được báo cáo là một cơn ác mộng tuyệt đối, bởi vì KHÔNG CÓ CÁCH NÀO ĐƯỢC VẤN ĐỀ. Hãy nghĩ "bảo hiểm".
John R. Strohm

@ JohnR.Strohm Đối với một người phát triển, thăm dò là tốt. Tất cả tôi đang cố gắng nói rằng nếu nó được thiết kế để có một bảng sản xuất khác với ban phát triển, thì người ta cũng cần phải thử lại với sản xuất sau khi thành công với bảng phát triển (và thăm dò nếu cần thiết).

Điều này rất có ý nghĩa đối với một 'bộ dụng cụ' điển hình. Vì tò mò, trong trường hợp của iOS, bất kỳ iDevice nào cũng có thể được sử dụng như một 'thiết bị dành cho nhà phát triển'. Làm thế nào có thể có một sự khác biệt với hai phần của cùng một phần cứng?
Katamaritaco

1
@Katamaritaco chỉ vì nó là cùng một thiết bị vật lý không có nghĩa là ứng dụng có cùng quyền trong iOS. Khả năng thực hiện những việc như gỡ lỗi từ xa có thể thay đổi những tài nguyên mà ứng dụng có quyền truy cập.

5

Nó cho phép bạn tạo ra một bằng chứng khái niệm tham lam tài nguyên mà sau này bạn có thể tối ưu hóa.

Sẽ không có ý nghĩa gì khi làm sập một ứng dụng vì nó vượt quá 5 byte giới hạn bộ nhớ (có thể giải quyết bằng cách đặt trình tối ưu hóa để tiết kiệm không gian khi phát hành nhưng bạn đang chạy phiên bản gỡ lỗi),

có một cảnh báo bật lên trong nhật ký khi bạn vượt quá giới hạn người tiêu dùng trong khi thử nghiệm sẽ tốt ở đây.


1

Đó là một phần của vấn đề "niềm tin." Các nhà phát triển được cho là biết họ đang làm gì và do đó được cấp quyền truy cập vào thiết bị và tất cả các tài nguyên của thiết bị. Đây có thể là một trợ giúp lớn cho các công ty nhỏ và các nhóm phát triển, nơi các tài nguyên không sử dụng bị lãng phí tài nguyên.

Trong môi trường doanh nghiệp lớn hơn, hoặc đặc biệt là công chúng nói chung, loại quyền truy cập này trở thành trách nhiệm pháp lý, do lo ngại về bảo mật và nhu cầu chơi tốt với các ứng dụng khác cũng cần tài nguyên.

Đây thực sự không phải là một ý tưởng mới. Tôi có hai máy tại nơi làm việc. Trên máy phát triển của tôi, tôi có quyền truy cập quản trị, nhưng nó bị cô lập với internet. Máy khác của tôi, mà tôi sử dụng để truy cập email, Office và Internet, thậm chí không cho tôi khả năng cài đặt chương trình.

Đây là lý do tại sao bạn phải kiểm tra ứng dụng của mình trên một thiết bị không dành cho nhà phát triển trước khi bạn triển khai nó, để đảm bảo rằng ứng dụng đó hoạt động tốt. :)


0

Với iOS, một thiết bị được kích hoạt cho Phát triển cho phép bạn trực tiếp chạy các bản dựng Debug, có thể chứa một bộ lỗi trình biên dịch khác với bản dựng Bản phát hành, cũng như chạy các ứng dụng trong phần gỡ lỗi, có thể thay đổi thời gian sử dụng bộ nhớ và sử dụng bộ nhớ một cách tinh tế, cũng có thể hiển thị / ẩn các luồng bộ nhớ bị rò rỉ khác nhau.

Một thiết bị phát triển sẽ không được sử dụng nhiều nếu không có khả năng gỡ lỗi và một thiết bị người dùng có khả năng gỡ lỗi sẽ gây ra (nhiều) vấn đề bảo mật dữ liệu ứng dụng và ứng dụng nghiêm trọng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.