Android-모범 사례
Android 애플리케이션을 개발하는 동안 따를 수있는 몇 가지 사례가 있습니다. 이들은 안드로이드 자체에서 제안하며 시간과 관련하여 계속 개선됩니다.
이러한 모범 사례에는 상호 작용 디자인 기능, 성능, 보안 및 개인 정보 보호, 호환성, 테스트, 배포 및 수익 창출 팁이 포함됩니다. 범위를 좁히고 다음과 같이 나열합니다.
모범 사례-사용자 입력
모든 텍스트 필드는 다른 작업을위한 것입니다. 예를 들어, 일부 텍스트 필드는 텍스트 용이고 일부는 숫자 용입니다. 숫자 용인 경우 해당 텍스트 필드에 포커스가있을 때 숫자 키패드를 표시하는 것이 좋습니다. 구문은 다음과 같습니다.
<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);
모범 사례-보안 및 개인 정보
애플리케이션은 물론 애플리케이션뿐만 아니라 사용자 데이터와 애플리케이션 데이터도 안전하게 보호해야합니다. 보안은 다음 요인에 의해 강화 될 수 있습니다.
애플리케이션 파일 저장을 위해 외부가 아닌 내부 저장소를 사용합니다.
가능하면 콘텐츠 제공 업체를 사용하세요.
웹에 연결할 때 SSl 사용
장치의 다양한 기능에 액세스하려면 적절한 권한을 사용하십시오.
예
아래 예는 Android 애플리케이션을 개발할 때 따라야하는 몇 가지 모범 사례를 보여줍니다. 텍스트 필드를 사용하는 방법과 휴대폰의 충전 상태를 확인하여 성능을 향상시키는 방법을 지정할 수있는 기본 응용 프로그램을 만듭니다.
이 예제를 실험하려면 실제 기기에서 실행해야합니다.
단계 | 기술 |
---|---|
1 | Android 스튜디오 IDE를 사용하여 com.example.sairamkrishna.myapplication 패키지 아래에 Android 애플리케이션을 만듭니다. |
2 | src / MainActivity.java 파일을 수정하여 코드를 추가하십시오. |
삼 | 레이아웃 XML 파일 res / layout / activity_main.xml 수정 필요한 경우 GUI 구성 요소를 추가하십시오. |
4 | 애플리케이션을 실행하고 실행중인 Android 기기를 선택하고 여기에 애플리케이션을 설치하고 결과를 확인합니다. |
내용은 다음과 같습니다. src/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>
애플리케이션을 실행 해 보겠습니다. 실제 Android 모바일 장치를 컴퓨터에 연결했다고 가정합니다. Android 스튜디오에서 앱을 실행하려면 프로젝트의 활동 파일 중 하나를 열고
위 이미지는 응용 프로그램의 출력을 보여줍니다
이제 사용자 이름 필드에 입력하면 사전에 내장 된 Android 제안이 표시됩니다. 이것은 위에 표시됩니다.
이제 암호 필드가 표시됩니다. 현장에서 쓰기 시작하자마자 사라질 것입니다. 위에 나와 있습니다.
결국 장치를 AC 케이블 또는 USB 케이블에 연결하고 충전 확인 버튼을 누르십시오. 제 경우에는 AC 전원을 연결하면 다음과 같은 메시지가 표시됩니다.