از این پس می توانید اپلیکیشن های آفیس در پلتفرم های اندروید و ios را اپلیکیشن هایی با پایه ویندوز بنامید! شاید تیتر خبر برای شما گیج کننده باشد، پس برای آگاهی از جزییات همراه ما باشید.

به نظر می رسد اپلیکیشن های آفیس اندروید و ios پیوند عمیقی با ویندوز API دارند. اخیرا برنامه نویسی با نام Longhorn به همراه بنده (Dennis Bendarz) اجزا اپلیکیشن های آفیس که برای اندروید و ios توسعه داده شدند را از هم باز کردیم، و کدها و محتوای آنها را شناسایی کردیم.

این فرآیند که تحت عنوان مهندسی معکوس شناخته می شود، باعث شد تا متوجه شویم این اپلیکیشن ها با توجه به نسخه موجود در اندروید و ios شباهت زیادی به اپلیکیشن های آفیس در ویندوز ۱۰ موبایل و ویندوز ۱۰ دارند.

ریجیستری شبیه سازی شده

ما در طی مهندسی معکوس خود یافتیم هنگامی که به عمق این اپلیکیشن ها وارد می شوید، خواهید دید این اپلیکیشن ها تقریبا از کانتینرهای ریجستری شبیه سازی شده یکسانی با اپلیکیشن های یونیورسال ویندوز ۱۰ بهره می برند.

شاید بپرسید کانتینرهای ریجستری شبیه سازی شده چی هستند؟ این ها در حقیقت کپی هایی از ریجستری سیستم هستند که سندباکس شده و با سیستم به صورت مستقیم در ارتباط نیستند، پس باعث بریک شدن دیگر قسمت ها نمی گردند.

و حال نگاهی داشته باشیم به مفهوم ریجستری، ریجستری در واقع پایگاه داده ای از تنظیمات و پیکربندی سیستم است، که اپلیکیشن ها بایستی بدان دسترسی داشته باشند تا بتوانند مطابق پیکر بندی سیستم و تنظیماتی که کاربر تنظیم کرده، سازگار شوند.

ریجستری به صورت عمیقی در ویندوز تنیده شده، و از ویندوز ۳.۱ همراه همیشگی ویندوز بوده است. باید توجه داشت که ریجستری جزیی از ویندوز است، و ios و اندروید از از ریجستری خود در سیستم بهره نمی برند.

در نتیجه این شرایط، کانتینرهای ریجستری شبیه سازی شده در اپلیکیشن های آفیس اندروید و ios دیده می شوند، وجود ریجستری به نوعی گواه این مسئله است که این اپلیکیشن ها نوعی از زیر سیستم ویندوز را دارا بوده و این عاملی است که باعث اجرای حد وسط این اپلیکشن ها در اندروید و ios گردیده است.

هر اپلیکیشن یونیورسال از جمله اپلیکیشن هایی که به واسطه پروژه سنتنیال پورت شده اند، ریجستری خاص خود را دارند و بنابراین با ریجستری سیستم آمیخته نمی شوند.

وجود کانتینرهای ریجستری برای کارکرد درست اپلیکیشن های یونیورسال لازم نیست، اما وجود آن ها به واسطه دلایل امنیتی و اجرایی می باشد، البته باید به یاد داشته باشیم که این مسئله در مورد اندروید و ios صدق نمی کند.

کتابخانه مایکروسافت

عملکرد اپلیکیشن های آفیس در دو پلتفرم اندروید و ios هیچ گاه کامل و قدرتمند مانند خود ویندوز نبوده است، البته این مسئله به معنی بد بودن کیفیت این اپلیکیشن ها در این دو پلتفرم نیست، اما گاهی مشکلات و کندی هایی نیز به چشم می خورد.

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

اگر لایه تطبیق پذیری را که مایکروسافت به کار می برد، به خاطر آورید، پازل ما تکمیل شده و پاسخ مسئله پیدا می شود، پاسخ مسئله Xamarin است.

Xamarin ابزاری فرا پلتفرمی است که مایکروسافت سال گذشته آن را خریداری کرد، این ابزار شاید میان توسعه دهندگان چندان که باید شناخته شده نیست، برخی عملکرد ان را ضعیف می دانند، اما باید توجه داشت که این ابزار امکان اجرای کدی واحد در پلتفرم های مختلف را فراهم می سازد، و این کار به هیچ عنوان ساده نیست.

مایکروسافت لایه سازش پذیر قدرتمندی را توسعه داده که اجزا می دهد تا اجزا ویندوز در دیگر سیستم های عامل اجرا شوند، این لایه عملکردی مشابه Wine در دیگر پلتفرم ها نظیر لینوکس، BSDs، مک او اس، و حتی اندروید دارد. (Wine شبیه ساز نیست)

ایده بین این دو کاملا یکسان است: اجرا اپلیکیشن های ویندوزی در سیستم هایی با پایه غیر ویندوزی، مایکروسافت در طی این پروژه چندین کتابخانه را گسترش داد که همگی بخش کوچکی از ویندوز را تشکیل می دهند، این کتابخانه ها عبارتند از:

  • lib7zofficeassetdecoder
  • libd2d1
  • libplat
  • libd3d10warp.
  • libdwrite
  • libmsxml
  • librichedit
  • libxmllite
  • libstg

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

libplat کتابخانه ای مشتمل بر Windows API است که در حقیقت محیط ویندوز را بر روی دستگاه شما ایجاد می کند، ما آنقدر شانس نداشتیم تا کتابخانه ios را به دست آوریم.

اما بر اساس ریجستری مجازی که در ios دیده می شود، و رفتار خاص اپلیکیشن ها در آن، به نظر ما این مسئله در مورد ios هم صدق می کند.

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

یک کاربر معمولی بین این اپلیکیشن های یونیورسال گونه و اپلیکیشن های بومی پلتفرمر، تفاوتی احساس نخواهد کرد، این امر البته اتفاق خوبی است، که علت آن پورت شدن بسیار درست و مهندسی پشت آن است.

lib7zofficeassetdecoder عامل طولانی شدن اجرای اولیه اپلیکیشن است، این زمان طولانی، هنگام اجرای مرتبه اول اپلیکیشن پس از به روز رسانی نیز به وجود می آید.

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

این کتابخانه های سنگین با دیگر کتابخانه ها نظیر libd3d10warp همسو هستند، علت نام بردن از این کتابخانه اهمیت بالای آن است، این کتابخانه دندرینگ DirectX را نیز شامل می شود، این بخش را به خاطر داشته باشید، چرا که در آینده نتیجه بسیار بزرگی در دنیای نرم افزار از آن به دست خواهد آمد.

DirectX

DirectX را همه می شناسیم، یک API گرافیکی بسیار قدرتمند، دایرکت اکس در حقیقت هسته نمایشی تمامی بازی هایی است که تاکنون بر روی کامپیوتر و اکس باکس تجربه کرده اید، این API در حقیقت دلیل اصلی پتانسیل بالای ویندوز به عنوان یک پلتفرم گیمینگ در قیاس با macOS و لینوکس است.

نکته جالبی که در این زمینه وجود دارد، حضور این API در اپلیکیشن های آفیس اندروید و ios است. DirectX یافت شده در آفیس رندرینگ بر پایه نرم افزار را انجام می دهد، که بدین معنی است که فاصله زیادی با امکان استفاده برای کارهای سنگین گرافیکی نظیر بازی دارد.

علی رغم اینکه رندرینگ DirectX در آفیس نرم افزاری است، با این حال این API از WARP بهره می برد. WARP جزیی از DirectX است که به هنگام فقدان سخت افزار سازگار وارد عمل می شود، WARP دستگاه رندر با قابلیت Direct3D است، که البته برای انجام کارهای کوچک تر نظیر آفیس کاملا موثر و کافی است.

شاید اجرای اپلیکیشن های آفیس در اندروید و ios اندکی با تاخیر صورت گیرد، اما در حین اجرا هیچ گونه لگ و افت فریمی مشاهده نمی شود، و انیمیشن ها به خوبی و روان نمایش داده می شوند، تمامی این موارد به لطف حضور WARP ممکن شده است.

موارد فوق چه معنایی برای کاربران و توسعه دهندگان دارد؟

تمامی این موارد را ما به صورت شخصی پیدا کرده ایم و تاکنون مایکروسافت مدارکی در این زمینه منتشر نکرده است، اما احتمالا در آینده از فناوری که پشت اجرای آفیس در اندروید و ios خوابیده است، بیش تر خواهیم شنید.

مایکروسافت صاحب محیط توسعه اپلیکیشن Xamarin است، ساخت اپلیکیشن برای پلتفرم های مختلف در محیط زامارین با یک بار کدنویسی امکان پذیر است، اما برای این کار لازم است تا توسعه دهنده کدنویسی خود را از صفر در زامارین شروع کند.

درست است که به واسطه این محیط نرم افزاری نمی توان اپلیکیشن ها را به صورت مستقیم از یک پلتفرم وارد ویندوز کرد، اما زامارین این پتانسیل را دارد که ویندوز را به خانه ساخت اپلیکیشن ها برای دیگر پلتفرم ها بدل سازد.

در نظر داشته باشید با توسعه اپلیکیشن در محیط زامارین توسعه دهنده می تواند با یک با کدنویسی هر سه پلتفرم اندروید، ios و ویندوز۱۰ را هدف قرار دهد، کاری که مایکروسافت حداقل یک بار در مورد اپلیکیشن های آفیس خود انجام داده است.

مایکروسافت مطمئنا در پی یافتن راهی است که توسعه دهندگان را بیش از پیش به پلتفرم یونیورسال سوق دهد، در این میان زامارین همان اسب تروجن است که این شرکت می تواند به واسطه آن به اردوگاه توسعه دهندگان دو رقیب نفوذ کند.

منبع :

WINDOWS CENTRAL

357 پست
محسن توکلی
گویند کامپیوتر همه جوره خوش است،نه خیر عزیز فقط سرفس خوش است!
مطالب مرتبط
در مای نوکیا بخوانید
دیدگاه کاربران
yasahr
💔 3 پاسخ دهید چهارشنبه ۱۷ خرداد ۱۳۹۶

چ خوب میشه اگ مثلا برنامه نویس یه برنامه بنویسه و روی ویندوز ۱۰ و ویندوز موبایل و اندرویدو ios اجرا بشه خیلی باحاله

hamed
💔 1 پاسخ دهید چهارشنبه ۱۷ خرداد ۱۳۹۶

کاش بلکبری به فکر bb10 می بود میرفت سمت مایکروسافت الان اونم تو این پروژه بود واسه اونم نرم‌افزار ساخته میشد اه

برای نوشتن دیدگاه می توانید به حساب کاربری خود وارد شوید ورود ارسال نظر به صورت مهمان
برچسب ها: , , , , , , , , , , , , , , , , , , , ,

دانلود آهنگ جدید

پنل اس ام اس

ارسال پیامک بلک لیست

پنل اس ام اس رایگان

ارسال بلک لیست

کارشناس رسمی دادگستری

طراحی سایت

افزایش ممبر افزایش ممبر تلگرام