- - Zipalign คืออะไรใน Android และวิธีสร้างแอป Zipaligned [คู่มือที่สมบูรณ์]

Zipalign คืออะไรใน Android และวิธีสร้างแอป Zipaligned [คำแนะนำที่สมบูรณ์]

หากคุณเป็นแฟน Android ไม่ยอมใครง่ายๆมีโอกาสเป็นไปได้แข็งแกร่งที่คุณจะลองใช้ชุดรูปแบบใหม่ ROM ที่กำหนดเองและ mods ดังกล่าวทั้งหมดสำหรับอุปกรณ์ของคุณ หนึ่งในประเด็นที่สับสนหลักคือคำศัพท์ที่เกี่ยวข้องกับ mods เหล่านี้ - สิ่งที่ค่อนข้างคุ้นเคยกับนักพัฒนา แต่ไม่มากนักกับผู้ใช้มือใหม่ คำศัพท์ที่พบมากที่สุดสองคำใน ROM และธีมที่กำหนดเองคือ 'deodexed' และ 'zipalign' ไม่กี่วันก่อนหน้านี้เราพูดถึงรายละเอียด 'deodexed' ในบทความนี้เราจะสำรวจ ความหมายของ zipalign และ วิธีที่ APK สามารถ zipaligned ได้.

ZIPALIGN คืออะไร?

zipalign เป็นเครื่องมือจัดตำแหน่งไฟล์เก็บถาวรที่แนะนำครั้งแรกกับ 1.6 Android SDK (ชุดพัฒนาซอฟต์แวร์) มันปรับวิธีการบรรจุแพคเกจแอปพลิเคชัน Android (APK) การทำเช่นนี้จะทำให้ระบบปฏิบัติการ Android สามารถโต้ตอบกับแอปพลิเคชันได้อย่างมีประสิทธิภาพมากขึ้นและด้วยเหตุนี้จึงมีศักยภาพในการทำให้แอปพลิเคชันและภาพรวมของระบบทั้งหมดเร็วขึ้นมาก เวลาดำเนินการจะถูกย่อให้เล็กสุดสำหรับแอปพลิเคชันที่มีการจัดแนวซิปซึ่งส่งผลให้ปริมาณการใช้ RAM น้อยลงเมื่อเรียกใช้ APK

มันทำงานยังไงกันแน่?

ในระบบปฏิบัติการ Android ไฟล์ข้อมูลจัดเก็บในแต่ละแอปพลิเคชันแพคเกจเข้าถึงได้โดยหลายกระบวนการตัวอย่างเช่นตัวติดตั้งจะอ่านรายการข้อมูลเพื่อกำหนดสิทธิ์ที่เกี่ยวข้อง เซิร์ฟเวอร์ระบบสามารถอ่านทรัพยากรเหล่านี้ได้จากหลายสาเหตุเช่นการแสดงการแจ้งเตือน ตัวอย่างเช่นแอปพลิเคชันหน้าแรกจะอ่านแหล่งข้อมูลเพื่อรับชื่อและไอคอนของแอปพลิเคชัน เนื่องจาก Android ใช้โครงสร้างพื้นฐานการทำงานแบบมัลติทาสกิ้งที่แท้จริงไฟล์เหล่านี้จึงถูกเข้าถึงอย่างต่อเนื่องและซ้ำ ๆ ในที่สุด แต่ไม่ท้ายสุดแอปพลิเคชันจะอ่านข้อมูลรายการ

เนื่องจาก Android ใช้ระบบปฏิบัติการ Linux การแมปหน่วยความจำจึงเป็นบทบาทสำคัญในการจัดการกระบวนการอย่างมีประสิทธิภาพ โดยพื้นฐานแล้วการจัดตำแหน่งที่ดีที่สุดสำหรับรหัสการจัดการทรัพยากรของ Android OS คือขอบเขต 4 ไบต์ สิ่งนี้หมายความว่าถ้า APKs ถูกแมปหน่วยความจำกับขอบเขต 4 ไบต์และจัดตำแหน่งให้สอดคล้องกัน OS จะไม่จำเป็นต้อง 'อ่านผ่าน' ทั้งชุดแอปพลิเคชันเพื่อรับข้อมูลที่ต้องการ ทุกขั้นตอนของระบบจะทราบล่วงหน้าว่าจะค้นหาทรัพยากรที่ต้องการได้จากที่ใดและจะดำเนินการได้อย่างราบรื่นและเร็วขึ้น

เมื่อรวมเข้าด้วยกันแล้วผลลัพธ์ zipaligning ทั้งหมดอยู่ใน APKข้อมูลที่ไม่บีบอัดภายในแพ็กเกจจะถูกจัดตำแหน่งบนขอบเขต 4 ไบต์ทำให้ทุกส่วนสามารถเข้าถึงได้โดยตรงด้วยแผนที่หน่วยความจำ ปริมาณการใช้ RAM จะลดลงในขณะที่ทำงานเนื่องจากรหัสการสืบค้นไม่จำเป็นต้องอ่านผ่านแอปพลิเคชันแพ็คเกจทั้งหมด

ความแตกต่างของ APK ที่ไม่ได้ลงนาม

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

คุณจะทำมันได้อย่างไร?

เครื่องมือ zipalign กลายเป็นส่วนหนึ่งของ Android SDK ตั้งแต่ 1.6 เป็นต้นไป สามารถพบได้ภายใต้โฟลเดอร์ 'เครื่องมือ' ของ SDK หากต้องการใช้งานให้เรียกใช้คำสั่ง:

zipalign [-f] [-v] <alignment> infile.apk outfile.apk

ที่ไหน infile.apk เป็นไฟล์ต้นฉบับและ outfile.apk เป็นไฟล์ที่ส่งออก

นอกจากนี้คุณยังสามารถตรวจสอบการจัดตำแหน่งของไฟล์ APK โดยใช้คำสั่งต่อไปนี้:

zipalign -c -v <alignment> existing.apk

ที่ไหน existing.apk สามารถเป็นแพ็คเกจแอปพลิเคชันที่คุณต้องได้รับการยืนยัน นอกจากนี้ยังมี <การจัดตำแหน่ง> แท็กในทั้งสองคำสั่งจะต้องเป็นส่วนประกอบมูลค่า (มิฉะนั้นคำสั่งจะกลับมาไม่ถูกต้อง) ค่านี้แม้ว่าจะเป็นจำนวนเต็มใด ๆ แต่ต้องเป็น 4 เสมอซึ่งจะให้การจัดตำแหน่งแบบ 32 บิต ค่าอื่นใดและมันจะไม่ทำอะไรอย่างมีประสิทธิภาพ

สุดท้ายสำหรับแฟล็กที่ใช้ในคำสั่งเหล่านี้

  • -f : เขียนทับ outfile.zip ที่มีอยู่
  • -v : จะให้ผลลัพธ์แบบ verbose
  • -c : จะยืนยันการจัดตำแหน่งของไฟล์ที่กำหนด

คำเตือน: การดำเนินการ zipalign จะต้องดำเนินการเท่านั้น หลังจาก คุณได้ลงชื่อไฟล์ APK ด้วยส่วนตัวแล้วสำคัญ. หากมีการ zipaligned ก่อนการลงนามขั้นตอนการลงชื่อจะรบกวนการจัดตำแหน่ง เช่นเดียวกันถือเป็นจริงสำหรับการเปลี่ยนแปลงอื่น ๆ เพิ่มหรือลบไฟล์ APK การเปลี่ยนแปลงใด ๆ หลังจากเรียกใช้ zipalign จะเป็นการยกเลิกการจัดตำแหน่ง

Disclaimer: คู่มือนี้มีวัตถุประสงค์เพื่อการศึกษาเท่านั้น สิ่งนี้ไม่ได้ใช้แทนชุดเครื่องมือสำหรับนักพัฒนา Android และไม่ได้มีวัตถุประสงค์เพื่อใช้ในการพัฒนา AddictiveTips ไม่ได้ให้การสนับสนุนใด ๆ ที่เกี่ยวข้องกับวัสดุที่นำเสนอในที่นี้

ความคิดเห็น