کنترل و اتصال
GXRemote
جیایکسریموت
گوشی را از روی تبلت قدیمی کنترل کن، روی هاتاسپات و بدون اینترنت
گوشی نقش سرور را میگیرد: صفحهٔ خودش را پخش میکند و لمس را از راه دور میپذیرد. تبلت فقط یک مرورگر است و هیچ نصبی لازم ندارد. برای تبلتهای قدیمی اندروید ۴ طراحی شده که مرورگرشان از فناوریهای جدید پشتیبانی نمیکند.
- وضعیت
- بتا
- پلتفرم
- اندروید ۷+ (گوشی، سرور)
- فناوری
- Java
- پورت پیشفرض
- 8099
- 01 گوشی: ضبط صفحه MediaProjection
- 02 فشردهسازی تصویر با مقیاس کاهشیافته
- 03 استریم به تبلت سازگار با مرورگر قدیمی
- 04 تبلت: نمایش فقط مرورگر، بدون نصب
- 05 تبلت: لمس از طریق سرویس دسترسپذیری
- 06 گوشی: اجرای لمس چند میلیثانیه تأخیر
چرا ساخته شده
مشکلی که حل میکند
تبلتهای قدیمی اندروید نه WebSocket میفهمند نه fetch، و مرورگرشان نمیتواند استریم مدرن را نمایش دهد. از طرف دیگر کنترل گوشی بدون روت کار سختی است.
برای چه کسی
کسی که یک تبلت قدیمی بیاستفاده دارد و میخواهد از آن بهعنوان نمایشگر و کنترلر گوشی استفاده کند.
قابلیتها
7 قابلیت، هر کدام با توضیح کوتاه و مشخص.
- 01
استریم سازگار با مرورگر قدیمی
پخش تصویر با روشی انجام میشود که خود مرورگر آن را در سطح پایین و با مصرف پردازندهٔ نزدیک به صفر رندر میکند.
- 02
تزریق لمس بدون روت
لمس از طریق سرویس دسترسپذیری سیستم انجام میشود، که تأخیر آن چند میلیثانیه است؛ روش جایگزین با فرمان سیستم برای هر لمس صدها میلیثانیه هزینه داشت و کشیدن را غیرممکن میکرد.
- 03
کنترلهای لمسی کامل
ضربه برای کلیک، دو ضربه برای دابلکلیک، نگهداشتن برای کلیک راست، کشیدن برای درگ و دو انگشت برای اسکرول.
- 04
ناوبری سراسری گوشی
دکمههای بازگشت، خانه، برنامهها و اعلانها از روی تبلت.
- 05
کیبورد فارسی و انگلیسی
نوشتن متن روی تبلت و فرستادن آن به فیلد فعال گوشی.
- 06
چهار سطح کیفیت
از کم تا حداکثر نرخ فریم، برای هاتاسپات ضعیف و قوی.
- 07
کلاینت آمادهٔ تبلت
یک کلاینت سبک جدا هم وجود دارد که آدرس را ذخیره میکند و صفحه را تمامصفحه نشان میدهد.
چطور کار میکند
رابط این ابزار قابل تصویربرداری نیست، پس بهجای تصویر ساختگی، جریان واقعی کارش بر اساس مستندات خود پروژه رسم شده است.
- گوشی: ضبط صفحه MediaProjection
- فشردهسازی تصویر با مقیاس کاهشیافته
- استریم به تبلت سازگار با مرورگر قدیمی
- تبلت: نمایش فقط مرورگر، بدون نصب
- تبلت: لمس از طریق سرویس دسترسپذیری
- گوشی: اجرای لمس چند میلیثانیه تأخیر
راهاندازی
دستورها همانهایی هستند که در خود پروژه اجرا میشوند. هر بلوک یک دکمهٔ کپی دارد.
پیشنیازها
- گوشی اندروید ۷ یا بالاتر
- JDK 17 و Android SDK برای ساخت از سورس
- هیچ اینترنتی لازم نیست؛ فقط هاتاسپات یا وایفای مشترک
-
برنامه را روی گوشی نصب کن
فایل APK را روی گوشی نصب کن، نه روی تبلت. گوشی نقش سرور را دارد.
-
سه اجازه را به ترتیب بده
اول اجازهٔ ضبط صفحه را تأیید کن، بعد سرویس لمس را در تنظیمات فعال کن، و در آخر بهینهسازی باتری را برای این برنامه غیرفعال کن تا سیستم سرویس را نبندد.
-
آدرس سبز روی صفحه را بردار
اگر گوشی هاتاسپات باشد، آدرس معمولاً به این شکل است:
texthttp://192.168.43.1:8099اگر تبلت هاتاسپات باشد، آدرس را از بخش وایفای گوشی پیدا کن.
نشانهٔ موفقیت: بعد از باز کردن آدرس در مرورگر تبلت باید تصویر زندهٔ گوشی را ببینی.
-
کلاینت را نصب کن
اگر مرورگر تبلت قدیمی است، کلاینت سبک را نصب کن. آخرین آدرس را ذخیره میکند و صفحه را تمامصفحه نشان میدهد.
پیشنیاز این روش: JDK 17 · Android SDK با platform-30 و build-tools
-
APK را بساز
ساخت بدون Gradle انجام میشود، چون Gradle روی سرورهای کمحافظه شکست میخورد.
bashbash build-apk.sh -
تست سرور را اجرا کن
تستها روی ماشین مجازی جاوا اجرا میشوند و به شبیهساز نیاز ندارند.
bashjavac -d test/out android/src/com/gx/remote/HttpServer.java test/ServerTest.java java -cp test/out ServerTest
نشانهٔ موفقیت: خروجی ساخت باید فایل APK را در ریشهٔ پروژه بسازد.
در عمل
کنترلها
ضربه یعنی کلیک چپ، دو ضربهٔ سریع یعنی دابلکلیک، نگهداشتن ۰.۶ ثانیه یعنی کلیک راست، و دو انگشت با حرکت عمودی یعنی اسکرول.
حالت کشیدن
در حالت کشیدن، هر حرکت بهصورت درگ فرستاده میشود؛ برای کار با اسلایدرها و انتخاب متن مناسب است.
نوارهای خودپنهان
نوار بالا و پایین بعد از چند ثانیه محو میشوند تا کل صفحهٔ گوشی دیده شود، و با هر لمس برمیگردند.
محدودیتها و عیبیابی
این بخش عمداً صریح است؛ محدودیتها پنهان نشدهاند.
- اجازهٔ ضبط صفحه بعد از هر ریاستارت گوشی باطل میشود و باید دوباره داده شود.
- کیفیت تصویر به قدرت گوشی و کیفیت هاتاسپات وابسته است؛ روی هاتاسپات ضعیف باید سطح کیفیت را کم کنی.
- تست روی دستگاه واقعی در محیط ساخت انجام نشده است.
مشکلهای واقعی و راهحلشان
در نوار بالا نوشته «ضبط خاموش»
علت اجازهٔ ضبط صفحه بعد از ریاستارت باطل شده است.
راهحل برنامه را باز کن و دکمهٔ اجازهٔ ضبط را دوباره بزن.
تصویر میآید ولی لمس کار نمیکند
علت سرویس دسترسپذیری خاموش شده است.
راهحل سرویس لمس را در تنظیمات گوشی دوباره فعال کن.
لگ زیاد است
علت هاتاسپات ضعیف است یا سطح کیفیت بالاست.
راهحل سطح کیفیت را روی حالت کم بگذار.
نوار وضعیت حالت تصویر متوالی را نشان میدهد
علت مرورگر تبلت روش اصلی استریم را نپذیرفته و به روش جایگزین رفته است.
راهحل این حالت کار میکند، فقط نرخ فریم کمتر است.
ارتباط با ابزارهای دیگر
فقط ارتباطهایی که در خود پروژهها قابل اثباتاند.
منابع این اطلاعات
- README پروژهٔ GXRemote
- AndroidManifest و سورس جاوا
- اسکریپت ساخت و تست سرور
این پروژه مخزن عمومی ندارد، پس هیچ لینک مخزن یا دانلودی برای آن ساخته نشده است.