پیش گفتار:

پیش گفتار:

       امروزه با پیشرفت تکنولوژی وقابلیت های بهینه ی آنها انسان را بر آن داشته که در صدد پیدا کردن  راه هایی برای استفاده ی حداکثر از فن آوری روز خود را داشته باشند. یکی از این فن آوری ها موبایل است . گرچه موبایل ها ی اولیه توسط شرکت های سازنده برنامه ریزی می شد ند و به بازارمی آمدند اما امروزه شرکت های سازنده در صدد طراحی و پیاده سازی سیستم عامل هایی هستند که کاربران با درک بهتری بتوانند با آنها کار کنند . مسلما با پیاده سازی این نوع سیستم عامل ها که به درک مانزدیک تر هستند، ما را قادر می سازند که بتوانیم برنامه های مورد نیاز خود را خودمان برای گوشی هایمان طراحی کنیم به گونه ای که اگر توانسته باشیم با یک رایانه ارتباط بر قرار کرده باشیم با تغییرات جزئی در دانسته های خود به راحتی برنامه های موبایل را نیز بنویسیم...............


           اما از آنجایی که نرم افزار های شرکت ماکروسافت همه گیر شده است و ما به راحتی با این نرم افزار ها کار می کنیم مسلما  محیط برنامه نویسی که بتواند شبیه نرم افزار های ماکروسافت و زبان های برنامه نویسی این شرکت باشد ، بیش از هر چبز برای ما آسانتر خواهد بود.  اما خوشبختانه ماکروسافت هم در این زمینه بیکار نمانده و محیطی را در قالب Visual Studio فراهم آورده که بتوانیم با همان تکنولوژی .NET برای گوشی های موبایل برنامه نویسی کنیم.

        اما قبل از هر چیز لازم می دانم دلایل انجام این پروژه ، مشکلات و موانع انجام کاررا برای شما خواننده ی محترم به گونه ای که تجربه ای باشد برای شما بیان کرده باشم. یکی از انگیزه های من برای انجام این پروژه نو بودن موضوع  پروژه بود اما همین نو بودن مشکلاتی را در بر داشت. یکی از این مشکلات عدم آگاهی و درک لازم از چگونگی سیستم عامل موبایل بود که برای شروع فکرم را مشغول کرده بود.مسئله بعدی چگونگی نصب روی گوشی با توجه به فایل های مورد نیاز جهت ساختن Setup برنامه بود و از همه مهمتر مشکل اساسی ساختن بانگ اطلاعاتی برنامه بود که نرم افزار خاص خود را می طلبید.

         اما این ها همگی مشکلات  و سوالاتی بود که من در ابتدا با آنها روبه رو بودم مسلما مشکلاتی هم بود که در زمان کار اتفاق می افتاد و گاهی مرا تا مرز نا امیدی پیش می برد از جمله این مشکلات این بود که گاهی در زمان کار به مشکلاتی بر می خوردم که حتی از بزرگان برنامه نویسی هم هیچ جوابی نمی گرفتم. البته شاید هم حق با آنها بود زیرا بحث جدیدی در زمینه برنامه نویسی موبایل آن هم با .NET بود.

         به هر حال همین مشکلات بهانه ای شد برای یاد گرفتن تا سر آغازی باشد برای ادامه راه و نوشتن برنامه های دیگر برای موبایل.

از طرفی در آخر شما خواهید دید که  برنامه نویسی موبایل کاری چندان سخت نیست و شاید احساس کنید که برنامه دیکشنری ، برنامه سختی نباشد .اما نباید فراموش کنیم که شما از روش کار مطلع شده اید اما برای من که شاید جزو اولین کسانی بوده ام که برنامه نویسی موبایل را انجام داده ام رسیدن به نتایج امروز حاصل تحقیقات و تلاش های بسیار بوده است

         به امید اینکه در آخر این سند توانسته باشید برنامه نویسی موبایل را یادگرفته و دیگر مشکلات مرا نداشته باشید.

 در پایان لازم میدانم از استاد گرامی آقای مهندس صالح که مرا در انجام این پروژه یاری کردند تقدیر و تشکر به عمل آورم.

بسم الله الرحمن الرحیم

 انواع سیستم عامل های تلفن همراه:

سیستم عامل های تلفن همراه به چهار دسته تقسیم می شوند معروفترین آنها به ترتیب عبارتند از:

  • Symbian
  • Windows Mobile(windows ce)
  • Palm  
  • Linux
  • RIM

گوشیهای همراه به دو دسته PDA و SmartPhone قسمت می شوند: گروه PDA دارای سه نوع سیستم عامل می شوند که شامل Palm ، لینوکس و ویندوز است و SmartPhone ها دارای یک سیستم عامل، شامل سیستم عامل سیمبیان است.

1- سیستم عامل Palm :

سیستم عامل Palm اولین سیستم عاملی است که برای دستیار دیجتالی شخصی ارایه شد . این سیستم عامل از رابط گرافیکی ساده ای استفاده می کند. در نمونه های اولیه (سال 1998) از نگارش 16 بیتی استفاده شد که فقط مخصوص PDA های بدون پشتیبانی تلفن همراه بود ولی اکنون از نسخه 5 x آن استفاده می شودکه نگارش 32 بیتی دارد و از پردازنده های محصول اینتل که در PDA ها به ARM معروف است، استفاده می کند. این سیستم عامل به دلیل سادگی، سرعت بالایی دارد وکاربران به همین دلیل با آن مشکلات زیادی ندارند (از یک نمونه همسان با ویندوز سریع تر است). این سیستم عامل پر مصرف ترین سیستم عامل ایالات متحده است. این نرم افزار که در ابتدا برای راه بری دستگاه Palm Pilot ساخته شد ، از نسخه 3 به بعد دچار تحولات عمیق شد، مثلاً پشتیبانی از صفحات رنگی پیدا کرد و یک سیستم شناخت دست خط به نام گرافیتی به آن اضافه شد. در حال حاضر اغلب Palm ها مجهز به یکی از دو نسخه سیستم عامل اند یا « Cobalt» یا « Garnet » ، که اولی نسخه 6 به حساب می آید و دیگری نسخه 5، البته از آگوست 2005 هیچ سخت افزاری با Cobalt بیرون نیامده است.

2- سیستم عامل لینوکس:

این سیستم عامل درPDA ها استفاده می شود این سیستم به حافظه زیادی نیاز دارد (حداقل دو برابر ویندوز) علی رغم قدرتمند بودن این سیستم عامل، احتمال نمی رود که هیچ وقت بتواند جای ویندوز یا Palm را بگیرد. دلیلش هم ساده است: این سیستم عامل سورس باز و رایگان است و پشتیبانی نرم افزاری خوبی ارائه نمی دهد. از مهم ترین دستگاه هایی که دارای لینوکس بوده و هستند: شارپ زائوروس، سامسونگ و چند مدل غیر مطرح دیگر را می شود نام برد.

3- سیستم عامل ویندوز CE:

این سیستم عامل معروف ترین نوع در PDA ها است و از سال 1996 بنیان گذاشته شده است. این نرم افزار در ابتدا برای کوچک کردن ویندوز اصلی طراحی شد تا بروی دستگاه هایی که حتی حافظه RAM زیر یک مگابایت باشند قابل اجرا شود. از آن موقع مرتب چیز هایی به آن افزوده شده، طوری که اکنون Windows CEW5، قابلیت رقابت با ویندوز 95 را دارد. نام گذاری این سیستم عامل هم در نوع خود جالب است، مایکروسافت رسماً اعلام کرده که این دو حرف (CE) به صورت تصادفی انتخاب شده اند. این سیستم عامل بخش اعظم بازار را در اختیار دارد و در حقیقت مایکروسافت دو تا کار خوب کرد، اول اینکه این سیستم عامل را به صورتی سورس کد هایی ساده و با قابلیت گسترش امکانات نرم افزاری نوشت و دوم اینکه نسخه ای از سورس کد های این سیستم عامل را در اختیار عموم (یعنی طراحان نرم افزار) گذاشت. این کار باعث شد که بسیاری از برنامه نویسان شانس آینده خود را با آن امتحان کنند. سیستم عامل SmartPhone ها ضعیف تر از سیستم عامل PDA ها است (بدین معنی که از واسط کار بری ساده تری استفاده می کند) بطبع نیاز مند حافظه کمتر وپردازشگر ضعفیت تر است. اما مهمترین فرق اصلی آن با PDA ها پشتیبانی نکردن از قابلیت لمسی است دلیلی که میکروسافت برای آن آورده، این است که بتوانید یک دستی هم با آن کار کنید.

ویژگی های اصلی ویندوز موبایل

برخی ویژگی های این سیستم عامل برای Pocket PC ها استاندارد هستند :

 - در قسمت Today Screen یا صفحه نمایش روز ، تاریخ جاری ، اطلاعاتی در مورد صاحب گوشی ، قرار ملاقات ها ، پیام های ایمیل و برخی کارها و وظایف روزانه از قبل تعریف شده قرار دارند . این صفحه  قابل ویرایش توسط کاربر و تنظیم اطلاعات نمایش داده شده روی آن می باشد . علاوه بر این یک نوار مشخصات ، شامل آیکون هائی مثل وضعیت اتصال به بلوتوث نیز در این صفحه مشخص می شوند . برنامه هائی که روی این سیستم عامل نصب می شوند آیتم ها و آیکون های جدیدی را روی صفحه Today اضافه می کند . یکی از این برنامه ها Microsoft Money برای کامپیوترهای جیبی می باشد . تصویر پس زمینه نیز مستقیماً از همین صفحه قابل تغییرات است همچنین می توان تم های خاصی را ایجاد کرد .

 - نوار وظیفه یا Talk bar نشان دهنده زمان جاری ، ولوم صدا ، وضعیت اتصال راست زمانیکه یک برنامه یا صندوق پیام ها باز باشد روی قسمت خالی این نوار آیکونی برای OK یا Close کردن برنامه در کنار ساعت قراردارد . ویژگی اصلی نوار وظیفه دکمه Start یا شروع است که شبیه دکمه Start نسخه ی رومیزی ویندوز برای کامپیوترها طراحی شده است . در منوی Start برنامه هائی که اخیراً اجرا شده اند ، 9 آیکون منوی قابل تغییر ، لینک هائی به برنامه ها ، تنظیمات یا Setting ، دکمه جستجو Find ( Search ) و Help وجود دارند .

-Office Mobile که یک نسخه از برنامه های Microsoft Office برای موبایل است در این سیستم عامل گنجانده شده است . این برنامه شامل واژه پرداز Word Mobile , Excel Mobile , Power Point  (از نسخه ی 5 ویندوز به بعد ) می باشد . برنامه ای به نام Active Sync قابلیت تبدیل فایل های Office ویندوزهای رومیزی به فایل های آفیس موبایل را دارد .

- نرم افزار Outlook Mobile نیز شامل Tasks  (کارها) ، Calendar(تقویم) ، Contacts (تماس ها ) و Inbox  (صندوق پیام ها ) در این سیستم عامل وجود دارد که قابل همزمان شدن و تطبیق با Outlook کامپیوتر می باشد . البته برای این کار اتصال به اینترنت لازم است .

- برنامه Windows Media Player که برای پخش فایل های صوتی و تصویری استفاده می شود در ویندوز موبایل وجود دارد. در ویندوزهای جدید ورژنهای 6 به بالا نسخه 10.3 این نرم افزار وجود دارد اما برای ورژن های پائین تر نسخه 10 این نرم افزار قابل دانلود و استفاده است . این پلیمر قابلیت پخش فایل های WMA , WMV , MP3 , AVI را دارد . در حال حاضر فایل های MPEG4 با این نرم افزار قابل اجرا نیستند و برای پخش آن ها باید یک برنامه ی جانبی را نصب کرد . فایل های WAV نیز به طور جداگانه و در یک Player دیگر پخش می شوند.

نسخه های مختلف ویندوز موبایل

1) Pocket PC 2002
سیستم عامل Pocket PC 2002 که بر اساس Windows CE 3.0 و مخصوص کامپیوترهای جیبی بدون کیبورد با صفحه نمایش ( QVGA ) 240 * 320 طراحی شد ، مشابه نسخه اولیه آن یعنی Pocket PC2000 می باشد .

2) Windows Mobile 2003
سومین نسخه ویندوز ویندوز موبایل که Windows Mobile 2003 نام گرفت در 23 ژوئن ارائه شد ، در واقع اولین نسخه این سیستم عامل با عنوان " ویندوز موبایل " بود و در نسخه مختلف ارائه شد:
Windows mobile 2003 for Pocket PC Premium Edition
Windows mobile 2003 for Smart Phone Premium Edition
Windows mobile 2003 for Pocket PC Professional Edition
آخرین ویرایش ، مخصوص گوشی های موبایل شامل برنامه های خاص موبایل طراحی شده است . نسخه ای که برای اسمارت فون ها طراحی شده و یک پلات فرم متفاوت دارد که برنامه های خاصی برای این نوع گوشی ها را شامل می شود ؛ از جمله ویژگی های اسمارت فون ها دارا بودن صفحه نمایش لمسی و کیبورد خاص هستند .

 3) Windows Mobile 2003 SE
نسخه ی دوم ویندوز موبایل 2003 که Windows Mobile 2003 SE نام دارد در 24 مارچ سال 2004 ارائه شده و برای اولین بار بر روی سیستم های Dell Axim X30 با تغییرات زیادی نسبت به نسخه قبلی اش ارائه شد ، این تغییرات عبارتند از :

- امکان تغییر صفحه نمایش از حالت عمودی ( Portrait ) به حالت افقی ( Landscape )

- جستجوگر اینترنت Pocket Internet Explorer یا PIE که صفحه اینترنتی را به حالت یک ستونی در می آورد و با این کار خواندن صفحات وب را راحتر می کند .

- رزولوشن صفحه نمایش VGA ( 640 * 480 ) در این سیستم پشتیبانی می شود . علاوه بر این رزولوشن مربعی مثل 240 * 240 در برخی نسخه ها وجود دارد .

- پشتیبانی از اتصال بی سیم Wi - fi
Windows Mobile 5.0
ویندوز موبایل 5.0 که " Magneto " نام گرفته است در تاریخ 9 می 2005 و برای اولین بار Dell Axim X510 ارائه شد . این سیستم عامل بر اساس Windows CE 5.0 است از محیط کاری .net سرویس پک 2 پشتیبانی می کند و قابلیت اجرای برنامه های .net را دارد .

برخی ویژگی های این سیستم :

- یک نسخه جدید ارتقاء یافته Office به نام " Office Mobile " شامل Power Point,Excel,Word با قابلیت درج جدول و تصاویر

- Windows Media Player نسخه 10 تحت موبایل

- Photo Caller ID که عکس فرد تماس گیرنده را نشان می دهد

- پشتبانی از برنامه Direct show

- قابلیت ضبط و دسته بندی و مدیریت فایل های ویدئویی و تصاویر

- قابلیت بلوتوث

- سیستم مکان یابی یا GPS

- برنامه Microsoft Exchange Server که از لحاظ کاربردی ارتقاء پیدا کرده

- صفحه کلید Qwerty

- امکان ارسال پیغام خطا یا Error(شبیه ویندوز )

- برنامه Active sync که 15% - 10 سرعتش نسبت به ورژن قبلی ویندوز موبایل بیشتر شده است

- ذخیره مداوم PS باتری که در Pocket PC ها وجود دارد و طول عمر باتری موبایل را بیشتر می کند . قبلاً تا 50% ( حدوداً 72 ساعت حافظه ) انرژی باتری برای نگهداری دیتا در حافظه Ram رزرو می شد . در گوشی های ویندوز دار به سمت استفاده از حافظه فلاش به جای Ram به عنوان حافظه اولیه استفاده می کنند . تنها نقص ویندوز موبایل 5.0 نداشتن برنامه Microsoft Money است .


4) Windows Mobile 6
آخرین ورژن ویندوز موبایل که در 12 ام فوریه ارائه شد و Crossbow نام گرفت، برای شبکه های GSM 3راحی شده است.این سیستم عامل سه نسخه استاندارد دارد:

Windows Mobile 6 Standard برای اسمارت فون های بدون صفحه نمایش لمسی، Windows Mobile 6 Professional برای PDAهایی که قابلیت های تلفن را هم دارند و
Windows Mobile 6 Classic برای PDAهای ساده که قابلیت های تلفن را ندارند.
ویندوز موبایل 6 بر اساس Windows CE 5.2 طراحی شده و با ویندوز ویستا، Windows Live، Microsoft Office و محصولات Exchange 2007 سازگاری دارد.

برخی ویژگی های خاص این ویندوز موبایل:

- بر پایه (5.2) Windows CE 5.0 طراحی شده است
- پشتیبانی رزولوشن 480*800 و 320*320
- قابلیت آپدیت کردن سیستم عامل
- امکان دسترسی راه دور به کامپیوتر رومیزی

- اجرای سریعتر و آسانتر برنامه ها
 VOIP - (تلفن اینترنتی) بدون اکوشدن صدا
 Windows Live- برای ویندوز موبایل
- امکانات پیشرفته بلوتوث
- کارت حافظه با قابلیت کد کردن دیتا و اطلاعات روی کارت حافظه
- برنامه Smart filter برای جستجو سریع بین آهنگ ها، Contactها، ایمیل ها، فایل ها و ...
- برنامه پیشرفته اشتراک اینترنتی برای راه اندازی گوشی به عنوان لپ تاپ
- Outlook Mobile با قابلیت مشاهده ایمیل ها به صورت HTML
- امکان جستجو در بین شماره ها
- پشتیبانی از امکانات AJAX، Java Script و XMLDOM برای جستجوگر وب
- برنامه Server Search برای جستجوی کامل صندوق ایمیل ها
- .Net frame work با نسخه 2 SPL
- برنامه SQL Server در حافظه Rom
 Office 2007- با فرمت XML که البته هنوز این ویژگی پیاده سازی نشده است

4- سیستم عامل سیمبیان:

معروفترین سیستم عامل (از نظر داشتن بازار فروش) محسوب می شود. هنگامی که شرکت مایکرو سافت از قابلیت های سیستم عاملش در پشتیبانی از گوشی های تلفن همراه پرده برداشت غول های تولید کننده تلفن همراه (14 شرکت اصلی وچند شرکت فرعی) برای عقب نماندن در این رقابت و جلوگیری از در انحصار گرفتن نرم افزارهای تلفن همراه توسط ماکروسافت ، دور هم جمع شده و یک سیستم عامل مشترک به وجود آوردند. این سیستم عامل از اول برای تلفن همراه به وجود آمد و ساختار آن بسیار شبیه ویندوز می باشد. در زیر نام برخی از این شرکت ها را مشاهده می کنید.

(Sony، Nokia، LG، Erricson، Samsung، Siemens، Motorola، BenQ، Mitsubishi، Sanyo، Sharp، Arima، Fujitsu، Lenovo، Panasonic، Sendo)

این سیستم عامل در حقیقت نسخه تحول یافته سیستم عامل «پسایلون » مدل اپوک هست. که، برروی محیط برنامه نویسی C ++ طراحی شد، که البته خودش نسخه ای از یک افزار توسط چند سیستم عامل دهه هشتاد بود. C++ بیشترین امکان دسترسی به API های سیستم عامل سیمبیان را فراهم میکند و بهترین کارکرد در حافظه و سرعت اجرا را داراست. اما در گزینه های زیر باید از این زبان استفاده شود :

·    برنامه هایی که مانند سرور عمل میکنند مانند برنامه هایی که در پشت صحتنه کار میکنند و یکی از بخش های سیستم را مدیریت میکنند. مانند پورت های COM

·    PLUG in ها که محیطی را بر پایه سیستم عامل ایجاد میکنند . بطور مثال برنامه ای که فایل های html را به فایل های word سیمبیان تبدیل میکند از کتابخانه مبدل سیستم عامل استفاده میکند .

·        درایور های دستگاه که با Kernel کار متعامل میکنند

استفاده از زبان C++ در سیستم عامل سیمبیان بر روی مناسب بودن کارکرد گوشی ها متمرکز شده است ، که بدین معناست که چند تا از عملگرهای استاندارد زبان C++ مانند exception handling  قابل استفاده در برنامه نویسی سیمبیان نیستند .

مزایای عمده این سیستم عامل، مصرف کم باطری به دلیل داشتن یک اسکریپت به نام Active Object که عملاً CPU را خاموش می کند وقتی که برنامه ای فراخوانی نداشته باشد، مصرف اندک حافظه که اسکریپت هایی مرتب حافظه را، حتی حافظه دائمی آن را جاروب می کنند. ساختار این سیستم عامل به قدری ساده است که در لایه اول برنامه، حتی فایل سیستم (مدیریت و اجرای فایل های جانبی) هم پشتیبانی نمی شود فقط یک مدیریت زمان کنار برنامه اصلی است. سیمبیان شبیه دیگر سیستم عامل‌های مدرن و امروزی که برای رایانه‌ها وجود دارند، به وجود آمده است. بنابراین دارای امکانات خوبی مثل MultiThreading و همچنین مدیریت حافظه است. در طراحی اولیه مبنای کار را بر روی این موضوع بنا نهاده‌اند که این سیستم عامل ‌باید روی امکانات سخت‌افزاری بسیار کم (بطور مثال: 4 مگابایت حافظه) کارایی فوق العاده‌ای داشته باشد. به همین دلیل این سیستم عامل می‌تواند روی تلفن همراه‌های امروزی فوق العاده سریع کار کرده و حداقل مشکل را داشته باشد. این سیستم عامل بر اساس وقایع و eventها بنا نهاده شده است (شبیه دیگر سیستم عامل‌های امروزی مثل ویندوز) و پردازنده طوری مورد استفاده قرار می‌گیرد که کمترین میزان بار روی تلفن همراه قرار گیرد.

UIQ چیست؟

سیستم عامل Symbian دارای چندین رابط کاربری است و یکی از رابط های کاربری جدید که به تدریج از سوی برخی از شرکت های مهم مثل سونی اریکسون مورد استفاده قرار می گیرد UIQ نام دارد.
این رابط کاربری در اواخر سال 1999میلادی در یکی از شهرهای سوئد پایه گذاری شد. اساس این رابط کاربری بر تغییر مبتنی برسلیقه کاربر بنا نهاده شده است و به راحتی قابل تغییر می باشد .
این رابط کاربری دارای ویژگی ها و برنامه های خاص خود است که از آن جمله می توان به تکنولوژی خاص به کار رفته در آن ، theme ها ، مرورگر وب ، سیستم پیغام رسان ، سیستم تماس ها و سیستم برنامه های کاری اشاره کرد که به گونه خاصی در این رابط کاربری قرار گرفته اند.
کار با این رابط کاربری بسیار آسان است و وقت زیادی برای یادگیری آن لازم نیست و همچنین در آن از تکنولوژی ذخیره سازی اتوماتیک استفاده شده است و همه تغییرات بدون نیاز به کاربر و حتی موقعی که برنامه هنوز باز است در حافظه ذخیره شده و به این طریق شما هیچ یک از اطلاعات خود را از دست نمی دهید . تکنولوژی به کار رفته تصویری و استفاده در UIQ بر اساس قلم نوری می باشد و صفحه نمایش موبایل های این سیستم عامل باید دارای حالت حساس و به صورت تاچ اسکرین و قابلیت نمایش رنگ به صورت12 bit و 16bit باشد . آخرین نسخه UIQ نسخه 3 آن می باشد، اما فعلا در هیچ گوشی موبایلی از آن استفاده نشده است و در واقع پر کاربرد ترین نسخه از این رابط کاربری همچنان نسخه 1/2 برنامه می باشد.در نسخه 1/2 اغلب امکانات موجود به رابط کاربری اضافه شده است و برای نمونه استفاده از theme ها و همچنین java MIDP نسخه 2 اشاره کرد .
نسخه 1/2 و 3 این برنامه فقط روی سیستم عامل Symbian نسخه 7 قابل اجرا هستند .
از قابلیت های جدید نسخه 3 این برنامه می توان امکان استفاده در موبایل های با صفحه نمایش کوچک و همچنین امکان انتخاب برای استفاده یا عدم استفاده از قلم نوری اشاره کرد .
از گوشی هایی که هم اینک از این رابط کاربری استفاده می کنند می توان ازMotorola A920 ، A925 Motorola ، Motorola A1000 ،Sony-erricson P800 ، Sony-erricson P900 ، Sony-erricson P910 ، Benq P30 ، Benq P31 و Arima ASP805 نام برد.

5-   RIMدارای مرورگر وب و نرم افزار شبکه های مجازی

RIM  سیستم عاملی است که برای دستگاه های black berry  به کار می رود .

دستگاه های black berry قابلیت های بیشتری نسبت به یک smart phone  دارند و قابلیت های تلفن همراه و مرورگر و قابلیت های PDA را یکجا فراهم می سازند.