إنضمامك إلي منتديات استراحات زايد يحقق لك معرفة كل ماهو جديد في عالم الانترنت ...

انضم الينا
استراحات زايد الصفحة الرئيسية


إضافة رد
 
LinkBack أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 06-06-2010, 12:30 PM
عضو ماسي
بيانات محروم.كوم
 رقم العضوية : 503
 تاريخ التسجيل : Dec 2007
الجنس : female
علم الدوله :
 المشاركات : 2,100,610
عدد الـنقاط :3341
 تقييم المستوى : 2139

هذا الدرس كتبته سابقا في منتدى نادي المبرمجين قمت بنقله لتعم الفائدة.
<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__
رد مع اقتباس
إضافة رد

مواقع النشر (المفضلة)

أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة



الساعة الآن 04:28 PM


Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.5.2 TranZ By Almuhajir

RSS RSS 2.0 XML MAP HTML