Tại sao các bản cập nhật ứng dụng tải xuống toàn bộ ứng dụng thay vì chỉ cập nhật các ứng dụng khác


10

Tôi thấy khá lạ khi để cập nhật một ứng dụng trong Android (hoặc thậm chí iOS), toàn bộ ứng dụng được tải xuống thay vì chỉ là "Cập nhật" thực tế.

Lý do tôi thấy điều này lạ là vì trong Windows trong khi cập nhật một ứng dụng, chỉ có các tệp cập nhật được tải xuống - không phải toàn bộ ứng dụng - điều này thực tế hơn vì nó tiết kiệm cả thời gian và việc sử dụng dữ liệu.

Điều này có vẻ tầm thường đối với hầu hết, nhưng khi bạn cần tải xuống một ứng dụng khổng lồ chỉ với một tính năng bổ sung / sửa lỗi nhỏ, nó sẽ trở thành một PITA thực sự.

Có ai có một lời giải thích về lý do tại sao mô hình này được thực hiện?

Câu trả lời:


13

Theo như tôi biết thì nó chỉ tải xuống các bản cập nhật (được gọi là "delta") trên Jellybean 4.1 trở lên. Rõ ràng cài đặt ban đầu là ứng dụng đầy đủ nhưng các bản cập nhật chỉ tải xuống dữ liệu đã thay đổi từ phiên bản đã cài đặt hiện tại (tức là "delta" của nó). Bạn sẽ không thấy bất cứ điều gì khác biệt khi cập nhật hầu hết các ứng dụng, nó sẽ vẫn giống như đang tải xuống ứng dụng đầy đủ nhưng trên một số ứng dụng lớn hơn, bạn sẽ thấy các phần 'nhảy' của phần tải xuống cho biết rằng nó chỉ nhận được delta.

Cả EngadgetAndroidCentral đều có bài viết chỉ ra rằng cửa hàng Play cung cấp các bản cập nhật delta


1
Làm thế nào "lớn" là ứng dụng lớn hơn? Ý tôi là tôi vẫn cần tải xuống toàn bộ Temple Run 2 chỉ để có Usain Bolt! Dù sao cũng cảm ơn vì đã chia sẻ bài viết.
Gh0sT

Tôi không chắc. Tôi biết rằng đối với một cái gì đó như Asphalt 6 (ít nhất là 1 GB) mà nó chỉ tải xuống các thay đổi trong quá khứ. Có thể nó chỉ được áp dụng cho các bản cập nhật lớn hoặc có thể không tạo được delta cho Bản cập nhật Temple Run 2 vì lý do gì? Họ chỉ có thể tạo đồng bằng khi ít hơn một tỷ lệ nhất định đã thay đổi. (NB. Tất cả những điều này chỉ là suy nghĩ của tôi)
bmdixon

Delta không tức thời. Nếu bạn tải xuống bản cập nhật ngay sau khi nó được đẩy vào cửa hàng chơi, thì bây giờ delta có thể chưa được tạo. (chỉ là phỏng đoán)
Matthieu Harlé

4

Là một Nhà phát triển Android, tôi cũng nghĩ điều tương tự, thật khó chịu khi nói ít nhất bởi vì một lần tôi quên thay đổi một dòng mã và nó đã bị lỗi một dòng, điều đó khiến ứng dụng phun ra các câu lệnh đăng nhập trái và đúng.

Câu hỏi này đã được hỏi về SO, nhưng nó cũng thuộc chủ đề ở đây và tôi nghĩ câu hỏi này nên ở lại.

Câu hỏi SO: /programming/18045290/for-mobile-app-updates-why-does-the-entire-app-need-to-be-doaded-again

Là một Nhà phát triển Android, tôi đoán sẽ phải là cách phần mềm được đóng gói. Mỗi ứng dụng Android được đóng gói vào một tệp nén gọi là .apk. Tệp này chứa tất cả các mã, tệp bố cục và hình ảnh được sử dụng để làm cho ứng dụng hoạt động. Thật khó để cập nhật chỉ là một phần của tệp, đặc biệt là khi nó được nén và nếu nhà phát triển có các tính năng bảo mật được kích hoạt như ProGuard, thì sẽ không thể thực hiện bản vá.

Tôi chắc chắn Google cũng có một số lý do bảo mật cho việc không cho phép vá lỗi. Các bản vá mã có xu hướng để lại các lỗ hổng bảo mật và lỗ hổng bảo mật không lường trước được.


2
Các bản cập nhật delta AFAIK đã được giới thiệu cho GPlay khoảng nửa năm trước. Và vâng, cũng có một cái gì đó giống như khác biệt nhị phân. Về cơ bản, .apkđơn giản cũng có thể được giải nén trên các máy chủ của Google để so sánh giữa các phiên bản và tạo ra các đồng bằng cần thiết. Mặc dù tôi không biết làm thế nào nó thực sự được thực hiện.
Izzy

Bây giờ tôi rất quan tâm đến vấn đề này, bạn có phải chọn tham gia với tư cách là nhà phát triển hay Google quản lý việc này cho bạn?
Giăng

1
@ John Google tự động làm điều đó, không có hành động nào cần được thực hiện bởi nhà phát triển.
onik

-1

Về cơ bản, tệp gói ứng dụng Android (* .apk) được tạo sau khi mã ứng dụng sẵn sàng xuất bản, Tệp này được tạo sau khi biên dịch và xây dựng và từ quá trình chuyển đổi DALVIK,

Tệp này chứa tất cả các tài nguyên, ví dụ như hình ảnh, âm thanh, bố cục, lớp học của bạn,

Và theo như các cửa sổ liên quan đến .NET framework và Linux framework đều hoạt động theo cách khác nhau ...

Nếu bạn muốn chỉ thay thế một số mã nhất định, bạn có thể làm như vậy trong Android nhưng để bảo mật, bạn cần phải đăng nhập lại ứng dụng đó ..

Những gì DALVIK làm là quá trình không thể đảo ngược, vì vậy nếu chức năng mới được thêm vào thì phiên bản cũ sẽ truy cập nó như thế nào mà không biết ??

Đó là lý do tại sao nó yêu cầu cập nhật toàn bộ ứng dụng để nó có thể hoạt động và hoạt động bình thườ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.