86 KiB
اللغات
ملف README.md الحالي يدعم اللغات التالية:
- 简体中文 [zh-Hans]
- 繁體中文 (香港) [zh-Hant-HK]
- 繁體中文 (台灣) [zh-Hant-TW]
- English [en]
- Français [fr]
- Español [es]
- 日本語 [ja]
- 한국어 [ko]
- Русский [ru]
- العربية [ar] # حالي
المقدمة
Auto.js هو برنامج أتمتة JavaScript مدعوم على منصة Android مع خدمة الوصول.
تم إصدار Auto.js لأول مرة بواسطة hyb1996 في 2017/01/27، وتوقف الصيانة في 2020/03/13، وكان الإصدار الأخير هو 4.1.1 Alpha2 ورقم البنية 461.
تم تطوير AutoJs6 استنادًا إلى المشروع النهائي لـ Auto.js في 2021/12/01، ويستمر في أن يكون مفتوح المصدر ومجاني.
الجدول أدناه يضم بعض المشاريع ذات الصلة بـ Auto.js (مرتبة حسب تاريخ التطوير):
| المشروع | اسم التطبيق | المطورون الرئيسيون | تاريخ بداية التطوير | تاريخ نهاية التطوير | فترة الصيانة النشطة (سنة) |
|---|---|---|---|---|---|
| Auto.js | Auto.js | hyb1996 | 2017/01/27 |
2020/03/13 |
3.13 |
| Auto.js Pro 7 | Auto.js | hyb1996 | 2019/03/13 |
2019/07/08 |
0.32 |
| Auto.js Pro 8 | AutoJsPro | hyb1996 | 2019/10/13 |
2021/07/24 |
1.78 |
| Auto.js | Auto.js M | TonyJiangWJ | 2019/11/21 |
- | < 6.32 > |
| AutoX | Autox.js | kkevsekk1 | 2020/07/24 |
[ 2025/01/07 ] |
4.46 |
| Auto.js Pro 9 | AutoJsPro | hyb1996 | 2021/03/28 |
2023/02/09 |
1.87 |
| AutoJs6 | AutoJs6 | SuperMonster003 | 2021/12/01 |
- | < 4.28 > |
| autojs4 | Auto.js | blackcd318 | 2021/12/15 |
2023/07/31 |
1.62 |
| AutoX | Autox.js v6 | wilinz / aiselp | 2022/05/26 |
[ 2025/01/07 ] |
2.62 |
| openautojs | OpenAuto.js | openautojs | 2023/02/17 |
2023/04/16 |
0.16 |
| AutoJs4 | AutoJs4 | SuperMonster003 | 2023/04/11 |
- | < 2.93 > |
| AutoX | Autox.js v7 | aiselp | 2024/04/21 |
- | < 1.90 > |
| Autoxjs_v6_ozobi | Autox.js v6_ozobi | ozobiozobi | 2024/10/01 |
- | < 1.45 > |
| AutoX | Autox.js v6 | autox-community | 2025/03/30 |
- | < 0.96 > |
التواريخ في الجدول هي تقديرات وقد تختلف عن الواقع.
في الجدول، تعد إصدارات Auto.js Pro 7/8/9 مدفوعة، والبقية مفتوحة المصدر ومجانية.
في الجدول، تشير البيانات في العمود تاريخ نهاية التطوير التي تحتوي على أقواس مربعة ([]) إلى أن مشروع المصدر المفتوح غير متاح مؤقتًا.
في الجدول، يتم احتساب البيانات في العمود فترة الصيانة النشطة التي تحتوي على أقواس زاوية (<>) حتى 14 March 2026.
الوظائف
- يمكن استخدامه كبيئة تطوير تكاملية (IDE) لـ JavaScript (إكمال الكود / إعادة تسمية المتغيرات / تنسيق الكود)
- دعم تشغيل الأتمتة باستناد إلى خدمة الوصول
- دعم الإجراءات السريعة لزر الطفو (تسجيل وتشغيل السكربت / عرض حزمة النشاط / تحليل التخطيط)
- دعم واجهة برمجة التطبيقات الخاصة بالموصل وتوفير التصفح/استرجاع المعلومات/تشغيل الموصلات (مشابه لـ UiAutomator)
- دعم تحليل واجهة التخطيط (مشابه لـ LayoutInspector في Android Studio)
- دعم ميزة التسجيل وتشغيل التسجيل
- دعم لقطة الشاشة/حفظ لقطة الشاشة/البحث عن اللون في الصورة/مطابقة الصورة
- دعم كتابة الواجهة باستخدام E4X (ECMAScript for XML)
- دعم تجميع ملفات أو مشاريع السكربت إلى ملفات APK
- دعم توسيع الميزات باستخدام صلاحيات الروت (النقر, السحب, التسجيل, أوامر shell)
- دعم الاستخدام كمكون إضافي لـ Tasker
- دعم الاتصال بـ VSCode وتطوير سطح المكتب (تحتاج إلى المكون الإضافي AutoJs6-VSCode-Extension)
البيئة
الدليل
- وثائق التطبيق
- دليل المستخدم (قيد الإنشاء)
- استكشاف الأخطاء وإصلاحها
- تجميع وبناء المشروع
- مساعدة تطوير السكريبت
التغييرات الرئيسية
مقارنةً بالإصدار النهائي المفتوح المصدر لـ Auto.js 4.1.1 Alpha2، فإن AutoJs6 قد أجرت التحديثات أو التغييرات الرئيسية التالية:
- دعم امتيازات ADB باستخدام Shizuku واستخدام واجهة برمجة التطبيقات للنظام
- دعم بناء مثيلات WebSocket لإرسال طلبات الشبكة استنادًا إلى بروتوكول WebSocket
- وحدات جديدة [ base64 / crypto / sqlite / i18n / notice / ocr / opencc / qrcode / shizuku / ... ]
- دعم التكيف متعدد اللغات [ الإسبانية / الفرنسية / الروسية / العربية / اليابانية / الكورية / الإنجليزية / الصينية المبسطة / الصينية التقليدية / ... ]
- تكييف ألوان الموضوع [ التجميع / الموقع / البحث / السجل / التكييف التلقائي للسطوع والتباين / ... ]
- دعم وضع الليل [ صفحة الإعدادات / صفحة الوثائق / صفحة تحليل التخطيط / النافذة العائمة / ... ]
- دعم الاتصال بـ المكون الإضافي لـ VSCode بطرق الاتصال عبر الشبكة المحلية (LAN) و ADB
- تم ترقية محرك Rhino من v1.7.7.2 إلى v2.0.0-SNAPSHOT (تم التحديث في 25 December 2025)
- دعم هروب نقطة الرمز Unicode للأحرف متعددة المستويات
'\u{1D160}'; /* تمثل "𝅘𝅥𝅮", طريقة تقليدية: '\uD834\uDD60'. */ - دعم Object.values()
Object.values({name: 'Max', age: 4}); // ['max', 4] - دعم Array.prototype.includes()
[10, 20, NaN].includes(20); // true - دعم BigInt
typeof 567n === 'bigint'; // true - دعم القوالب النصية
`Lucky number: ${(Math.random() * 100).toFixed(0)}` - عرض المزيد من الميزات الجديدة لمحرك Rhino
- عرض قائمة التوافق لمحرك Rhino
- دعم هروب نقطة الرمز Unicode للأحرف متعددة المستويات
سجل الإصدارات
v6.7.0
2026/03/14
إضافة جديدةميزة مركز الاضافات, تدعم تثبيت/الغاء تثبيت/تحديث الاضافات وغيرها من العمليات (المدخل: زر درج الصفحة الرئيسية/تبويب الصفحة الرئيسية)إضافة جديدةميزة سجل الاصدارات, تدعم عرض/استعادة الاصدارات السابقة للملفات القابلة للتحرير (المدخل: زر درج الصفحة الرئيسية/قائمة مدير الملفات/قائمة محرر الشفرة)إضافة جديدةميزة سلة المحذوفات, تدعم عرض/استعادة الملفات/المجلدات المحذوفة (المدخل: زر درج الصفحة الرئيسية)إضافة جديدةاضافة Paddle OCR (PP-OCRv5), للتعرف الضوئي على الحروفإضافة جديدةوحدة cvt, لتحويل وحدات البيانات (راجع وثائق المشروع > تحويل الوحدات)إضافة جديدةوحدة fmt, لتنسيق البيانات (راجع وثائق المشروع > التنسيق)إضافة جديدةوحدة zip, لعمليات ضغط الملفات وفك ضغطها (Ref to Auto.js Pro) (راجع وثائق المشروع > Zip)إضافة جديدةوحدة mediainfo, لعرض المعلومات التفصيلية لملفات الوسائط (راجع وثائق المشروع > معلومات الوسائط)إضافة جديدةالطريقة cvt.bytes, لتحويل وحدات بيانات البايتات (راجع وثائق المشروع > تحويل الوحدات)إضافة جديدةالطريقة fmt.bytes, لتنسيق بيانات البايتات (راجع وثائق المشروع > التنسيق)إضافة جديدةالطريقة s13n.bytes, لتوحيد بيانات البايتات (راجع وثائق المشروع > التوحيد)إضافة جديدةالطريقة app.isDualInstalled, للتحقق مما اذا كان التطبيق المستنسخ مثبتا (يتطلب صلاحيات Shizuku او Root)issue #450إضافة جديدةالطريقة device.getSharedDeviceId, للحصول على معرّف جهاز موحّد مشترك بين التطبيقاتissue #455إضافة جديدةالطريقة device.setPointerLocation وغيرها من طرق سلسلة Toggleable, لضبط او الحصول على خيار النظام الخاص بموقع المؤشرissue #381إضافة جديدةالطريقة dialogs.build تدعم معاملات الخيار textAllCaps/(positive/negative/neutral)TextAllCaps, للتحكم فيما اذا كان نص الازرار يظهر بحروف كبيرة بالكاملإضافة جديدةالطريقة images.loadAsync, للحصول على موارد الصور من الشبكة بشكل غير متزامنissue #327إضافة جديدةالطريقة ui.getNavigationBarHeight/الخاصية navigationBarHeight (getter), للحصول على ارتفاع شريط التنقلissue #456إضافة جديدةالطريقة ui.getVisible(Status/Navigation)BarHeight/الخاصية visible(Status/Navigation)BarHeight (getter), للحصول بسرعة على الارتفاع المرئي لشريط الحالة او شريط التنقلissue #456إضافة جديدةالطرق http.put/del(ete)/head, لارسال طلبات الشبكة باستخدام طرق HTTP مختلفةإضافة جديدةالطرق http.getAsync/postAsync/requestAsync وغيرها, لارسال طلبات الشبكة بشكل غير متزامنissue #423إضافة جديدةكائن body الذي يتم الحصول عليه من الطرق المتعلقة بطلبات وحدة http تمت اضافة طرق مثل stream/saveToFile/close اليهissue #452إضافة جديدةالطرق المتعلقة بطلبات وحدة http تدعم معاملات خيارات التحكم في التخزين المؤقت (cacheBody/bodyCacheThresholdBytes)إضافة جديدةالطرق المتعلقة بطلبات وحدة http تدعم معاملات الخيارات غير الامنة (isInsecure/insecure), لتجاهل الاستثناءات المتعلقة بالشهاداتissue #417إضافة جديدةالطرق المتعلقة بطلبات وحدة http تدعم الخيار options.client, لتهيئة OkHttpClient.Builder (مثل followRedirects وغيرها)issue #454إضافة جديدةالخاصية auto.state (getter) والخاصية shizuku.state (getter), للحصول على حالة خدمة امكانية الوصول وحالة خدمة Shizukuإضافة جديدةالطرق runtime.(set/is)JavaPrimitiveWrap, لضبط او الحصول على استراتيجية تغليف الانواع البدائية في Javaissue #435إضافة جديدةالطرق autojs.(restart/exit), لاعادة تشغيل او الخروج من تطبيق AutoJs6, مع دعم تشغيل السكربت المحدد تلقائيا عند اعادة تشغيل التطبيقissue #460إضافة جديدةالطريقة UiObject#isShifted, لاكتشاف تغير موضع العنصرissue #469إضافة جديدةالطريقة UiObject#snapshot, لالتقاط الحالة الحالية للعنصرissue #469إضافة جديدةالطريقة engines.myEngine().getStartTime(), للحصول على الطابع الزمني لبدء محرك السكربتissue #449إضافة جديدةالطريقة العامة crash, لاختبار صفحة تقرير الانهيارإضافة جديدةالطريقة العامة structuredClone, للنسخ العميق لكائنات JavaScript (راجع MDN)إضافة جديدةسلسلة المحددات المتكافئة (UiSelector#id/text/...) وسلسلة المحددات المحتوية (UiSelector#xxxContains) تدعم معاملات التعبيرات النمطيةإضافة جديدةمعاملات التعبيرات النمطية في المحددات تدعم العلامات (i, m, s, u)إضافة جديدةالتعبيرات النمطية تدعم صياغة lookbehindissue #464إضافة جديدةتمت اضافة عنصري القائمة "نقل الى" و"نسخ الى" في مدير الملفات, مع دعم اجهاض العملية وعرض حالة التقدمإضافة جديدةتمت اضافة عنصر القائمة "لوحة مفاتيح متعددة الوظائف" - "اعدادات الرموز" في محرر الشفرة, مع دعم تحرير الرموز وانشاء/استيراد/تصدير الرموز حسب مستوى الملف الشخصيإضافة جديدةتمت اضافة اداة "موقع المؤشر" الى درج الصفحة الرئيسيةإضافة جديدةتمت اضافة مفتاح "صلاحية الوصول الى كل الملفات" الى درج الصفحة الرئيسيةإضافة جديدةتمت اضافة مفتاح "اظهار الواجهة من الخلفية" الى درج الصفحة الرئيسية (لاجهزة [Xiaomi/Vivo])إضافة جديدةتمت اضافة خيار "تغليف الانواع البدائية في Java" الى صفحة الاعداداتissue #435إضافة جديدةتمت اضافة خيار "محرك جدولة المهام" الى صفحة الاعدادات, مع دعم AlarmManager/WorkManager/JobSchedulerissue #457issue #434issue #449issue #388issue #378issue #163issue #53issue #21إضافة جديدةتمت اضافة خيار "ايقونة مشغل التطبيق" الى صفحة الاعدادات, مع دعم الايقونات التكيفية/الايقونات ذات الخلفية الشفافةissue #405إضافة جديدةتمت اضافة خيار "استراتيجية اعادة التشغيل" الى صفحة الاعدادات, لاعداد ما اذا كان زر اعادة التشغيل في درج الصفحة الرئيسية يستخدم استراتيجية اعادة التشغيل السريعةإضافة جديدةتمت اضافة خيار "تاخير طلب اذن التقاط الشاشة" الى صفحة الاعدادات, لتجنب حجب نافذة طلب الاذن للشاشةإضافة جديدةتمت اضافة خيار "الاضافات" الى اختصارات المشغل في صفحة الاعدادات, للانتقال الى صفحة مركز الاضافات عبر اختصارإضافة جديدةالتطبيقات المعبأة تدعم التشغيل التلقائي عند الاقلاع, مع اضافة مفتاح الى صفحة الاعدادإضافة جديدةالتطبيقات المعبأة تدعم اختصارات التطبيق (صفحة السجلات/صفحة الاعدادات)إضافة جديدةتمت اضافة ازرار التراجع/الاعادة/الحفظ الى صفحة اعداد تغليف التطبيقإضافة جديدةتمت اضافة آلية ملفات تعريف الى صفحة اعداد تغليف التطبيق, مع دعم انشاء/تعديل/حذف/استيراد/تصدير ملفات التعريفissue #483إضافة جديدةاداة Scrapers (run-scrapers.mjs), لتحديث البيانات المهيكلة لنصوص بناء Gradle/البيانات العامة لـ README/بيانات قوالب README وغيرها تلقائياإضافة جديدةاداة Gradle Wrapper switcher (gradle-wrapper-switcher), للتبديل بين الاصدار الرئيسي المحلي لـ Gradle (مثل Gradle 8.x و Gradle 9.x)تصليحخطأ في قيود عدد وانواع معاملات الطريقة noticeissue #462تصليحمشكلة تعذر معها استخدام الخاصية ui.R (getter) بشكل صحيحتصليحمشكلة كان يمكن معها ان تفشل الاستثناءات الناتجة في معاملات callback الخاصة بالطريقة ui.post بشكل صامتتصليحمشكلة كانت تجعل الطرق العامة مثل isJavaClass/isJavaPackage غير صالحةتصليحمشكلة كانت تجعل المعامل timeout في الطريقة timers.keepAlive غير فعالتصليحمشكلة كانت تجعل الطريقتين floaty.window/rawWindow لا تقبلان المعاملات النصيةissue #467تصليحمشكلة كانت تجعل floaty.rawWindow يعرض بعض العناصر بشكل غير طبيعي بسبب تمرير سياق غير صحيحتصليحمشكلة كانت تجعل الطريقة util.isString غير صالحةتصليحمشكلة كانت تجعل util.class[Name]/getClass[Name] قد تعيدان نتائج غير صحيحةتصليحمشكلة كانت تجعل util.java.array غير قادر على استخدام معاملات الانواع مثل Boolean بشكل صحيحتصليحمشكلة كان يمكن معها للكائن المعاد من threads.disposable() ان يخضع للتغليف بشكل غير متوقع عند الوصول الى البياناتissue #435تصليحمشكلة كانت تجعل خيارات نمط نافذة السجل العائمة لا يعاد ضبطها بشكل صحيح عند استدعاء الطريقة console.build عدة مراتتصليحمشكلة كانت تجعل خيارات (title/content)BackgroundColor في الطريقة console.build تطغى على خيارات الشفافية او التلوينissue #458تصليحمشكلة كانت تجعل الطرق مثل console/toast تفقد الاصفار النهائية عند عرض Java Doubleتصليحمشكلة كانت تجعل من غير الممكن استخدام الطرق مثل console/toast لعرض نوع البيانات BigIntتصليحمشكلة كانت تجعل الطريقة toast قد تسبب تسربا في الذاكرة بسبب الاحتفاظ بمرجع قوي الى كائن Toastتصليحمشكلة كان يمكن معها لبعض الكائنات العامة ان تفقد خصائص وطرق النموذج الاولي في JavaScriptتصليحمشكلة كان يمكن معها لكائن this ان يشير بشكل خاطئ عند استخدام تعبيرات JavaScript كقيم للسمات في صياغة XMLتصليحمشكلة كانت تجعل معامل الخيار linkify في الطريقة dialogs.build غير فعالتصليحمشكلة كانت تجعل الطريقة dialogs.build قد تتلف البيانات الاصلية لمعلمات الكائنتصليححساب غير صحيح لمعدل الاطارات الداخلي في الطريقة setMaxFps لعنصر canvasتصليححساب غير صحيح لقيمة العرض عند الدمج العمودي باستخدام الطريقة images.concatتصليحمشكلة كان يمكن معها ان يؤدي الغاء التفويض عند استدعاء الطريقة images.requestScreenCapture الى انهيار التطبيقتصليحمشكلة كانت تجعل لقطات الشاشة التي يتم الحصول عليها من الطريقة images.captureScreen قد تحتوي على اتجاه خاطئ او حواف سوداءissue #337تصليحمشكلة كان فيها يتم تفسير القيمة 1 على انها نسبة مئوية بالخطأ عند استخدام معاملات المنطقة في بعض طرق imagesتصليحمشكلة كانت تجعل وظيفة العلامة oneShot غير فعالة عند حدوث استثناءات في بعض الطرق المتعلقة بـ imagesissue #372تصليحمشكلة كانت تجعل بعض الطرق المتعلقة بـ images قد تسبب تسربا في الذاكرةissue #372تصليحمشكلة كانت تجعل images.save والطريقة ImageWrapper#saveTo غير قادرتين على كتابة الملفات بشكل صحيح عندما لا يكون المسار المدخل موجوداتصليحمشكلة كانت تجعل الطريقة ImageWrapper#recycle غير قادرة على اعادة تدوير موارد الصور بشكل صحيحتصليحمشكلة كانت تجعل بعض الطرق المحملة زائدا في ocr قد لا تعمل بشكل صحيحتصليحمشكلة كانت تجعل النتائج التي يتم الحصول عليها من الطريقة ocr.detect قد لا تتطابق مع ocr.modeissue #468تصليحمشكلة كانت تجعل احداث خدمة امكانية الوصول المسجلة عبر auto.registerEvent يتم تنظيفها بالخطأ بواسطة سكربتات اخرىissue #466issue #343تصليحمشكلة كانت تجعل الطريقة UiObject#child قد ترمي استثناء ArrayIndexOutOfBoundsException على Android 10issue #416تصليحمشكلة كان يمكن معها ان تصبح سياقات Rhino غير متسقة عند استدعاء طرق الوحدات المدمجةتصليحمشكلة كان يمكن معها ان تبقى نوافذ عائمة متبقية بعد انتهاء السكربت عند انشاء عدد كبير من النوافذ العائمةتصليحمشكلة كانت تجعل معاملات اعداد project.json قد لا تُحلل بشكل صحيح عند تشغيل مشروعتصليحمشكلة كان فيها يؤدي معامل excludedDirs في project.json الى فشل تحليل ملف الاعداد عند تغليف المشروعissue #428تصليحمشكلة كانت تجعل ميزة التغليف قد لا تعمل بشكل صحيح على Android 7.xتصليحمشكلة كان يمكن معها ان تتغير اسماء المفاتيح الاصلية عند حفظ ملف اعداد مشروع السكربتتصليحمشكلة كان يمكن معها ان تؤدي القيم الكبيرة لرقم البناء او وقت البناء في ملف اعداد مشروع السكربت الى انهيار التطبيقتصليحمشكلة كان يمكن معها ان يؤدي الحصول المتكرر على ImageReader او اعادة بنائه الى انهيار التطبيق بسبب عدم توفر اطار قابل للاستخدام مؤقتا في المخزن المؤقتتصليحمشكلة كان يمكن معها ان يؤدي مراقب احداث الادخال InputEventObserver الى تباطؤ ملحوظ عند بدء التطبيقتصليحمشكلة كانت تجعل عملية خدمة مستخدم Shizuku لا تنتهي بشكل صحيح مما يؤدي الى تراكم العملياتissue #474تصليحمشكلة كانت تجعل التطبيقات المعبأة غير قادرة على استخدام ميزات Paddle OCR و Rapid OCR بشكل صحيحتصليحمشكلة كان يمكن معها ان تتغير قيمة المفتاح key في ملف اعداد التطبيق المعبأ project.json بشكل غير متوقعتصليحمشكلة كان يمكن معها ان يحدث وميض في ايقونات مربعات الاختيار عند تمرير قائمة "الاذونات المطلوبة" في صفحة اعداد تغليف التطبيقتصليحمشكلة كانت تجعل بيانات الاحصاءات في صفحة سجل الاصدارات غير مكتملة على بعض الانظمة بسبب اختلاف الخطوطتصليحمشكلة كانت تجعل MLKit Google OCR غير قادر على التهيئة بشكل صحيح على بعض الاجهزة (اصلاح تجريبي)issue #8تصليحمشكلة كانت تجعل ازرار وظائف مدير الملفات غير قادرة على استقبال احداث النقر بشكل صحيح على بعض الاجهزة (اصلاح تجريبي)issue #465تصليحمشكلة كانت تجعل الاسطر الفارغة في محرر الشفرة تعرض رموزا مربعة على بعض الاجهزة (اصلاح تجريبي)تصليحمشكلة كانت تجعل لوحة المفاتيح البرمجية قد تحجب محتوى النص في محرر الشفرةتصليحمشكلة كانت تجعل محرر الشفرة ما يزال يسمح بتحرير المحتوى في وضع القراءة فقطتصليحمشكلة كانت تجعل النقر على منطقة العنوان وبعض عناصر القائمة في وضع القراءة فقط يؤدي الى انهيار التطبيق في محرر الشفرةتصليحمشكلة كان يمكن معها ان يؤدي تحميل الملفات الكبيرة في محرر الشفرة الى انهيار التطبيق (اصلاح تجريبي)تصليحتهيئة غير طبيعية لحالة ازرار الوظائف عند قيام محرر الشفرة بفتح ملف جديد تلقائياتصليحمشكلة كان يمكن معها ان يؤدي وضع التطبيق في الخلفية اثناء تحرير ملف في محرر الشفرة الى انهيار التطبيقتصليحمشكلة كانت تجعل النقر على زر fx في محرر الشفرة على Android 15+ غير قادر على اظهار لوحة الاختصارات السريعة لوظائف الوحدات (اصلاح تجريبي)تصليحمشكلة كانت تجعل ErrorDialogActivity غير قادر على البدء بشكل صحيح او يختفي تلقائيا خلال وقت قصيرissue #479issue #471issue #414issue #340تصليحانواع معاملات غير صحيحة يقبلها الباني Canvasissue #402تصليحمشكلة كانت تجعل وظيفة نسخ المعلومات التفصيلية في صفحة تقرير الانهيار غير فعالةتصليحمشكلة كانت تجعل منطق الرجوع المخصص غير فعال على Android 16+ مما يؤدي الى سلوك غير طبيعي للرجوعتصليحمشكلة كان يمكن معها ان ينهار التطبيق عند الضغط على زر الرجوع او تبديل علامات التبويب بعد عرض نتائج البحث في مدير الملفاتتصليحمشكلة كانت تجعل الواجهة لا تتحدث تلقائيا بعد حذف مجلد مشروع في مدير الملفاتتصليحمشكلة كان يمكن معها ان ينهار التطبيق عندما تتغير عناصر قائمة لوحة المهام بشكل متكررتصليحمشكلة كانت تجعل لون المقدمة لشريط التنقل قد يرتبط بوضع الليل بشكل غير طبيعي عند استخدام تنقل الايماءات "ثلاثة ازرار"تصليحمشكلة كانت تجعل مربع حوار معلومات نوع ملف APK غير قادر على الحصول على اسم التطبيق ومعلومات SDKتصليحمشكلة كان فيها, في وضع العميل, يؤدي قطع الاتصال ثم اعادة الاتصال خلال وقت قصير بعد الاتصال الى انتهاء مهلة المصافحة ويجعل اعادة الاتصال صعبةتصليحمشكلة كان فيها, في وضع العميل, تؤدي عمليات مثل تدوير الشاشة او تبديل اللغة والتي تعيد انشاء Activity الى جعل AutoJs6 يعيد دائما بناء الاتصالتصليحمشكلة كان فيها, في وضع الخادم, تؤدي عمليات مثل تدوير الشاشة او تبديل اللغة والتي تعيد انشاء Activity الى جعل وحدة تحكم VSCode غير قادرة على اخراج السجلاتissue #385تصليحمشكلة كان فيها الاتصال باضافة VSCode بعدة طرق في نفس الوقت يؤدي الى تضاعف عدد السجلات المطبوعةتصليحمشكلة كان فيها توليد الشفرة في صفحة تحليل التخطيط قد يفشل بالنسبة لعناصر المجموعات (اصلاح تجريبي)issue #328تصليحمشكلة كانت تجعل مفتاح "استخدام زر 'خفض الصوت' للتحكم في التسجيل" في صفحة الاعدادات غير فعالissue #480تصليحمشكلة كان يمكن معها ان تكون قيم الاحداثيات في ملفات الشفرة الناتجة عن تسجيل السكربت غير متطابقة مع قيم بكسلات الشاشة الفعليةissue #480تصليحمشكلة كانت تجعل اول عملية في ملف الشفرة الناتج عن تسجيل السكربت (مثل النقر او السحب) يتم تجاهلها دائماتصليحمشكلة كان يمكن معها ان تؤدي معالجة الملفات في الخلفية من خلال مربع الحوار العائم "تشغيل السكربت" الى انهيار التطبيقتصليحمشكلة كان يمكن معها ان يعاد ضبط حالة الزر العائم عند الدخول مجددا الى الصفحة الرئيسية بعد انتهاء دورة حياة Activity الرئيسيةتصليحمشكلة كانت تجعل مفتاح "الظهور فوق التطبيقات الاخرى" على اجهزة Xiaomi قد ينتقل الى صفحة اعدادات خاطئةتصليحمشكلة كانت تجعل حزم بيانات الشبكة تستمر في الجلب في الخلفية حتى بعد اجهاض تنزيل التحديث (اصلاح تجريبي)تصليحمشكلة كانت تجعل مهمة Rebuild Project غير قادرة على الاكتمال بشكل صحيح عند تفعيل خيار isCleanup[Paddle/Rapid]Ocr في ادوات البناءتحسينتوحيد ميزات Paddle OCR (PP-OCRv3) على شكل اضافاتissue #334issue #331issue #325تحسينتحسين توافق الطريقة runtime.loadJar (by LYS86)pr #475تحسينتحسين توافق الطريقة ui.getStatusBarHeight/الخاصية statusBarHeight (getter) الى حد معينتحسينالطرق مثل console.log تدعم عرض معلومات تفصيلية عند طباعة الكائنات العامة (images, app, ocr وغيرها)تحسينالطريقة dialogs.build تدعم معاملات الخيارات الاصلية لـ MaterialDialog.Builderتحسينالطريقة dialogs.build تدعم المطابقة النصية المرنة لمعلمات الخيار animation/linkifyتحسينتحسين الثبات والاتساق في الحصول على اتجاه الشاشة وبيانات العرض/الارتفاع بواسطة الطرق device.rotation/rotation/width/heightتحسينرفع كفاءة التنفيذ وتحسين التوافق للطرق مثل app.launchDual/startDualActivityتحسينandroid.graphics.Paint#setColor يدعم تحليل معاملات الالوان مثل ColorInt/ColorHex/ColorName بشكل صحيحتحسينرسائل الاستثناء الخاصة بانواع المعاملات في الطرق المتعلقة بالوحدات المدمجة تضيف معلومات موجزة عن النوعتحسينالوحدات المدمجة (dayjs/cheerio/dayjs/i18n) تبتعد عن وضع تنفيذ السكربت وتستخدم التحميل الكسول العام بدلا منهتحسينعند طباعة بيانات ضخمة عبر الطرق المتعلقة بوحدة التحكم, يتم حذف جزء من المحتوى بشكل مناسب وفقا للحدود العليا لتقليل وقت الطباعةتحسينتمت زيادة القيمة الابتدائية للعد التنازلي لنافذة وحدة التحكم العائمة من 6 ثوانٍ الى 9 ثوانٍتحسينالتنفيذ الداخلي لنافذة وحدة التحكم العائمة يستخدم معالجة بلا اقفال وباسلوب الطوابير لتحسين كفاءة ونجاح ضبط المعاملاتتحسينواجهات API المتعلقة بسلوك لون خلفية نافذة وحدة التحكم العائمة (الشفافية/التلوين/اللون الاساسي) اصبحت اكثر توافقا مع معايير تصميم Androidissue #458تحسينتم تحسين توقيت طي القائمة عند النقر على عناصرها بعد توسيع الزر العائم في مدير الملفاتتحسينمدير الملفات/لوحة المهام يدعمان عرض احصاءات عدد الملفات/المهامتحسينعند فشل حفظ الملف في محرر الشفرة, يتم حفظه تلقائيا كمسودة مع دعم الحفظ باسم ملف جديدتحسينتحسين السلاسة بدرجة معينة عند تحميل الملفات الكبيرة في محرر الشفرةتحسينميزة "بحث/استبدال" في محرر الشفرة تدعم استمرارية الحالة وعرض عدد نتائج البحث في الوقت الحقيقيتحسينعند مطالبة محرر الشفرة بالحفظ, يتم التأكد من نجاح الحفظ قبل الخروج لتقليل معدل فشل الحفظتحسينحالة زر الحفظ في محرر الشفرة اصبحت اكثر توافقا مع المنطق الذاتي للمستخدمتحسينمحرر الشفرة يدعم الضغط المطول لمفاتيح مثل "-", "=", "(", "[", "{", "<"تحسينتمت اضافة زر "ايقاف" الى مربع حوار عملية تغليف التطبيقتحسينتم تحسين طريقة عرض مربع حوار عملية تغليف التطبيق مع اضافة احصاءات زمن التنفيذتحسينعند تثبيت تطبيقات معبأة باستخدام اعداد جديد, سيتم استبدال الاعدادات المرتبطة للتطبيق القديمتحسينصفحة اعداد تغليف التطبيق تقوم بتحديد الاذونات الضرورية افتراضيا (WAKE_LOCK/INTERNET/WRITE_EXTERNAL_STORAGE/...)issue #397تحسينصفحة اعداد تغليف التطبيق تدعم قراءة واعداد المزيد من الخيارات (اظهار السجلات عند التشغيل/اظهار شاشة البداية عند التشغيل/نص شعار شاشة البداية/...)تحسينتمت اضافة مفتاح خدمة الواجهة الامامية الى صفحة اعداد التطبيق المعبأissue #406تحسينعند حفظ ملف اعداد مشروع السكربت, تمت اضافة آلية لاكتشاف تعارض اسماء المفاتيح لمنع غموض اسم المفتاحتحسينصفحة تقرير الانهيار تدعم التكبير والتصغير باصبعين لضبط حجم الخط مع اضافة ازرار للوظائف الشائعةتحسينايقونات مشغل التطبيقات تدعم خصائص الايقونات التكيفيةissue #405تحسينعندما يفشل محرك Rhino في تحليل تواقيع generics, فانه يعود الى انواع reflection الخام لتعزيز قابلية استخدام الطرق العاكسة على اصدارات Android المنخفضةتحسينتمت اضافة فواصل الى عناصر المفاتيح في درج الصفحة الرئيسية, مع دعم النقر على منطقة عنوان النص لعرض مربع حوار تفصيلي, ودعم الانتقال السريع الى اعدادات النظام عند الحاجةتحسينعند تشغيل AutoJs6 او اعادة تشغيله, يدعم النقر على منطقة عنوان "وضع العميل" في درج الصفحة الرئيسية اجهاض محاولة الاتصال الجاريةتحسينوضع العميل يدعم انشاء الاتصال باستخدام عناوين IPv6 وعناوين النطاقاتتحسينوضع العميل يدعم تنبيهات اكتشاف عناوين IPv4 ذات الاستخدام الخاص (loopback/broadcast/multicast/reserved/...)تحسينوضع العميل يدعم عرض وادارة حالة الاتصال (تصحيح العنوان/اجهاض الاتصال)تحسينوضع الخادم يدعم عرض عدد العملاء الذين تم انشاء اتصال معهمتحسينصلاحية قراءة الاشعارات تدعم آلية اعادة اتصال تلقائية (requestRebind) لتعزيز استقرار الميزات المتعلقة بمراقبة الاشعاراتتحسينالزر العائم يعزز امان تشغيل Activity من الخلفية لتجنب انهيار التطبيقتحسينمربع الحوار "المزيد" الخاص بالزر العائم يستخدم تحميل البيانات بشكل غير متزامن لتحسين سلاسة العرضتحسينتمت اضافة عنصر القائمة "الصفحة الرئيسية" الى مربع الحوار "تشغيل السكربت" الخاص بالزر العائمتحسينمربع الحوار "تشغيل السكربت" الخاص بالزر العائم يدعم التصغير واستعادة الحالة, ويبذل اقصى ما يمكن لابقاء النافذة دائمة او استعادتها تلقائياتحسينيدعم استخدام صلاحيات Shizuku لتسجيل السكربتات وتشغيل التسجيلات (قد تتأثر سلاسة التشغيل الى حد ما)issue #320تحسينصفحة اعداد لون السمة تستخدم طريقة تموضع سريعة عند تحديد لون السمة لتحسين الكفاءةتحسينتم استخدام LiveData و SharedFlow بدلا من LocalBroadcastManager المهملتحسيننصوص بناء Gradle تحسن كفاءة فك ضغط الملفات ذات تنسيق 7zتحسيننصوص بناء Gradle تدعم الحصول على الاصدار التفصيلي لـ Android Studio IDE (مثل "2025.1.4.7")تحسيننصوص بناء Gradle تدعم توليد البيانات المطلوبة للفئة VersionCodesList تلقائيا لتقليل تأخير بدء السكربتتحسيناستخدام Version Catalogs لادارة اصدارات تبعيات Gradle واضافاته بشكل مركزيتحسينتمت نمذجة نصوص بناء Gradle بشكل وحداتي, مع نقل منطق البناء المشترك الى build-logic وتجريده على شكل اضافات conventionتحسيناستخدام اضافات convention في Gradle لتبسيط منطق تحميل مكتبات AAR المحليةتحسينازالة خيار Gradle "android.enableJetifier=true" للتكيف مع Gradle 9تحسيناستخدام Toolchain بدلا من sourceCompatibility/targetCompatibility لتقليل فروق بيئة البناءتحسينتعديلات على إصدارات بعض التبعيات أو المكتبات المحليةCHANGELOG.md
v6.6.4
2025/05/31
تلميحتغيير API: ui.(status/navigation)BarAppearanceLight[By] -> ui.(status/navigation)BarIconLight[By]إضافة جديدةطرق util.dpToPx/spToPx/pxToDp/pxToSp لتحويل وحدات البكسلتصليحمشكلة عرض العنوان الفرعي بشكل غير مكتمل عند تدوير الشاشة إلى الوضع الأفقيتصليحمشكلة تغطية جزء من محتوى الصفحة بواسطة شريط التنقل الجانبي عند التدوير إلى الوضع الأفقيتصليحمنطقة تلوين خلفية شريط الحالة غير مكتملة في بعض الصفحات على Android 15issue #398تصليحقد يستخدم محرر الأكواد ترميزًا منخفض الثقة عند الكتابة مما يؤدي إلى أخطاء فك الترميز (محاولة إصلاح)تحسينزيادة توافق التخطيط في صفحات التطبيق والمطور وإزالة تصنيفات التخطيط غير الضروريةتحسينفي README.md، قسم البناء، إضافة طرق متعددة لتسهيل تحديد صفحة إعداد الهدفissue #404تحسينتعديلات على إصدارات بعض التبعيات أو المكتبات المحليةCHANGELOG.md
v6.6.3
2025/05/27
إضافة جديدةميزة سجل الاصدارات: عرض سجل التغييرات متعدد اللغات والاحصاءاتإضافة جديدةالدالة timers.keepAlive (أصبحت عالمية) للحفاظ على بقاء السكربت نشطًاإضافة جديدةمستمعو الأحداث مثل engines.on('start/stop/error', callback) لأحداث المحرك العامةإضافة جديدةالدالة images.detectMultiColors للتحقق من ألوان متعددة النقاطissue #374إضافة جديدةالدوال images.matchFeatures/detectAndComputeFeatures: بحث صور بدقة كاملة (انظر Auto.js Pro)issue #366إضافة جديدةالدالة images.compressToBytes لضغط الصورة وإنتاج مصفوفة بايتاتإضافة جديدةالدالة images.downsample لخفض الدقة وإنشاء ImageWrapper جديدإضافة جديدةالدالة ui.keepScreenOn لإبقاء الشاشة مضاءة عند تركيز صفحة الواجهةإضافة جديدةخاصية ui.root (getter) للحصول على عقدة "حاوية المحتوى الجذرية للنافذة" في تخطيط الواجهةإضافة جديدةعنصر webview يدعم تخطيطات صفحات الويب عبر JsBridge (انظر Auto.js Pro) [مثال: Layout > Interactive HTML / Vue2 + Vant (SFC)]issue #281إضافة جديدةمصحح التخطيط يدعم إخفاء العناصر (بواسطة TonyJiangWJ)pr #371issue #355تصليحقد يتم حجب بعض محتوى الوثائق عبر الإنترنت في تبويب Docs وصفحة الوثائق بواسطة شريط التنقلتصليحفي بعض الصفحات قد يؤدي النقر على أزرار شريط الأدوات إلى تفعيل حدث النقر على العنوان بالخطأتصليحعلى بعض الاجهزة، كانت الاسطر الفارغة في محرر الشفرة تظهر كمربعات; اصلاح تجريبيتصليحمربع حوار لوحة الألوان في إعداد لون السمة قد يتراكم بلا حدودتصليحزر رفع الصوت لا يوقف جميع السكربتات عند تعطيل خدمة الوصولتصليحتداخل لوحة المفاتيح عند تحرير بث مخصّص في صفحة المهام المجدولةتصليحعناصر التحكم داخل webview لا تستطيع تفعيل لوحة المفاتيح البرمجية بشكل صحيحتصليحقد يفشل مربع معلومات APK في جلب اسم التطبيق أو معلومات SDKتصليحقد لا يتم تحميل محتوى المجلدات الفرعية تلقائيًا عند دخول مجلد مشروع في مثال مدير الملفاتتصليحتغطية المحتوى العلوي بشريط الحالة في وضع الواجهة على Android 15تصليحلون خلفية شريط الحالة في بعض صفحات Android 15 لا يتبع لون السمة ديناميكيًاتصليحوحدة dialogs لا تدعم الخاصية customViewissue #364تصليحقد لا يُرجع معامِل التعبير في dialogs.input نتيجة التنفيذتصليحاستخدام JavaAdapter يسبب تجاوز مكدس ClassLoaderissue #376تصليحconsole.setContentTextColor يفقد اللون الافتراضي للنصissue #346تصليحconsole.setContentBackgroundColor لا يقبل أسماء الألوانissue #384تصليحتم تصحيح آلية images.compress: تغيّر جودة التشفير بدل خفض البكسلاتتصليحالدالة images.resize لا تعمل بشكل صحيحتصليحengines.all قد يطلق ConcurrentModificationExceptionissue #394تصليحتنسيقات تاريخ غير صحيحة في بعض اللغات داخل README.mdتصليحقد تفشل عملية بناء Gradle بسبب طول غير صالح لأرشيف مكتبةissue #389تحسينإضافة فواصل متدرّجة في قائمة مصحح التخطيط لتجميع الوظائفتحسينيدعم project.json خيار permissions لمشاريع السكربتات (بواسطة wirsnow)pr #391issue #362تحسينعند حزم ملف واحد تُقرأ أذونات التطبيق المثبت وتُحدد تلقائيًاissue #362تحسينتوسيع نطاق تطبيق لون السمة ودعم المزيد من عناصر الواجهةتحسينتكيّف عرض الدرج الرئيسي للشاشات الأفقية والعريضة جدًاتحسينإضافة تخطيطات أفقية وصغيرة للصفحات «حول التطبيق» و«المطور»تحسينحوار إعدادات يوفر خيار "استخدام القيمة الافتراضية"تحسينزر الإجراء العائم في مدير الملفات يختفي تلقائيًا عند النقر خارجَهتحسينمُنسّق الشيفرة يدعم العناصر??و?.و??=تحسينيدعم محرّر الشيفرة قراءة وكتابة الملفات بترميزات GB18030 / UTF-16 (LE/BE) / Shift_JIS وغيرهاتحسينيدعم محرّر الشيفرة عرض معلومات تفصيلية عن الملف (المسار/الترميز/فاصل الأسطر/إجمالي البايتات والحروف، إلخ.)issue #395تحسينإضافة رسائل خطأ لعمليات Intent (تحرير/عرض/تثبيت/إرسال/تشغيل وغيرها)تحسينخاصية url في webview تدعم المسارات النسبيةتحسينوسيط path في ImageWrapper#saveTo يدعم المسارات النسبيةتحسينimages.save يدعم ضغط ملفات PNG عند استخدام الوسيط qualityissue #367تحسيندعم مسح سجلات التحديثات المُتجاهَلة وعناوين وضع العميلتحسينمعلومات التحديث تعرض بعدة لغات متزامنة مع لغة الواجهة الحاليةتحسينالتحميل غير المتزامن يحسّن سلاسة التمرير في قائمة مدير الملفاتتحسينتحسين محتوى وتنسيق رسائل استثناء السكربت في وحدة التحكمتحسينأمثلة الشيفرة تدعم إعادة تعيين المجلد إلى محتواه الأصليتحسينزيادة كفاءة التحقق من توقيع APKتحسينتحسين سرعة عرض وحالة معلومات حوارات ملفات APK/الوسائطتحسيننص بناء Gradle أصبح أكثر قدرة على التكيّف مع الإصدارات الجديدةdiscussion #369تحسينتعديلات على إصدارات بعض التبعيات أو المكتبات المحليةCHANGELOG.md
للاطلاع على المزيد من سجل الإصدارات، راجع
تجميع وبناء المشروع
لتصحيح أو تطوير مشروع AutoJs6، يمكنك استخدام Android Studio (منتج من Google) أو IntelliJ IDEA (منتج من Jetbrains).
يتناول هذا القسم طرق بناء وتجميع مشروع AutoJs6 المفتوح المصدر مستخدمًا Android Studio كمثال، يمكن استخدام IntelliJ IDEA بنفس الطريقة.
تحضير Android Studio
قم بتنزيل إصدار Android Studio Panda 2 | 2025.3.2 (حدد أحدها حسب الحاجة):
- android-studio-panda2-windows.exe (1.28 GiB)
- android-studio-panda2-windows.zip (1.29 GiB)
- android-studio-panda2-linux.tar.gz (1.32 GiB)
ملاحظة: تاريخ الإصدار بالنسخة المذكورة أعلاه هو 3 March 2026. إذا كنت بحاجة إلى تنزيل إصدار آخر، أو إذا كان الرابط المذكور غير صالح، يمكنك زيارة أرشيف إصدارات Android Studio.
قم بتثبيت أو فك ضغط الملف المذكور سابقًا، ثم قم بتشغيل برنامج Android Studio (مثل "D:\android-studio\bin\studio64.exe").
تحضير Android SDK
ملاحظة: إذا كان نظام الكمبيوتر يحتوي بالفعل على Android SDK (مجموعة تطوير البرمجيات لنظام أندرويد)، فيمكنك تخطي هذا القسم.
افتح صفحة إعدادات Android SDK (مجموعة تطوير برمجيات أندرويد) (بأيٍّ من الطرق التالية):
Help (مساعدة) | Find action (بحث عن إجراء) # إدخال "Android SDK"
[ أو ]
File (ملف) | Settings (إعدادات) # بحث "Android SDK"
[ أو ]
File (ملف) | Settings (إعدادات) | Language & Frameworks (اللغات وأُطر العمل) | Android SDK (مجموعة تطوير البرامج لنظام Android)
[ أو ]
File (ملف) | Settings (إعدادات) | Appearance & Behavior (المظهر والسلوك) | System Settings (إعدادات النظام) | Android SDK (مجموعة تطوير البرامج لنظام Android)
إذا كان حقل موقع Android SDK (Android SDK Location) فارغًا، يمكنك النقر على زر تحرير (Edit) على اليمين، والنقر على التالي (Next) عدة مرات في النافذة المنبثقة.
ملاحظة: قد يتطلب الأمر الموافقة على اتفاقية واحدة أو أكثر للاستمرار في العملية.
عندما يتم تنزيل وتثبيت الموارد ذات الصلة، انقر على زر إنهاء (Finish).
سيتم تلقائيًا ملء المسار في حقل موقع Android SDK (Android SDK Location) المشار إليه أعلاه، وسيتم إنجاز أعمال التحضير للـ SDK.
تحضير أدوات Android SDK
AutoJs6 يتطلب استخدام بعض أدوات SDK (مثل NDK وCMake).
ملاحظة: إذا كان النظام يحتوي بالفعل على جميع أدوات Android SDK المطلوبة لمشروع AutoJs6، فيمكنك تخطي هذا القسم.
افتح صفحة إعدادات SDK Tools (أدوات SDK) (بأيٍّ من الطرق التالية):
Help (مساعدة) | Find action (بحث عن إجراء) # إدخال "SDK Tools"
[ أو ]
File (ملف) | Settings (إعدادات) # بحث "SDK Tools"
[ أو ]
File (ملف) | Settings (إعدادات) | Language & Frameworks (اللغات وأُطر العمل) | Android SDK (مجموعة تطوير البرامج لنظام Android) | SDK Tools (أدوات SDK) (في النافذة اليمنى)
[ أو ]
File (ملف) | Settings (إعدادات) | Appearance & Behavior (المظهر والسلوك) | System Settings (إعدادات النظام) | Android SDK (مجموعة تطوير البرامج لنظام Android) | SDK Tools (أدوات SDK) (في النافذة اليمنى)
حدد إظهار تفاصيل الحزمة (Show Package Details)، وقم بالنقر على NDK و CMake، وتأكد من تحديد الأدوات الخاصة بها ,تقع معلومات إصدار أدوات SDK في ملف version.properties في جذر مشروع AutoJs6.
تحضير JDK
يعتمد مشروع AutoJs6 على إصدار JDK (مجموعة تطوير جافا) بإصدار لا يقل عن 17، ولكن يفضل الإصدار الذي لا يقل عن 21.
اعتبارًا من 14 March 2026، الإصدار الأقصى المدعوم من JDK لمشروع AutoJs6 هو 25.
ملاحظة: إذا كان نظام الكمبيوتر يحتوي على JDK والإصدار يفي بالمتطلبات المذكورة أعلاه، فيمكنك تخطي هذا القسم.
يمكن تنزيل JDK مباشرةً باستخدام IDE، أو زيارة موقع Oracle لتنزيله.
افتح صفحة إعدادات Gradle JDK (بأيٍّ من الطرق التالية):
Help (مساعدة) | Find action (بحث عن إجراء) # إدخال "Gradle JDK"
[ أو ]
File (ملف) | Settings (إعدادات) # بحث "Gradle"
[ أو ]
File (ملف) | Settings (إعدادات) | Build, Execution, Deployment (البناء، التنفيذ، النشر) | Build Tools (أدوات البناء) | Gradle
يمكنك اختيار أو إضافة إصدار JDK مختلف في حقل Gradle JDK.
إذا كان الإصدار المناسب للـ JDK (>= 17) موجوداً بالفعل في القائمة، فيمكنك تحديده مباشرةً.
يمكنك اختيار Download JDK (تنزيل JDK) لتنزيل JDK المناسب، انقر على زر Download (تنزيل) وانتظر حتى يكتمل التنزيل.
يمكنك أيضًا اختيار Add JDK (إضافة JDK) لإضافة JDK موجود محليًا، وتحديد مساره وإكمال الإضافة.
استنساخ موارد AutoJs6
في شاشة Android Studio الرئيسية، انقر على زر Get from VCS (الحصول من نظام التحكم في الإصدارات).
أدخل العنوان https://github.com/SuperMonster003/AutoJs6.git في حقل URL (عنوان الموارد الموحدة),
يمكن تعديل المسار في حقل Directory (المجلد) حسب الحاجة.
انقر على زر Clone (استنساخ)، وانتظر حتى يكتمل استنساخ موارد مشروع AutoJs6 محليًا.
ملاحظة: قد تتطلب العملية المذكورة أعلاه تثبيت Git (نظام التحكم في الإصدار الموزع).
بناء مشروع AutoJs6
عند اكتمال الاستنساخ، سيفتح Android Studio نافذة مشروع AutoJs6، ويكمل تلقائيًا تنزيل Dependencies (التبعيات) الأساسية وبناء Gradle.
ملاحظة: قد تستغرق العملية المذكورة أعلاه وقتًا طويلًا. إذا كانت حالة الشبكة غير جيدة، قد تحتاج إلى المحاولة عدة مرات (بالنقر على زر Retry).
إذا لم يتمكن البناء من المتابعة تلقائيًا أو إذا كنت بحاجة إلى إعادة بناء المشروع، فاتبع الخطوات التالية:
- من قائمة
Run/Debug Configurationsفي شريط الأدوات، اخترapp، وهو التطبيق الرئيسي لـ AutoJs6 - انقر على زر
Build Project(رمز المطرقة) على اليسار لبدء بناء المشروع. الاختصار الافتراضي هو CTRL + F9 - انتظر انتهاء البناء. ستظهر رسالة في تبويب
Builder Outputمثل "BUILD SUCCESSFUL in 1h 17m 34s"
إذا فشل البناء، يمكنك الإبلاغ عن رسالة الخطأ في صفحة Issues لمشروع AutoJs6.
ملحوظة: لمزيد من التفاصيل حول كيفية بناء وتشغيل التطبيق، يرجى الرجوع إلى Android Docs
نشر مشروع AutoJs6 (تشغيل التطبيق)
بمجرد بناء المشروع بنجاح، يمكن نشره كتطبيق (App) على جهاز فعلي (مثل الهاتف/اللوحي) أو جهاز افتراضي (مثل محاكي Android).
- في شريط الأدوات، اختر
appمن قائمةRun/Debug Configurations، وهو التطبيق الرئيسي لـ AutoJs6 - في القائمة المنسدلة
Available Devicesعلى اليمين، اختر الجهاز الذي يجب تشغيل تطبيق المشروع عليه (جهاز فعلي أو افتراضي) - انقر على زر
Run(رمز المثلث) على اليمين لتشغيل التطبيق. الاختصار الافتراضي هوF10 - انتظر انتهاء النشر؛ سيقوم الجهاز المحدد بتثبيت وتشغيل التطبيق تلقائيًا
نشر مشروع AutoJs6 (إنشاء APK)
حزم المشروع وإنشاء ملف APK يمكن تثبيته على أجهزة Android:
- نسخة تجريبية (Debug Version)
Build (بناء)|Build Bundle(s) / APK(s)|Build APK(s)- توليد حزمة تثبيت الإصدار التجريبي مع التوقيع الافتراضي
- مثال على المسار:
"D:\AutoJs6\app\build\outputs\apk\debug\"
- نسخة مطروحة (Release Version)
Build (بناء)|Generate Signed Bundle / APK- اختيار خيار
APK - قم بإعداد ملف التوقيع (تكوين جديد أو اختيار موجود)، وتوليد حزمة تثبيت الإصدار المطروح
- مثال على المسار:
"D:\AutoJs6\app\release\"
ملحوظة: لمزيد من المعلومات حول كيفية بناء التطبيق لإصداره للمستخدمين، يرجى الرجوع إلى Android Docs
مهام بناء Gradle المحددة مسبقًا لـ AutoJs6
بالإضافة إلى بناء التطبيق، يدعم AutoJs6 عدة مهام بناء Gradle المحددة مسبقًا التي تساعد المطورين في تنفيذ العمليات المتعلقة بالمشروع بسهولة.
ضمن قائمة Run/Debug Configurations في شريط الأدوات، يمكنك العثور على المهام المحددة مسبقًا لـ Gradle، حيث تظهر أيقونة الفيل على اليسار لكل مهمة.
- AutoJs6 [inrt:assemble]
تجميع نسخة البناء "inrt"، التي تخدم بشكل أساسي ميزة تغليف نصوص AutoJs6.
يمتلك مشروع AutoJs6 نسخ بناء مختلفة. النسخة "inrt" تُستخدم لتغليف النصوص، حيث تقوم بإنشاء ملف النموذج "template.apk" المطلوب للتغليف.
عند استخدام ميزة التغليف، قد تواجه رسالة الخطأ التالية:
java.io.FileNotFoundException: template.apk
هذا يشير إلى أن ملف النموذج غير موجود. يجب تشغيل مهمة inrt:assemble يدويًا لإنشاء ملف النموذج، ثم إعادة البناء والنشر مرة أخرى.
ملحوظة: عند حدوث تغييرات في كود المشروع الرئيسي ورغبتك في مزامنة هذه التغييرات مع التطبيق المعبأ، يتعين عليك إعادة تشغيل مهمة
inrt:assembleلتوليد ملفات القالب وإعادة نشر التطبيق
- AutoJs6 [app:bundle]
حزم مخرجات عملية البناء بوضع التصحيح، وتستخدم بشكل رئيسي لمشروع تعريفات AutoJs6.
بعد تشغيل المهمة، يتم إنتاج أحدث ملف JAR لمشروع AutoJs6. باستخدام أداة Android d.ts Generator (من NativeScript) يمكنك إنشاء تعريفات الأنواع (بتنسيق d.ts) للتطبيق الرئيسي لـ AutoJs6.
- AutoJs6 [app:digest]
إلحاق معلومات الملخص بملف APK الذي تم إنتاجه من بناء الإصدار، وذلك لتحديد الاسم النهائي للملف قبل نشر أحدث نسخة من AutoJs6 على GitHub.
فيما يلي مقارنة بين أسماء الملفات قبل وبعد إلحاق معلومات الملخص:
قبل:
autojs6-v6.6.2-arm64-v8a.apk
بعد:
autojs6-v6.6.2-arm64-v8a-0f2a9d74.apk
مرجع: Android Docs
مساعدة تطوير السكريبت
لتطوير سكربتات يمكن تشغيلها بواسطة AutoJs6، تحتاج إلى استخدام أدوات تطوير مناسبة:
إذا كنت بحاجة إلى كتابة وتصحيح السكربتات على الكمبيوتر الشخصي، يمكن لمكون VSCode الإضافي تحقيق الاتصال بين الكمبيوتر والهاتف:
- AutoJs6-VSCode-Extension - مصحح الأخطاء لـ AutoJs6 (مكون إضافي لـ VSCode)
أثناء كتابة الكود باستخدام أدوات التطوير، يمكن أن تساعد ميزة الإكمال التلقائي الذكية في إكمال الكود:
- AutoJs6-TypeScript-Declarations - ملفات تعريف AutoJs6 (إكمال الكود الذكي)
أثناء كتابة الكود، يمكن الرجوع إلى الوثائق التطبيقية لـ AutoJs6 والمعلومات حول استخدام API ذات الصلة:
- AutoJs6-Documentation - وثائق تطبيق AutoJs6
مشاريع تطوير السكربتات الموجودة يمكن أن تكون مرجعًا وإلهامًا لإنشاء المشاريع الشخصية:
- Ant-Forest - سكربت لجمع الطاقة تلقائيًا في غابة النمل بواسطة TonyJiangWJ
- Ant-Forest - سكربت لجمع الطاقة تلقائيًا في غابة النمل بواسطة SuperMonster003
- autojs - سكربتات مفيدة لـ Auto.js بواسطة e1399579
- autojsDemo - أمثلة تجريبية لـ Auto.js بواسطة snailuncle
- المستودعات ذات الصلة بـ autojs - جميع المستودعات المتعلقة بـ autojs على GitHub
المشاركة بالإسهام
شكرًا لكل من ساهم في تطوير مشروع AutoJs6.
| المساهمون | عدد الإرساليات | أحدث الإرساليات |
|---|---|---|
| Willie169 | 1 | 2026/03/03 |
LYS86 (Lin) |
4 | 2025/12/26 |
| wirsnow | 1 | 2025/05/19 |
| TonyJiangWJ | 4 | 2025/04/24 |
| luckyloogn | 3 | 2024/12/31 |
| kvii | 1 | 2024/10/16 |
chenguangming (Tom) |
2 | 2024/05/14 |
LZX284 (AI) |
7 | 2023/11/15 |
kojoe‑code (抠脚本人) |
12 | 2023/07/12 |
| aiselp | 6 | 2023/06/14 |
| تم تحديث البيانات في 4 March 2026. |
تم تصنيف سجلات البيانات بترتيب تنازلي حسب أحدث الإرساليات.
طلبات السحب الجديدة غير المعالجة بعد، سيتم إدراجها في الإحصاءات بعد الدمج.
بعض المساهمين قد لا يظهرون بشكل صحيح في GitHub Contributors، سجلات إسهاماتهم قد تكون فارغة، لكن يمكن مراجعة سجلات الإسهامات عبر Pull Request.
