Производительность кода 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 мс.