Skip to content

ReaderTestAccount/SReaderClearTest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 

Repository files navigation

Папка SReaderClearTest содержит тестовый проект SReader.
Кроме стандартных для андроид-проекта файлов она содержит файл SReaderCodeFormatter.xml - это экспортированный их eclips форматер кода, который применялся для этого проекта.

Что сделано:
1. Оптимизирована функция разбития текста на страници; Код разбития вынесен в класс BookPageSpliter.java.
2. Оптимизирован парсер fb2, файл FB2ParserSaxHandler.java.

Приведенное решение это по сути оптимизация 2-х модулей и не затрагивает архитектуры в целом. 
На данный момент узким местом при открытии книги является инстанциирование Chapter FB2ParserSaxHandler.endElement() . На него приходится порядка 65% вычислительного времени. В нем производится разбитие строки главы (chapter) на слова (создание кучи объектов String).

Возможна значительная оптимизация кода (как минимум на те самые 65%) если изменить архитектуру приложения. Например избавится от массива слов в Book.Chapter.words. Сейчас они используются только для вывода на страници на экран в initView(). Насколько я понял это делается для того что бы запоминать позицию (которая репрезентуется chapterId и wordId) в тексте при выходе из книги. Однако вместо этого можно было бы просто запоминать текущий индекс в строке chapter. Это бы не только сильно ускорило открытие книги но и значительно (почти в 2 раза) уменьшило бы потребление памяти, что в свою очередь позволит открывать книги большего размера.

About

Test solution

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published