فونت زيبا سازفونت زيبا سازفونت زيبا سازفونت زيبا سازفونت زيبا سازفونت زيبا سازفونت زيبا ساز

لطفا از تمام مطالب دیدن فرمایید.

تماشای برخط [لینک مستقیم] فیلم آموزشی «قالب» ( لینک دانلود در ادامه مطلب )

زیر نویس انگلیسی [English Subtitle] ( لینک دانلود در ادامه مطلب )

دریافت نسخه‌ی pdf این آموزش [1.61 مگابایت] ( لینک دانلود در ادامه مطلب )

تو آموزش قبل با سبک‌های نمایش آشنا شدیم، قالب هم یه چیزی تو همون مایه‌هاست، تفاوتش اینه که قالب به کل یه فعالیت (activity) یا کل یه پروژه اعمال می‌شه ولی سبک‌نمایش فقط به یه شی اعمال می‌شه.

۱. یه پروژه جدید بسازید و فایل activity_main.xml (در زیرشاخه res->layout) رو باز کنید، (اگر همین الان پروژه رو ساختید خودش این فایل رو براتون باز می کنه). از ستون سمت چپ چند تا شی بندازید تو صفحه (تا وقتی قالب رو عوض می‌کنید متوجه تغییرات بشید). اندروید خودش به صورت پیش‌فرض، یک عالمه قالب مختلف برای صفحات فعالیت و پروژه داره، از منوی بالا اونجا که نوشته app theme کلیک کنید، یه فهرست براتون باز می‌شه که قالب‌ها رو دسته‌بندی کرده، می‌تونید هر کدوم از قالب‌ها رو امتحان کنید و تاثیرش رو روی صفحه‌تون ببینید.

مثلا از گزینه Theme، قالب Theme.Translucent رو انتخاب کنید، در این حالت شما هیچ پس‌زمینه‌ای ندارید و همه اشیائی که در صفحه می‌گذارید روی پس‌زمینه خود گوشی نمایش داده می‌شه (یا هرچیزی که قبلش اجرا شده باشه)

حالا Theme.Dialog رو انتخاب کنید. این قالب همون‌طور که از اسمش پیداست، مربوط به محاوره است، مثلا دیدید تو بعضی برنامه‌ها وقتی می‌خواید از برنامه خارج بشید یه صفحه کوچکتر یهو وا می‌شه می‌پرسه «آیا واقعا می‌خواید خارج بشید؟»، در اون مواقع از این قالب استفاده شده.

۲. اگر قالبی رو همون‌طور که تو مرحله‌ی قبل گفته شد انتخاب کنید، در واقع به برنامه‌ی شما اعمال نمی‌شه، برای اینکه قالب برنامه‌تون رو تغییر بدید باید AndroidManifest.xml رو باز کنید و به زبانه Application برید. جایی که نوشته Theme جلوش دکمه Browse رو بزنید و بعد هم از بالاش دکمه System Resources و قالب مورد نظرتونو انتخاب کنید.

می‌تونید همین کارو از قسمت ویرایش متنی انجام بدید، اونجایی که برچسب application وجود داره، یه خط هست که نوشته android:Theme که مساوی قالبی که مدنظرتون هست قرار بدید.

توجه دارید که می‌شه فقط قالب یه فعالیت (activity) رو تغییر بدید که مشابه همین کارو (در قسمت ویرایش متنی) برای داخل برچسب اون فعالیت انجام می‌دید.

حالا برنامه رو تو شبیه ..............................................


موضوعات مرتبط: قالب (Theme) ، ،
برچسب‌ها:

ادامه مطلب
تاريخ : دو شنبه 5 آبان 1393برچسب:, | 8:4 | نویسنده : کـــــوچـــــولـــــو |

تماشای برخط [لینک مستقیم] فیلم آموزشی «سبک‌های نمایش» ( لینک دانلود در ادامه مطلب )

زیر نویس انگلیسی [English Subtitle] ( لینک دانلود در ادامه مطلب )

دریافت نسخه‌ی pdf این آموزش [1.15 مگابایت] ( لینک دانلود در ادامه مطلب )

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

۱.برای شروع یه پروژه جدید بسازید و فایل activity_main.xml (در زیرشاخه res->layout) رو باز کنید، (اگر همین الان پروژه رو ساختید خودش این فایل رو براتون باز می کنه) روی متن Hello world کلیک کنید، حالا می‌خوایم یه سری از ویژگی‌هاشو تغییر بدیم، مثلا اندازه‌اش، فونت‌اش و رنگش. من این تغییرات رو دادم: رنگ f00 اندازه 25sp فونت serif و text style: bold

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

برای ساختن یه سبک نمایش، فایل styles.xml (زیر شاخه res->values) رو باز کنید. قسمت متنی رو از روی زبانه‌ی پایین انتخاب کنید.

۳.همون طور که می‌بینید قبلا دوتا سبک نمایش (style) تو این فایل تعریف شده، حالا ما هم می‌خوایم یکی دیگه تعریف کنیم، هر سبک نمایش اول احتیاج به یه اسم داره، مثلا من می‌ذارم ekhtar، بعد هم باید از یک نوع سبک نمایش ارث‌بری کنیم، چون در غیر اینصورت باید تمامی ویژگی های اون سبک رو تعریف و مقداردهی کنیم که عملا کار عقلانی نیست چون هر شی‌ای هزاران ویژگی داره که ممکنه ما فقط بخوایم یه موردشو تغییر بدیم. از اونجایی که الان می‌خوایم سبک نمایش متن رو گسترش بدیم بهتره به عنوان والد (parent) از ظاهرمتن ...........................................


موضوعات مرتبط: سبک‌های نمایش (styles) ، ،
برچسب‌ها:

ادامه مطلب
تاريخ : دو شنبه 5 آبان 1393برچسب:, | 8:0 | نویسنده : کـــــوچـــــولـــــو |

تماشای برخط [لینک مستقیم] فیلم آموزشی «فهرست‌های سفارشی» ( لینک دانلود در ادامه مطلب )

زیر نویس انگلیسی [English Subtitle] ( لینک دانلود در ادامه مطلب )

دریافت نسخه‌ی pdf این آموزش [757 کیلوبایت] ( لینک دانلود در ادامه مطلب )
 

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

۱.مثل آموزش قبل یه پروژه با یک فهرست ساده بسازید در ادامه می‌خوایم برای هر ردیف از فهرستمون یه عکس نشان اون دانشگاه رو هم کنار اسمش بندازیم. پس اول از همه تصاویر مورد نظر رو به پروژه مون در زیرشاخه res و پوشه drawable-hdpi اضافه می‌کنیم، فایل عکس‌هایی که من استفاده کردم رو می‌تونید از اینجا دانلود کنید. وارد کردنش به پروژه هم کار آسونیه، هرجایی که عکسهاتون هست کپی کنید و بعد روی پوشه drawable-hdpi راست کلیک کنید و paste.

۲.اولین کاری که باید بکنیم اینه که یه طرح‌بندی برای هر ردیف از فهرست درست کنیم. تا با توجه به اون اندروید اطلاعتمون رو در هر ردیف بدونه چطور نمایش بده. پس احتیاج داریم تا یه فایل xml برای طرح‌بندی‌مون بسازیم. روی فولدر layout (در res) راست کلیک کنید. گزینه New و other رو انتخاب کنید. (این تصویر) بعد هم از زیرشاخه Android گزینه Android XML Layout File رو انتخاب کنید و براش اسم بذارید من اسمشو می‌ذارم redife_fehrest.

۳. خوب اولین چیزی که هر ردیف می‌خوایم داشته باشه یه تصویره، پس یه نمای‌تصویر (imageView) در فایل تازه ساخته شدمون می‌ذاریم. نمای‌تصویر رو می‌تونید از ستون سمت چپ از بخش Images & Media بکشید و روی صفحه رها کنید. همین که رهاش می‌کنید یه پنجره باز می‌شه که ازتون می‌خواد منبع عکس رو مشخص کنید، و اگه به درستی تصاویرتون رو وارد کرده باشید، می‌بینیدشون.

۴.هر ردیف قراره یه متن داشته باشه که نام دانشگاه درش نوشته بشه، پس یه نمای‌متنی (TextView) هم وارد صفحه می‌کنیم و کنار نمای‌تصویر می‌ذاریم. الان تصویرمون در کنار متن اینطوریه که به نظر خیلی مطلوب نمی‌یاد

می‌تونیم یه کم ویژگی‌های متن رو تغییر بدیم، مثه اندازه، فاصله از بالای صفحه و سمت راستش و ...

۵.به فایل MainActivity.java (در src) می‌ریم. در آموزش قبل یک آرایه‌ی‌وفق‌دهنده درست کرده بودیم:

setListAdapter (newArrayAdapter<String>(this, 
android.R.layout.simple_list_item_1,
getResources ().getStringArray(R.array.daneshgah)));

حالا باید برای این فهرست سفارشی‌مون خودمون کلاس وفق‌دهنده (Adapter) بسازیم. پس ........................................................


موضوعات مرتبط: فهرست‌های سفارشی (Customized Lists) ، ،
برچسب‌ها:

ادامه مطلب
تاريخ : دو شنبه 5 آبان 1393برچسب:, | 7:58 | نویسنده : کـــــوچـــــولـــــو |

تماشای برخط [لینک مستقیم] فیلم آموزشی «فهرست‌ها» ( لینک دانلود در ادامه مطلب )

زیر نویس انگلیسی [English Subtitle] ( لینک دانلود در ادامه مطلب )

دریافت نسخه‌ی pdf این آموزش [719 کیلوبایت] ( لینک دانلود در ادامه مطلب )

یکی از مواردی که تو خیلی از برنامه می بینید فهرست هست. فهرست در واقع جایی به کار می‌ره که شما می‌خواید از بین یه سری گزینه تو فهرست یکی رو انتخاب کنید مثه انتخاب نام کشور خودتون در بین همه کشورها یا اینکه یه سری اطلاعات رو قراره تو قالب یک فهرست مشاهده کنین.

۱.خوب برای شروع یه پروژه اندروید بسازید. (تصویر متحرک ساختن پروژه) و در فولدر res روی فولدر values راست کلیک کنید و New بعد هم Other.

حالا از زیرساخه Android روی Android XML Values Files کلیک کنید و یه اسمی براش بذارید. من اسمشو می‌ذارم daneshgah.

۲.فایلی که ساختید براتون باز می‌شه، روی زبانه‌ی daneshgah.xml کلیک کنید تا خود فایل رو براتون باز کنه و این آرایه‌ی رشته‌ها رو توش وارد کنید. ما قراره این ............................


موضوعات مرتبط: فهرست‌ها (Lists) ، ،
برچسب‌ها:

ادامه مطلب
تاريخ : دو شنبه 5 آبان 1393برچسب:, | 7:55 | نویسنده : کـــــوچـــــولـــــو |

تماشای برخط [لینک مستقیم] فیلم آموزشی «دکمه» ( لینک دانلود در ادمه مطلب )

زیر نویس انگلیسی [English Subtitle] ( لینک دانلود در ادمه مطلب )

دریافت نسخه‌ی pdf این آموزش [325 کیلوبایت] ( لینک دانلود در ادمه مطلب )

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

۱. اول یه پروژه‌ی اندروید بسازید. (تصویر متحرک ساختن پروژه) بعد می‌تونیم در فایل activity_main.xml (در res->layout) از قسمت Palette انواع مختلف دکمه‌ها رو امتحان کنیم، الان اونی که روش نوشته off رو بکشید و روی صفحه بندازید.

 

، این نوع دکمه برای خاموش روشن کردن تنظیمات دلخواه به کار می ره و این طوریه toggle button

شما می‌تونید به راحتی ظاهرش رو تغییر بدید و مناسب برنامه‌تون بکنید و می‌بینید که چقدر کار رو ساده کرده.

از انواع دیگه‌ی دکمه، دکمه‌ی رادیویی (radio) و دکمه‌ی علامت‌صحیح (checkbox) هستند که می‌تونید از تو ............................


موضوعات مرتبط: دکمه‌ها ، ،
برچسب‌ها:

ادامه مطلب
تاريخ : دو شنبه 5 آبان 1393برچسب:, | 7:52 | نویسنده : کـــــوچـــــولـــــو |

تماشای برخط [لینک مستقیم] فیلم آموزشی «واحدها» ( لینک دانلود در ادامه مطلب )
زیر نویس انگلیسی [English Subtitle] ( لینک دانلود در ادامه مطلب )

دریافت نسخه‌ی pdf این آموزش [641 کیلوبایت] ( لینک دانلود در ادامه مطلب )

خوب تا الان به طور پیش فرض از صفحه‌بندی نسبی (RelativeLayout) برای واسط کاربری پروژه‌هامون استفاده می‌کردیم. حالا می‌خوایم با انواع صفحه‌بندی آشنا بشیم.

۱.یه پروژه جدید در ایکلیپس بسازید و از فولدر res به زیر شاخه layout برید و activity_main.xml رو باز کنید. وقتی از منوی پایین روی activity_main.xml کلیک می‌کنیم و به کد مربوط به این فایل می‌ریم، می‌بینیم که در اولین خط نوع صفحه‌بندی تعیین شده.

۲.صفحه‌بندی نسبی که به طور پیش‌فرض برای تمام پروژه‌های اندروید قرار داره، بگونه‌ای که ما می‌تونیم، نسبت به دیواره‌های اطراف یا اشیائی که در صفحه قرار دارند، اشیا جدید رو قرار بدیم، الان همون متنی که تو صفحه هست رو حذف کنید و مثلا یه دکمه می‌خوایم به صفحه اضافه کنیم، وقتی دکمه رو از منوی سمت چپ می‌کشیم، هرجایی در صفحه که بخوایم قرارش بدیم، به طور نسبی مشخص می‌کنه اون دکمه چه وضعیتی با دیواره‌های اطراف داره، و بعد اون رو جایی که به نظرمون مناسبه رها می‌کنیم. (مثلا ۹۰ dp از بالا و ۹۰ dp از چپ فاصله داشته باشه) حتی وقتی دکمه رو روی صفحه رها می‌کنیم، هنوز برامون مشخص می‌کنه که اندازه‌های ما نسبت به دیواره‌های سمت چپ و بالاست (با دو تا فلش سبز رنگ)

۳.حالا بیاید یه RadioButton رو به صفحه اضافه کنیم، می‌تونیم طوری تنظیمش کنیم که نسبت اون رو با دکمه‌ای که قبلا اضافه کرده بودیم بسنجیم و قرارش بدیم. الان دکمه‌ی قبلی و این radioButton به عنوان یک مجموعه در نظر گرفته می‌شن، چون جای قرار گرفتن‌شون نسبت به هم سنجیده شده، حالا اگه جای دکمه‌ی اولی رو تغییر بدیم، radioButton هم به تبعیت از اون تغییر می کنه. (همین طور اگه radioButton.........................


موضوعات مرتبط: صفحه‌بندی (layout) ، ،
برچسب‌ها:

ادامه مطلب
تاريخ : دو شنبه 5 آبان 1393برچسب:, | 7:48 | نویسنده : کـــــوچـــــولـــــو |

تماشای برخط [لینک مستقیم] فیلم آموزشی «واحدها» ( لینک دانلود در ادامه مطلب )

زیر نویس انگلیسی [English Subtitle] ( لینک دانلود در ادامه مطلب )

دریافت نسخه‌ی pdf این آموزش [352 کیلوبایت] ( لینک دانلود در ادامه مطلب )

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

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

از فولدر res زیر شاخه layout و activity_main.xml رو باز می‌کنیم و محیط گرافیکی اون برامون باز می‌شه. به طور پیش‌فرض صفحه‌بندی نسبی (RelativeLayout) برای همه پروژه‌ها در نظر گرفته شده. حالا اگه روی activity_main.xml کلیک کنیم می بینیم که در اولین خط نوشته RelativeLayout یعنی نوع صفحه بندی نسبی است.

۲.حداقل تنظیماتی که هر شی در اندروید نیاز داره، ارتفاع و عرض در صفحه‌بندیه. مثلا در قسمت صفحه‌بندی نسبی نوشته :

یعنی عرض و ارتفاع صفحه بندی به صورتی باشه که تمام فضای والد خودش رو پر کنه (fill_parent) یعنی تمام صفحه رو بپوشونه.

حالا می‌تونیم به قسمت گرافیکی activity_main.xml بریم و اون متن رو حذف کنیم و از منوی سمت چپ یه دکمه روی صفحه بکشیم و رها کنیم. وقتی به قسمت کد activity_main.xml می‌ریم می‌بینیم که اون هم برای خودش ارتفاع و عرض داره که با عبارت «wrap_content» پر شده، به این معنی که فقط به همون اندازه که نیاز داره، فضا اشغال می‌کنه.

android:layout_width="wrap_content"
android:layout_height="wrap_content"

۳.برای دیدن مشخصات دکمه‌ای که ایجاد کردیم، از منوی سمت راست properties رو انتخاب می‌کنیم (اگه منوی properties رو ندارید، از منوی بالای ایکلیپس روی window بعد show view و other کلیک کنید و در زیرشاخه General گزینه properties رو انتخاب کنید تا براتون پنجره اش باز بشه و اگه دلتون بخواد می‌تونید اونو در سمت راست بذارید) این منو به ما اجازه می‌ده مشخصات هر چیزی که در قسمت گرافیکی انتخاب کردیم رو تغییر بدیم. الان می‌تونید رو دکمه‌ای که تو شکل مشخص کردم (پر کردن ارتفاع: toggle fill height) کلیک کنید تا بینید که در قسمت توضیحات درباره ارتفاع دکمه نوشته شده : match_parent به این معنی که طول اون شی رو انقدر اضافه می‌کنه تا به اندازه ........................................


موضوعات مرتبط: واحدهای اندازه‌گیری ، ،
برچسب‌ها:

ادامه مطلب
تاريخ : دو شنبه 5 آبان 1393برچسب:, | 7:44 | نویسنده : کـــــوچـــــولـــــو |

تماشای برخط [لینک مستقیم] فیلم آموزشی «اشکال زدایی برنامه» ( لینک دانلود در ادامه مطلب )

زیر نویس انگلیسی [English Subtitle] ( لینک دانلود در ادامه مطلب )

دریافت نسخه‌ی pdf این آموزش [1.89 مگابایت] ( لینک دانلود در ادامه مطلب )

تابحال تو دو تا از پست ها بهتون نشون داده شده که چجوری از DDMS برای مشاهده واقعی گزارشات ثبت شده (log) مربوط به برنامه که ناشی از دستگاهتون یا شبیه‌سازتونه، استفاده کنید. این کار بهتون کمک میکنه که بتونید خطاهای برنامه‌تونو رفع کنید یا فقط ببینید چه اتفاقی داره در حال اجرا می‌یفته.

در این مطلب می‌خوایم یه مقدار بیشتر به روش‌های خطایابی های قدیمی بپردازیم.

1. اول یه پروژه جدید ایجاد کنید.

2. میریم سراغ فولدر res بعد layout ، فایل activity_main.xml رو باز می‌کنیم، از قسمت pallette یه TextViewو Button و EditText می‌کشیم میاریم رو صفحه. البته TextView معمولا به صورت پیش فرض هست(همون HelloWord).

و برنامه رو ذخیره می‌کنیم.

3. حالا اگر بخوایم برنامه مونو اشکال زدایی کنیم، باید یه چیزی به manifest اضافه کنیم که اجازه این کارو بهمون بده.

پس فایل Androidmanifest.xml رو باز می‌کنیم و رو زبانه Application کلیک می‌کنیم.

می‌تونیم مشخصه‌ی debuggable رو همون بالا ببینیم. اگر بخوایم برنامه‌مونو به اشکال زدای ایکلیپس متصل کنیم، باید این مشخصه رو فعال(true) کنیم.

 

۴. می‌خوایم تو فایل جاوای برنامه مون اعلام کنیم که در صورت فشردن دکمه چیکار کنه. پس با این کد یه نمونه از دکمه می‌سازیم و به دکمه‌ای که قبلا رو صفحه گذاشته بودیم متصل می‌کنیم.

Button dokme =(Button)findViewById(R.id.button1);

و بعد تابعی که قراره موقع کلیک دکمه صدا زده بشه رو می‌سازیم.

dokme.setOnClickListener(newOnClickListener(){@Overridepublicvoid onClick(View v){// TODO Auto-generated method stub	}});

مراحل نوشتن با تصاویر متحرک

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

LogCat
۶. پس به فایل جاوا برمی‌گردیم. اینجا از کلاس Log که تو بسته ی android.util هست، استفاده می‌کنیم.

تو این کلاس چندتا تابع وجود داره که می‌تونیم ازشون برای تهیه گزارش از هرچیزی تو LogCat استفاده کنیم. مثلا تابع d یه پیغام اشکال زدایی ارسال می‌کنه و ورودی‌هاش یه برچسب(tag) و یه پیغام(msg) هست. البته اگر بخوایم یه استثنایی رو هم گزارش کنیم، میتونیم یه شیء throwable رو به عنوان ورودی بهش بدیم.

همچنین تابع e رو داریم که برای گزارش استثناء بکار می‌ره، تابع i یه پیغام اطلاعاتی و تابع v پیغام طولانی رو گزارش می‌کنه. w هم برای اخطاره. و اما جالب ترین چیزی که اینجا وجود داره، wtf هستش که مخفف اینه: What a Terrible Failure یعنی چه خرابی وحشتناکی و بیانگر چیزیه که انتظار نداشتیم تو سیستم اتفاق بیفته.

توابع مربوط به Log

حالا ما می‌خوایم از تابع d استفاده کنیم. تو قسمت tag هر چیزی می‌تونه باشه، فقط باید یه جوری باشه که بتونیم از بین گزارشای دیگه توی LogCat تشخیصش بدیم. من اینجا با حروف بزرگ، سه بار می‌نویسم A. به عنوان پیغام هم اعلام می‌کنم که دکمه کلیک شده.

publicvoid onClick(View v){// TODO Auto-generated method stubLog.d("AAA","dokme feshorde shode");}

7. کاری که من میخوام انجام بدم اینه که یه نقطه توقف (break point) به قطعه کد بالا اضافه کنم، بطوریکه اجرای برنامه رو تو اون نقطه متوقف کنه و به ما اجازه اشکال زدایی (debug) بده. به ستونی که سمت چپ کدتون هست توجه کنید. روی اون ستون، دقیقا روبروی خط سوم، دوبار کلیک کنید تا یه break point ایجاد بشه. مطمئنا هر کدوم از شما که قبلا کدش رو دیباگ کرده، این کارو انجام داده.

 

و بعد اون علامت دیباگ بالای صفحه رو میزنیم.
و گزینه اول، یعنی Android Application رو انتخاب می‌کنیم.

۸. تو شبیه‌ساز اول یه پیغام نشون میده مبنی بر اینکه منتظر اشکال زدا (Debugger) بوده.

در واقع منتظر اشکال زدای ایکلیپس بوده که به برنامه‌مون متصل شه. یه کمی صبر کنید متصل می‌شه.
وقتی رو دکمه ای که ساختیم کلیک کنیم، میبینیم که خودش ما رو می‌بره به قسمت debug توی ایکلیپس.

البته بسته به اینکه قبلا رو ایکلیپس چه کارایی انجام دادید، ممکنه یه پیغام نشون بده و ازتون بپرسه که آیا میخواید به قسمت اشکال زدا (debug) برید یا نه؟ که فقط کافیه بله رو بزنید.

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

ستون Tag تو LogCat در واقع نشون دهنده‌ی اینه که کدوم فرایند، یا کدوم برنامه این پیغام رو ارسال کرده.

۱۰. یه چیز دیگه که باید درمورد LogCat بهش توجه کنیم، اینه که مقدار عظیمی از اطلاعات رو، درمورد هر اتفاقی که تو دستگاه می‌افته، گزارش می‌کنه. ولی اگه بخوایم که فقط اطلاعات مربوط برنامه مون گزارش بشه چی؟
کاری که باید انجام بدیم اینه که یه فیلتر تنظیم کنیم. پس روی علامت که اون بالاست، کلیک می‌کنیم. و من اسم فیلترمو میذارم A و بهش میگم اون گزارش هایی رو نشون بده که با برچسب AAA علامت گذاری شدن.

 

و بعد مشاهده میکنید
.....................................................


موضوعات مرتبط: اشکال زدایی (debug) برنامه ، ،
برچسب‌ها:

ادامه مطلب
تاريخ : سه شنبه 29 مهر 1393برچسب:, | 8:26 | نویسنده : کـــــوچـــــولـــــو |

تماشای برخط [لینک مستقیم] فیلم آموزشی «درک امنیت و اجازه‌ها» ( لینک دانلود در ادامه مطلب )

زیر نویس انگلیسی [English Subtitle] ( لینک دانلود در ادامه مطلب )

دریافت نسخه pdf این آموزش [حجم ۶۶۱ کیلوبایت] ( لینک دانلود در ادامه مطلب )

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

پس بذارید یه برنامه رو بررسی کنیم که بطور مشخص قراره باهاش وضعیت wi-fi دستگاه رو بررسی کنیم. می‌خوایم بدونیم که آیا wifi اتصال داره یا نه؟ یا در واقع آیا کاربر میتونه از طریق wifi به اینترنت وصل بشه یا نه؟

 

۱. اول یه پروژه جدید ایجاد می‌کنیم و به کلاس MainActivity.java می‌ریم.

۲.کاری که قراره انجام بدیم اینه که تو تابع onCreate تلاش کنیم به وضعیت wifi دسترسی داشته باشیم. در اینجا نیاز به ساختن یه نمونه از کلاس ConnectivityManager داریم که من اسمشو به اختصار، conman گذاشتم.

هر وقت نیاز داریم که سرویسی رو از سیستمی بگیریم، باید درخواست دسترسی به اون سرویس رو بدیم. برای این کار از تابع getSystemService استفاده می‌کنیم. بعدش فقط لازمه اسم اون سرویسی که می‌خوایم بهش دسترسی داشته باشیم رو وارد کنیم. که تو اینجا بهش از طریق یه ثابت ایستا که تو کلاس Context به نام CONNECTIVITY_SERVICE هست ارجاع میدیم.

ConnectivityManager conman =(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

۳. حالا می‌خوایم، توی متنی که به صورت پیش فرض همه پروژه‌های جدید دارن، بنویسیم که آیا wifi متصل هست یا نه. و چون به صورت پیش فرض این فیلد متنی شناسه نداره به activity_main.xml می ریم و برای اون یه شناسه تعریف می‌کنیم.

نحوه تعریف کردن شناسه اینطوره که در فایل activity_main.xml، در تگ TextView می‌نویسیم "android:id="@id/matneman و چون این اولین باره که این شناسه رو تعریف می کنیم، یه علامت مثبت (+) هم کنار کلمه id می نویسیم، یعنی اینطوری:

android:id="@+id/matneman"

۴. تو تابع onCreate به متن‌مون داخل xml ارجاع میدیم.

TextView matn =(TextView) findViewById (R.id.matneman);

۵. اطلاعات مربوط به وضعیت wifi رو تو یه متغیر boolan به نام wifi می‌ریزیم. برای همین از کلاس ConnectivityManager استفاده می‌کنیم. تابع getNetworkInfo اطلاعاتی که بخوایم رو از شبکه می‌گیره. حالا برای ورودی این تابع باید اون اطلاعاتی که احتیاج داریم رو بدیم، ما الان به اطلاعات wifi احتیاج داریم


موضوعات مرتبط: درک امنیت و اجازه ها (permission) ، ،
برچسب‌ها:

ادامه مطلب
تاريخ : سه شنبه 29 مهر 1393برچسب:, | 8:15 | نویسنده : کـــــوچـــــولـــــو |

تماشای برخط [لینک مستقیم] فیلم آموزشی «نحوه ی ساخت و استفاده از منابع» ( لینک دانلود در ادمه مطلب )

زیر نویس انگلیسی [English Subtitle] ( لینک دانلود در ادمه مطلب )

دریافت نسخه pdf این آموزش [1.73 مگابایت] ( لینک دانلود در ادمه مطلب )

‎وقتی دارید برنامتون رو می‌سازید احتمال زیاد از منابع بیرونی هم استفاده خواهید کرد، مثل فایلهای ویدیویی یا شنیداری، تصاویر، xml و ... پس باید بدونید چطور از داخل برنامتون به این منابع ارجاع بدید. منابع برنامتون داخل پوشه ی res ذخیره می شن. و یه سری فایلها به صورت خودکار بهش اضافه می شه مثل :

layout : شامل فایل های xml ای که مربوط به محیط های کاربریه.

values : شامل تمام مقادیریه که توی برنامتون تعریف می کنید و بهشون یه اسم می دید و بعدا با اون اسم بهشون رجوع می کنید و ازشون استفاده می کنید.

‎ فایل string.xml  هم به طور پیش فرض در این فولدر به وجود اومده. نحوه‌ی کارکرد string.xml این طوریه که ما یه سری منابع رشته‌ای داریم که مثلا ‌(با توجه به تصویر) هرجا که تو برناممون بخوایم از Hello World, Main! استفاده کنیم، به جاش می تونیم به این منبع ارجاعش بدیم و بنویسیم hello.

‎ حالا چرا این منابع رو بیرون نگه می‌داریم؟ به خاطر اینکه بتونیم متغیرهای سراسری (global) داشته باشیم، مثلا می تونیم چند تا فولدر برای زبان های مختلف داشته باشیم و فقط لازمه که به فایل xml مربوط به اون زبان بریم و دیگه لازم نیست تمام کدهای برناممون رو به خاطر تغییر زبان کاربر تغییر بدیم.

‎ ۲.اگه به سایت اصلی توسعه اندروید مراجعه کنید یه قسمت داره به اسم API Guide که توش راهنمایی های مفیدی برای ساخت برنامه کرده، یکی  از این راهنماها مربوط به منابع می شه، خود اندروید به طور پیش فرض یه سری از فولدرها رو تو res تشخیص می‌ده مثلا 

‎ اگه فولدر anim رو درست کنید و توش یه فایل xml مخصوص انیمیشن بذارید، اندروید متوجه می شه که انیمیشنه. (تو آموزش های بعدی مفصل به انیمیشن می پردازیم).

‎ یا مثلا اگه می‌خواید یه لیستی از رنگ ها رو در برنامتون استفاده کنید می تونید تو فولدر color بذاریدشون.

‎ هر کدوم از عکس‌هامون یا هر فایل xml مربوط به گرافیک در داحل فولدر drawable قرار می گیره.

‎ فولدر layout شامل فایلهای xml مربوط به چیدمان صفحه است.

‎ اگه بخوایم منو برای برناممون بسازیم (که بعدا آموزش داده خواهد شد) باید اونو تو فولدر menu بذاریم و ...

‎ چون تمام این منابع نوعی assets هستن، ممکنه از خودتون بپرسید پس این فولدر assets چیه (معمولا بالای فولدره bin هست)، در واقع می تونید منابعتون رو تو این فولدر بذارید ولی نمی تونید با یک id بهشون ارجاع بدید. به همین خاطر بهتره تمام منابع رو توی همون فولدر res قرار بدیم چون به طور خودکار براشون id ساخته می شه و با دستور R.id می تونید بهشون رجوع کنید.

‎ ۳.اگه تو زیر شاخه های فولدر res دقت کرده باشید، خود فولدر drawable به تنهایی وجود نداره بلکه سه تا فولدر drawable-hdpi، drawable-ldpi و drawable-mdpi وجود دارن، این به خاطر یک ویژگی مهمه اندرویده که دستگاه ها رو به سه وضوح تصویر تقسیم بندی کرده : دستگاه‌های با وضوح تصویر بالا (High dpi)، دستگاه‌های با وضوح تصویر متوسط (Medium dpi) و دستگاه‌های با وضوح تصویر پایین (Low dpi). برای هر کدوم از این وضوح تصویرهای مختلف می‌تونیم assetهای مربوط به خودشون رو بذاریم، و سیستم اندروید با توجه به دستگاهی که داره روش اجرا می‌شه، asset مربوطه رو بیرون می‌کشه و در برنامه ازش استفاده می کنه (توی یه آموزش دیگه بهش می‌پردازیم) ولی فقط بدونید که اگر از یه asset خواستید که تو همه‌ی وضوح تصاویر استفاده بشه، کافیه فقط توی drawable-hdpi بذاریدش، اون وقت تو یه دستگاه با وضوح تصویر متوسط یا پایین هم سیستم از تو فولدر drawable-hdpi برشون می‌داره.

‎ ۴.راحت‌ترین راه برای اضافه کردن asset به برنامه‌تون اینه که محتوایی که می خواید رو بکشید و تو فولدر مورد نظر ول کنید.

‎ برای این که به پیغام خطا برخورد نکنید حواستون باشه اسم asset هایی که می‌خواید وارد کنید فقط می‌تونه شامل حروف a تا z، اعداد 0 تا 9 و خط زیر باشه.

‎ ۵.تو فولدر gen اگه R.java رو باز کنید، می‌بینید که به اون asset جدیدی که اضافه کردید یه عدد نسبت داده، لازم نیست برای ارجاع به این asset اون عدد رو استفاده کنید بلکه از راه دیگه ای این کارو می‌کنیم که الان توضیح می‌دم. (حواستون باشه که اصلا تغییری هم توی فایل R.java ایجاد نکنید چون این فایل به طور خودکار ..................................


موضوعات مرتبط: ساختن و استفاده از منابع (Resources) ، ،
برچسب‌ها:

ادامه مطلب
تاريخ : سه شنبه 29 مهر 1393برچسب:, | 8:11 | نویسنده : کـــــوچـــــولـــــو |

تماشای برخط [لینک مستقیم] فیلم «آموزش نحوه استفاده از مفاهیم ضمنی» ( لینک دانلو در ادامه مطلب )

زیرنویس انگلیسی [English Subtitile] ( لینک دانلو در ادامه مطلب )

دریافت نسخه ی pdf این آموزش [2.78 مگابایت] ( لینک دانلو در ادامه مطلب )

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

۱.شبیه ساز رو اجرا می کنم و برنامه‌ی Gallery رو از تو منوی برنامه‌ها اجرا می‌کنم و یه عکس از توش انتخاب می‌کنم، می‌بینید که بالای عکس یه دکمه share (به‌اشتراک‌گذاری) وجود داره. این دکمه بهتون اجازه می‌ده که این عکس رو برای یکی دیگه بفرستید، اما ممکنه یه عالمه برنامه تو گوشیتون داشته باشید که قادر به انجام این کار باشن. مثل ایمیل یا بلوتوث و ... شما می‌تونید برنامه‌ی خودتون رو به این لیست برنامه‌ها که می‌تونن عکس رو به اشتراک بذارن اضافه کنید و این دقیقا کاریه که یه مفهوم ضمنی (implicit intent) انجام می‌ده.
تو برنامه‌ی Gallery، وقتی دکمه‌ی share رو فشار می‌دیم، این برنامه توسط یه مفهوم ضمنی به سیستم اندروید می‌گه :‌ آیا تو سیستم این گوشی برنامه‌ای وجود داره که بتونه اطلاعات رو بفرسته؟ من یه عکس دارم که می‌خوام بفرستم!
بعد سیستم به کاربر یه لیستی از برنامه‌هایی که قادر به انجام این کار هستن نشون می‌ده. توی شبیه ساز وقتی دکمه share رو می‌زنم، عکس رو تبدیل به MMS می‌کنه بدون اینکه از من سوال کنه چه برنامه‌ای رو می‌خوام، چون تنها برنامه‌ای که تو شبیه‌ساز قادر به مدیریت این کار هست، همین برنامه است.
قبل از اینکه به ادامه آموزش بپردازیم، ممکنه براتون سوال شده باشه که این تصویر رو چطور وارد شبیه‌ساز کردم، خوب اگه بریم سراغ اکلیپس و به DDMS بریم، می‌بینید که یکی از ابزارهای تو نوار بالایی، File Explorer هست که به شما اجازه می‌ده فایل‌های داخل دستگاه رو ببینید، من به sdcard رفتم و عکس مورد نظرم رو گذاشتم، برای گذاشتن فایل باید از دکمه‌ای استفاده کنید که بالا سمت راسته و اگه روش نگه دارید می‌نویسه push a file onto the device. بعد از اینکه فایل رو تو دستگاه گذاشتید باید یه بار reset کنید.
 

خوب برگردیم به ادامه آموزش، گفتیم که برنامه‌ی Gallery با استفاده از یه مفهوم (intent) یه پیغام به سیستم می‌فرسته، حالا از کجا بفهمیم، این مفهوم چه پیغامی رو به فرستاده؟ برای اینکار دکمه‌ی share رو تو شبیه‌ساز می‌زنیم بعد به ایکلیپس می‌ریم و اگه تو LogCat نگاه کنیم، خط های آخرش نوشته :

Starting:Intent{ act=android.intent.action.SEND type=image/jpeg ...

android.intent.action.SEND یه مفهوم ضمنیه، که همراه با خودش نوع داده‌ای تصویر از نوع................................


موضوعات مرتبط: استفاده از مفاهیم ضمنی (implicit intents) ، ،
برچسب‌ها:

ادامه مطلب
تاريخ : سه شنبه 29 مهر 1393برچسب:, | 8:5 | نویسنده : کـــــوچـــــولـــــو |

تماشای برخط [لینک مستقیم] فیلم «آموزش نحوه استفاده از مفاهیم آشکار» ( لینک دانلود در ادامه مطلب )

زیر نویس انگلیسی [English Subtitle] ( لینک دانلود در ادامه مطلب )

نسخه pdf این آموزش[1.75 مگابایت] ( لینک دانلود در ادامه مطلب )

 

تا اینجا یاد گرفتیم که چطور با فعالیت ها (activities) کار کنیم، اگه یادتون باشه برای شروع فعالیت Dovomi از intent استفاده کردیم، کار مفهوم (intent) اینه که یه عنصری از برنامه تون رو فعال کنه.

دو نوع مفهوم (intent) وجود داره، مفاهیم آشکار و مفاهیم ضمنی یا مجازی.

با مفاهیم آشکار، یک عنصر مشخصی از برنامه رو برای فعال شدن تعیین می‌کنیم. مثلا می‌خوایم یه فعالیت(activity) دیگه رو تو برناممون اجرا کنیم، از یه مفهوم آشکار استفاده می‌کنیم که آشکارا به سیستم بگه می‌خوام اون فعالیت رو فعال(اجرا) کنم.

مفاهیم ضمنی (که تو پست بعدی بهش می‌پردازیم) در واقع یک پیام کلی برای سیستم می‌فرستن : که آیا برنامه‌ای در سیستم عامل این گوشی وجود داره که بتونه این مفهوم رو اجرا کنه؟ اگه وجود داشته باشه لیست این برنامه‌ها به کاربر پیشنهاد می‌شه و کاربر یکی رو انتخاب می‌کنه و از این طریق اون چیزی که با مفهوم فرستاده شده (ورودی‌های intent) اجرا می‌شه.

 

خوب الان می‌خوایم رو مفاهیم آشکار تمرکز کنیم. برای شروع یه پروژه بسازید با دوتا فعالیت (activitie) که تو فعالیت اصلی (main) یه متنی که قابل نوشتن باشه یعنی کاربر می‌تونیه توش متن وارد کنه (از توی Text Fields اولی رو انتخاب کنید) و یه دکمه (برای اینکه به فعالیت دوم بره)، فعالیت دوم هم یه فیلد متنی ساده داشته باشه.(حواستون باشه که فعالیت دوم رو هم تو فایل manifest تعریف کنید).

۲.کاری که با این برنامه می‌خوایم بکنیم اینه که : کاربر یه متنی رو تو فیلد متنی قابل نوشتن می‌نویسه و دکمه رو می‌زنه، فعالیت دوم باز می‌شه و متنی که نوشته بوده رو نشون می‌ده. یعنی می‌خوایم یاد بگیریم اطلاعاتی رو از یه فعالیت به فعالیت دیگه منتقل کنیم.

اول به فایل main.java می ریم و یه مرجع(اشاره‌گر) از دکمه و فیلد متنی می‌گیریم. با نوشتن این کد 

 

EditText matn =findViewById(R.id.editText1);

 

یه مرجع از فیلد متنی قابل نوشتن‌مون می‌گیریم. خوب بازهم با ctrl+1 خطاهای برنامه رو درست می‌کنیم. (اینجا کافیه فقط...........................


موضوعات مرتبط: استفاده از مفاهیم آشکار (explicit intents) ، ،
برچسب‌ها:

ادامه مطلب
تاريخ : سه شنبه 29 مهر 1393برچسب:, | 8:0 | نویسنده : کـــــوچـــــولـــــو |

ساختن و مدیریت فعالیت ها Activities یک


.
 

تماشای برخط  [لینک مستقیم] فیلم آموزش «فعالیت ها (activities)» ( لینک دانلود در ادامه مطلب )

زیرنویس انگلیسی [English Subtitle] ( لینک دانلود در ادامه مطلب )

دریافت نسخه pdf این آموزش [2.11 مگابایت] ( لینک دانلود در ادامه مطلب )

 

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

۱.برای شروع اول یه پروژه اندروید تو ایکلیپس می‌سازیم. (راهنما) از منوی سمت چپ روی اسم پروژه کلیک می کنیم و از شاخه‌ی src به دومین زیر شاخه می‌ریم که یه فایل جاواست. این فایل کلاس فعالیت رو ارث‌بری می‌کنه و توسعه می‌ده. تو خط آخر این فایل جاوا (تو تصویر آبی شده) می‌بینیم که محتوای بصری این فعالیت (ContentView)، رجوع داده شده به یه فایل به نام main که در فولدر layout در منابع (resource) هست.

۲.پس اگه بریم توی شاخه‌ی res و بعد layout و بعد main.xml این فعالیت رو می‌بینیم. که به طور پیش فرض یه متن Hello World توش وجود داره. توصیه می‌کنم برای اینکه مطمئن بشید برنامه‌تون درست کار می کنه یه بار Run کنید.

 

۳.خوب حالا می‌خوام خیلی سریع چند تا نکته رو تو AndroidManifest.xml براتون توضیح بدم. در حالت ویرایش xml، می‌بینیم که درون تگ application، تگ activity وجود داره. یکی از چیزایی که اینجا می‌بینیم <intent-filter> هست. (که با توضیحات مفصل تو یه پست دیگه بررسی خواهد شد) به طور ساده، این تگ به سیستم اندروید می‌گه که وقتی این برنامه شروع به کار می‌کنه، اولین فعالیتی که باید اجرا بشه، اون فعالیتیه که داخل تگ action قرار داره. و این طور معرفی شده :

 

<actionandroid:name="android.intent.action.MAIN"/>

۴.اگه بخوایم یه فعالیت دیگه هم به برناممون اضافه کنیم، احتیاج داریم که دو فایل Main.java و main.xml رو دوباره بسازیم. (البته اسم این دوفایل رو هرچیزی که دلتون بخواد می‌تونید بذارید و محدودیتی نداره ولی برای فراگیری راحتتر، سعی کردم که در همه پروژه‌ها اسم‌های یکسانی انتخاب کنم) یعنی باید اول یه فایل جاوا بسازیم که کلاس activity رو ارث‌بری کنه. برای این کار روی اسم package راست کلیک می‌کنیم، بعد New و بعد هم class.

۵.یه اسمی براش بذارید (جلوی فیلد Name) من اسمش رو می‌ذارم Dovomi و بعد رو Browse کلیک کنید. اینجا می‌خوایم کلاسی رو انتخاب کنیم که این فعالیت قراره ارث‌بری کنه. پس تو فیلد..............


موضوعات مرتبط: ایجاد پروژه و درک ساختار آن ، ،
برچسب‌ها:

ادامه مطلب
تاريخ : سه شنبه 29 مهر 1393برچسب:, | 7:48 | نویسنده : کـــــوچـــــولـــــو |

تماشای برخط [لینک مستقیم] فیلم آموزش «کارکردن با AndroidManifest.xml»( لینک دانلود در ادامه مطلب )

زیرنویس فارسی ( لینک دانلود در ادامه مطلب )

زیرنویس انگلیسی [English Subtitle] ( لینک دانلود در ادامه مطلب )

دریافت نسخه pdf این آموزش [1.31 مگابایت] ( لینک دانلود در ادامه مطلب )

 

۱.حالا می خوایم یه نگاه دقیق تری روی AndroidManifest.xml داشته باشیم به خاطر اینکه فایل مهمیه و برنامه شما رو برای سیستم اندروید تشریح می کنه، پس مهمه که همه چیز رو در این فایل درست وضع کرده باشید. خوب یه پروژه اندروید بسازید (نحوه انجام این کار) و روی AndroidManifest.xml کلیک کنید تا باز بشه. خوبیه ایکلیپس اینه که به شما اجازه می ده این فایل رو در حالتهای مختلفی ویرایش کنید، مثلا حالت ویرایش بصری که تو عکس هست یا اینکه مستقیما از خود فایل xml ویرایش کنید (عکس بعدی).

 

۲.وقتی به حالت ویرایش xml نگاه می کنید میبینید که خیلی ساده تر از حالت ویرایش بصریه و بیشتر توسعه دهنده ها معمولا حالت ویرایش xml رو بیشتر می‌پسندن، ولی خوب این حالت یه نقطه ضعف هایی هم داره، مثلا ویژگی پیشنهاد کد (code hinting) نداره و برای صوفه جویی در وقت تو این جور مواقع بهتره از ...............................


موضوعات مرتبط: کار کردن با AndroidManifest.xml ، ،
برچسب‌ها:

ادامه مطلب
تاريخ : شنبه 19 مهر 1393برچسب:, | 8:17 | نویسنده : کـــــوچـــــولـــــو |

دریافت نسخه‌ی pdf این آموزش [حجم 1.56 مگابایت] ( لینک دانلود در ادامه مطلب )

مشاهده تصویر متحرک ساختن یک پروژه اندروید در ایکلیپس ( لینک دانلود در ادامه مطلب )

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

۱.از منوی ایکلیپس File -> New -> Project.

بعد روی Android کلیک کنید تا زیرشاخه هاش باز بشه، بعد هم Android Application Project و Next.

خوب حالا باید مشخصات پروژه تون رو تعیین کنید.

اولین گزینه اسم برنامه است، (همون اسمی که تو play store خواهد بود و همین طور توی لیست برنامه ی گوشی)

فیلد بعدی اسم پروژه‌ایه که می‌خواید بسازید و فقط تو محیط ایکلیپس ازش استفاده می‌شه و می‌تونه همون اسم واقعی برنامه‌تون باشه.

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

در قسمت بعدی باید کمترین نسخه‌ی  اندرویدی که برنامه‌تون پشتیبانی می‌کنه رو انتخاب کنید، مثلا اگه از هیچ ویژگی خاص جینجربرد استفاده نمی کنید، معقول تره که نسخه های پایین تری ازش رو انتخاب کنید تا کاربرانی که نسخه های پایین تری دارند هم بتونن از برنامتون استفاده کنن. خود گوگل هم پیشنهاد کرده API 8 رو انتخاب کنید تا تقریبا تمام گوشی‌های اندروید برنامه‌تون رو اجرا کنن.

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

Next رو بزنید.

گزینه ی ceate custom launcher icon اگه تیک خورده باشه یعنی اینکه همین الان که می‌خواید پروژه‌ی برنامه‌تون رو بسازید، بیاید آیکون برنامه‌تون رو هم طراحی کنید و بذارید تو برنامه.

گزینه‌ی بعدی یه فعالیت (activity) میسازه. و مشخصه که هر برنامه ای حداقل باید یه صفحه داشته باشه که همون فعالیته. پس بذارید گزینه‌ی Create Activity فعال بمونه.

گزینه‌ی بعدی برای اینه که بخواید کتابخانه‌ی اندروید بسازید.

گزینه‌ی بعدی هم اگه تیکش رو بردارید می‌تونید محل ذخیره شدن ....................................


موضوعات مرتبط: ایجاد پروژه و درک ساختار آن ، ،
برچسب‌ها:

ادامه مطلب
تاريخ : شنبه 19 مهر 1393برچسب:, | 8:13 | نویسنده : کـــــوچـــــولـــــو |

تماشای برخط (لینک مستقیم)‌ فیلم «نمای کلی از توسعه اندروید»

 

اول بریم سراغ معماری اندروید :

  • اندروید روی لینوکس ۲.۶ سوار شده.
  • با یه ماشین مجازی به اسم دالویک (Dalvik) که مخصوص موبایل طراحی و بهینه سازی شده، کار می کنه.
  • مرورگر متحدی بر پایه موتور وب کیت (Webkit) داره.
  • گرافیکش با اپن‌جی‌ال ای‌اس (OpenGL ES) بهینه سازی شده.
  • از پایگاه داده‌ی سیکوآل لایت (SQLite) به عنوان ساختار ذخیره سازی داده ها استفاده میکنه.

حالا خیلی سریع به نسخه های مختلف اندروید می پردازیم

  • اندروید ۲.۰ \ ۲.۱ ایکلر (Eclair)
  • اندروید ۲.۲ فرویو (Froyo)
  • اندروید ۲.۳ جینجربرد (Gingerbread) - مخصوص موبایل
  • اندروید ۳.۰ هانی کوم (HoneyComb) - مخصوص تبلت ها
  • اندروید ۴.۰ آیس کریم سندویچ (IceCream Sandwich) - هم برای موبایل هم تبلت

 

حالا نگاهی می اندازیم به بنیاد برنامه‌های اندروید :

  • برنامه‌های اندروید به زبان برنامه نویسی جاوا نوشته می‌شه.
  • برنامه‌های کامپایل شده در فایل‌هایی با پسوند apk ذخیره می‌شن (apk = android package file)
  • هر برنامه‌ای در سندباکس (SandBox) جداگانه‌ای اجرا میشه که از بقیه‌ی برنامه‌ها ایزوله‌اش می‌کنه و هر برنامه در پروسه‌ی لینوکسی خودش اجرا می‌شه
  • هر برنامه‌ای شامل فایل‌‌های جزئی (component)، فایل‌های ظاهری (manifest) و منابع (resources) میشه.
  • فایل‌های جزئی شامل :
  • فعالیت (Activities)
  • خدمات (Services)
  • ارائه دهنده‌ی محتوا (content provider)
  • گیرنده‌ی پخش (broadcast receiver)

 بیاید یه خورده در مورد همین موارد آخر بیشتر یاد بگیریم.

 

  • فعالیت (Activities)
    • ‎یه فعالیت کارش اینه که که یه صفحه نمایش رو با رابط کاربری (UI) نشون بده. (مثلا کاربر می خواد ایمیل هاش رو چک کنه، همون صفحه ای که لیست ایمیل هاش رو نشون می ده یه فعالیته، وقتی رو ایمیل کلیک میکنه یه فعالیت دیگه شروع میشه که باعث میشه کاربر یه صفحه‌ی دیگه رو ببینه، وقتی می خواد ایمیل بفرسته یه صفحه‌ی دیگه براش باز میشه که یه فعالیت دیگه است)
    • ‎اگثر برنامه ها از بیش از یک فعالیت استفاده می کنن.
    • ‎وقتی یک فعالیت شروع میشه، به پشته‌ی بازگشت (back stack) هل داده میشه. (push میشه) - خوب مثلا وقتی کاربر اولین صفحه‌ی یه برنامه رو باز می کنه، بعد جایی کلیک میکنه و فعالیت دیگه ای باز میشه، فعالیت قبلی متوقف میشه (داخل پشته هل داده میشه) و فعالیت جدید روی قبلی شروع به کار میکنه، وقتی کاربر دکمه بازگشت () رو میزنه، فعالیت فعلی رو متوقف می کنه (میبنده) و فعالیت قبلی رو از همون جایی که متوقف کرده بود، اجرا میکنه. (در واقع از تو پشته پاپ میکنه) -
    • ‎رابط کاربری با XML یا مستقیما از خود جاوا ساخته میشه.
    • ‎میتونید طول عمر یه فعالیت رو با توابع مختلفی زیرنظر داشته باشید، توابعی مثه ()onStart یا ()onPause. تا روند اجرای هر فعالیتی رو کنترل کنید.
       
  • خدمات (Services)
    •  خدمات نقش کارهایی رو ایفا می کنن که در پشت صحنه باید انجام بشه.
    • خدمات شامل هیچ رابط کاربری‌ای نیستند.
    • برای کارهایی مثه عملیات اینترنتی (شبکه ای) یا پخش موسیقی مناسبند.
    • خدمات کاملا مستقل از جزئی که اونا رو ساخته، اجرا میشن. (مثلا اگه یه فعالیتی داشته باشیم که یه خدماتی رو اجرا کنه، اگه اون فعالیت رو ببندیم، اون خدمات هنوز در حال اجرا شدن هستن و مستقل از بقیه اجزا کار می کنن)
    • خدمات می تونن با استفاده از برنامه‌های دیگه محدود بشن، البته باید اون برنامه‌ها اجازه محدود کردن خدمات رو داشته باشن. (وقتی خدمات رو می‌سازین می تونین تعیین کنید که مثلا با هر برنامه ای میتونه این خدمت رو محدود کنه)

 

  • ارائه دهنده‌ی محتوا (content provider)
    • کارشون ذخیره و بازیابی داده هاست و اینکه داده ها رو برای همه برنامه ها قابل دسترسی کنن.
    • تنها راه برای اشتراک گزاری داده ها بین برنامه های مختلفه (چون به طور پیش فرض، برنامه ها راهی برای اشتراک گزاری داده‌شون به برنامه‌های دیگه رو ندارن)
    • یک URI عمومی منتشر میکنه که به طور منحصر به فرد مجموعه‌ی داده‌هاش رو شامل میشه. (مثلا اگه بخوایم یه سری از اطلاعاتمون رو به صورت عمومی در اختیار بقیه‌ی برنامه‌ها قرار بدیم، اونها رو در یک «ارائه دهنده محتوا» میذاریم.)
    • این داده ها به سادگی از طریق جدول هایی به مدل پایگاه داده منتشر میشن.
    • خود اندروید شامل یه عالمه «ارائه دهنده» است، مثه رسانه‌ها، دفترتلفن و... 

 

 

  • گیرنده‌ی پخش (broadcast receiver)
    • گیرنده‌ی پخش ساخته شده تا به اعلامیه‌های درون سیستمی پاسخگو باشه.
    • مثلا وقتی صفحه خاموش میشه، اندروید یه گیرنده میفرسته تا برنامه هایی که در حال اجرا هستن بفهمند که صفحه خاموش شده و برنامه رو در حالت تعلیق نگه دارن یا ببندن یا هر کار دیگه ای که باید بکنن، یا مثلا وقتی باتری داره تموم میشه و .... - پس وقتی برنامه‌ای رو می‌سازیم باید حواسمون باشه یه گوش دهنده (listener) بزاریم که اگه همچین اتفاقاتی افتاد، برنامه، یه کار خاصی رو انجام بده-
    • برنامه‌ی خود شما هم میتونه فرستادنده هایی رو بفرسته تا برنامه های دیگه بهش جواب بدن.
    • گیرنده های پخش شامل هیچ رابط کاربری ای نیستند.
    • گیرنده ها می تونن به نوار وضعیت (status bar)، اخطار (notification) بفرستن تا به کاربر هشدار بدن.

 

 

فایل های ظاهری اندروید

  • هر برنامه ای باید یک فایل AndroidManifest.XML در ریشه دایرکتوریش داشته باشه.
  • کار این فایل اینه که به سیستم اندروید درباره برنامه توضیحاتی رو ارائه بده.
  • این فایل، اجزائی رو که در برنامه به کار می‌برید رو توصیف می کنه. (اجزا مثه فعالیت ها، خدمات، گیرنده ها و ارائه دهنده ها)
  • اجازه هایی (permission)‌ که برای اجرای برنامه باید از کاربر گرفته بشه رو اعلام می کنه. (احتمالا تا حالا برنامه هایی رو دیدید که قبل از نصب از شما یه سری اجازه میگیرن برای دسترسی به قسمت های مختلف گوشی).
  • این فایل، پایین ترین نسخه‌ی اندرویدی (API) که برنامه می تونه روش اجرا بشه رو اعلام می کنه.

 

 

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


برچسب‌ها:

تاريخ : شنبه 19 مهر 1393برچسب:, | 7:47 | نویسنده : کـــــوچـــــولـــــو |

تماشای برخط (لینک مستقیم) فیلم آماده کردن دستگاه مجازی برای توسعه

دریافت نسخه pdf این آموزش [348 کیلوبایت]

 

وقتی می‌خواید که نرم افزارتون رو روی دستگاه واقعی اندروید (گوشی اندرویدی) امتحان کنید، باید یه سری نکات رو رعایت کنید تا برنامتون اجرا بشه.

خوب قبل از اینکه نشونتون بدم باید بگم که سیستم عامل گوشی های اندروید،  ممکنه یه تفاوتهای کوچیکی باهم داشته باشن و خیلی کم پیش میاد  دقیقا مثه همین شبیه سازی که می‌بینید باشه، مثلا گوشی های HTC یا Motorola و ... سیستم عاملشون یه تفاوتهایی داره و دقیقا همون نسخه‌ی خام گوگل رو استفاده نمی‌کنن. ولی در کل محلی که تنظیمات (Setting) قرار می‌گیره معمولا یکیه.

۱.خوب با توجه به این توضیحات، توی گوشی اندرویدتون منو (Menu)‌ رو بزنید. بعد هم Settings.

 

۲.بعد هم Applications.

 

۳. بعد هم Development.

خوب از همه مهمتر اینه که گزینه‌ی USB Debugging فعال باشه تا وقتی با کابل گوشی رو به کامپیوتر وصل می‌کنید بتونید به راحتی نرم افزارتون رو روش امتحان کنید.

گزینه‌ی سوم یعنی Allow Mock Locations زمانی به درد میخوره که تو برنامتون از امکانات جی‌پی‌اس (مکان یاب) استفاده کرده باشید. اگه این گزینه فعال نشده باشه اجازه نمی‌ده برای تست کردن برنامتون از مکان‌های جعلی استفاده کنید. مثلا احتیاج دارید ببینید تو یه شهر دیگه اون قسمتی از برنامتون که مربوط به مکان فرد می‌شه، چطور عمل میکنه. میتونید با فعال کردن این گزینه تو شهرخودتون باشید ولی جی‌پی‌اس نشون بده یه شهر دیگه اید تا اینطوری برنامتون رو امتحان کنید.


برچسب‌ها:

تاريخ : شنبه 19 مهر 1393برچسب:, | 7:42 | نویسنده : کـــــوچـــــولـــــو |

تماشای برخط (لینک مستقیم) فیلم آموزش مراحل نصب «ابزار توسعه اندروید» ADT در ایکلیپس ( لینک دانلود در ادامه مطلب رایگان )

دریافت نسخه pdf این آموزش [3.22 مگابایت] ( لینک دانلود در ادامه مطلب رایگان )

 

۱.برای نصب ADT باید به این آدرس برید، که البته چون گوگل ایران رو تحریم کرده و  به IP ایرانی اجازه ورود به این سایت رو نمی‌ده. اون چیزی که لازمه از اینجا دانلود کنید رو براتون آپلود کردم (حجم ۹۸.۵ مگابایت). اگه می‌خواید از خود سایت استفاده کنید، تقریبا به انتهای صفحه برید جایی که نوشته Downloading the ADT Plugin، یه URL (آدرس اینترنتی) اونجا هست کپی‌ش کنید.

 

۲. به برنامه ایکلیپس برید و از منوی بالاش Help رو بزنید بعد هم Install New Software.

 

۳. اگه تو مرحله قبل، ADT رو به صورت zip شده دانلود کردید،  روی Add کلیک کنید، گزینه Archive رو بزنید، به آدرسی برید که فایل zip شده رو ذخیره کردید، (همون طوری که zip هست و Extract یا  UnArchive اش نکنید) فایل رو انتخاب کنید، open رو بزنید، یه اسم براش بذارید و  OK رو بزنید.

اگه هم تو مرحله قبل آدرس اینترنتی رو کپی کردید، روی Add کلیک کنید، یه اسم براش بذارید، لینک رو paste کنید و ok رو بزنید و منتظر بمونید تا لیست رو بارگزاری کنه.

 

۴.وقتی لیست ابزار توسعه اومد، گزینه Developer Tool رو با تمام زیر شاخه هاش انتخاب کنید (چون همه‌ش رو احتیاج داریم)‌. next بزنید. بعد یه صفحه میاد که اون چیزایی که می خواید دانلود کنید رو مرور می‌کنه Next رو بزنید.

 

۵. باید جواز و مدارک اونا رو قبول کنید پس I agree with terms of the license agreement رو انتخاب کنید و .....................


موضوعات مرتبط: مراحل نصب "بسته توسعه نرم افزار" SDK برای کاربران مک ، ،
برچسب‌ها:

ادامه مطلب
تاريخ : شنبه 12 مهر 1393برچسب:, | 8:10 | نویسنده : کـــــوچـــــولـــــو |

صفحه قبل 1 2 3 4 5 ... 43 صفحه بعد

لطفا از دیگر مطالب نیز دیدن فرمایید
.: Weblog Themes By SlideTheme :.

Flying Icon