เหตุใดการอัปเดตแอปจึงดาวน์โหลดแอปทั้งหมดแทนที่จะเป็น "อัปเดต" เท่านั้น


10

ฉันคิดว่ามันค่อนข้างแปลกที่สำหรับการอัปเดตแอพใน Android (หรือ iOS) แอพทั้งหมดจะถูกดาวน์โหลดแทนที่จะเป็น "อัพเดท" ที่แท้จริงเท่านั้น

เหตุผลที่ฉันพบว่าสิ่งแปลกประหลาดนี้เกิดขึ้นเพราะใน Windows ขณะอัปเดตแอปมีเพียงไฟล์อัปเดตที่ดาวน์โหลดเท่านั้นไม่ใช่แอพทั้งหมดซึ่งเป็นประโยชน์มากกว่าเพราะจะช่วยประหยัดทั้งเวลาและการใช้ข้อมูล

สิ่งนี้ดูเหมือนจะเป็นเรื่องเล็กน้อยที่สุด แต่เมื่อคุณต้องการดาวน์โหลดแอพขนาดใหญ่เพียงเพื่อการเพิ่ม / แก้ไขข้อบกพร่องเล็ก ๆ มันกลายเป็น PITA ที่แท้จริง

ใครบ้างมีคำอธิบายว่าทำไมรุ่นนี้ถูกนำไปใช้?

คำตอบ:


13

เท่าที่ฉันรู้ว่ามันดาวน์โหลดเฉพาะการอัปเดต (เรียกว่า "เดลต้า") บน Jellybean 4.1 และสูงกว่า เห็นได้ชัดว่าการติดตั้งเริ่มต้นเป็นแอพพลิเคชั่นเต็มรูปแบบ แต่การอัพเดตดาวน์โหลดเฉพาะข้อมูลที่มีการเปลี่ยนแปลงจากเวอร์ชั่นที่ติดตั้งในปัจจุบัน (เช่น "เดลต้า" ของมัน) คุณจะไม่เห็นอะไรที่แตกต่างกันเมื่อทำการอัพเดทแอพส่วนใหญ่มันจะยังคงดูเหมือนว่ากำลังดาวน์โหลดแอพพลิเคชั่นเต็มรูปแบบ แต่ในแอพที่มีขนาดใหญ่กว่านั้นคุณจะเห็นว่าส่วนของ

EngadgetและAndroidCentralทั้งสองมีบทความที่ระบุว่า Play store มีการปรับปรุงเดลต้า


1
แอพ "ใหญ่" นั้นใหญ่แค่ไหน? ฉันหมายถึงฉันยังต้องดาวน์โหลดทั้ง Temple Run 2 เพียงเพื่อให้มี Usain Bolt! อย่างไรก็ตามขอขอบคุณสำหรับการแบ่งปันบทความ
Gh0sT

ฉันไม่แน่ใจ. ฉันรู้ว่าสำหรับ Asphalt 6 (ซึ่งอย่างน้อย 1GB) นั้นได้ดาวน์โหลดการเปลี่ยนแปลงในอดีตเท่านั้นอาจเป็นได้ว่ามันใช้กับการอัปเดตขนาดใหญ่เท่านั้นหรืออาจเป็นไปไม่ได้ที่จะสร้างเดลต้าสำหรับ การอัพเดต Temple Run 2 ด้วยเหตุผลบางอย่าง? พวกเขาอาจสร้างเดลต้าเมื่อน้อยกว่าร้อยละที่แน่นอนมีการเปลี่ยนแปลง (NB. ทั้งหมดนี้เป็นเพียงความคิดของฉัน)
bmdixon

เดลต้าไม่ได้เกิดขึ้นทันที หากคุณดาวน์โหลดการอัปเดตหลังจากถูกพุชไปที่ play store อาจไม่ได้สร้างเดลต้าไว้ในตอนนี้ (คาดเดา)
Matthieu Harlé

4

ในฐานะนักพัฒนา Android ฉันคิดแบบเดียวกันมันน่าหงุดหงิดที่จะพูดน้อยเพราะมีครั้งเดียวที่ฉันลืมเปลี่ยนรหัสหนึ่งบรรทัดและมันออกไปด้วยความผิดหนึ่งบรรทัดซึ่งทำให้แอปคายบันทึกงบทิ้งไปและ ขวา.

คำถามนี้ถูกถามใน SO แต่มันก็เป็นหัวข้อที่นี่และฉันคิดว่าคำถามนี้ควรจะอยู่

คำถามดังนั้น: /programming/18045290/for-mobile-app-updates-why-does-the-entire-app-need-to-be-download-again

ในฐานะนักพัฒนา Android การคาดเดาของฉันจะต้องเป็นวิธีการบรรจุซอฟต์แวร์ .apkทุกหุ่นยนต์ตรวจสอบได้รับการบรรจุลงในไฟล์บีบอัดที่เรียกว่า ไฟล์นี้มีรหัสไฟล์เลย์เอาต์และรูปภาพทั้งหมดที่ใช้ในการทำงานของแอพ เป็นการยากที่จะอัปเดตส่วนหนึ่งของไฟล์โดยเฉพาะอย่างยิ่งเมื่อมันถูกบีบอัดและหากผู้พัฒนามีคุณลักษณะด้านความปลอดภัยที่เปิดใช้งานเช่น ProGuard มันจะเป็นไปไม่ได้เลยที่จะติดตั้ง patch

ฉันแน่ใจว่า Google มีเหตุผลด้านความปลอดภัยบางประการที่ไม่อนุญาตให้มีการแก้ไข ตัวแก้ไขโค้ดมักทำให้เกิดช่องโหว่และช่องโหว่ด้านความปลอดภัยที่ไม่คาดคิด


2
การปรับปรุงเดลต้า AFAIK ได้รับการแนะนำให้รู้จักกับ GPlay เมื่อประมาณครึ่งปีที่แล้ว และใช่ยังมีบางอย่างที่ต่างกันแบบเลขฐานสอง โดยพื้นฐานแล้วสิ่งที่.apkสามารถนำมาแกะบนเซิร์ฟเวอร์ของ Google ก็เพื่อเปรียบเทียบระหว่างเวอร์ชันและสร้างเดลตาที่จำเป็น แม้ว่าฉันจะไม่รู้ว่ามันทำได้อย่างไร
Izzy

ฉันสนใจสิ่งนี้มากตอนนี้คุณต้องเลือกเป็นนักพัฒนาซอฟต์แวร์หรือ Google จัดการสิ่งนี้ให้คุณหรือไม่?
จอห์น

1
@John Google ทำโดยอัตโนมัติผู้พัฒนาไม่จำเป็นต้องดำเนินการใด ๆ
onik

-1

ไฟล์แพคเกจแอปพลิเคชัน Android โดยทั่วไปไฟล์ (* .apk) ถูกสร้างขึ้นหลังจากรหัสแอปพร้อมที่จะเผยแพร่ไฟล์นี้ถูกสร้างขึ้นหลังจากการรวบรวมและการสร้างและจากกระบวนการแปลง DALVIK

ไฟล์นี้มีทรัพยากรทั้งหมดเช่นรูปภาพ, เสียง, เลย์เอาต์, คลาส,

และเท่าที่ windows เกี่ยวข้องกับ. NET Framework และ Linux framework ทั้งสองทำงานในลักษณะที่แตกต่างกัน ...

หากคุณต้องการแทนที่รหัสบางอย่างเท่านั้นคุณสามารถทำได้ใน Android แต่เพื่อความปลอดภัยคุณต้องลงชื่อแอปนั้นอีกครั้ง

สิ่งที่ DALVIK ทำคือกระบวนการกลับไม่ได้ดังนั้นหากมีการเพิ่มฟังก์ชั่นใหม่ว่ารุ่นเก่าจะเข้าถึงได้อย่างไรโดยที่ไม่รู้ตัว?

นั่นเป็นสาเหตุที่ทำให้ต้องอัปเดตแอปทั้งหมดเพื่อให้สามารถทำงานและทำงานได้อย่างถูกต้อง ..

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.