Разработка Android-приложений "Mobile banking" для системы "Internet banking"
Характеристика основных компонентов системы Интернет-банкинг для частных клиентов. Разработка требований к обеспечению безопасности и графическому интерфейсу. Особенность реализации ядер виджетов. Расчет стоимости и анализ эффективности проекта.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 30.04.2019 |
Размер файла | 896,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
«Account widget» отображает баланс конкретного счета клиента, названия и суммы двух последних операций по счету в валюте этих транзакций. В конфигурационном экране происходит аутентификация клиента и выбор личного счета.
5.2.2 Временной регламент реализации каждой функции
Таблица 2 - Временной регламент реализации функций
Функция |
Требования к временному регламенту |
|
Отображение информации на “Currency widget” |
В течение всего времени функционирования системы“Internet banking”. В любой момент по запросу клиента |
|
Отображение информации на “Account widget” |
В течение всего времени функционирования системы “Internet banking”, в любой момент после аутентификации пользователя. |
5.2.3 Требования к качеству реализации каждой функции к форме представления выходной информации, характеристики точности, достоверности выдачи результатов
Таблица 3 - Характеристики точности и времени выполнения функций
Функция |
Форма представления выходной информации |
Характеристики точности и времени выполнения |
|
Отображение информации на “Currency widget” |
Отображение на рабочем столе устройства виджета с соответствующей информацией. |
Не допускаются ошибки в точности предоставленной информации. В случае недоступности данного сервиса, вывести сообщение об ошибке. |
|
Отображение информации на “Account widget” |
Отображение на рабочем столе устройства виджета с соответствующей информацией. |
Не допускаются ошибки в точности предоставленной информации. В случае недоступности данного сервиса, вывести сообщение об ошибке. |
5.3 Требования к видам обеспечения
5.3.1 Требования к информационному обеспечению
5.3.1.1. Требования к составу, структуре и способам организации данных в приложений
В приложениях «Mobile banking» должны поддерживаться следующие типы хранения данных:
– временное хранилище данных (для хранения данных о сетевых соединениях и информации, выводимой на экран)
– постоянное хранилище данных (для хранения конфигурационных файлов и справочников);
5.3.1.2 Требования к информационному обмену между компонентами приложений
Обмен информацией в обоих приложениях («Currency widget» и «Account widget») происходит по одной схеме. Схема взаимодействия между компонентами приведена в «таблице 4».
Таблица 4 - Схема взаимодействия компонентов приложений
Модуль связи с серверной частью системы «Internet banking» |
Виджет |
Конфигурационныйэкран (activity) |
||
Модуль связи с серверной частью системы «Internet banking» |
X |
|||
Виджет |
X |
|||
Конфигурационныйэкран (activity) |
X |
X |
5.3.1.3 Требования к информационной совместимости со смежными системами
Приложения «Mobile banking» разрабатываются как мобильные клиенты системы «Internet banking», поэтому должны быть полностью совместимы с ней. При внесении в систему «Internet banking» изменений, инициированных заказчиком и оказывающих влияние на работу приложений «Mobile banking», должен дополнительно составляться договор о модернизации приложений. В случае изменений в системе «Internet banking», связанных с ее поддержкой и сопровождением компанией «Compass plus» и влияющих на работу пакета приложений «Mobile banking», а так же при наличии договора на поддержку этих приложений, модернизация происходит в порядке простых обновлений, выпускаемых к виджетам.
5.3.1.4 Требования к структуре процесса сбора, обработки, передачи данных в приложениях и представлению данных
Процесс сбора информации происходит при выборе пользователем соответствующих настроек в конфигурационном экране виджета. Запрос формируется с помощью модуля связи с серверной частью и отправляется на сервер. Полученный ответ в виде возвращаемого значения конкретной функции обрабатывается в ядре одного из приложений «Mobile banking», после чего отображается соответствующая информация (графическое отображение, предусмотренной виджетом информации или сообщение об ошибке).
5.3.1.5 Требования к контролю, хранению, обновлению и восстановлению данных
В рамках контроля, хранения, обновления и восстановления данных должны выполняться следующие требования:
– конфигурационный файл и справочники приложений хранятся в открытом виде, но без возможности их изменения извне, поскольку не содержат личной информации клиента, но должны быть защищены он несанкционированного доступа;
– после установления соединения в системе не должны храниться личные данные пользователя, поскольку, в течение существования соединения с системой «Internet banking», их повторная пересылка не требуется.
5.3.2 Требования к лингвистическому обеспечению В лингвистическое обеспечение должны входить:
– реализация графического интерфейса приложений «Mobile
banking» на английском и русском языках;
– вывод возможных ошибок приложений «Mobile banking» на английском и русском языках;
– автоматический выбор языка в зависимости от языковых настроек устройства (если на устройстве установлен русский язык, то надписи в приложениях отображаются на русском, в противном случае - на английском);
– возможность реализации графического интерфейса приложений «Mobile banking» и вывода возможных ошибок на других языках;
5.3.3 Требования к средствам разработки
Для разработки используются следующие средства:
– IDE Eclipse - среда разработки, являющаяся свободным программным обеспечением;
– язык программирования Java - выбран в качестве основного языка разработки;
– Android Development Tools plugin - плагин для IDE Eclipse, позволяющий разрабатывать приложения для мобильной платформы
Android;
– Android SDK(software development kit) - комплект средств (библиотек) для разработки приложений для мобильной платформы Android.
5.3.4 Требования к операционной системе устройств
Приложения «Mobile banking» совместимы с операционной системой Android версии 4.0 и выше.
5.3.5 Требования к метрологическому обеспечению
В приложении «Currency widget» курсы валют округляются до второго знака после запятой, а величина, показывающая изменение курсов, по сравнению предыдущим бизнес днем округляется до третьего знака после запятой.
В приложении «Account widget» не допускается округление баланса счета клиента, а так же сумм двух последних операций по счету.
5.3.6 Требования к организационному обеспечению
Пользователями приложений «Mobile banking» являются частные клиенты банка, то есть физические лица. Обслуживающий персонал обеспечивает работоспособность данных приложений. Для обеспечения бесперебойного функционирования приложений должны выполняться следующие требования:
– разработка новых обновлений приложений;
– своевременное устранение критических ошибок приложений;
– своевременное устранение некритических ошибок приложений.
5.3.7 Требования к патентной чистоте
При использовании любых программных средств в процессе разработки и использования приложений, должны соблюдаться лицензионные соглашения и патентная чистота.
6. Состав и содержние работ по созданию приложений
План по которому осуществляется выполнение проекта разработан в MS Project 2007 и представлен на «рисунке 3».
7. ПОРЯДОК КОНТРОЛЯ И ПРИЕМКИ ПРИЛОЖЕНИЙ
7.1 Виды и объем испытаний приложений
Приложения проходят следующие испытания:
– Тестирование разработчиком;
– Тестирование заказчиком;
7.2 Требования к приемке работ по стадиям
Требования к приемке работ по стадиям приведены в «таблице 5».
Размещено на http://www.allbest.ru/
1
1
Рисунок 26 - План-график проекта
Таблица 5 - Требования к приемке работ
Стадия испытаний |
Участники испытаний |
Место и срок проведения |
Порядок проведения |
Статус приемочной комиссии |
|
Тестирование разработчиком |
Разработчик |
На территории заказчика |
Проведение различных испытаний приложений «Mobile banking» разработчиком. Поиск различных неполадок в работе приложений разработчиком. Устранение найденных неполадок разработчиком. Подтверждение устранения найденных неполадок разработчиком. |
Группа тестирования |
|
Тестирование заказчиком |
Заказчик и разработчик |
На территории заказчика |
Проведение различных испытаний приложений «Mobile banking» сотрудниками компании-зказчика.Поиск различных неполадок в работе приложений сотрудниками компаниизказчика.Устранение найденных неполадок разработчиком. Подтверждение устранения найденных неполадок сотрудниками компаниизказчика. |
Группа тестирования |
8. ТРЕБОВАНИЯ К СОСТАВУ И СОДЕРЖАНИЮ РАБОТ ПО ПОДГОТОВКЕ К ВВОДУ ПРИЛОЖЕНИЙ В ДЕЙСТВИЕ
Заказчиком должны быть сформированы группа тестирования. В данную группу должны входить сотрудники компании, добровольно записавшиеся на тестирование приложений «Mobile banking».
В конце дня разработчику должен быть предоставлен отчет, содержащий в себе описание проблем, связанных с использованием приложений. Отчет не имеет стандартной формы и по желанию
тестировщиков может быть устным.
9. ТРЕБОВАНИЯ К ДОКУМЕНТИРОВАНИЮ
Вся работа по разработке приложений должна быть документирована в соответствии со стандартами. Перечень стандартов и базовых нормативных документов для выполнения проекта приведены ниже:
1. ГОСТ 34.602 Информационные технологии. Комплекс стандартов на автоматизированные системы. Техническое задание на создание автоматизированной системы.
2. РД 50-34.698-90 Автоматизированные системы требования к содержанию документов.
3. ГОСТ Р ИСО/МЭК 12207-99 Процессы жизненного цикла ПС.
4. ISO 15504:1-9:1998 Оценка (аттестация) процессов жизненного цикла программных средств
5. ISO 15271:1998. (ГОСТ Р-2002). ИТ. Руководство по применению ISO 12207.
6. ISO 16326:1999. (ГОСТ Р-2002). ИТ. Руководство по применению ISO 12207 при административном управлении проектами.
7. ISO 9000-3:1997. Стандарты в области административного управления качеством и обеспечения качества. Часть 3. Руководящие положения по применению стандарта ISO 9001 при разработке, поставке и обслуживании программного обеспечения.
8. ГОСТ 19-201-78 Единая система программной документации.
Техническое здание. Требование к содержанию и оформлению.
9. ГОСТ 19.402-78 Единая система программной документации.
Описание программы.
10. ГОСТ 19.404-79 Единая система программной документации.
Пояснительная записка. Требования к содержанию и оформлению.
11. ГОСТ 19.301-79 Единая система программной документации. Программа и методика испытаний. Требования к содержанию и оформлению.
СОСТАВИЛИ
Наименование организациипредприятия |
Должность исполнителя. |
Фамилия, имя,отчество |
Подпись |
Дата |
|
Пиший СергейАлександрович |
СОГЛАСОВАНО
Наименование организации предприятия |
Должность исполнителя |
Фамилия, имя,отчество |
Подпись |
Дата |
|
ООО «Compass Plus» |
Начальник отдела дистанционных сервисов |
Аркадьев ВячеславЮрьевич |
//Класс, управляющий работой и отображением «Account widget» package com.test.account;
import java.util.ArrayList; import java.util.Locale; import com.test.account.R;
import android.app.PendingIntent;
import android.app.PendingIntent.CanceledException; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.net.Uri; import android.os.AsyncTask; import android.view.View; import android.widget.RemoteViews; import android.widget.Toast;
public class AccountWidgetProvider extends AppWidgetProvider {
public static String ACTION_UPDATE_BUTTON_CLICK = "ActionUpdateButtonClick"; final static String LOG_TAG = "myLogs";
protected static ArrayList<String[]> acctsList = new ArrayList<String[]>(); private static String account; private static String language; private static boolean isUpdating;
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
super.onUpdate(context, appWidgetManager, appWidgetIds);
SharedPreferences sp = context.getSharedPreferences(
AccountConfigActivity.WIDGET_PREF,
Context.MODE_PRIVATE); for (int id : appWidgetIds) {
updateWidget(context, appWidgetManager, sp, id);
}
}
public static PendingIntent buildButtonPendingIntent(Context context, String action) { Intent intent = new Intent(context, AccountWidgetProvider.class); intent.setAction(action);
return PendingIntent.getBroadcast(context, 0, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
}
@Override public void onDeleted(Context context, int[] appWidgetIds) {
super.onDeleted(context, appWidgetIds); Editor editor = context.getSharedPreferences(
AccountConfigActivity.WIDGET_PREF, Context.MODE_PRIVATE).edit(); for (int widgetID : appWidgetIds) { editor.remove(AccountConfigActivity.WIDGET_ACCOUNT+widgetID); editor.remove(AccountConfigActivity.WIDGET_LANGUAGE+widgetID);
}
editor.commit(); }
static void updateWidget(Context context, AppWidgetManager appWidgetManager, SharedPreferences sp, int widgetID) {
account = sp.getString(AccountConfigActivity.WIDGET_ACCOUNT+ widgetID, null); if(account == null) { return; }
language = sp.getString(AccountConfigActivity.WIDGET_LANGUAGE+ widgetID, null); if(language == null) { return; }
isUpdating = true;
RemoteViews remoteViews = new RemoteViews(context.getPackageName(),
R.layout.account_widget_layout); remoteViews.setInt(R.id.widgetStelsGridLayout, "setBackgroundResource", R.drawable.round_rect_shape_transp);
remoteViews.setInt(R.id.WidgetProgressBar, "setVisibility", View.VISIBLE);
remoteViews.setOnClickPendingIntent(R.id.WidgetGridLayout, AccountWidgetProvider.buildButtonPendingIntent(
context,
ACTION_UPDATE_BUTTON_CLICK + widgetID));
appWidgetManager.updateAppWidget(widgetID, remoteViews);
MyTask mt = new MyTask(remoteViews, context, widgetID, appWidgetManager); mt.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, account); }
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
ComponentName name = new ComponentName(context, AccountWidgetProvider.class); int [] ids = AppWidgetManager.getInstance(context).getAppWidgetIds(name);
SharedPreferences sp = context.getSharedPreferences(
AccountConfigActivity.WIDGET_PREF,
Context.MODE_PRIVATE); AppWidgetManager manager = AppWidgetManager.getInstance(context); for (int id : ids) {
if ((ACTION_UPDATE_BUTTON_CLICK+id).equals(action) && isUpdating == false) { updateWidget(context, manager, sp, id);
} }
super.onReceive(context, intent);
}
public static class MyTask extends AsyncTask<String, Void, String[]> {
private static final String CONNECTION_ERROR_TOAST_START = "connection_error_toast_start"; private static final String UNKNOWN_ERROR_TOAST_START = "unknown_error_toast_start"; private static final String ERROR_MESSAGE_TOAST_START = "error_message_toast_start";
private static final String CONFIG_ACTIVITY_START = "config_activity_start"; private static final String UPDATE_COMPLETE = "update_complete"; public RemoteViews remoteViews; public Context context; public int widgetID;
public AppWidgetManager appWidgetManager;
MyTask(RemoteViews remoteViews, Context context, int widgetID,
AppWidgetManager appWidgetManager) { this.remoteViews = remoteViews; this.context = context; this.widgetID = widgetID;
this.appWidgetManager = appWidgetManager;
}
@Override
protected String[] doInBackground(String... params) { String response[] = new String[] {"", "", "", "", "", "", ""};
ArrayList<String[]> acctsList = AccountConfigActivity.sc.getAcctsList(); if (acctsList == null) {
String acctsResponse = AccountConfigActivity.sc.getChannel()
.getLastXmlByName("AcctsRq"); String acctsResponseCode = ServerConnection.getResponseCode(acctsResponse); if (acctsResponseCode == null) { response = new String[]{CONNECTION_ERROR_TOAST_START};
} else
if (acctsResponseCode.equals("-3") || acctsResponseCode.equals("-2") || acctsResponseCode.equals("1008")) {
response = new String[]{CONFIG_ACTIVITY_START};
} else {
String message = AccountConfigActivity.sc.getResponseMessageByCode( acctsResponseCode); if (message == null) {
response = new String[]{UNKNOWN_ERROR_TOAST_START};
} else { response = new String[]{ERROR_MESSAGE_TOAST_START, message};
}
}
} else {
SharedPreferences sp = context.getSharedPreferences(
AccountConfigActivity.WIDGET_PREF, Context.MODE_PRIVATE); account = sp.getString(AccountConfigActivity.WIDGET_ACCOUNT+ widgetID, null);
language = sp.getString(AccountConfigActivity.WIDGET_LANGUAGE+ widgetID, null); String operationText = null; String accountText = null;
if(language.equals(context.getResources().getString(
R.string.LanguageSettingEn))) { operationText = context.getResources().getString(
R.string.WidgetOperationEn); accountText = context.getResources().getString(R.string.WidgetAccountEn);
}
if(language.equals(context.getResources().getString(
R.string.LanguageSettingRu))) { operationText = context.getResources().getString(
R.string.WidgetOperationRu); accountText = context.getResources().getString(R.string.WidgetAccountRu); }
ArrayList<String[]> operList = AccountConfigActivity.sc.getOperHistList(
account, 2); if (operList == null) {
String operHistResponse = AccountConfigActivity.sc.getChannel()
.getLastXmlByName("OperHistRq"); String operHistResponseCode = ServerConnection.getResponseCode(
operHistResponse); if (operHistResponseCode == null) {
response = new String[]{CONNECTION_ERROR_TOAST_START};
} else
if (!operHistResponseCode.equals("1")) { if (operHistResponseCode.equals("-3") || operHistResponseCode.equals("-2") || operHistResponseCode.equals("1008")) { response = new String[]{CONFIG_ACTIVITY_START};
} else {
String message = AccountConfigActivity.sc. getResponseMessageByCode(
operHistResponseCode); if (message == null) {
response = new String[]{UNKNOWN_ERROR_TOAST_START};
} else {
response = new String[]{ERROR_MESSAGE_TOAST_START, message};
}
} } else {
response[3] = ""; response[4] = ""; response[5] = ""; response[6] = "";
}
} else {
if(operList.size() == 0) { response[3] = ""; response[4] = ""; response[5] = ""; response[6] = "";
} else {
if ((response[3] = operList.get(0)[4]) == null) { response[3] = operationText + " " + operList.get(0)[0];
}
response[4] = operList.get(0)[2] + " " +
AccountConfigActivity.sc.getCurrencyIsoByCode( operList.get(0)[3]);
} if(operList.size() == 1) { response[5] = ""; response[6] = "";
} else {
if ((response[5] = operList.get(1)[4]) == null) { response[5] = operationText + " " + operList.get(1)[0];
} response[6] = operList.get(1)[2] + " " + AccountConfigActivity.sc. getCurrencyIsoByCode(operList.get(1)[3]); }
}
for (int i = 0; i < acctsList.size(); i++) { if (acctsList.get(i)[0].equals(account)) { if (acctsList.get(i)[3] != null) { response[1] = acctsList.get(i)[3];
} else {
response[1] = accountText + " " + acctsList.get(i)[0];
}
response[2] = String.format(Locale.US, "%,8.2f",
Double.valueOf(acctsList.get(i)[2])); response[2] = response[2].replaceAll(",", " ")+ " " + AccountConfigActivity.sc.getCurrencyIsoByCode( acctsList.get(i)[1]); break;
} }
response[0] = UPDATE_COMPLETE;
}
return response; }
@Override
protected void onPostExecute(String[] result) { super.onPostExecute(result);
if (result[0].equals(CONFIG_ACTIVITY_START)) {
Intent intent = new Intent(context, AccountConfigActivity.class); intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetID); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME))); PendingIntent pendIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); try {
pendIntent.send();
} catch (CanceledException e) {
e.printStackTrace(); }
remoteViews.setInt(R.id.widgetStelsGridLayout, "setBackgroundResource", R.drawable.round_rect_shape_abs_transp); remoteViews.setInt(R.id.WidgetProgressBar, "setVisibility", View.INVISIBLE);
appWidgetManager.updateAppWidget(widgetID, remoteViews); isUpdating = false;
}
if (result[0].equals(UPDATE_COMPLETE)) {
remoteViews.setTextViewText(R.id.widget_textview1, result[1]); remoteViews.setTextViewText(R.id.widget_textview2, result[2]); remoteViews.setTextViewText(R.id.widget_textview3, result[5]); remoteViews.setTextViewText(R.id.widget_textview4, result[6]); remoteViews.setTextViewText(R.id.widget_textview5, result[3]); remoteViews.setTextViewText(R.id.widget_textview6, result[4]); if(!result[4].equals("")) { if(result[4].charAt(0) == '-'){
remoteViews.setTextColor(R.id.widget_textview6,
context.getResources().getColor(R.color.RedText));
}
if(result[4].charAt(0) == '+'){
remoteViews.setTextColor(R.id.widget_textview6,
context.getResources().getColor(R.color.GreenText)); } } if(!result[6].equals("")) { if(result[6].charAt(0) == '-'){
remoteViews.setTextColor(R.id.widget_textview4,
context.getResources().getColor(R.color.RedText));
}
if(result[6].charAt(0) == '+'){
remoteViews.setTextColor(R.id.widget_textview4,
context.getResources().getColor(R.color.GreenText)); } }
remoteViews.setInt(R.id.widgetStelsGridLayout, "setBackgroundResource", R.drawable.round_rect_shape_abs_transp); remoteViews.setInt(R.id.WidgetProgressBar, "setVisibility", View.INVISIBLE);
appWidgetManager.updateAppWidget(widgetID, remoteViews); isUpdating = false;
}
if (result[0].equals(ERROR_MESSAGE_TOAST_START)) {
Toast.makeText(context, result[1], Toast.LENGTH_LONG).show();
remoteViews.setInt(R.id.widgetStelsGridLayout, "setBackgroundResource", R.drawable.round_rect_shape_abs_transp); remoteViews.setInt(R.id.WidgetProgressBar, "setVisibility", View.INVISIBLE);
appWidgetManager.updateAppWidget(widgetID, remoteViews); isUpdating = false;
} if (result[0].equals(UNKNOWN_ERROR_TOAST_START)) { if (language.equals(context.getResources().
getString(R.string.LanguageSettingRu))) {
Toast.makeText(context, "Произошла неизвестная ошибка",
Toast.LENGTH_LONG).show();
} else {
Toast.makeText(context, "Unknown error happened",
Toast.LENGTH_LONG).show();
}
remoteViews.setInt(R.id.widgetStelsGridLayout, "setBackgroundResource", R.drawable.round_rect_shape_abs_transp);
remoteViews.setInt(R.id.WidgetProgressBar, "setVisibility", View.INVISIBLE);
appWidgetManager.updateAppWidget(widgetID, remoteViews); isUpdating = false;
} if (result[0].equals(CONNECTION_ERROR_TOAST_START)) { if (language.equals(context.getResources().
getString(R.string.LanguageSettingRu))) {
Toast.makeText(context, "Проблема соединения, попробуйте позже", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(context, "Connection problem, try again later", Toast.LENGTH_LONG).show();
}
remoteViews.setInt(R.id.widgetStelsGridLayout, "setBackgroundResource", R.drawable.round_rect_shape_abs_transp); remoteViews.setInt(R.id.WidgetProgressBar, "setVisibility", View.INVISIBLE);
appWidgetManager.updateAppWidget(widgetID, remoteViews); isUpdating = false;
Размещено на Allbest.ru
Подобные документы
Общие характеристики операционной системы Android. Разработка приложения на основе создания менеджера файлов. Получение с помощью приложения доступа к файлам, хранящимся в "облачном хранилище" в сети Интернет. Расчет стоимости программного обеспечения.
дипломная работа [2,7 M], добавлен 03.04.2015Первое устройство, работающее под управлением Android. Приложения под операционную систему Android. Формат установочных пакетов. Разработка приложений на языке Java. Шаблоны основных пакетов и компонентов Android. Сборка приложений, основанная на Gradle.
курсовая работа [492,0 K], добавлен 08.02.2016Изучение общих понятий операционной системы Android, разработанной для коммуникаторов, планшетных компьютеров, основанной на ядре Linux. Разработка программного обеспечения Android. Преимущества и недостатки мобильной операционной системы Windows Mobile.
реферат [60,6 K], добавлен 16.04.2012Архитектура операционной системы Android. Инструменты Android-разработчика. Установка Java Development Kit, Eclipse IDE, Android SDK. Настройка Android Development Tools. Разработка программы для работы с документами и для осуществления оперативной связи.
курсовая работа [2,0 M], добавлен 19.10.2014Общий обзор проблемы безопасности ОС Android. Развитие индустрии по борьбе с вредоносным и мошенническим ПО. Разработка Системы ранжирования уровней опасности Android приложений. Выбор производителя и типа СУБД. Тестирование программного обеспечения.
дипломная работа [2,7 M], добавлен 13.02.2016Проектирование автоматизированной системы обслуживания клиентов банка через Интернет, функциональные требования к ней. Выбор системы управления базами данных. Описание интерфейса программы, ее тестирование. Расчёт экономической эффективности проекта.
дипломная работа [7,9 M], добавлен 24.03.2010Преимущества операционной системы Android. Проектирование интерфейса приложений. Визуальные редакторы и средства кроссплатформенной разработки. Оптимизация игрового процесса, выбор фреймворка и библиотек. Классификация и характеристика игр по жанрам.
дипломная работа [2,6 M], добавлен 10.07.2017Правовое регулирование защиты персональных данных. Общий принцип построения соответствующей системы. Разработка основных положений по охране личных документов. Подбор требований по обеспечению безопасности персональных данных в информационных системах.
дипломная работа [1,3 M], добавлен 01.07.2011Разработка приложений для смартфонов на ОС Android для сети аптек "Фармация". Архитектура операционной системы Android. Архитектура и реализация приложения. Его функциональность. Описание работы мобильного приложения. Расчет затрат на создание продукта.
дипломная работа [1,6 M], добавлен 17.06.2017Архитектура операционной системы Android, набор библиотек для обеспечения базового функционала приложений и виртуальная машина Dalvik. Объектно-ориентированный язык программирования Java как инструмент разработки мобильных приложений для ОС Android.
дипломная работа [1,6 M], добавлен 08.07.2015