هیچ دوره ای در سبد آموزش شما وجود ندارد
بهترین تمرینات اندروید
صفحه نخستتمریناتی وجود دارند که درهنگام توسعه ی برنامه ی اندروید می توانید دنبال کنید. این تمرینها توسط خود اندروید پیشنهاد داده می شوند و با توجه به زمان ارتقا می یابند.
این تمرینات برتر شامل کنش و واکنش ویژگی های طرح، اجرا، امنیت، امور شخصی، سازگاری، تست کردن و نکات مربوط به انتشار و رسمیت پولی بخشیدن می شود. آنها در زیر لیست شده اند.
روش های برتر داخلی یوزر
هر فیلد متن برای کار خاصی در نظر گرفته شده است. به عنوان مثال برخی از این فیلدها برای متن و برخی برای اعداد هستند. در هنگام تمرکز بر روی آن تکست فیلد، اگر مربوط به اعداد است که بهتر است صفحه کلید عدد نمایش داده شود. ترکیب آن در زیر ارائه شده است .
<EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/editText" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" android:hint="User Name" android:layout_below="@+id/imageView" android:layout_alignLeft="@+id/imageView" android:layout_alignStart="@+id/imageView" android:numeric="integer" />
در غیر این صورت اگر مربوط به پسورد می باشد، پس باید نمای پسورد نشان دهد طوری که یوزر بتواند به راحتی پسورد را به خاطر بسپارد. ترکیب آن مانند زیر می باشد .
<EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/editText2" android:layout_alignLeft="@+id/editText" android:layout_alignStart="@+id/editText" android:hint="Pass Word" android:layout_below="@+id/editText" android:layout_alignRight="@+id/editText" android:layout_alignEnd="@+id/editText" android:password="true" />
تمرینات برتر- پس زمینه
کارهای مشخصی در یک برنامه وجود دارند که در پس زمینه ی آن در حال اجرا هستند. این کارها عبارتند از گرفتن چیزی از اینترنت، اجرای موسیقی، و غیره باشد. پیشنهاد می شود که کارهایی که مدت طولانی در حال انتظار بوده اند، نباید با رشته ی UI انجام شوند بلکه بهتر است در پس زمینه توسط سرویس ها یا AsyncTask. انجام شوند.
AsyncTask در مقایسه با سرویس ها
هردو برای انجام فعالیت های پس زمینه استفاده می شوند اما سرویس تحت تاثیر بسیاری از رویدادهای دوره ی کار اینترفیس یوزر قرار نمی گیرد، بنابراین به اجرا در محیط هایی ادامه می دهد که یک AsyncTask را می بندند.
تمرینات برتر- اجرا
زمانی که دستگاه شما به یک منبع نیرو یا شارژ متصل است، باید در انتهای پشتی، نه در انتهای جلویی، به طور متفاوت برنامه را اجرا کند. شارژممکن است از طریق USB یا از طریق کابل سیم انجام شود.
زمانی که دستگاه شما در حال شارژ کردن خود می باشد، پیشنهاد می شود که تنظیمات برنامه ی خود را آپدیت کنید، اگر برنامه ای باشد مانند به حداکثر رساندن میزان رفرش کردن در هنگام اتصال دستگاه. این کار می تواند به این شکل انجام شود.
IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); Intent batteryStatus = context.registerReceiver(null, ifilter); // Are we charging / charged? Full or charging. int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1); // How are we charging? From AC or USB. int chargePlug = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
تمرینات برتر- امنیت و خصوصی سازی
بسیار مهم است که برنامه ی شما دارای امیت باشد، و نه تنها برنامه بلکه داده ی یوزر و داده ی برنامه هم باید دارای این امنیت باشند. امنیت با دنبال کردن فاکتورهای زیر افزایش می یابد.
- از حافظه ی داخلی به جای حافظه ی خارجی برای ذخیره ی فایل های برنامه ها استفاده کنید.
- هر جا ممکن است از تامین کننده ی محتوا استفاده کنید.
- در هنگام اتصال به وب از SSI استفاده کنید.
- از مجوزهای موجود برای دسترسی به کاربردهای مختلف برنامه ها استفاده کنید
مثال
مثال زیر برخی از تمرینات برتری را توضیح می دهد که شما باید در زمان توسعه ی برنامه ی اندروید دنبال کنید. در این مثال یک برنامه ی پایه ایجاد می شود که به شما اجازه می دهد تا تعیین کنید که چگونه از فیلدهای متن استفاده کنید و چگونه اجرا را به وسیله ی کنترل شارژ تلفن افزایش دهید.
برای آزمایش این مثال لازم است آن را روی دستگاه انروید اجرا کنید.
مرحله | توضیحات |
1 | شما برای ایجاد یک برنامه ی اندروید از Eclipse IDE استفاده خواهید کرد و آن را با عنوان BestPractices تحت بسته ی com.example.autocomplete نام گذاری می کنید. |
2 | فایل src/MainActivity.java را برای افزودن کد، تغییر دهید. |
3 | لی اوت فایل XML مربوط به res/layout/activity_main.xml را تغییر دهید و اگر لازم است مولفه ی GUI اضافه کنید. |
4 | فایل res/values/string.xml را تغییر دهید و مولفه های رشته ی لازم را اضافه کنید. |
5 | فایل AndroidManifest.xml را برای افزودن دستورات لازم تغییر دهید. |
6 | برنامه را اجرا کنید و یک دستگاه اجرایی اندروید انتخاب کنید و برنامه را روی آن نصب کنید و نتایج را بررسی کنید. |
در اینجا محتوای src/com.example.bestpractices/MainActivity.java را مشاهده می کنید.
package com.example.sairamkrishna.myapplication; import android.content.Intent; import android.content.IntentFilter; import android.os.BatteryManager; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends ActionBarActivity { EditText ed1,ed2; Button b1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ed1=(EditText)findViewById(R.id.editText); ed2=(EditText)findViewById(R.id.editText2); b1=(Button)findViewById(R.id.button); b1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); Intent batteryStatus = registerReceiver(null, ifilter); int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1); boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING || status == BatteryManager.BATTERY_STATUS_FULL; int chargePlug = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED,-1); boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB; boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC; if(usbCharge){ Toast.makeText(getApplicationContext(),"Mobile is charging on USB", Toast.LENGTH_LONG).show(); } else { Toast.makeText(getApplicationContext(),"Mobile is charging on AC", Toast.LENGTH_LONG).show(); } } }); } @Override protected void onDestroy() { super.onDestroy(); } }
در اینجا محتوای فایل 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" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <TextView android:text="Bluetooth Example" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textview" android:textSize="35dp" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Tutorials point" android:id="@+id/textView" android:layout_below="@+id/textview" android:layout_centerHorizontal="true" android:textColor="#ff7aff24" android:textSize="35dp" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageView" android:src="@drawable/abc" android:layout_below="@+id/textView" android:layout_centerHorizontal="true" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/editText" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" android:hint="User Name" android:layout_below="@+id/imageView" android:layout_alignLeft="@+id/imageView" android:layout_alignStart="@+id/imageView" android:numeric="integer" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/editText2" android:layout_alignLeft="@+id/editText" android:layout_alignStart="@+id/editText" android:hint="Pass Word" android:layout_below="@+id/editText" android:layout_alignRight="@+id/editText" android:layout_alignEnd="@+id/editText" android:password="true" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Check" android:id="@+id/button" android:layout_below="@+id/editText2" android:layout_centerHorizontal="true" /> </RelativeLayout>
در اینجا محتوای Strings.xml را مشاهده می کنید.
<resources> <string name="app_name">My Application</string> </resources>
در اینجا محتوای AndroidManifest.xml را مشاهده می کنید.
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.sairamkrishna.myapplication" > <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.sairamkrishna.myapplication.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
اجازه بدهید برنامه ی BestPractices شما را اجرا کنیم. فرض می کنیم که دستگاه موبایل اندروید خود را به کامپیوتر متصل کرده اید. برای اجرای برنامه از Eclipse، یکی ازفایل های فعالیت پروژه را باز کرده و روی آیکن Run از تولبار کلیک کنید. قبل از شروع برنامه ی شما، Eclipse پنجره ی زیر را برای انتخاب گزینه ی محل اجرای برنامه ی اندرویدتان، نمایش خواهد داد.
دستگاه موبایل خود را به عنوان یک گزینه انتخاب کنید و سپس آن را چک کنید که صفحه ی زیر را نمایش خواهد داد.
اکنون روی فیلد Username تایپ کنید، و شما پیشنهادات داخلی اندروید را مشاهده می کنید که از دیکشنری می آیند. این امر در زیر نمایش داده شده است.
اکنون شما اشاره گر را در فیلد پسورد مشاهده می کنید که به محض اینکه آغاز به نوشتن کنید، ناپدید می شود. این امر در زیر نمایش داده شده است.
در انتها دستگاه خود را به کابل AC یا کابل USB متصل کنید و دکمه ی Charging check را فشار دهید. من دستگاه خود را از طریق یک کابل USB به یک کامپیوتر متصل می کنم که پیغام آن در زیر نمایش داده شده است.