В моем проекте Android я хотел бы извлечь простой текст из файла PDF.Мне удалось это сделать, я попробовал itext , а также библиотеку pdfbox .Независимо от того, какой из них используется, процесс извлечения текста из одностраничного файла PDF занимает 2-3 минуты (!).И это не симулятор, а Samsung Galaxy S7 на Android 8.0.
Я пытался исследовать в отладчике, что занимает так много времени, однако с помощью отладчика Android Studio я не смог этого сделать, иногда точки останова не работают, стек вызовов не отображался, когда программа была приостановлена, или программа завершаетсяВнезапный после паузы ...
Код запускается в JobIntentService:
public class GetMenuService extends JobIntentService {
...
@Override
protected void onHandleWork(Intent intent) {
try {
PdfReader reader = new PdfReader(new File(getFilesDir(), MENU_FILENAME).getPath());
int n = reader.getNumberOfPages();
for (int i = 0; i <n ; i++) {
parsedText = parsedText+ PdfTextExtractor.getTextFromPage(reader, i+1).trim()+"\n"; //Extracting the content from the different pages
}
System.out.println(parsedText);
reader.close();
} catch (Exception e) {
System.out.println(e);
}
...
}
}
Для повышения производительности необходимо знать, что является причиной проблемы.Библиотека такая медленная?Вам не хватает оптимизации сборки в Android Studio?Или это потому, что код находится внутри JobIntentService?