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

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

این مقاله کل چرخه توسعه برنامه را پوشش می دهد. با هم یک بازی Tic-Tac-Toe ساده با یک صفحه می نویسیم (در سیستم عامل اندروید به آن Activity می گویند).

عدم تجربه توسعه جاوا نباید مانعی برای تسلط بر اندروید باشد. بنابراین، نمونه‌ها از ساختارهای خاص جاوا استفاده نخواهند کرد (یا تا حد امکان به حداقل می‌رسند). اگر به عنوان مثال PHP می نویسید و با اصول اساسی توسعه نرم افزار آشنا هستید، این مقاله برای شما بسیار مفید خواهد بود. به نوبه خود، از آنجایی که من در توسعه جاوا متخصص نیستم، می توان فرض کرد که کد منبع برای برچسب "بهترین شیوه ها برای توسعه جاوا" واجد شرایط نیست.

نصب برنامه ها و ابزارهای مورد نیاز

من ابزارهای لازم را لیست می کنم. 3 مورد از آنها وجود دارد:

  1. IDE با پشتیبانی از توسعه اندروید:
    • پلاگین Eclipse + ADT;
    • IntelliJ IDEA Community Edition.
    • پلاگین Netbeans + nbandroid;

برنامه های کاربردی به ترتیب مشخص شده در بالا نصب می شوند. نصب تمام IDE های لیست شده فایده ای ندارد (مگر اینکه در انتخاب مناسب مشکل داشته باشید). من از IntelliJ IDEA Community Edition استفاده می کنم، یکی از پیشرفته ترین IDE های جاوا که امروزه در دسترس است.

راه اندازی یک دستگاه مجازی

با راه اندازی AVD Manager و نصب بسته های اضافی (SDK نسخه های مختلف)، می توانید شروع به ایجاد یک دستگاه مجازی با پارامترهای لازم کنید. درک رابط نباید دشوار باشد.

لیست دستگاه

ایجاد یک پروژه

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

بنابراین، File->New Project:

با فشردن دکمه F6 پروژه مونتاژ، کامپایل و روی دستگاه مجازی راه اندازی می شود.

ساختار پروژه

اسکرین شات قبلی ساختار پروژه را نشان می دهد. از آنجایی که در این مقاله اهداف کاملاً عملی را دنبال می کنیم، فقط بر روی پوشه هایی تمرکز خواهیم کرد که در روند کار از آنها استفاده خواهیم کرد. این ها دایرکتوری های زیر هستند: ژنرال, پاسخو src.

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

پوشه res برای ذخیره منابعی مانند تصاویر، متون (از جمله ترجمه ها)، مقادیر پیش فرض، طرح بندی ها در نظر گرفته شده است.

src- این پوشه ای است که قسمت اصلی کار در آن انجام می شود، زیرا فایل هایی با کد منبع برنامه ما در اینجا ذخیره می شوند.

خطوط اول

به محض ایجاد Activity (صفحه برنامه)، متد onCreate() فراخوانی می شود. IDE آن را با 2 خط پر کرد:
super.onCreate(savedInstanceState); setContentView(R.layout.main);
متد setContentView (معادل this.setContentView) طرح xml را برای صفحه فعلی تنظیم می کند. در ادامه، طرح‌بندی xml را «طرح‌بندی» و صفحه‌نمایش را «فعالیت» می‌نامیم. طرح بندی در برنامه به صورت زیر خواهد بود:

TableLayout برای این برنامه ایده آل است. شناسه را می توان به هر منبعی اختصاص داد. در این حالت به TableLayout id = main_l اختصاص داده می شود. با استفاده از متد findViewById() می توانید به view دسترسی داشته باشید:
طرح بندی TableLayout خصوصی. // این یک ویژگی از کلاس KrestikinolikiActivity است void public onCreate(Bundle savedInstanceState) ( super.onCreate(savedInstanceState); setContentView(R.layout.main); layout = (TableLayout) findViewById(R.id.mainame)؛ )

حال باید متد buildGameField() را پیاده سازی کنیم. برای این کار باید یک فیلد به شکل ماتریس ایجاد کنید. این کار توسط کلاس Game انجام خواهد شد. ابتدا باید یک کلاس Square برای سلول ها و یک کلاس Player ایجاد کنید که اشیاء آن این سلول ها را پر کنند.

Square.java

بسته com.example; کلاس عمومی مربع ( پخش کننده خصوصی = تهی؛ پر کردن فضای خالی عمومی (بازیکن پخش کننده) (این. بازیکن = پخش کننده؛ ) بولین عمومی isFilled() (اگر (بازیکن != پوچ) (بازگشت درست؛) برگشت نادرست؛ ) عمومی پلیر getPlayer () (بازیکن برگشتی؛ ) )

Player.java

بسته com.example; کلاس عمومی Player ( نام رشته خصوصی؛ پخش کننده عمومی (نام رشته) ( this.name = نام؛ ) عمومی CharSequence getName() (بازگرداندن (CharSequence) نام؛ ))

تمام کلاس های برنامه ما در پوشه src قرار دارند.

Game.java

بسته com.example; کلاس عمومی بازی ( /** * فیلد */ فیلد مربع خصوصی؛ /** * سازنده * */ بازی عمومی() ( فیلد = مربع جدید؛ مربع تعداد = 0؛ // پر کردن فیلد برای (int i = 0، l = میدان.طول;

شروع بازی در سازنده KrestikinolikiActivity.
public KrestikinolikiActivity() ( game = new Game(); game.start(); // بعدا پیاده سازی خواهد شد)

متد buildGameField() از کلاس KrestikinolikiActivity. به صورت پویا سطرها و ستون ها را به جدول (فیلد بازی) اضافه می کند:
دکمه های خصوصی دکمه = دکمه جدید.
//(...) خلا خصوصی buildGameField() ( فیلد مربع = game.getField()؛ برای (int i = 0, lenI = field.length; i
خط 8 یک شی ایجاد می کند که رابط View.OnClickListener را پیاده سازی می کند. بیایید یک کلاس Listener تودرتو ایجاد کنیم. فقط از KrestikinolikiActivity قابل مشاهده خواهد بود.
Public class Listener View.OnClickListener را پیاده سازی می کند (int خصوصی x = 0؛ خصوصی int y = 0؛ public Listener(int x, int y) ( this.x = x; this.y = y; ) public void onClick (نمایش مشاهده) ( دکمه دکمه = (دکمه) نمایش؛ ) )
باقی مانده است که منطق بازی را پیاده سازی کنیم.

بازی کلاس عمومی ( /** * بازیکنان */ بازیکنان خصوصی؛ /** * فیلد */ فیلد مربع خصوصی؛ /** * بازی شروع شده است؟ */ بولین خصوصی شروع شده است؛ /** * بازیکن فعلی */ خصوصی Player activePlayer /** تعداد سلول های پر شده را می شمارد */ private int پر شده /** * * * * * * * * * عمومی بازی () = 0; // پر کردن فیلد برای (int i = 0, l = field.length; i

تعیین برنده
K.O پیشنهاد می کند که برنده در tic-tac-toe کسی است که X یا O را در خطی برابر با طول میدان به صورت عمودی یا افقی یا مورب ردیف کند. اولین فکری که به ذهن خطور می کند نوشتن روش هایی برای هر مورد است. من فکر می کنم الگوی زنجیره مسئولیت در این مورد به خوبی کار خواهد کرد. بیایید رابط را تعریف کنیم
بسته com.example; رابط عمومی WinnerCheckerInterface (بازکن عمومی checkWinner();)

از آنجایی که Game مسئولیت تعیین برنده را دارد، این رابط را پیاده سازی می کند. زمان ایجاد "خطوط" مجازی است، که هر کدام سمت خود را بررسی می کنند. همه آنها رابط WinnerCheckerInterface را پیاده سازی می کنند.

WinnerCheckerHorizontal.java

بسته com.example; کلاس عمومی WinnerCheckerHorizontal WinnerCheckerInterface (بازی خصوصی بازی؛ عمومی WinnerCheckerHorizontal(بازی) (این. بازی = بازی؛ ) عمومی چکWinner() (فیلد مربع = game.getField()؛ بازیکن currPlayer؛ بازیکن lastPlayer = تهی؛ برای (int) i = 0، len = field.length;

بسته com.example; کلاس عمومی WinnerCheckerVertical WinnerCheckerInterface را پیاده سازی می کند (بازی خصوصی بازی؛ عمومی WinnerCheckerVertical (بازی) (این. بازی = بازی؛ ) عمومی چکWinner() ( فیلد مربع = game.getField()؛ بازیکن currPlayer؛ بازیکن lastPlayer = null؛ برای (int i = 0، len = field.length;

WinnerCheckerDiagonalLeft.java

بسته com.example; کلاس عمومی WinnerCheckerDiagonalLeft WinnerCheckerInterface را پیاده سازی می کند (بازی خصوصی بازی؛ عمومی WinnerCheckerDiagonalLeft(بازی) (این. بازی = بازی؛ ) چک بازیکن عمومیWinner() ( فیلد مربع = game.getField()؛ بازیکن currPlayer؛ بازیکن lastPlayer = تهی؛ int successCo 1 برای (int i = 0، len = field.length؛ i

WinnerCheckerDiagonalRight.java

بسته com.example; کلاس عمومی WinnerCheckerDiagonalRight WinnerCheckerInterface را پیاده سازی می کند (بازی خصوصی بازی؛ عمومی WinnerCheckerDiagonalRight(بازی) (این. بازی = بازی؛ ) عمومی چکWinner() (فیلد مربع = game.getField(); CurrPlayer بازیکن؛ بازیکن lastPlayer = تهی؛ int موفقیتCo 1 برای (int i = 0، len = field.length؛ i
بیایید آنها را در سازنده Game مقداردهی کنیم:
//(....) /** * «قضات» =). بعد از هر حرکت آنها * را بررسی می کنند تا ببینند آیا برنده ای وجود دارد */ WinnerCheckerInterface winnerCheckers خصوصی.
//(....) عمومی بازی() ( //(....) winnerCheckers = WinnerCheckerInterface جدید؛ winnerCheckers = new WinnerCheckerHorizontal(this)؛ winnerCheckers = new WinnerCheckerVertical(this); winnerCheckers = new WinnerCheckerDiagonalLeft(this); winnerCheckers = new WinnerCheckerDiagonalRight(this);
پیاده سازی checkWinner():
عمومی پخش کننده checkWinner() (برای (WinnerCheckerInterface winChecker: winnerCheckers) (بازیکن برنده = winChecker.checkWinner(؛ if (برنده != تهی) (برنده برگشت؛) ) برنده صفر؛ )
ما بعد از هر حرکت برنده را بررسی می کنیم. بیایید کدی را به متد onClick() کلاس Listener اضافه کنیم
public void onClick(نمایش) (دکمه دکمه = (دکمه) نمایش؛ بازی g = بازی؛ بازیکن بازیکن = g.getCurrentActivePlayer(); if (makeTurn(x, y)) ( button.setText(player.getName()) ; ) برنده بازیکن = g.checkWinner (اگر (برنده != تهی) (gameOver(برنده);) اگر (g.isFieldFilled())
خصوصی void gameOver(بازیکن) ( متن CharSequence = "بازیکن \"" + player.getName() + "\" برد!"؛ Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); game.reset () refresh();
برای جاوا، gameOver (پخش کننده) و gameOver() روش های متفاوتی هستند. با استفاده از Builder Toast.makeText، می توانید به سرعت یک اعلان ایجاد و نمایش دهید که وضعیت فیلد را به روز می کند:
Private void refresh() (فیلد مربع = game.getField(); برای (int i = 0، len = field.length; i

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

ویدیوی برنامه تمام شده

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

ایجاد برنامه ها

قبل از اینکه خودتان برنامه بنویسید، باید تمام اجزای لازم برای این کار را مطالعه کنید:

  1. زبان.
  2. محیط توسعه خود را انتخاب کنید. همچنین به جزئیات زبان و همچنین محصولات نرم‌افزاری که در آن برنامه‌ها ایجاد خواهند شد، خواهیم پرداخت. اما ابتدا اجازه دهید کمی در مورد محیط های توسعه صحبت کنیم. به طور متعارف، آنها را می توان به سه جزء تقسیم کرد:
  • گرافیکی;
  • معمولی؛
  • آنلاین

در مورد ایجاد برنامه ها باید توجه داشت که اکنون ارائه ایده ای که قبلاً کار نشده است دشوار است. بنابراین، در صورت بروز مشکل یا صرفاً در صورت کمبود دانش، باید سوء تفاهم ایجاد شده را به درستی تدوین کرد و به برنامه نویسان با تجربه تر مراجعه کرد. آنها می توانند با مشاوره سازنده به شما در ایجاد برنامه ها کمک کنند.

برنامه ها به چه زبانی نوشته می شوند؟

جاوا برای این اهداف استفاده می شود. لازم به ذکر است که این یک زبان برنامه نویسی نسبتاً پیچیده است. اما برای ایجاد برنامه های کاربردی خود نیازی به دانستن کامل آن ندارید. دانش و مهارت های اولیه در کار با اطلاعات مرجع برای دریافت پاسخ سوالات شما کافی خواهد بود. علاوه بر این، تنظیمات پیش‌فرض خاصی وجود دارد که با استفاده از آنها می‌توانید مراحلی را برای ایجاد یک برنامه بدون مشکل مهم انجام دهید. سپس برنامه نویسی برای اندروید تبدیل به یک لذت می شود.

انتخاب یک محیط توسعه منظم

Eclipse و Android SDK به عنوان بزرگترین بازیکنان شناخته می شوند. هر دو آزاد هستند. در مجموع باید توجه داشت که این محیط های توسعه رقبای جدی هستند و هر کدام دارای نقاط قوت و ضعف متعددی هستند. هر یک از آنها ارزش مطالعه دارد. به طور جداگانه، اجازه دهید کمی روی یک جنبه از Android SDK - شبیه ساز تمرکز کنیم. این برنامه ای است که وانمود می کند گوشی یا تبلتی است که روی اندروید اجرا می شود. شبیه ساز به راحتی روی یک کامپیوتر معمولی اجرا می شود و مانند یک دستگاه تلفن همراه استاندارد روی دسکتاپ به نظر می رسد. تنها یک ویژگی وجود دارد - با استفاده از ماوس و صفحه کلید کنترل می شود و نه با انگشت شما. در شبیه ساز، می توانید عملکرد برنامه را برای پسوندهای مختلف صفحه نمایش و همچنین در نسخه های مختلف سیستم عامل موبایل اندروید بررسی کنید. بنابراین، مهم نیست که چقدر برای شما عجیب به نظر می رسد، هنگام توسعه برنامه های کاربردی با هدف اندروید، داشتن یک گوشی اصلا ضروری نیست.

برای توسعه اپلیکیشن خود به چه چیزی نیاز دارید؟

محیط های توسعه گرافیکی

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

  1. در دسترس بودن یک رابط بصری.
  2. با استفاده از منطق عملیاتی روشن
  3. امکان ایجاد عناصر در حالت های گرافیکی و کد.
  4. در دسترس بودن اسناد برای کار با محیط توسعه و یک انجمن پشتیبانی.

محیط توسعه آنلاین

آنها می توانند طیف گسترده ای از عملکرد را در یک نقطه دسترسی ساده - اینترنت - ارائه دهند. "محیط توسعه آنلاین" احتمالاً همه چیز را می گوید. اگرچه باید روشن شود که تحت اندروید هنوز کار آسانی نیست. بنابراین، سخت‌ترین کار پیاده‌سازی تیراندازها و برنامه‌های کاربردی با پیچیدگی مشابه خواهد بود. اما برنامه هایی با قالب بندی متن و انتقال داده ها آسان هستند.

نتیجه گیری

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

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

برنامه نویسی اندروید برای مبتدیان. قسمت 1
تلفن های هوشمند و تبلت های اندرویدی به طور فزاینده ای در کیف و جیب ما یافت می شوند و برنامه نویسی اندروید نیز محبوبیت بیشتری پیدا می کند. این یک پلتفرم توسعه عالی است - API به خوبی مستند شده و استفاده از آن آسان است، و ایجاد چیزی که بتوانید روی گوشی هوشمند خود اجرا کنید بسیار سرگرم کننده است. در ابتدا، با ایجاد و آزمایش کد با استفاده از شبیه ساز در رایانه شخصی لینوکس، می توانید بدون آن کار کنید. اولین قسمت از یک مقدمه دو قسمتی نحوه ایجاد یک برنامه تایمر ساده را توضیح می‌دهد و به شما مقدمه‌ای با API اندروید می‌دهد. این دوره درک پایه ای از جاوا، XML و فن آوری های برنامه نویسی را در نظر می گیرد، اما حتی اگر درک بسیار مبهمی از آن دارید، با خیال راحت امتحان کنید.
شروع کار و محیط توسعه
کمی در مورد نسخه ها: آخرین نسخه اندروید 4.2 (Jelly Bean) است، اما همانطور که از این نمودار می بینید، هنوز فراگیر نشده است. بهتر است توسعه را روی یکی از نسخه‌های 4.0 (Ice Cream Sandwich) یا 2.3 (Gingerbeard) شروع کنید، به خصوص که نسخه‌های Android با نسخه‌های قبلی سازگار هستند (یعنی کد شما برای نسخه 2.3 روی 4.2 کار می‌کند)، و برنامه‌های توسعه‌یافته برای نسخه‌های بعدی. همیشه روی یک قدیمی تر کار نمی کند. کد نشان داده شده در اینجا باید روی نسخه های 4.0 و 2.3 کار کند.
ساده ترین راه برای دریافت یک محیط توسعه، نصب Android Bundle است که می توانید آن را دانلود کنید. همچنین به JDK 6 (نه فقط JRE) نیاز خواهید داشت. فراموش نکنید که اندروید با gcj سازگار نیست. اگر قبلاً از Eclipse یا IDE دیگری استفاده می‌کنید، می‌توانید آن را برای Android تنظیم کنید. نحوه انجام این کار توضیح داده شده است. اکنون با استفاده از Eclipse یا از خط فرمان پروژه ای به نام Countdown ایجاد کنید. تنظیمات را روی BuildSDK 4.0.3 و حداقل SDK 2.2 قرار دادم و (در Eclipse) از قالب BlankActivity استفاده کردم.
اولین پروژه من برای اندروید: رابط
اولین برنامه ما برای اندروید یک تایمر خواهد بود که پس از فشار دادن یک دکمه، شمارش معکوس را از 10 ثانیه نشان می دهد. قبل از نوشتن کد، باید یک رابط ایجاد کنیم - آنچه کاربر هنگام راه اندازی برنامه ما می بیند. شما باید res/layout/activity_countdown.xml را باز کنید و یک الگوی XML ایجاد کنید - با استفاده از ویرایشگر Eclipse یا یک ویرایشگر متن/XML، موارد زیر را وارد کنید: