مقالات تخصصی برنامه نویسی اندروید

اموزش برنامه نویسی اندروید

مقالات تخصصی برنامه نویسی اندروید

اموزش برنامه نویسی اندروید

۹ مطلب در ارديبهشت ۱۳۹۹ ثبت شده است

  • ۰
  • ۰

شما می توانید به راحتی صدا یا تصویر تماس گیرنده را کنترل کنید، به عنوان مثال حالت سکوت، ویبره،صدا و غیره. اندروید کلاس AndroidManager را ارائه می دهد که دسترسی به این کنترل ها را مشخص می کند. برای اینکه از گروه AndroidManager استفاده کنید، ابتدا باید یک شئ از این کلاس را با فراخوانی getSystemService() ، ایجاد کنید.

 

ترکیب آن در زیر داده شده است  .

 

private AudioManager myAudioManager;

myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

  • ۰
  • ۰

 ارسال کردن پارامتر به متُد، کاری بسیار راحت است، اما کمی مفهوم پیچیده‌ای دارد. در حالت کلی به سه شکل می‌توان به متُد‌ها پارامتر‌هایی را ارسال کرد که عبارت هستند از Call By Value، Call By Pointer، Call By Reference.

 

نکته‌ای که وجود دارد این است که بسیاری از برنامه نویسان جاوا معتقدند که جاوا Call By Value است و عده‌ای دیگر نیز معتقد‌ند که جاوا Call By Reference است. اینکه جاوا را چه می‌نامند اصلا اهمیتی ندارد، بلکه مهم این است که شما رفتار جاوا را بدانید که در هر وضعیت چگونه عمل می‌کند.

  • ۰
  • ۰

Interface در جاوا

در کلاس ها میتوانستیم متدهای abstract و غیر abstract استفاده ‌کنیم. کلاسهای abstract را به اصطلاح میگویند انتزاع جزئی (partial abstraction). برای رسیدن به انتزاع کامل (Full abstraction) باید از interface در جاوا استفاده کرد.

 

Interface چیست؟

Interface مکانیزمی برای رسیدن انتزاع کامل در جاوا است و در آن فقط میتوان متد abstract نوشت که بدنه (body) نداشته باشد! همچنین متغیرهایی که در interface تعریف میشوند همه آنها سه قابلیت زیر را دارند:

همه آنها public هستند.

همه آنها static هستند.

همه آنها final هستند.

چرا interface ؟

در کلاس ها میتوانستیم متدهای abstract و غیر abstract استفاده ‌کنیم. کلاسهای abstract را به اصطلاح میگویند انتزاع جزئی (partial abstraction). برای رسیدن به انتزاع کامل (Full abstraction) باید از interface در جاوا استفاده کرد.

 

Interface چیست؟

Interface مکانیزمی برای رسیدن انتزاع کامل در جاوا است و در آن فقط میتوان متد abstract نوشت که بدنه (body) نداشته باشد! همچنین متغیرهایی که در interface تعریف میشوند همه آنها سه قابلیت زیر را دارند:

همه آنها public هستند.

همه آنها static هستند.

همه آنها final هستند.

چرا interface ؟

  • ۰
  • ۰

Step 1 − Create a new project in Android Studio, go to File ⇒ New Project and fill all required details to create a new project.

Step 2 − Add the following code to res/layout/activity_main.xml.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   tools:context=".MainActivity">
   <Button
      android:id="@+id/button"
      android:text="Transfer Bitmap to 2nd Activity"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_centerInParent="true" />
</RelativeLayout>

 

  • ۰
  • ۰

وب سرویس چیست؟

 

در این مبحث ابتدا به معرفی وب سرویس و کاربردهای آن پرداخته سپس معماری REST را شرح می‌دهم.

وب سرویس چیست؟

 

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

  • ۰
  • ۰

 

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

 

یک پروژه جدید ایجاد میکنیم و اسمش رو Notifications میزاریم.در لایه برنامه از یک Button جهت فراخوانی نوتیفیکیشن استفاده میکنیم.طوری که در هنگام کلیک بر روی دکمه(Button) نوتیفیکیشن نمایش داده میشه.کار کردن با Notifications خیلی ساده است و تنها کافی که به کدهای بخش MainActivity.java توجه کنید.

 

 public class MainActivity extends Activity {

  • ۰
  • ۰

 

اگر بخواهید جریان یک ویدیوی زنده یا هر جریان دیگری مانند ویدیو یا یک OpenGL را نمایش دهید، می توانید از TextureView استفاده کنید که توسط اندروید ارائه شده است.

 

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

 

private TextureView myTexture;

public class MainActivity extends Activity implements SurfaceTextureListener{

   protected void onCreate(Bundle savedInstanceState) {

      myTexture = new TextureView(this);

      myTexture.setSurfaceTextureListener(this);

      setContentView(myTexture);

   }

  • ۰
  • ۰

 

شما می توانید رشته هایی از متن را در داخل array ها قرار دهید. این کار درست به روش اعداد صحیح انجام می شود:

String[ ] aryString = new String[5] ;

 

aryString[0] = "This";

aryString[1] = "is";

aryString[2] = "a";

aryString[3] = "string";

aryString[4] = "array";

 

کد بالا یک رشته array را با 5 موقعیت تنظیم می کند. سپس متن به هر موقعیت در array اختصاص داده می شود.

در اینجا یک loop را مشاهده می کنید که در همه ی موقعیت های array قرار گرفته و هر چیزی را که در موقعیت ها وجود دارد، چاپ می کند:

int i;

for ( i=0; i < aryString.length; i++ ) {

System.out.println( aryString[i] );

}

 

هنگامی که مقدار متغیری بع نام I کمتر از طول array به نام aryString باشد، loop به چرخش خود ادامه می دهد.وقتی که برنامه ی بالا اجرا می شود، پنجره ی Output به شکل زیر خواهد بود:

 

شما می توانید یک مرتب سازی روی رشته ی array ها اجرا کنید، درست مانند کاری که می توانید با اعداد صحیح انجام دهید. اما مزتب سازی یک ترتیب صعودی براساس حروف الفبا می باشد، به این معنا که aa قبل از ab قرار می گیرد. به هرحال جاوا برای مقایسه ی یک حرف در رشته ی شما با یک رشته ی دیگر از کاراکترهای یونیکد (Unicode) استفاده می کند. این به این معناست که حروف بزرگ قبل از حروف کوچک قرار می گیرند. کد زیر را امتحان کنید:

 وقتی که برنامه اجرا می شود، پنجره ی Output تصویر زیر را نمایش خواهد داد:

 گرچه ما array را مرتب کرده ایم، اما لغت This در ابتدا قرار می گیرد. اگر یک مرتب سازی الفبایی باشد، انتظار دارید که لغت a در ابتدا قرار بگیرد. این اتفاق می افتد اگر تمام حروف کوچک باشند. در کد برنامه نویسی خود T بزرگ از لغت This را به t کوچک تغییر دهید. اکنون برنامه را مجددا اجرا کنید.

 

همانطور که مشاهده می کنید، لغت this اکنون در پایین قرار دارد.
 

  • vahid hasani
  • ۰
  • ۰

آموزش آرایه ها در جاوا

 

یک Array چیست؟

تاکنون با متغیرهایی کار کردید که فقط یک مقدار را در خود حفظ می کنند. متغیرهای صحیح که تنظیم کرده اید، فقط یک عدد را حفظ می کنند و متغیرهای رشته نیز فقط یک رشته از متن را در خود دارند. یک array (ردیف) روشی برای حفظ بیشتر از یک مقدار در یک زمان می باشد که در واقع شبیه لیستی از آیتم ها می باشد. یک array را می توان به عنوان ستون هایی در یک صفحه ی گسترده در نظر گرفت. شما می توانید یک صفحه ی گسترئه تنها با یک ستون و یا تعداد زیادی ستون داشته باشید. داده ای که در یک ردیف مجزا حفظ می شود می تواند مشابه تصویر زیر باشد:

 

مانند یک صفحه ی گسترده، array ها برای هر ردیف دارای یک موقعیت عددی می باشند. این موقعیت ها در یک array از شروع شده و متداولا افزایش می یابند. هر موقعیت نیز در یک array می تواند یک مقدار در خود حفظ کند. در تصویر بالا موقعیت 0 دارای مقدار 10 و موقعیت 1 دارای 14، موقیت 2 دارای مقدار 36 و غیره می باشد.

برای برقراری یک array از اعداد، مشابه تصویر بالا، باید به جاوا اعلام کنید که چه نوع داده ای قرار است وارد array شود ( اعداد صحیح، رشته ها، مقادیر Boolean و غیره). سپس لازم است که اعلام کنید که array دارای چند موقعین می باشد:

int[ ] aryNums;

 

تنها تفاوت بین برقراری یک متغیر عدد صحیح طبیعی و یک array یک جفت کروشه ای است که بعد از نوع داده قرار می گیرد. کروشه ها برای اعلام به جاوا در مورد این که شما قصد برقراری یک array را دارید، کافی هستند. نام array مربوط به تصویر بالا aryNums می باشد. درست مانند متغیرهای طبیعی، می توانید آنها را هر چیزی که می خواهید نام گذاری کنید ( با همان استثنائاتی که قبلا ذکر کردیم.)

 

اما این مورد فقط به جاوا می گوید که شما قصد تنظیم یک array عدد صحیح را دارید. این برنامه تعداد موقعیت هایی را که array باید حفظ کند، اعلام نمی کند. برای انجام این کار باید یک array object جدید تنظیم کنید:

aryNums = new int[6];

 

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

 

اگر تمایل دارید، می توانید همه ی آنها را روی یک قرار دهید:

int[ ] aryNums = new int[6];

 

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

 

برای اینکه در یک array مقادیر را به موقعیت های مختلف اختصاص دهید، این کار را به یک روش طبیعی انجام می دهید:

aryNums[0] = 10;

 

در اینجا مقدار 10 به موقعیت 0 در یک array به نام aryNums اختصاص داده می شود. مجددا کروشه ها برای اشاره به هر موقعیت استفاده می شوند. اگر بخواهید مقدار 14 را به یک array با موقعیت 1 اختصاص دهید، کد مربوط مانند زیر خواهید بود: aryNums[1] = 14;

 

و کد مربوط به مقدار 36 برای موقعیت 2 مانند زیر خواهد بود:

aryNums[2] = 36;

 

فراموش نکنید که از آنجایی که array ها از 0 شروع می شوند، سومین موقعیت در یک array دارای عدد شاخص 2 می باشد.

 

اگر بدانید که چه مقادیری قرار است در یک array قرار گیرند، می توانید آنها را مانند زیر تنظیم کنید:

int[ ] aryNums = { 1, 2, 3, 4 };

 

این متود در حال تنظیم یک array با استفاده از کروشه ها بعد از علامت تساوی، می باشد.در بین کروشه ها مقادیری را تایپ می کنید که array خواهد گرفت. اولین مقدار در موقعیت 0 و دومین مقدار در موقعیت 1 و غیره خواهد بود. توجه داشته باشید که هنوز پس از int نیاز به کروشه دارید، اما نیازی به لغت کلیدی new یا تکرار نوع داده و یا کروشه ها ندارید. اما این فقط مربوط می شود به نوع داده های مقادیر int، رشته و مقادیر char. به عبارت دیگر نیاز به لغت کلیدی new دارید. بنابراین می توانید این کار را انجام دهید:

 

String[ ] aryStrings = {"Autumn", "Spring", "Summer", "Winter" };

 

اما این کار را نمی توانید انجام دهید:

boolean[ ] aryBools = {false, true, false, true};

 

برای تنظیم یک boolean array هنوز نیاز به لغت کلیدی new دارید:

boolean[ ] aryBools = new boolean[ ] {false, true, false, true};

 

برای به دست آوردن مقادیر مربوط به array، نام array را تایپ کنید که با موقعیت array در یک کروشه دنبال می شود. مانند زیر:

System.out.println( aryNums[2] );

کد بالا هر مقداری که در ردیفی با موقعت 2 در یک array به نام aryNums باشد را چاپ می کند
 

  • vahid hasani