Есть несколько приемов, которым вы можете следовать при разработке приложений для 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" />
Лучшие практики — Фоновые работы
В приложении есть определенные задания, которые выполняются в фоновом режиме. Их работа может заключаться в извлечении чего-либо из Интернета, проигрывании музыки и т. Д. Рекомендуется, чтобы долгожданные задачи выполнялись не в потоке пользовательского интерфейса, а в фоновом режиме службами или AsyncTask.
AsyncTask Vs Services.
Оба они используются для выполнения фоновых задач, но большинство событий жизненного цикла пользовательского интерфейса не влияют на службу, поэтому она продолжает работать при обстоятельствах, при которых 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 при подключении к сети
-
Используйте соответствующие разрешения для доступа к различным функциям устройства
Используйте внутреннее хранилище, а не внешнее для хранения файлов приложений
Используйте контент-провайдеров везде, где это возможно
Используйте SSl при подключении к сети
Используйте соответствующие разрешения для доступа к различным функциям устройства
пример
Приведенный ниже пример демонстрирует некоторые из лучших практик, которым вы должны следовать при разработке приложений для Android. Это базовое приложение, которое позволяет вам указать, как использовать текстовые поля и как повысить производительность, проверяя состояние зарядки телефона.
Чтобы поэкспериментировать с этим примером, вам нужно запустить его на реальном устройстве.
меры | Описание |
---|---|
1 | Вы будете использовать Android Studio IDE для создания приложения Android в пакете com.example.sairamkrishna.myapplication. |
2 | Измените файл src / MainActivity.java, чтобы добавить код |
3 | Измените 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 Studio будет отображать следующие изображения.
Выше изображение показывает вывод приложения
Теперь просто введите в поле имени пользователя, и вы увидите, что встроенные предложения андроида из словаря начнут появляться. Это показано выше.
Теперь вы увидите поле пароля. Он исчезнет, как только вы начнете писать в поле. Это показано выше.
В конце просто подключите ваше устройство к кабелю переменного тока или USB-кабелю и нажмите кнопку проверки зарядки. В моем случае, я подключаю переменный ток, он показывает следующее сообщение.