- การจัดการขั้นสูงของผลิตภัณฑ์รุ่นต่างๆ และประเภทการสร้างโดยใช้ Gradle เพื่อเพิ่มประสิทธิภาพการปรับใช้
- ควบคุม SDK, เนมสเปซ และรหัสแอปพลิเคชันอย่างละเอียด เพื่อให้มั่นใจถึงความเข้ากันได้และความเป็นเอกลักษณ์บน Google Play
- เพิ่มประสิทธิภาพการทำงานของ IDE และระบบสร้างโปรแกรมสำหรับสภาพแวดล้อมที่มีทรัพยากรจำกัด
- การผสานรวมไลบรารี C++ ดั้งเดิมและการใช้คลาส BuildConfig สำหรับสภาพแวดล้อมแบบไดนามิก
หากคุณกำลังเริ่มต้นพัฒนาแอปพลิเคชันบนมือถือ คุณคงรู้แล้วว่าการสร้างบิลด์ไม่ใช่แค่การกดปุ่มรันเท่านั้น ระบบสร้างบิลด์ของ Android คือกลไกที่นำโค้ดและทรัพยากรทั้งหมดของคุณมาแปลงเป็นไฟล์ APK หรือ Android App Bundle (AAB) ซึ่งเป็นแพ็กเกจที่จะส่งไปยังอุปกรณ์ของผู้ใช้ในที่สุด
เพื่อให้ทุกอย่างทำงานได้อย่างราบรื่น Android Studio จึงใช้Gradle และปลั๊กอินเฉพาะของมันซึ่งช่วยให้เราปรับแต่งทุกอย่างได้ ตั้งแต่ลายเซ็นของแอปไปจนถึงเวอร์ชันระบบปฏิบัติการที่เราจะรองรับ ในตอนแรกอาจไม่ง่ายนัก แต่เมื่อคุณเชี่ยวชาญวิธีการจัดการตัวแปรและการพึ่งพาต่างๆ แล้ว คุณก็สามารถปล่อยเวอร์ชันฟรี เวอร์ชันเสียเงิน หรือเวอร์ชันทดลองได้โดยไม่ต้องสร้างโปรเจกต์ซ้ำ
หัวใจสำคัญของการสร้างโปรเจ็กต์: Gradle และไฟล์ต่างๆ ที่เกี่ยวข้อง
ในการจัดการกระบวนการสร้าง เราจำเป็นต้องโต้ตอบกับไฟล์ข้อความหลายไฟล์ที่ใช้ภาษาต่างๆ เช่น Kotlin DSL หรือ Groovy ก่อนอื่น เรามีGradle Wrapper (gradlew)ซึ่งยอดเยี่ยมมาก เพราะช่วยให้มั่นใจได้ว่าทั้งทีมใช้ Gradle เวอร์ชันเดียวกัน ป้องกันสถานการณ์ "มันใช้งานได้บนเครื่องของฉัน" ที่มักเกิดขึ้น
ที่รากของโปรเจ็กต์ เราจะพบ ไฟล์ settings.gradle.ktsซึ่งเป็นไฟล์ที่เราบอก Gradle ว่าโมดูลใดบ้างที่เป็นส่วนหนึ่งของแอป และกำหนดค่า repositories ถัดมาคือไฟล์ build.gradle ระดับบนสุดซึ่งกำหนดเวอร์ชันปลั๊กอินที่จะใช้ร่วมกันในทุกโมดูล แต่ส่วนสำคัญที่สุดคือไฟล์ build.gradle ระดับโมดูล ซึ่งเป็นไฟล์ ที่เรากำหนดค่ารายละเอียดเฉพาะของแอป เช่น SDK และ dependencies
เรียนรู้การใช้งาน Android SDK อย่างเชี่ยวชาญ
การกำหนดค่า SDK นั้นสำคัญมากเพื่อป้องกันไม่ให้แอปของคุณเกิดข้อผิดพลาดบนอุปกรณ์รุ่นเก่าหรือล้าสมัยcompileSdkจะกำหนดว่า API ของ Android ใดบ้างที่ใช้งานได้ขณะที่คุณเขียนโค้ด โดยในอุดมคติแล้ว คุณควรใช้เวอร์ชันล่าสุดเสมอเพื่อใช้ประโยชน์จากคุณสมบัติใหม่ล่าสุด ในทางกลับกันminSdkคือขีดจำกัดสูงสุด: อุปกรณ์ใด ๆ ที่มีเวอร์ชันต่ำกว่านี้จะไม่สามารถติดตั้งแอปพลิเคชันได้
เราต้องไม่ลืมtargetSdkซึ่งโดยพื้นฐานแล้วจะบอกระบบปฏิบัติการว่าเราได้ทดสอบแอปบนเวอร์ชันนั้นแล้ว หากอุปกรณ์มี Android เวอร์ชันใหม่กว่าเวอร์ชันเป้าหมายของเรา ระบบจะเปิดใช้งานโหมดความเข้ากัน ได้ เพื่อป้องกันไม่ให้แอปทำงานผิดปกติ
รูปแบบผลิตภัณฑ์และประเภทการประกอบ
ตรงนี้แหละที่เรื่องราวเริ่มน่าสนใจ ประเภทการสร้าง สิ่งเหล่านี้ใช้เพื่อแยกแยะขั้นตอนการพัฒนา โดยปกติแล้วเรามี debugซึ่งช่วยให้สามารถดีบักได้และใช้คีย์ทั่วไป และ releaseซึ่งเป็นเวอร์ชันที่ได้รับการปรับแต่ง เข้ารหัส และลงนามแล้วสำหรับสาธารณะ
หากคุณต้องการเปิดตัวเวอร์ชัน "Lite" และเวอร์ชัน "Pro" คุณต้องใช้... รสชาติของผลิตภัณฑ์สิ่งเหล่านี้ช่วยให้สามารถนำโค้ดทั่วไปมาใช้ซ้ำได้ แต่สามารถเปลี่ยนแปลงทรัพยากรหรือฟังก์ชันการทำงานได้ขึ้นอยู่กับเวอร์ชัน เมื่อเรารวมประเภทการสร้างเข้ากับตัวแปรผลิตภัณฑ์ เราจะได้ ตัวแปรการคอมไพล์ (ตัวอย่างเช่น demoDebugในการจัดการเรื่องนี้ เราใช้ มิติของตัวแปรซึ่งช่วยให้คุณสามารถจัดกลุ่มรสชาติที่แตกต่างกันจากแอปและผสมผสานเข้าด้วยกันได้
การจัดการ ID และเนมสเปซ
El รหัสแอปพลิเคชัน นี่คือรหัสแอปของคุณบน Google Play หากคุณเปลี่ยนรหัสนี้หลังจากเผยแพร่แล้ว ร้านค้าจะคิดว่าเป็นแอปใหม่ทั้งหมด สามารถใช้งานได้ applicationIdSuffix เพื่อให้เวอร์ชันดีบักมี ID ที่แตกต่างกันและสามารถติดตั้งได้ ทั้งสองเวอร์ชันอยู่ในโทรศัพท์มือถือเครื่องเดียวกัน โดยไม่ชนกัน
ในทางกลับกันเนมสเปซจะกำหนดแพ็กเกจที่สร้างคลาส R และ BuildConfig ขึ้นมา แม้ว่าจะแนะนำให้ใช้เนมสเปซและ applicationId เดียวกันเพื่อหลีกเลี่ยงความซับซ้อน แต่ก็สามารถแยกออกจากกันได้หากต้องการจัดระเบียบซอร์สโค้ดใหม่โดยไม่เปลี่ยนแปลงข้อมูลประจำตัวของแอปในสโตร์
การกำหนดค่าลายเซ็นและความปลอดภัย
แอปเวอร์ชันสำหรับเผยแพร่จะไม่สามารถแจกจ่ายได้หากไม่ได้ลงนาม ดังนั้นเราจึงต้องการคีย์สโตร์และคีย์ส่วนตัว สิ่งสำคัญคืออย่าเขียนรหัสผ่านลงในไฟล์ Gradle โดยตรง วิธีที่ดีที่สุดคือการโหลดรหัสผ่านจากตัวแปรสภาพแวดล้อมหรือไฟล์คุณสมบัติในเครื่องที่ไม่ถูกอัปโหลดไปยังระบบควบคุมเวอร์ชัน
การเพิ่มประสิทธิภาพการทำงานของ IDE
Android Studio อาจใช้ RAM มาก เพื่อป้องกันปัญหานี้ คุณสามารถแก้ไข ไฟล์ studio.vmoptionsและเพิ่มขนาดฮีปสูงสุด (Xmx) ได้ หากคอมพิวเตอร์ของคุณมีทรัพยากรเหลือน้อย ควรเปิดใช้งานโหมดประหยัดพลังงานปิดการตรวจสอบโค้ดที่ไม่จำเป็น และที่สำคัญที่สุดคือดีบักบนอุปกรณ์จริงแทนการใช้โปรแกรมจำลอง
บนระบบ Windows โปรแกรมป้องกันไวรัสอาจทำให้กระบวนการสร้างช้าลงโดยการสแกนทุกไฟล์ที่ Gradle สร้างขึ้น วิธีแก้คือการยกเว้นโฟลเดอร์ Gradle , Android SDK และโปรเจ็กต์จากการสแกนแบบเรียลไทม์ เพื่อเพิ่มความเร็วได้อย่างมาก
การใช้งาน BuildConfig และ Native Libraries
ระดับ การกำหนดค่าการสร้าง นี่เป็นเครื่องมือสำคัญที่ Gradle สร้างขึ้นโดยอัตโนมัติ มันช่วยให้เรารู้ว่าเราอยู่ในโหมดใด DEBUG o RELEASE ผ่านการเขียนโค้ด ซึ่งเหมาะสำหรับ ซ่อนบันทึกในระบบการผลิต หรือเปลี่ยน URL ของเซิร์ฟเวอร์ระหว่างสภาพแวดล้อมการพัฒนาและสภาพแวดล้อมการใช้งานจริง
สำหรับผู้ที่ต้องการพลังการประมวลผลสูง Android Studio ช่วยให้สามารถผสานการทำงานได้ C++ โดยใช้ CMake หรือ ndk-buildเราสามารถเชื่อมโยงโปรเจ็กต์ภายนอกและควบคุมสิ่งต่างๆ ได้ ABI (อินเทอร์เฟซไบนารี)เราต้องการบรรจุภัณฑ์โดยใช้ abiFiltersป้องกันไม่ให้ไฟล์สุดท้ายมีขนาดใหญ่เกินไปโดยการรวมสถาปัตยกรรมที่เราไม่ต้องการเข้าไปด้วย
การจัดระเบียบชุดแหล่งข้อมูล
Gradle จัดระเบียบโค้ดเป็น ชุดของต้นกำเนิดไดเร็กทอรี src/main/ มันรวบรวมสิ่งต่างๆ ที่ทุกคนมีร่วมกัน แต่เราสามารถสร้างโฟลเดอร์ได้เช่นนี้ src/debug/ o src/full/ เพื่อแทรกโค้ดที่มีอยู่เฉพาะในเวอร์ชันนั้น มีอยู่หนึ่งอัน ลำดับความสำคัญไฟล์ในเวอร์ชันการสร้างจะมีลำดับความสำคัญเหนือกว่าไฟล์ในประเภทการสร้าง และไฟล์ในประเภทการสร้างจะมีลำดับความสำคัญเหนือกว่าไฟล์ในเวอร์ชันผลิตภัณฑ์และโค้ดหลัก
ด้วยระบบนิเวศทั้งหมดนี้ ซึ่งประกอบด้วยไฟล์การกำหนดค่า การจัดการหน่วยความจำ และการแบ่งเวอร์ชัน ทำให้สามารถเปลี่ยนโปรเจ็กต์ธรรมดาให้กลายเป็นโครงสร้างพื้นฐานระดับมืออาชีพที่สามารถปรับขนาดและปรับให้เข้ากับอุปกรณ์ Android ทุกชนิดได้ ทำให้มั่นใจได้ว่ากระบวนการบรรจุมีประสิทธิภาพและการเผยแพร่ในสโตร์มีความปลอดภัย




