Các phương pháp hay nhất

Gemini trong Android Studio đóng vai trò là cộng tác viên lập trình, giúp tăng tốc quy trình phát triển của bạn bằng cách tạo mã, tóm tắt các chủ đề phức tạp, tìm tài nguyên cụ thể, v.v. Giao tiếp hiệu quả là chìa khoá để khai thác toàn bộ tiềm năng của Gemini.

Hướng dẫn này trình bày các chiến lược thiết lập môi trường phát triển và viết câu lệnh tạo ra những phản hồi hữu ích và đáng tin cậy. Đối với nhiều chiến lược, chúng tôi đã cung cấp các câu lệnh mẫu cho nhiều trường hợp sử dụng. Để xem thêm các câu lệnh mẫu, hãy truy cập Thư viện câu lệnh.

Sử dụng Chế độ tác nhân

Chế độ Agent của Gemini trong Android Studio mang đến nhiều trải nghiệm hơn so với việc chỉ trò chuyện với Gemini. Bạn có thể đưa ra một mục tiêu cấp cao cho tác nhân, sau đó tác nhân sẽ phân tích vấn đề và tạo một kế hoạch để giải quyết vấn đề đó. Tác nhân gọi các công cụ, chỉnh sửa nhiều tệp và sửa lỗi trong quá trình thực hiện. Chế độ Agent giúp bạn xử lý các tác vụ phức tạp một cách hiệu quả hơn, từ đó đẩy nhanh toàn bộ quy trình phát triển.

Xác định cụ thể

Gemini trong Android Studio hoạt động hiệu quả nhất khi bạn đưa ra hướng dẫn rõ ràng và cụ thể. Nếu bạn muốn sử dụng một số thư viện, API hoặc phương pháp nhất định, hãy đưa chúng vào câu hỏi của bạn hoặc đưa chúng vào tệp AGENTS.md gốc của dự án để duy trì chúng trong các lượt tương tác. Hãy coi đây là việc gửi báo cáo lỗi: bạn cung cấp càng nhiều thông tin thì vấn đề càng được giải quyết nhanh chóng và hiệu quả hơn.

Triển khai chức năng mới:

Làm cách nào để thêm tính năng hỗ trợ camera vào ứng dụng bằng CameraX? Đảm bảo bạn đưa mọi phần phụ thuộc và quyền mà tôi cần để sử dụng thư viện.
Làm cách nào để thêm tính năng hỗ trợ camera vào ứng dụng của tôi?

Tạo mã:

Viết một hàm tạm ngưng Kotlin sử dụng thư viện Coil để tải hình ảnh xuống từ một chuỗi URL nhất định.

Hàm này phải có tên là fetchImageAsBitmap. Hàm này phải lấy Context và URL String làm đối số, đồng thời trả về Bitmap có thể rỗng. Nếu có lỗi giải mã hoặc lỗi mạng, thì phương thức này sẽ bắt ngoại lệ, ghi nhật ký và trả về null.

Viết một hàm để tải hình ảnh xuống.

Giải thích một khái niệm:

Tôi đang tạo một ứng dụng trình phát nhạc và cần tiếp tục phát khi ứng dụng ở chế độ nền.

Tôi có những lựa chọn nào để giữ cho ứng dụng của mình chạy trong khi người dùng đang làm những việc khác trên thiết bị? Mỗi phương pháp có những yêu cầu về cấp độ API và tác động đến thời lượng pin như thế nào?

Giải thích về Dịch vụ Android.

Mô tả cấu trúc của câu trả lời

Theo mặc định, Gemini cung cấp câu trả lời ở định dạng đàm thoại, dựa trên đoạn văn. Mặc dù điều này thường hữu ích cho việc giải thích, nhưng bạn có thể nhận được kết quả hiệu quả hơn và có thể sử dụng ngay bằng cách cho biết cách cấu trúc câu trả lời. Việc chỉ định định dạng đầu ra sẽ hướng dẫn mô hình sắp xếp thông tin một cách rõ ràng và dễ dự đoán, giúp bạn tiết kiệm thời gian định dạng lại thông tin theo cách thủ công.

Nếu bạn muốn chèn đoạn mã do Gemini tạo vào ứng dụng của mình và cần đoạn mã ở một định dạng nhất định để có thể sử dụng ngay, hãy đưa ra chỉ dẫn rõ ràng cho Gemini về việc tạo và định dạng đoạn mã.

Cấu trúc câu trả lời:

Tạo một thực thể Room cho hồ sơ người dùng. Nội dung này phải chứa các trường id, userName, emailmemberSince. Trường id sẽ được tạo tự động. Trường memberSince phải biểu thị một dấu thời gian.

Tạo một thực thể Room cho hồ sơ người dùng.

Nếu bạn đang đặt một câu hỏi mở hơn, hãy đặt câu hỏi đó cho x lựa chọn.

Giới hạn câu trả lời:

Có những công cụ nào để tối ưu hoá hiệu suất ứng dụng? Hãy cho tôi biết danh sách 3 lựa chọn hàng đầu.
Có những công cụ nào để tối ưu hoá hiệu suất ứng dụng?

Chia nhỏ các yêu cầu phức tạp thành các nhiệm vụ nhỏ hơn

Đối với các yêu cầu phức tạp, nhiều bước, hãy nhớ thử Chế độ trợ lý. Tuy nhiên, nếu cách tiếp cận của tác nhân không như bạn mong đợi, thì bạn có thể hướng dẫn Gemini thông qua một loạt câu lệnh nhỏ hơn theo trình tự thay vì yêu cầu mọi thứ cùng một lúc. Phương pháp này giúp bạn có thêm quyền kiểm soát và cho phép bạn xác minh từng bước trước khi chuyển sang bước tiếp theo.

Áp dụng câu lệnh theo trình tự:

Câu lệnh 1: Mô hình dữ liệu
Trước tiên, hãy tạo một lớp dữ liệu Kotlin có tên là User. Lớp này phải có 3 thuộc tính: id (một số nguyên), name (một chuỗi) và email (một chuỗi).

Câu lệnh 2: Lớp mạng
Bây giờ, hãy tạo một giao diện API Retrofit có tên là ApiService. Bạn cần một suspend fun duy nhất có tên là getUsers(), trả về một List<User>.

Câu lệnh 3: Quản lý trạng thái
Tiếp theo, hãy viết một UsersViewModel lấy ApiService làm phần phụ thuộc. UsersViewModel phải hiển thị một StateFlow của lớp UiState kín có thể biểu thị các trạng thái Loading, Success(users: List)Error(message: String). Tạo một hàm trong ViewModel để tìm nạp người dùng và cập nhật trạng thái. Viết mã kiểm thử đơn vị cho các chức năng mới

Câu lệnh 4: Lớp giao diện người dùng
Cuối cùng, hãy viết một hàm Jetpack Compose có tên là UserListScreen chấp nhận UiState làm tham số. Sử dụng câu lệnh when để hiển thị CircularProgressIndicator cho trạng thái tải, LazyColumn tên người dùng cho trạng thái thành công và phần tử Text có thông báo lỗi cho trạng thái lỗi. Thêm các kiểm thử để xác minh chức năng mới.

Tạo một màn hình Jetpack Compose tìm nạp danh sách người dùng từ một JSON API và hiển thị danh sách đó. Nó phải có một ViewModel sử dụng Retrofit và các coroutine, một kho lưu trữ để xử lý logic dữ liệu, một lớp dữ liệu User và cần cho biết trạng thái tải và lỗi.

Quản lý ngữ cảnh

Một phần quan trọng khi làm việc với Gemini trong Android Studio là cung cấp ngữ cảnh phù hợp. Cung cấp các đoạn mã, nội dung tệp và thông tin cấu trúc dự án có liên quan để nhận được câu trả lời hữu ích nhất. Bạn có thể phải lặp lại để đạt được sự cân bằng phù hợp: quá nhiều thông tin có thể khiến Gemini đi sai hướng, trong khi quá ít thông tin sẽ không cung cấp đủ ngữ cảnh để Gemini trợ giúp. Sử dụng các tính năng hiện có để cấp cho Gemini quyền truy cập vào bối cảnh cần thiết:

  • Đính kèm hình ảnh để cung cấp hình ảnh về giao diện người dùng mà bạn đang hình dung hoặc cấu trúc ứng dụng mà bạn đang cố gắng tìm hiểu.
  • Đính kèm tệp để làm nổi bật các phần liên quan của cơ sở mã.
  • Sử dụng tệp .aiexclude để yêu cầu Gemini bỏ qua một số phần nhất định của cơ sở mã.
  • Sử dụng tệp AGENTS.md để đưa ra hướng dẫn cụ thể cho dự án và chia sẻ hướng dẫn đó với nhóm của bạn. Khi sử dụng tệp AGENTS.md, hãy dùng tiêu đề và định dạng Markdown để hướng dẫn rõ ràng.
  • Khi sử dụng Chế độ đại lý, hãy định cấu hình các máy chủ MCP để mở rộng kiến thức và khả năng của Gemini bằng môi trường bên ngoài.

Yêu cầu giải thích

Nếu bạn không hiểu câu trả lời của Gemini trong Android Studio, hãy yêu cầu giải thích. Đây là một cách tuyệt vời để tìm hiểu và xác minh rằng giải pháp được đề xuất có phù hợp với trường hợp sử dụng của bạn hay không. Nếu câu trả lời không như bạn mong đợi, thì có thể Gemini đã trả lời không chính xác. Việc yêu cầu giải thích sẽ giúp Gemini có cơ hội tự sửa lỗi.

Lặp lại hướng dẫn của bạn

Tương tự như khi bạn làm việc với đồng nghiệp, đôi khi bạn cần giao tiếp qua lại với Gemini trong Android Studio để hiểu rõ về nhiệm vụ và kết quả mong đợi. Nếu câu trả lời ban đầu của Gemini chưa đủ, hãy phản hồi câu trả lời đó bằng ý kiến phản hồi và đề xuất cách cải thiện. Nếu câu trả lời của mô hình cải thiện dựa trên đề xuất của bạn, hãy kết hợp đề xuất đó vào câu lệnh ban đầu bằng cách cập nhật mục trong Thư viện câu lệnh hoặc cập nhật tệp AGENTS.md.