Nimesh Chandramaniya Ответов: 0

Производительность кода android для вставки SMS


Я разрабатываю Android-приложение, для которого мне нужно вставлять SMS-сообщения на Android-устройство. Я столкнулся с проблемами производительности с моим кодом.

В настоящее время мой код занимает 120 секунд, чтобы вставить 500 сообщений, в то время как приложение "SMS Backup and Restore" занимает 80 секунд, чтобы вставить 500 сообщений.

Код:
Long start_time = System.currentTimeMillis();

 //fetch thread id
 Uri.Builder builder = thread_uri.buildUpon();
builder.appendQueryParameter("recipient", values.getAsString("address"));
Uri uri = builder.build();

Long threadId = 0L;
 Cursor cursor = sms.query(uri, new String[]{"_id"},
                                            null, null, null);

if (cursor.moveToFirst()) {
threadId = cursor.getLong(0);
}
cursor.close();
Log.d("nims","time to thread fetch:"+(System.currentTimeMillis()-start_time));

values.put("thread_id", threadId);
start_time = System.currentTimeMillis();

//insert SMS
sms.insert(sms_uri, values);
 Log.d("nims","time to insert main sms:"+(System.currentTimeMillis()-start_time));

 //insert dummy sms
start_time = System.currentTimeMillis();
ContentValues dummyValues = new ContentValues();
dummyValues.put("thread_id", threadId);
Uri dummySms = sms.insert(temp_sms_uri, dummyValues);

 //Delete dummy sms
 sms.delete(dummySms, null, null);

Log.d("nims","time to insert and delete temp sms:"+(System.currentTimeMillis()-start_time));


У меня есть следующие вопросы:

1. Почему происходит изменение времени вставки SMS, даже если данные SMS одинаковы?
2. Каковы возможные причины снижения производительности SMS insert code?
3. Какие альтернативные варианты можно попробовать, чтобы оптимизировать производительность?

Я был бы признателен за любые предложения по этому вопросу. Спасибо.

Что я уже пробовал:

Результаты отладки кода:

1. Я обнаружил, что код занимает различное время, чтобы вставить индивидуальных SMS-сообщений. Я обнаружил, что время вставки варьируется от 50 мс до 700 мс.
2. Время выполнения удаления фиктивного SMS-сообщения варьируется от 70 мс до 350 мс.

0 Ответов