ReaderTestAccount/SReaderClearTest
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
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 0
No packages published