แนวทางปฏิบัติที่ดี

Gemini ใน Android Studio จะทำหน้าที่เป็นผู้ร่วมงานเขียนโค้ดของคุณ ซึ่งจะช่วยเร่งเวิร์กโฟลว์การพัฒนาด้วยการสร้างโค้ด สรุปหัวข้อที่ซับซ้อน ค้นหาแหล่งข้อมูลที่เฉพาะเจาะจง และอื่นๆ การสื่อสารที่มีประสิทธิภาพคือกุญแจสำคัญในการปลดล็อกศักยภาพทั้งหมดของ Gemini

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

ใช้โหมด Agent

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

ระบุให้เฉพาะเจาะจง

Gemini ใน Android Studio ทำงานได้ดีที่สุดเมื่อมีคำสั่งที่ชัดเจนและเฉพาะเจาะจง หากมีไลบรารี API หรือแนวทางที่คุณต้องการใช้ ให้ระบุไว้ในคำถาม หรือระบุไว้ในไฟล์ AGENTS.md ที่รูทของโปรเจ็กต์ เพื่อคงไว้ในการโต้ตอบ คิดว่าเป็นการยื่นรายงานข้อบกพร่อง: ยิ่งให้ข้อมูลมากเท่าใด ปัญหาจะได้รับการแก้ไขเร็วขึ้นและมีประสิทธิภาพมากขึ้นเท่านั้น

การใช้ฟังก์ชันใหม่

ฉันจะเพิ่มการรองรับกล้องลงในแอปโดยใช้ CameraX ได้อย่างไร โปรดระบุการอ้างอิงและสิทธิ์ที่ฉันต้องใช้เพื่อใช้ไลบรารี
ฉันจะเพิ่มการรองรับกล้องลงในแอปได้อย่างไร

การสร้างโค้ด:

เขียนฟังก์ชันระงับของ Kotlin ที่ใช้ไลบรารี Coil เพื่อดาวน์โหลดรูปภาพจากสตริง URL ที่ระบุ

ฟังก์ชันควรมีชื่อว่า fetchImageAsBitmap โดยควรรับ Context และ URL ของ String เป็นอาร์กิวเมนต์ และแสดงผล Bitmap ที่เป็น Null ได้ หากมีข้อผิดพลาดเกี่ยวกับเครือข่ายหรือการถอดรหัส ควรดักจับข้อยกเว้น บันทึก และแสดงผล null

เขียนฟังก์ชันเพื่อดาวน์โหลดรูปภาพ

การอธิบายแนวคิด:

ฉันกำลังสร้างแอปเครื่องเล่นเพลงและต้องการเล่นเพลงต่อ เมื่อแอปทำงานในเบื้องหลัง

ฉันมีตัวเลือกใดบ้างในการ ทำให้แอปทำงานต่อไปขณะที่ผู้ใช้ทำสิ่งอื่นๆ บนอุปกรณ์ ข้อกำหนดระดับ API และผลกระทบต่ออายุแบตเตอรี่ของแต่ละวิธีมีอะไรบ้าง

อธิบายเกี่ยวกับบริการของ Android

อธิบายโครงสร้างของคำตอบ

โดยค่าเริ่มต้น Gemini จะให้คำตอบในรูปแบบการสนทนาแบบย่อหน้า แม้ว่าวิธีนี้มักจะมีประโยชน์ในการอธิบาย แต่คุณจะได้รับผลลัพธ์ที่มีประสิทธิภาพมากขึ้น และนำไปใช้ได้ทันทีด้วยการบอกให้ AI จัดโครงสร้างคำตอบ การระบุรูปแบบเอาต์พุตจะสั่งให้โมเดลจัดระเบียบข้อมูลใน ลักษณะที่ชัดเจนและคาดการณ์ได้ ซึ่งจะช่วยประหยัดเวลาในการจัดรูปแบบด้วยตนเอง

หากต้องการแทรกโค้ดที่ Gemini สร้างขึ้นในแอปและต้องการโค้ดในรูปแบบใดรูปแบบหนึ่งเพื่อให้ใช้งานได้ทันที ให้ระบุวิธีการที่ชัดเจนแก่ Gemini เกี่ยวกับการสร้างและจัดรูปแบบโค้ด

การจัดโครงสร้างคำตอบ:

สร้างเอนทิตี Room สำหรับโปรไฟล์ผู้ใช้ โดยควรมีฟิลด์ id, userName, email และ memberSince ฟิลด์ id ควรสร้างขึ้นโดยอัตโนมัติ ฟิลด์ memberSince ควรแสดงการประทับเวลา

สร้างเอนทิตี Room สำหรับโปรไฟล์ผู้ใช้

หากคุณถามคำถามแบบปลายเปิดมากขึ้น ให้ถามคำถามสำหรับตัวเลือกจำนวน x

การจำกัดคำตอบ:

มีเครื่องมือใดบ้างที่พร้อมใช้งานสำหรับการเพิ่มประสิทธิภาพแอป ขอดูลิสต์ 3 อันดับแรกหน่อย
มีเครื่องมือใดบ้างที่พร้อมใช้งานสำหรับการเพิ่มประสิทธิภาพแอป

แบ่งคำขอที่ซับซ้อนออกเป็นงานที่เล็กลง

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

การใช้พรอมต์ตามลำดับ

พรอมต์ 1: โมเดลข้อมูล
ก่อนอื่น ให้สร้าง คลาสข้อมูล Kotlin ชื่อ User โดยควรมีพร็อพเพอร์ตี้ 3 รายการ ได้แก่ id (Int), name (String) และ email (String)

พรอมต์ 2: เลเยอร์เครือข่าย
ตอนนี้ ให้สร้างอินเทอร์เฟซ Retrofit API ที่ชื่อ ApiService โดยต้องมีฟังก์ชันเดียวที่ชื่อ suspend fun getUsers() ซึ่งจะแสดงผล List<User>

พรอมต์ 3: การจัดการสถานะ
จากนั้นเขียน UsersViewModel ที่ ใช้ ApiService เป็นทรัพยากร Dependency UsersViewModel ควรแสดง StateFlow ของคลาส UiState ที่ปิดผนึกซึ่งสามารถ แสดงสถานะ Loading, Success(users: List) และ Error(message: String) สร้างฟังก์ชันใน ViewModel เพื่อดึงข้อมูลผู้ใช้และอัปเดตสถานะ เขียนการทดสอบหน่วยสำหรับ ฟังก์ชันการทำงานใหม่

พรอมต์ 4: เลเยอร์ UI
สุดท้าย ให้เขียนฟังก์ชัน Jetpack Compose ชื่อ UserListScreen ที่รับ UiState เป็นพารามิเตอร์ ใช้คำสั่ง when เพื่อแสดงCircularProgressIndicatorสำหรับสถานะการโหลด LazyColumn ของชื่อผู้ใช้สำหรับสถานะสำเร็จ และองค์ประกอบ Text ที่มีข้อความแสดงข้อผิดพลาดสำหรับสถานะข้อผิดพลาด เพิ่ม การทดสอบที่ยืนยันฟังก์ชันการทำงานใหม่

สร้างหน้าจอ Jetpack Compose ที่ดึงข้อมูลรายชื่อผู้ใช้ จาก JSON API และแสดงในรายการ โดยควรมี ViewModel ที่ใช้ Retrofit และ Coroutines, ที่เก็บเพื่อจัดการตรรกะของข้อมูล คลาสข้อมูล User และต้องแสดงสถานะการโหลดและข้อผิดพลาด

จัดการบริบท

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

  • แนบรูปภาพเพื่อแสดงภาพ UI ที่คุณวาดฝันไว้หรือสถาปัตยกรรมของแอปที่คุณพยายามทำความเข้าใจ
  • แนบไฟล์เพื่อไฮไลต์ส่วนที่เกี่ยวข้องของ โค้ดเบส
  • ใช้ไฟล์ .aiexclude เพื่อให้ Gemini ละเว้นบางส่วนของโค้ดเบส
  • ใช้ไฟล์ AGENTS.md เพื่อให้คำสั่งเฉพาะของโปรเจ็กต์ และแชร์กับทีม เมื่อใช้ไฟล์ AGENTS.md ให้ใช้ ส่วนหัวและการจัดรูปแบบ Markdown เพื่อให้คำสั่งของคุณชัดเจน
  • เมื่อใช้โหมด Agent ให้กำหนดค่าเซิร์ฟเวอร์ MCP เพื่อขยายความรู้และความสามารถของ Gemini ด้วยสภาพแวดล้อมภายนอก

ขอคำอธิบาย

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

ทำซ้ำในคำสั่ง

การทำงานร่วมกับ Gemini ใน Android Studio บางครั้งอาจต้องมีการสื่อสารไปมาเพื่อความชัดเจนเกี่ยวกับงานและผลลัพธ์ที่คาดหวัง ซึ่งคล้ายกับการทำงานร่วมกับเพื่อนร่วมงาน หากคำตอบเริ่มต้นของ Gemini ไม่เพียงพอ ให้ตอบกลับ พร้อมความคิดเห็นและคำแนะนำเกี่ยวกับวิธีปรับปรุง หากคำตอบของโมเดลดีขึ้นตามคำแนะนำของคุณ ให้รวมคำแนะนำนั้นไว้ในพรอมต์ต้นฉบับโดยอัปเดตรายการในคลังพรอมต์หรืออัปเดตไฟล์ AGENTS.md