gameboost-vpnservice

byAbderrahim Lamrabat

# الدور أنت كبير مهندسي أندرويد (Senior Android Engineer) متخصص في الشبكات وVpnService. مهمتك بناء مشروع أندرويد كامل جاهز لإنتاج ملف APK يعمل على هاتف حقيقي. لا تكتب كوداً لأي منصة أخرى (لا iOS، لا Flutter، لا React Native). # المنتج اسم التطبيق: GameBoost. الهدف: عند اللعب (eFootball / FC Mobile أو أي لعبة يختارها المستخدم) يُقطع الإنترنت كلياً عن جميع التطبيقات الأخرى، وتبقى اللعبة وحدها متصلة مباشرة لأفضل بينج ممكن. # المواصفات التقنية (إلزامية) - Kotlin + Jetpack Compose + Material 3، بنية MVVM + Clean Architecture (data / domain / ui)، Hilt للحقن، Coroutines وFlow، DataStore للإعدادات، Room لسجل الجلسات. - minSdk 26، targetSdk 35، Gradle Kotlin DSL مع Version Catalog. # المحرك الأساسي (VpnService) 1. أنشئ VpnService محلياً بدون أي خادم خارجي. 2. استدعِ addDisallowedApplication لـ: اللعبة المختارة، تطبيقنا نفسه، والتطبيقات المستثناة. بذلك تُوجَّه حزم كل التطبيقات الأخرى إلى واجهة TUN وتُهمَل (blackhole) فينقطع إنترنتها كلياً، وتتصل اللعبة مباشرة دون أي وسيط. 3. أضف مسارات 0.0.0.0/0 و::/0 حتى لا يتسرب أي اتصال عبر IPv6. 4. الخدمة Foreground Service مع إشعار دائم وزر "إيقاف" وعرض البينج. 5. أعد تشغيل الخدمة تلقائياً عند الفشل وعالج إلغاء إذن VPN وتبديل الشبكة (Wi-Fi ↔ بيانات) عبر ConnectivityManager.NetworkCallback. # الميزات 1. شاشة رئيسية: اختيار اللعبة من المثبتة (مع الأيقونات) وزر دائري كبير متحرك "ابدأ اللعب" يفعّل الحجب ثم يفتح اللعبة. 2. اكتشاف فتح/إغلاق اللعبة عبر UsageStatsManager وإيقاف الحجب تلقائياً بعد إغلاقها. 3. قائمة استثناءات (واتساب للمكالمات، الرسائل...). 4. قياس Ping وJitter وPacket Loss كل ثانية لخادم يختاره المستخدم، مع رسم بياني مباشر (Canvas) دون مكتبات ثقيلة. 5. WifiLock بوضع WIFI_MODE_FULL_LOW_LATENCY أثناء الجلسة. 6. طلب وضع عدم الإزعاج (NotificationManager.Policy) اختيارياً. 7. Quick Settings Tile للتشغيل السريع. 8. سجل الجلسات ومتوسط البينج، وإعدادات: بدء تلقائي مع اللعبة. 9. تنبيه عند التحول من Wi-Fi إلى بيانات الهاتف. # التصميم - واجهة داكنة بطابع ألعاب، ألوان نيون (أخضر #00FF9C / سماوي #00D4FF). - دعم العربية (RTL) والإنجليزية عبر strings.xml. - Onboarding من 3 شاشات يشرح الأذونات قبل طلبها. # الأذونات BIND_VPN_SERVICE، PACKAGE_USAGE_STATS، QUERY_ALL_PACKAGES، FOREGROUND_SERVICE (+ FOREGROUND_SERVICE_SPECIAL_USE)، POST_NOTIFICATIONS، ACCESS_NETWORK_STATE، ACCESS_WIFI_STATE. اشرح سبب كل إذن داخل التطبيق. # الأداء والجودة - لا Memory Leaks، لا عمل ثقيل على Main Thread، استهلاك بطارية منخفض. - ProGuard/R8 مفعّل في release، واختبارات وحدة للـ ViewModels ومنطق الاستثناءات. # المخرجات المطلوبة 1. شجرة المشروع الكاملة ثم كل ملف بمساره الكامل وكوده كاملاً دون اختصار أو "..."، بما فيها AndroidManifest وbuild.gradle.kts. 2. أوامر بناء الـ APK: ./gradlew assembleDebug → app/build/outputs/apk/debug/app-debug.apk وطريقة توقيع نسخة release (keystore) وإنتاج APK موقّع. 3. خطوات التثبيت عبر adb واختبار الحجب على هاتف حقيقي. 4. قائمة تحقق للتأكد أن المشروع يُبنى بدون أخطاء. ابدأ بالنسخة الأساسية (VPN + حجب + اختيار لعبة) ثم أضف بقية الميزات على مراحل، وأكّد اكتمال كل مرحلة قبل الانتقال للتالية.

Landing
Landing

Comments (0)

No comments yet. Be the first!

Architecture

No Services Diagrams Yet

Architecture diagrams will be automatically generated when the Project Manager creates tasks for your project.

Landing design preview
Landing: View headline and product mark
Landing: Tap Get started
Onboarding: Read VPN permission reason
Onboarding: Grant VPN consent
Onboarding: Skip VPN for now
Onboarding: Read Usage Access reason
Onboarding: Grant Usage Access
Onboarding: Read notifications and package visibility reason
Onboarding: Grant notification permission
Onboarding: Tap Finish
الرئيسية: Select installed game tile
الرئيسية: 1. Tap START MATCH
الرئيسية: 2. Retry Start after consent denial
الرئيسية: 1. View LOCKED shield and telemetry
الرئيسية: Stop session from shield
الرئيسية: 2. Respond to Wi-Fi to data alert
الاستثناءات: 1. Toggle WhatsApp exception
الاستثناءات: 2. Retry failed toggle
القياس: Set measurement server
القياس: 1. Start live measurement
القياس: 2. Change server after unreachable error
الإعدادات: Toggle auto-start with game
الإعدادات: Request Do Not Disturb access
الإعدادات: Open missing permission surface
السجل: 1. Open session entry details
السجل: 2. Retry failed log query
Landing: Tap I already set up
Landing design preview
Landing: View headline and product mark
Landing: Tap Get started
Onboarding: Read VPN permission reason
Onboarding: Grant VPN consent
Onboarding: Skip VPN for now
Onboarding: Read Usage Access reason
Onboarding: Grant Usage Access
Onboarding: Read notifications and package visibility reason
Onboarding: Grant notification permission
Onboarding: Tap Finish
الرئيسية: Select installed game tile
الرئيسية: 1. Tap START MATCH
الرئيسية: 2. Retry Start after consent denial
الرئيسية: 1. View LOCKED shield and telemetry
الرئيسية: Stop session from shield
الرئيسية: 2. Respond to Wi-Fi to data alert
الاستثناءات: 1. Toggle WhatsApp exception
الاستثناءات: 2. Retry failed toggle
القياس: Set measurement server
القياس: 1. Start live measurement
القياس: 2. Change server after unreachable error
الإعدادات: Toggle auto-start with game
الإعدادات: Request Do Not Disturb access
الإعدادات: Open missing permission surface
السجل: 1. Open session entry details
السجل: 2. Retry failed log query
Landing: Tap I already set up