ای بابا آقای مخبر شما چقدر پست های من رو حذف میکنید
گفتید منبع ذکر نکردم
منبع این کپی پیست های من انجمن موبایلستان هست
نقل قول:
دوست عزيز حرف هاتون پشت سر هم متناقض است. ساختار مالتي تسکينگ ويندوز و کلا سيستم هاي Unix در کل مشابه است و همين که ميگيد اندرويد دقيقا ساختار مالتي تسکينگ لينوکس رو داره (که حرفتون صحيح نيست البته) خودش حرف قبلي من رو تاييد مي کنه. شما همينطور حرف هاي غلط و اشتباه و نادقيق پشت سر هم مي زنيد و بعد ميگيد "من اطلاعات کافي ندارم" ، واضحه اگه نداريد لطفا جوسازي نکنيد.
ما منتظر هستيم شما اين مطلب رو بگذاريد (در محل مناسب البته نه اين تاپيک)، بعدش در اين تاپيک مي تونيد بهش لينک بديد.
PTFO
آقاي مخبر که همش به من پيام خصوصي ميدي
اين پست رو حذف نکن
اگر جاش نامناسب هست به جاي مناسبش منتقلش کن
ممنون با تشکر
خب شما دوست عزيز
گفتم من اطلاعات برنامه نويسي اندرويد ندارم
و قطعا شما اگر برنامه نويس باشيد اطلاعاتتون از من بيشتر هست
اما من کاربراني رو ميشناسم که در انجمن XDA جزء برنامه نويسان حرفه اي هستند
خلاصه من نقل قول هاي اونها رو راجع به تفاوت اندرويد و IOS براي شما دوستان ميذارم
نقل قول:
آقا يکي اين تفاوت مولتي تسکينگ iOS و اندرويد رو بگه ما هم بدونيم ديگه.
نقل قول:
اصولا هر سيستم عاملي که رابط کاربري داشته باشه بالاجبار مولتي تسکينگ هم داره. يه مثال ميزنم, شما وقتي داريد با گوشي کار ميکنيد اگه کس ديگه اي هم زنگ بزنه کار فعليتون متوقف ميشه و صفحه ي تماس روي گوشيتون ظاهر ميشه. اين ساده ترين علامت مولتي تسکينگ هست, يک تسک در پس زمينه در حال گوش کردن به ارتباطات راديويي با ADSP (Advanced digital signal proccessor ) و AMSS هست و يک تسک ديگه در حال رندر رابط گرافيکي . بدون مولتي تسکينگ هيچ وقت نميشه حتي ساده ترين رابط گرافيکي رو هم طراحي کرد. براي اينکه بيشتر متوجه بشيد به داس مراجعه کنيد. تو داس اگه برنامه اي دچار خطا بشه کل سيستم به ابديت ميپيونده چون هيچ تسکي نيست که بر کار اين تسک نظارت کنه و درصورت به مشکل خوردن اون رو از بين ببره.
اما بحثي که اينجا هست مولتي تسکينگ بين برنامه ها هست که کاملا متفاوت با مولتي تسکينگ بين پروسس هاست. مولتي تسکينگ بين برناممه ها يعني اينکه وقتي داريد با يه برنامه کار ميکنيد n برنامه ي ديگه هم بتونند در پس زمينه فعاليت کنند و در صورت نياز محتوايي رو روي صفحه نشون بدن. مولتي تسکينگ بين برنامه اي چيزي هست که سيستم عامل هاي IOS و ويندوز فون از خلا ش شديدا رنج ميبرن! از IOS 4 به قبل که کلا چنين چيزي در ios نبود , درحال حاظر هم به شکل خيلي محدودي وجود داره.
اين به اين علت نيست که اپل نميتونه مولتي تسکينگ پياده سازي کنه, در واقع فلسفه ي IOS از اون ابتدا جوري پياده سازي شد که مولتي تسکينگ بين برنامه اي توش جايي نداشت و الان اگه بخواد اون کار رو بکنه بايد کل سيستم عامل زير و رو بشه و سازگاري با اپ ها از بين بره.
در اندرويد مولتي تسکينگ به شکل کامل همونطوري که در لينوکس هست وجود داره. جالبه بدونيد حتي ويندوز دسکتاپ هم مولتي تسکينگ کامل نداره. کامل ترين مولتي تسکينگ در Linux هست و BSD . حتي خانواده ي Unix مصه Solaris و يا IBM AIX هم فاقد مولتي تسکينگ حقيقي هستند.
با دليل نداشتن مولتي تسکينگ بين برنامه اي IOS و همچنين رزولوشن خيلي کمتر دستگاه هاي اپل مصرف رمشون کمتر هست. چيزي به اسم مچ شدن با سخت افزار و اينا هم وجود نداره. وقتي يه نرم افزار 1 گيگ رم براي ذخيره ي محتواش بخواد هر سيستم عاملي باشه نميتونه روو 512 مگ اونو اجرا کنه. الانم به نظر من رم 1 گيگ باعث ميشه که نه بشه رزولوشن رو بالا برد و نه اينکه caching و buffering در سيستم عامل پياده سازي کرد که خيلي بهاي سنگيني داره براي IOS . اميدوارم با رم 1.5 به بالا شاهد ايفون بعدي باشيم.
نقل قول:
مولتي تسکينگ از سوئيچ کردن معمولي بين اپها بسيار فراتر هست ... شما منوي Recenty apps اندرويد رو شايد مولتي تسکينگ بدونيد اما حتي با حذف يک اپ از اون منو باز هم اندرويد در حال انجام مولتي تسکينگ خودش هست شما که نکسوس داريد لطف کرده logcat بگيريد و ببينيد اندرويد داره به چه چيزي ميگه مولتي تسکينگ! اين به هيچ وجه اون منوي Running process از قسمت settings/apps نيست! مولتي تسکينگ اندرويد فراتر از اون چيزي هست که حتي به چشم مياد!
اين ناشي از هسته لينوکس هست! جايي که لينوکس ساليان سال هست داره بهش افتخار ميکنه (حتي ويندوز دستکتاپ هم ياراي رقابت نداره! مک رو به کل تعطيل ميدونم در اين زمينه!) ...
نقل قول:
تفاوت مولتي تسکينگ ها در اين هست:
در iOS به راحتي ميشه بين اپها سوئيچ کرد! اما شما فقط forground app رو داريد در حال اجرا! ساير اپها به حالت نيمه فعال (با خواب کامل فرق داره) در ميان. فرق اش با خواب کامل چيه؟ شما داريد يک عکس رو توئيت ميکنيد! تا زمان آپلود عکس حتي اگه پروسه در بک گراند هم باشه عکس بي وقفه آپلود ميشه اما فقط تا زماني که آپلود تموم نشده! بعد از اون اپ فعاليتي نميکنه (در واقع تا زماني که اپ يک سرويس رو هم همراه خودش داشته باشه فعاله به محض خاتمه runing services اپ متوقف ميشه!) در واقع فقط اپهاي داراي سرويس اجازه فعاليت در بک گراند رو دارند (مکالمه و تماس، پخش موزيک، راديو آنلاين، شبکه هاي اجتماعي و غيره)
در اندرويد اپ حتي بعد از رفتن به بک گراند هم در حال انجام فعاليتهاي طبيعي هست! خوب شايد سوال پيش بياد اندرويد مشکل رم پيدا نميکنه!؟ خوب اين اتفاق نمي افته (در هر ورژن از اندرويد بهبود هم پيدا کرده!) کرنل لينوکس به شکل هوشمندانه اي اپها رو به دسته هاي برنامه هاي حياتي، برنامه بحراني و برنامه هاي معمولي تقسيم ميکنه. وقتي سيستم با کمبود رم مواجع ميشه برنامه هاي معمولي به اولويت اخر به اول به ترتيب بسته ميشند! برنامه هاي حياتي همون سرويسهاي سيستم هستند که در صورت مشکل گوشي ريبوت ميشه! بحراني ها همونهايي هستند که سيستم رو براي چند لحظه ناپايدار ميکنند و الا غير...
جالبه حتي با پروسه Killing apps باز اپ رو ميشه باز کرد از همونجايي که رها شده توسط سيستم!!! (اين همون system cache در اندرويد هست)
اين همون صحبتهاي عليرضاي عزيز بود گفتم شايد براي بعضيها زياد مفهوم نباشه به زبان عاميانه توضيح بدم ... (با تشکر از عليرضا بابت کامنت کامل و بي نقصش)
نقل قول:
اجازه بديد معايب و مزاياي هرکدوم رو در مولتي تسکينگ هم بگم حجت بر شما تمام بره! (با لحجه مشهدي هاي عزيز بخونيد)
IOS
مزايا: پايداري بيشتر (در صورت کرش يک اپ فقط همون اپ دچار مشکل ميشه و سيستم پايدار باقي ميمونه) - مصرف معقول تر باتري - امنيت (اين رو برخي از سايتها گفتند اما من قبول ندارم براش هم دليل دارم اگه خواستيد شرح هم ميدم)
معايب: مشکل ساز بودن براي توسعه دهنده گان - اپها اطلاعات هم رو به اشتراک نميگذارند (گاهاً پيش مياد يک پروسه در يک اپ انجام ميشه در حالي که چند لحظه پيش اپ ديگه اي داشته همون کار رو انجام ميداده. در هر روز شما بارها و بارها پروسه هاي تکراري رو در گوشيتون تجربه ميکنيد! مقداري از وقت و انرژي اينجا تلف ميشه)
ANDROID OS
مزايا: انعطاف پذير بيش از حد تصور (اندرويد بهشت توسعه دهندگان پلتفرم گدجتهاي همراه هست!) - اشتراک گذاري ديتاي اپها اندرويد رو به يکي از برترين سيستم عاملها حتي در قياس با سيستم هاي دستکتاپ براي کارهاي روزانه، شبکه هاي اجتماعي و فعاليتهاي تحت وب (مثل مرور وب، وب ميکرها، وبلاگ نويسان، تبليغات آنلاين، خبرنگاران و غيره) تبديل ميکنه (اپها به بخشي از اطلاعات نوشته شده هم ديگه روي رم دسترسي دارند. بارها پيش مياد که عکسهاي پيکاسوي شما با همگام سازي در گالري نمايش داده ميشه شما با گالري عکس ديگري باز ميکنيد و با برنامه اديت روش کار ميکنيد در حالي که گوگل پلاس شما فعاله و شما ميخوايد عکس جديد براي اکانت پلاس تون از تو گالري انتخاب کنيد!!!)
معايب: کرش ناگهاني يک اپ (بيشتر در اپهاي سيستمي البته نه شخص ثالث) گاهاً سيستم رو دچار ناپايداري ميکنه - مصرف بيشتر انرژي به علت فعال بودن اون اپ در پس زمينه
نقل قول:
مشکل ساز بودن براي توسعه دهنده گان رو يکم توضيح ميديد؟؟؟چون بهترين و با کيفيت استور اپ استوره...اگه مشکلي داشت دولوپر ها رو جذب نميکرد.
ارتباط اپ ها هم که تو ios 8 حل شده خدا رو شکر خيلي مذخرف بود....
تو photos يه عکس رو ميديدي ميخواستي بذاري مثلا اينستا گرام...بايد ميومدي بيرون ميرفتي اينستا عکس رو پيدا ميکردي آپلود ميکردي...
نقل قول:
در IOS اپ ها براي داشتن قابليت مولتي تسکينگ بايد با استفاده از API هاي موجود درخواست کنند که در پس زمينه سرويسي رو انجام بدند يا منتظر رخدادي بمونند که بهش asynchornization ميگن اما در اندرويد اپ ها وقتي به پس زمينه ميرن فرقي براشون نداره با وقتي که تو جلو زمينه (fore ground) هستند, درعين حال ميتونند asynchornize هم باشند. درضمن دليل نميشه وقتي چيزي بده کاربراش کم باشه. اندرويد اين جاواي مضخرف رو داره اما با اين حال تعداد اپ هاش داره ميليوني ميشه! IOS علت اينکه دولوپر هاي زيادي داره اينه که تو امريکا و خيلي کشور ها آيفون يه کالاي عادي محسوب ميشه, يعني دست همه ايفون ميبيني, استورش هم سخت گير تر هست, به همين خاطر برنامه نويساي زيادي ترقيب ميشن براي کسب درامد براي IOS برنامه بنويسند.
نقل قول:
در زمينه مولتي تسکينگ براي توسعه دهنده ها مشکل ساز هست منظورم همه زمينه هاي توسعه نبود (اينجا بحث مولتي تسکينگ هست نه مو شکافي کلي سيستم عامل اپل)!!! اپهاي توسعه داده شده انعطاف لازم براي مديريت بر وضعيت خودشون رو ندارند (در واقع سيستم عامل اپل ميگه که بايد چي کار کنيد ... البته ايم جز خصايص اپل هست و لزوماً خوب يا بد بودنش به ديد شما بستگي داره از ديد من که عادت به استفاده از سيستمهاي متن باز دارم اپل يک نوع فاجعه در نوع بشر هست!) در ضمن ويندوز هم دولپر زياد داره! (آيا هميشه دولپر زياد داشتن نشانه بهتر بودن هست؟ من ميگم نيست!)
محبوبيت آيفون و کاربران زيادش باعث ميشه توسعه دهنده براي کسب درآمد هم شده روي اين پلتفرم تمرکز کنه! همين قضيه براي ويندوز دستکتاپ هم وجود داره...
بذاريد خيالتون رو راحت کنم دو دسته دولپر داريم يا دنبال کسب درآمد هستند (که خوب iOS و اندرويد عاليه هستند براي اين کار) و دسته دوم به دنبال شهرت و کارهاي فوق العاده (که اندرويد براي اين کار بهتره چون آزادي بيشتري داره نمونه اين مدل توسعه دهنده رو در xda زياد ميبينيد! از xda نميشه کسب درآمد فوق العاده اي داشت اما شهرت!؟ تا دلتون بخواد! اين جور فرمها حس برتري جويي کدنويس رو ارضا ميکنه!!!البته قسمت عمده کاربران xda توسعه دهنده واقعي نيستند!)
نقل قول:
معماري IOS و به طوري کلي سيستم عامل OS X اپل از همون ابتدا نادرست ساخته شد. مديريت رم ناقص , مولتي تسکينگ ناقص , معماري micro kernel و ... . اين ها چيز هايي هستند که به مرور زمان با پيشرفت تکنولوژي براي اپل مشکل ساز خواهند شد. اين معماري و به شکل کلي فلسفه ي شرکت اپل امروزه در حال به تاريخ پيوستن هست و به همين دليل هست که من پيشبيني ميکنم که در آينده اگه فلسفه ي اپل تغيير نکنه شاهد نابوديش خواهيم بود! البته اين حرف فقط من نيست و خيلي ها مثلا حتي لينوس هم همين عقده رو درمورد معماري سيستم عامل اپل دارند.
بهتره از بحث منحرف نشيم, مولتي تسکينگ اپل در واقع هدف مند نيست, مولتي تسکينگ بين برنامه اي اپل در واقع همون نصفه نيمه هست که گفته شد , در گذشته اپل فکر ميکرد که فلسفش تو اون زمان ميتونه موفق باشه ولي با ظهور شرکت هايي مثل گوگل و سيستم عاملش بحث کاملا عوض شد. امروزه اپل نياز داره که يک سيستم مولتي تسکينگ در سيستم عاملش پياده سازي کنه اما مشکل اينجاست که تمامي برنامه هاي سيستم عامل اپل نياز به باز نويسي دارند, معماري سيستم عامل بايد کلا عوض بشه و درکل ضربه ي خيلي سنگيني به سيستم عامل وارد بشه. به همين دليل اپل به پياده سازي اين مولتي تسکينگ بين برنامه اي ناقص روي آورده! هر اپ ميتونه در صورت دلخواه به شکل محدود سرويس هايي رو در صورت به پس زمينه رفتن اجرا کنه, ولي در اندرويد وقتي اپ در بکگراند هست فرقي نداره براش که در کجا هست, منتها اين مدير صفحه (surface flinger) و سيستم سرور (system_server) هستتد که مديريت ميکنند که خروجي برنامه نشون داده بشه يا نه.