کدنویسی جاوا در پلتفرم اندروید – نصیب اولیه
کدنویسی جاوا در پلتفرم اندروید – نصیب اولیه
سیستمبرهان اندروید (Android)، یکی دوست داستنیترین سیستمدلیلهای گوشی میباشد. برای اپلیکیشننویسی اپلیکیشنهای اندرویدی میاقتدار از تعداد متعددی از گویشهای نرم افزارنویسی به کار گرفت. با این درحال حاضر، گوگل (Google) بسطدهندگان را به به کارگیری از گویش جاوا تشویق مینماید. اگرچه، گویش نرم افزارنویسی جاوا آیتم دعوا درین نوشتهیعلمی، دقیقاً شبیه با گویش جاوا در دیگر پلتفرمها وجود ندارد. در اینجا، یکسری تفاوتهای دقیق و خصوصیتهای متفاوتی وجود دارااست که یادگیری آن ها برای یک گسترشدهنده اندروید بسیار اصلی میباشد.
دراین نوشتهیعلمی، ما به معرفی اجمالی کاربرد لهجه اپنویسی جاوا در دنیای اندروید و خصوصیتهای آن میپردازیم. در راستای مطالب این نوشتهیعلمی، شما با مطالب تحت نیز طراحی اپلیکیشن در مشهد آشنا خواهید شد:
تفاوتهای جانور میان یک اپلیکیشن اندرویدی با یک نرمافزار جاوا در کامپیوتر
طریق استعمال از نرمافزارنویسی شیءگرا (Object Oriented Programming - OOP) برای اندروید
تعریف و تمجید رابط کاربری جاوا و به کارگیری از آن برای رابطه با قسمتهای دیگر یک نرمافزار
تمجید لبهنگاری و کیفیت همت آن ها برای ارائه داده ها مازاد درخصوص نصیبهای دیگر یک نرمافزار
شعور مطالب ارائهگردیده دراین نوشتهی علمی، نیاز به شناخت با دستکم یک گویش اپلیکیشننویسی شیءگرا دارااست. با اینکهاین فرمان تماماً ضروری وجود ندارد البته موجب ادراک خوب مفاهیم مشاجره گردیده می گردد.
جاوا و اندروید
نکته دیدنی درخصوص اندروید این میباشد کهاین پلتفرم از «جاوای محض» به کارگیری نمینماید. شاید این مورد مقداری تعجب آور به لحاظ رسد چون در شرایطی که شما کدهای یک نرمافزار کهن جاوا را با یک اپلیکیشن شبیه اندرویدی مقایسه فرمایید، یافت کردن تفاوتهای در بین این دو مشقت بار خواهد بود. با اینکه کدنویسی و گسترش یک نرم افزار اندرویدی به گونه ای شبیه با بسط جاوا میباشد، تشابههای جانور، در هنگام «کامپایل» (Compile) و اجرای نرم افزار ناگهان از دربین خواهد رفت. از اینرو، ادله مهم مواجه با یک دور و بر ناشناخته در هنگام فعالیت با اندروید، طرز مدیر اپلیکیشنهای اندرویدی در طی روند کامپایل کردن میباشد.
کلیک فرمایید
خصوصیت جالب و مهم جاوا، امکان «یک توشه کدنویسی فرمایید، همگیجا جاری ساختن نمائید» در آن میباشد. این گویش نرمافزارنویسی، تحت عنوان خط مشحلی برای پروسه هزینهبر تبدیل قابل انعطافافزارهای متعدد از یک پلتفرم به پلتفرم دیگر ارائه گردیدهاست. این امکان شگفتانگیز در مهندسی نرم افزار، به لطف شیوه روند کامپایل یک اپ جاوا قابلیت و امکانپذیر شد میباشد.
در زمان مراحل کامپایل در بخش اعظمی از گویشهای اپنویسی، کامپایلر (Compiler) به اپلیکیشن متصل گردیده و آن را با صرفه مینماید. بعد از آن، اپلیکیشن به کد ماشین تبدیل میشود. کد ماشین، به دستهای از امرهایی گفته میشود که یک کامپیوتر کارکشته به درک و اجرای آن ها در هنگام اجرای اپلیکیشن میباشد. اجرای کد ماشین سرعت بالایی دارااست البته به جهت مد لحاظ قرار دادن پلتفرم اجرای نرمافزار، دارنده محدودیت میباشد. در شرایطیکه تا به اکنون اندیشه کردهاید که چرا یک اپ نوشتهگردیده برای پلتفرم IOS در سیستماستدلال ویندوز ایفا نمیشود، این دستور یک کدام از دلایل آن میباشد.
در طرف مقابل، جاوا کوشش متفاوتی دارااست. جدای از قابلیت و امکان تبدیل یک نرم افزار به کد ماشین، کامپایلر جاوا، یک نرمافزار را به حد واسطی به اسم «بایتکد» (Bytecode) تبدیل مینماید. این شغل سبب ساز ساختوساز یکسری دستورهای شبیه با کد ماشین میگردد؛ با این تفاوت که به مکان اعمال در یک معماری معلوم، ایفا در یک ماشین مجازی (Virtual Machine) در لحاظ گرفته میگردد.
استعمال از ماشین مجازی بدان معناست که تا فرصت احضار شدن و تعبیروتفسیر امرهای بایتکد، اپ در پلتفرم صاحب خانه خویش به صدق جاری ساختن گردیده و سازش با پلتفرمهای دیگر نیز ضمانت میگردد. به همین استدلال، هنگامی که نرم افزار (Java Runtime Environment) را در کامپیوتر خویش نداشته باشید، بخش اعظمی از اپهای جاوا از شما درخواست مینمایند که آن را دانلود و نصب فرمایید. JRE، ماشین مجازی پیشفرض برای بخش اعظمی از پلتفرمها میباشد.
کدنویسی جاوا برای پلتفرم اندروید مختلف میباشد
کامپایل کردن یک اپلیکیشن برای اندروید، مسیری شبیه با تبدیل پوشههای جاوا به بایتکد را دنبال مینماید. وقتی که اپلیکیشن (متشکل از بایتکد) بر روی یک دستگاه نصب میگردد، مرحله دوم کامپایل در زمان روند نصب فیس می دهد. بایتکد نرمافزار به کد ماشین باصرفهگردیده برای دستگاه اندرویدی تبدیل میشود و سعی مجال اجرای نرم افزار را بهبود میبخشد. این مراحل با تیتر «کامپایل جلوتر از فرصت» یا این که (Ahead of Time - AOT) شناخته و قابلیت و امکان آن بوسیله «ماشین مجازی اندروید» (Android Runtime) مهیا گردیده است. معنا AOT، در اکثری از لهجههای اپلیکیشننویسی گزینه به کار گیری قرار می گیرد.
کلیک نمائید
کامپایل AOT، فقط در اندروید KitKat (ورژن 4.4) و ورژنهای فراتر قابل مشاهده میباشد البته امکان سازش با ورژنهای قبلی را نیز ارائه مینماید. ورژنهای ابتدایی اندروید از یک ماشین مجازی دیگر با تیتر «Dalvik» استعمال میکردند. Dalvik نیز مانند ART، با تولید تغییرو تحول و تبدیل بایتکد جاوا، آنها را به صورت خاصی تبدیل می کرد. این تغییرات متفاوت سودوری، به خواسته باصرفهسازی نرمافزار (اپلیکیشنهای دستگاههای اندرویدی معدود قدرتی که برای Dalvik پیاده سازی گردیده بودند) شکل میگرفت.
اگرچه، Dalvik برخلاف ART، بایتکد را تا مجال اجرای اپ به کد ماشین تبدیل نمیکرد. بهاین مراد، از رویکردی با تیتر «کامپایل درجا» (Just in Time - JIT) به کار گیری می شد. این روند بسیار مشابه به فرآیندی میباشد که دور و برهای مجازی جاوا در یک کامپیوتر به کارگیری مینمایند. هنگامی که قابلیت و امکان پروفایل کردن نرم افزار در طی اجرای آن، برای مقادیر معمول آیتم به کار گیری از بایتکد Dalvik مهیا شد، کوشش اندروید Froyo (ورژن 2.2) بهبود یافت. آنگاه این دستورها به وسیله Dalvik به صورت همیشگی به کد ماشین تبدیل شدند تا سرعت نرمافزار ارتقا یابد. دقت داشته باشید که کامپایل بر اساس ردیابی (Trace Based) در JIT، فقط مختص به جاوا وجود ندارد.
در شکل به کارگیری از هرکدام طریقهای کامپایل نرمافزار اندروید، تبدیل و تغییر و تحول بایتکد میباشد که منجر تفاوت کدنویسی اندروید و کدنویسی جاوای محض میشود. تغییرات بایتکد موجب محدودیت در امکان تبدیل و جابجایی نرم افزار میشود. در فیض، این فرمان شعار «یک توشه کدنویسی نمایید، کلیه جا اعمال فرمائید» را نفی مینماید. یک کدام از دیگر از اختلافات دربین اندروید و جاوا، دسترسی به کتابخانههای استاندارد میباشد. جاوا، قابلیت و امکان تبدیل و جابجایی بسیار بالایی داراست. ادله این دستور، اتکای جاوا بر گروهای از کتابخانههای استانداردشدهای میباشد که میتوانند در پلتفرمهای مختلفی به کارگیری شوند. برای مثال، میاقتدار از کتابخانههای کانال و رابط استفاده کننده «UI» اسم موفقیت. در واقع، اندروید زیرمجموعهای از قابلیت و امکانهای جاوا را مهیا مینماید و هر چیزی که در اندروید مهیا گردد، صرفا برای اندروید قابل به کارگیری میباشد.