کنترل گوشی اندروید با Computer Use در Gemini 3.5 Flash
خلاصهٔ کاملتر
این مقالهی Philipp Schmid یه راهنمای عملیه برای کنترل گوشی یا شبیهساز اندروید با قابلیت Computer Use که بهصورت بومی تو Gemini 3.5 Flash تعبیه شده. ایدهش خیلی سادهست: مدل یه اسکرینشات میبینه، تصمیم میگیره چی کار کنه، و یه فراخوانی تابع مثل click(y=300, x=500) برمیگردونه. کد شما اون اکشن رو روی دستگاه اجرا میکنه، اسکرینشات تازه میگیره و دوباره میفرسته؛ همین حلقه تا تموم شدن کار تکرار میشه.
نویسنده توضیح میده که Computer Use دقیقاً مثل function calling کار میکنه: شما هدف رو میدین («تنظیمات رو باز کن و حالت تیره رو روشن کن»)، مدل اکشنهای ساختاریافته پیشنهاد میده، شما اجراشون میکنین و نتیجه رو برمیگردونین. مدل از طریق همون اسکرینشاتها تو حلقه میمونه.
جمینای سه محیط داره: browser برای اتوماسیون وب دسکتاپ، mobile برای گوشی و شبیهساز، و desktop برای کنترل سطح سیستمعامل. این راهنما از mobile استفاده میکنه.
تو محیط موبایل، اکشنهایی که مدل میتونه درخواست بده و کد شما باید همهشون رو هندل کنه اینان: open_app، click، type، long_press، drag_and_drop، press_key، go_back، wait، list_apps و take_screenshot. نکتهی مهم اینه که مختصات روی یه شبکهی نرمالشدهی ۰ تا ۹۹۹ برمیگرده — (0,0) بالا-چپ و (999,999) پایین-راسته — و پل ارتباطی شما باید اینها رو به پیکسل واقعی دستگاه تبدیل کنه.
برای راهاندازی، نویسنده میگه اصلاً لازم نیست رابط گرافیکی Android Studio رو باز کنین: یه اسکریپت setup هست که SDK و شبیهساز رو نصب و یه دستگاه مجازی میسازه، و اسکریپت ایجنت هم خودش مسیر SDK رو پیدا و شبیهساز رو تو پسزمینه بالا میاره. برای دستگاه فیزیکی یا شبیهساز ابری هم کافیه دیباگ USB یا وایرلس رو روشن کنین، با adb connect وصل بشین و شناسهی دستگاه رو بهعنوان device_id به حلقهی ایجنت بدین.
تو بخش گامهای بعدی، نویسنده دو نکته رو برجسته میکنه. اول اینکه محیط mobile مستقل از پلتفرمه — چون خروجی مدل روی همون شبکهی ۰ تا ۹۹۹ ـه، برای iOS فقط کافیه ADBBridge رو با ابزاری مثل simctl اپل، Appium یا go-ios عوض کنین. دوم اینکه کد نمونه سینکرونه و فقط برای دموئه؛ تو پروداکشن باید retry برای قطعی شبکه، هندل کردن قطع شدن ADB و اجرای async داشته باشین.
نکتهی سوم مهمتر از همهست: مدل ممکنه یه قدم رو با safety_decision علامت بزنه و درخواست تأیید کنه — مخصوصاً جایی که state تغییر میکنه یا پول جابهجا میشه. پس حلقهی پروداکشنیتون باید این فلگها رو تو step.arguments چک کنه و قبل از اجرای اکشن، از کاربر تأیید بگیره.
نکات کلیدی:
- حلقهی Computer Use: اسکرینشات → اکشن ساختاریافته از مدل → اجرا با ADB → اسکرینشات بعدی
- سه محیط: browser، mobile و desktop؛ این راهنما روی mobile کار میکنه
- مختصات نرمالشده روی شبکهی ۰ تا ۹۹۹ برمیگرده و باید به پیکسل دستگاه تبدیل بشه
- برای iOS فقط کافیه لایهی ADB با simctl، Appium یا go-ios عوض بشه
- تو پروداکشن حتماً فلگ safety_decision رو چک کنین و برای اکشنهای حساس تأیید کاربر بگیرین




