|
إنضمامك إلي منتديات استراحات زايد يحقق لك معرفة كل ماهو جديد في عالم الانترنت ...
انضم الينا
#1
| ||
| ||
هذا الدرس كتبته سابقا في منتدى نادي المبرمجين قمت بنقله لتعم الفائدة. <font size="4"> بسم الله الرحمن الرحيم ملاحظة : ستجد في نهاية المقال ملف PDF للمقال, قمت بالشرح على نظام لينكس اوبنتو ﻷني لم أجد SDK يعمل على نظام ويندوز . في هذه المقالة سنتعلم كيف نصنع برنامجا على نظام مايمو . نظام مايمو لمن لا يعرفه هو نظام من برمجة شركة نوكيا العملاقة ومخصص ﻷجهزة الجولات هذا النظام مبني على نظام لينكس توزيعة دبيان , وقد قامت نوكيا مؤخرا بدمج نظامها مايمو مع نظام انتل موبلين ليخرج لنا نظاما جديدا اسمه ميقو لا تخف فميقو نفس نظام مايمو من ناحية البرمجة , أي أنك لن تتعب نفسك في تعلم برمجة ميقو. لندع هذا الكلم جانبا ولنبدأ ببرمجة أول برنامجا لنا . قبل البداية : عليك أن تتقن بعض المهارات وهي : 1- لغة c++ . 2- مكتبة Qt . بالنسبة للغة ال c++ فهناك الكثير من الكتب التي تغطي هذه اللغة ولله الحمد , وبالنسبة لqt فهناك دورة الأخ برقاوي على هذا الرابط : http://club4pro.com/vb/showthread.php?t=17 وهناك كذالك مجتمع Qt العربي وهو المرجع الأول والوحيد لتعلم الQt بالعربي http://qt-ar.org/ - تحميل وتنصيب ال SDK : SDK : مجموعة من البرامج والمكاتب التي تخص المطورين , وهناك طريقتان لتحميلها , الطريقة الأولى طريقة يدوبة لن نستعملها , الطريقة الثانية تلقائية تكفينا عناء التنصيب اليدوي . قم بالتحميل سكربت التنصيب من هنا : http://www.forum.nokia.com/info/sw.n...emo_5_SDK.html بعد التحميل قم بفتح الطرفية (الترمنال) ثم ادخل على المجلد الذي قد وضعت فيه السكربت . بعد ذالك اكتب هذا الأمر : كود: chmod a+x اسم السكربت ثم اكتب هذا الأمر: كود: sudo ./اسم الملف سيقوم الأن بتحميل وتنصيب بعض الحزم الضرورية وافق على جميع مايريده . بعد أن ينتهي التنصيب ستضهر لك هذه الواجهة الرسومية وأظن أن الجميع معتاد عليها فهي واجهة التنصيب المعروفة : اتبع الإرشادات لتنصيب ال SDK __________________________________________________ ______________________ - كتابة برنامج بسيط و ترجمته لنظام مايمو : سنقوم الأن بكتابة برنامج بسيط عبر استخدام مكتبة Qt وسنستخدم ال QtCreator كبيئة تطوير . فكرة البرنامج هو إنشاء واجهة رسومية بها اثنان lineEdit و 1 pushButton حيث سنكتب النص الأول ثم نضغط الزر لينسخه إلى مربع النص الثاني قم بفتح ال QtCreator واعمل مشروع جديد واختر Qt4 Gui Application. بعد أن تفتح المشروع صمم هذه النافذة البسيطة . الأن إلى MainWindow.h واكتب هذه الدالة واجعلها ك (slot) : كود: private slots: void copy(); وهذا شكل ملف MainWindow.h : كود: #ifndef MAINWINDOW_H #define MAINWINDOW_H #include namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = 0); ~MainWindow(); protected: void changeEvent(QEvent *e); private: Ui::MainWindow *ui; private slots: void copy(); }; الأن إذهب إلى MainWindow.cpp لنربط بين الإيقونة و دالة النسخ عبر كتابة هذا الكود في دالة البناء : كود: connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(copy())) ; ثم اذهب إلى نهاية الملف واكتب كود دالة النسخ : كود: void MainWindow::copy() { ui->lineEdit_2->setText(ui->lineEdit->text()); } هذا هو ملف ال MainWindow.cpp كاملا : كود: #include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(copy())) ; } MainWindow::~MainWindow() { delete ui; } void MainWindow::changeEvent(QEvent *e) { QMainWindow::changeEvent(e); switch (e->type()) { case QEvent::LanguageChange: ui->retranslateUi(this); break; default: break; } } void MainWindow::copy() { ui->lineEdit_2->setText(ui->lineEdit->text()); } هذا هو البرنامج كاملا ولكن علينا الأن أن نترجمه على نظام مايمو ونقوم بتحزيمه ليكون جاهزا للأستعمال على نظام مايمو . __________________________________________________ __________________________ - ترجمة البرنامج وتحزيمه لنظام مايمو : سنقوم الأن بإعادة ترجمة البرنامج لنظام مايمو طبعا لاتظن أن ترجمتك لبرنامجك عبر مكتبة Qt للكمبيوتر سيكون نفسها في نظام مايمو بل هناك اختلاف والإختلاف ليس من ناحية كتابة الأكواد بل من ناحية الستايل وحجم النافذة والإيقونات وما إلى ذالك . في البداية قم بفتح مجلد البرنامج الذي قد عملناه سابقا . وانسخ الملفات التالية : MainWindow.cpp و MainWindow.h و Main.cpp و MainWindow.ui . انتبه لاتنسخ المفات التي تبدأ ب ui_FileName فهذه لانريدها . بعد أن تنسخ الملفات اذهب إلى file system أذهب إلى مجلد scratchbox ثم اذهب إلى كود: /scratchbox/users/userName/home/userName أنشئ مجلدا جديدا وسم بما تريد وفي هذا الدرس أسميت المف ب explain . قم بلصق مانسخته من ملفات إلى المجلد الجديد . افتح الطرفية (الترمنال) واكتب هذا الأمر كود: scratchbox هذا سيدخلك إلى نظام مايمو الإفتراضي ونستطيع منه أن نعيد ترجمة البرنامج إلى نظام مايمو . يوجد في هذا النظام الإفتراضي نظامان أحدهما x86 والثاني arml نحن نريد أن نعمل على الثاني ﻷن نظام مايمو الموجود لا يدعم x86 لذا يجب أن نحوله إلى arml النظام الإفتراضي هو x86 اكنب هذا الأمر : كود: sb-menu ستضهر لك هذه القائمة اختر select ثم اختر arml سنقوم الأن بتحميل مكاتب الQt المهمة اكتب هذان الأمران كود: sudo apt-get update fakeroot apt-get install libqt4-gui ثم هذا الأمر كود: fakeroot apt-get install libqt4-dev وإذا أرد أن تستعمل ال opengl فاكتب هذا الأمر كود: fakeroot apt-get install libqt4-webkit libqt4-opengl الأن إذهب إلى المجلد الذي أنشئته عبر الأمر cd ثم اسم المجلد. واكتب هذه الأوامر كود: qmake -project qmake make هذا سيعيد ترجمة البرنامج لمايمو لنجرب الأن البرنامج على المحاكي إذهب إلى سطح المكتب ستجد ايقونة اسمها (Maemo5 SDK) اضغط على الإيقونة هذا سيجعل المحاكي يعمل . الأن ارجع إلى الطرفية واطبع هذا الأمر : كود: run-standalone.sh ./explian إذا نضرت للمحاكي ستجد أن البرنامج قد بدأ في العمل . ولكن تكمن المشكلة أننا نريد أن يستخدم البرنامج عامة الناس لذا يجب أن نسهل طريقة تشغيل البرنامج ونضع أيقونة للبرنامج وأن نجعل البرنامج في حزمة واحدة حيث يقوم المستخدم بالضغط على الحزمة فيتنصب البرنامج تلقائيا دون كتابة أمر ما . __________________________________________________ ____________________________ - تحزيم البرنامج قلنا سابقا أنا النظام مبني على نظام لينكس دبيان لذا سيكون تحزيم برنامجنا بصيغة deb . قم أولا بتغيير اسم المجلد الذي يوجد به البرنامج إلى FileName-version أضف فقط اصدار البرنامج وفي برنامجا هذا سيكون الإصدار رقم 0.1 اي أنا اسم المجلد سيكون explain-0.1 بعد أن تغير الإسم اطبع هذا الأمر : كود: dh_make --createorig --single -e [email protected] -c gpl طبعا غير الإيميل إلى ايميلك وإن أردت أن تغير الترخيص فلك ذالك . بعد أن ينتهي من تنفيذ الأمر ستجد داخل مجلد explain مجلد أخر جديد اسمه debian في هذا المجلد سنقوم بتعديل بعض الملفات لكي يتوافق مع نظام مايمو ولكن سنقوم قبل ذالك بعدة خطوات ثم سنعمل على مجلد debian . أولا: قم بإنشاء مجلد جديد داخل مجلد explain وسمّه src انسخ فيه جميع الملفات الموجودة في مجلد explain ماعدا مجلد debian . ثانيا : داخل مجلد src ستجد ملف امتداده (pro.) غيّر اسم الملف إلى (src.pro) ثم قم بفتح الملف ستجد داخل الملف بعض الأوامر والتعليمات الشبيه بهذه (تختلف الأوامر من برنامجا ﻷخر ) كود: ################################################## #################### # Automatically generated by qmake (2.01a) Thu Mar 4 19:44:23 2010 ################################################## #################### TEMPLATE = app TARGET = explian DEPENDPATH += . INCLUDEPATH += . # Input HEADERS += mainwindow.h FORMS += mainwindow.ui SOURCES += main.cpp mainwindow.cpp بعد كلمة= TARGET قم بكتابة اسم برنامجك . ثم اذهب إلى نهاية الملف وأضف هذه القطعة : كود: unix { #VARIABLES isEmpty(PREFIX) { PREFIX = /usr/local } BINDIR = $$PREFIX/bin DATADIR =$$PREFIX/share DEFINES += DATADIR=\"$$DATADIR\" PKGDATADIR=\"$$PKGDATADIR\" #MAKE INSTALL INSTALLS += target desktop iconxpm icon26 icon40 icon64 target.path =$$BINDIR desktop.path = $$DATADIR/applications/hildon desktop.files += $${TARGET}.desktop iconxpm.path = $$DATADIR/pixmap iconxpm.files += ../data/maemo/$${TARGET}.xpm icon26.path = $$DATADIR/icons/hicolor/26x26/apps icon26.files += ../data/26x26/$${TARGET}.png icon40.path = $$DATADIR/icons/hicolor/40x40/apps icon40.files += ../data/40x40/$${TARGET}.png icon64.path = $$DATADIR/icons/hicolor/64x64/apps icon64.files += ../data/64x64/$${TARGET}.png } قم بإنشاء ملف داخل مجلد src وسمّه بإسم برنامجك واجعل امتداده ينتهي ب (desktop.) والصق به هذه القطعة : كود: [Desktop Entry] Encoding=UTF-8 Version=0.1 Type=Application Name=explian Exec=/usr/bin/explian Icon=explian X-HildonDesk-ShowInToolbar=true X-Osso-Type=application/x-executable كل ماهو باللون الأحمر غيّره إلى اسم برنامجك. الأن ارجع إلى مجلد explain وافتح الملف الذي ينتهي امتداده ب (pro.) والصق هذه القطعة : كود: # eplain.pro QMAKEVERSION = $$[QMAKE_VERSION] ISQT4 = $$find(QMAKEVERSION, ^[2-9]) isEmpty( ISQT4 ) { error("Use the qmake include with Qt4.4 or greater, on Debian that is qmake-qt4"); } TEMPLATE = subdirs SUBDIRS = src طبعا الكلمة التي ملوّنة باﻹحمر قم بتغيرها إلى اسم برنامجك واجعل امتداده ينتهي ب(pro.) . الأن اذهب إلى مجلد debian واتبع هذه الخطوات أولا : قم بفتح ملف rules واكتب هذا القطعة ولكن انتبه يجب أن تكون الفراغات tab وليست فراغات . في حال أنك قمت بنسخ القطعة فقم بحذف الفراغات ثم ضع tab حتى يعمل البرنامج بشكل صحيح : كود: #!/usr/bin/make -f APPNAME := explian builddir: mkdir -p builddir builddir/Makefile: builddir cd builddir && qmake-qt4 PREFIX=/usr ../$(APPNAME).pro build: build-stamp build-stamp: builddir/Makefile dh_testdir # Add here commands to compile the package. cd builddir && $(MAKE) touch $@ clean: dh_testdir dh_testroot rm -f build-stamp # Add here commands to clean up after the build process. rm -rf builddir dh_clean install: build dh_testdir dh_testroot dh_clean -k dh_installdirs # Add here commands to install the package into debian/your_appname cd builddir && $(MAKE) INSTALL_ROOT=$(CURDIR)/debian/$(APPNAME) install # Build architecture-independent files here. binary-indep: build install # We have nothing to do by default. # Build architecture-dependent files here. binary-arch: build install dh_testdir dh_testroot dh_installdocs dh_installexamples dh_installman dh_link dh_strip --dbg-package=my-application-dbg dh_compress dh_fixperms dh_installdeb dh_shlibdeps dh_gencontrol dh_md5sums dh_builddeb binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary install configure طبعا ماكتب ياللون الأحمر قم بإستبداله بإسم برنامجك . ثانيا : قم بفتح ملف control واستبدل القطعة الموجودة بهذه القطعة : كود: Source: explian Section: /user/other Priority: extra Maintainer: khalid al-hussauen Build-Depends: debhelper (>= 5) Standards-Version: 3.7.2 Package: explian Architecture: any Depends: ${shlibsepends}, ${miscepends} Description: مثال بسيط لكتابة برنامج على مايمو لاحظ أن هناك سطرا فارغا بعد( Standards-Version: 3.7.2 ) هذا السطر مهم أن تجعله فارغا . السطر الأول قم بإستبدال explain بإسم برنامجك أما السطر الثاني section يعني بنوعيىة البرنامج ففي حال كان برنامجك لعبة فتضع هذا الرابط : user/games . وهذا الجدول يصف لنا الأقسام الموجودة: السطر الرابع قم بوضع اسمك وايميلك , أما السطر السابع فاستبدل كلمة explian بإسم برنامجك . أما السطر الأخير فضع وصف بسيط لبرنامج وتستطيع أن تضع الوصف بالعربي. أخير قم بكتابة هذا الأمر : كود: dpkg-buildpackage -rfakeroot -b هكذا نكون قد انتهينا من تحزيم البرنامج إذا خرجت من مجلد explian ستجد ملف ينتهي امتداده ب(deb.) هذا الملف هو الصيغة النهائية للبرنامج قم بوضعه في اي جهاز يحوي على نظام مايمو وسيعمل بإذن الله . صورة للبرنامج وهو يعمل على جهازي : ملف PDF للشرح . المراجع : 1- دليلك الأساسيي لنظام مايمو 2- موقع ممتاز لمطوري نظام مايمو فيها العديد من المقالات والتوثيق لمكاتب ال API الخاصة بأنظمة مايمو أسأل الله أن ينفع المسلمين بهذا العمل . __DEFINE_LIKE_SHARE__ |
مواقع النشر (المفضلة) |
| |