# 不动的大图书馆
Author:雾雨霜星
Web:[雾雨霜星 | DA☆ZE (shuangxing.top)](https://www.shuangxing.top/#/)
Time:2021-09-04
## 软件简介
"不动的大图书馆"是一款简单、高效、开源的PDF电子书书架软件。
特点:
* 简单:简洁UI界面;无需用户登录;
* 干净:不带有任何广告,不会插播任何等待打开页面
* 安全:不提供联网接口,不会发送任何用户信息
* 高效:功能清晰,记录每次最后阅读
* 独立:不与任何第三方软件进行交互
* 兼容:适用于任何Android版本的系统
* 轻量:自身体积小,后期所占空间由添加的PDF文件决定
* 开源:源码完全开放,可根据需求自定义
开源地址:[不动的大图书馆:一款简单、高效、开源的PDF电子书架软件](https://gitee.com/marisa-kirisame/a-large-immovable-library)
下载APK:https://gitee.com/marisa-kirisame/a-large-immovable-library/blob/master/app-release.apk
## 使用说明
主要有四个页面:主页面(书架与电子书)、搜索页面、阅读页面、目录页面
<img src="http://marisa-kirisame.gitee.io/a-large-immovable-library/页面展示/主页面.jpg" style="zoom:25%;" /><img src="http://marisa-kirisame.gitee.io/a-large-immovable-library/页面展示/搜索页面.jpg" style="zoom:25%;" /><img src="http://marisa-kirisame.gitee.io/a-large-immovable-library/页面展示/阅读页面.jpg" style="zoom:25%;" /><img src="http://marisa-kirisame.gitee.io/a-large-immovable-library/页面展示/目录页面.jpg" style="zoom:25%;" />
### 页面说明
主页面:
* 工具栏左上角的加号按键:创建新书架
* "最近阅读"书架:记录了上次阅读的PDF文件及其页码
* 书架块靠左侧加号按键:对此书架添加PDF文件,进入搜索页面
* 书架块靠右侧菜单按键:下拉展示此书架内的PDF文件
* 长按书架块:对书架进行重命名或者删除操作
* 长按电子书块:对相应书架文件夹下的PDF文件进行重命名或者删除操作
* 点击电子书块:进入阅读页面,打开此PDF文件
搜索页面:
* 返回书架按键:关闭搜索页面,返回主页面
* 从手机中选择文件按键:从手机中选择PDF文件添加到相应的书架
* 从文件夹搜索文件按键:从手机中选择文件夹,搜索此文件夹内的PDF文件,列出搜索结果,点击搜索结果决定是否选择添加
阅读页面:
* 上一页按键:自动翻页到上一页
* 目录按键:进入目录页面
* 下一页按键:自动翻页到下一页
目录页面:
* 左上角的返回按键:关闭目录页面,返回阅读页面
* 目录项左侧的箭头按键:点击下拉展开该目录项的子目录
* 点击目录项块:关闭目录页面并返回阅读页面,翻页到相应的页码
### 内部存储模式
* APP安装后第一次启动,会在自己的目录路径下建立以下两个文件
* library文件夹:其内为书架文件夹(每个书架对应一个文件夹),书架文件夹内为该书架所有的PDF文件
* recentReadRecord.txt:用于记录最近阅读的文本文件(第一行为"最近阅读"书架的书架名;第二行为上次阅读的PDF文件位置;第三行为上次阅读到的页码)
* 关于添加PDF文件:复制操作,而不是移动操作。即原位置的PDF文件不会改变,只是复制多了一份到相应的书架文件夹下。
* 内部存储空间占用:软件自身大小约为20M左右,后期内部存储空间占用为所添加的PDF文件。考虑到某些PDF文件比较大(甚至可能大于25M),可考虑删除其原本所在位置下的PDF文件。
### 软件卸载
卸载软件时,其中的library文件夹和recentReadRecord.txt也会被一并删除。故已经复制到了书架文件夹中的PDF文件的复制文件也会被删除。
## 已知BUG
1. 视图延迟:
* 电子书执行重命名或者删除操作后,书架中PDF文件的顺序未变化,仅视图上变化了。要重新点击展开按键,来实现更改。
* "最近阅读"软件后重开才生效,即不关闭软件,显示上不会改变。但记录文件在阅读页面退出时已更新。
2. 视图缺失:
对普通书架进行重命名或删除操作后,"最近阅读"书架会在界面消失。重新打开软件即可。
3. 记录延迟:
"最近阅读"中对应的PDF文件被删除后,记录未发生改变时,打开会直接显示空白。
4. 记录缺失:
"最近阅读"书架重命名后其内保存的记录会消失。
## 源码浅析
### src/main/java/com.example.ebookapp/
* MainActivity.java:主页面类
1. 主页面挂载activity_main.xml,文件夹管理器(FileManager)、视图控制管理器(ViewManager)初始化
2. 视图管理器控制显示书架、"最近阅读"书架
3. 主页面的ToolBar初始化
* CatalogueActivity.java:目录页面类,主要是控制显示目录列表,设置子目录显示的监听
* PdfViewActivity.java:阅读页面类
1. 获取上一个页面启动Intent传输过来的PDF文件位置、页码
2. pdfView的设置:事件监听、渲染风格、文件确定
3. 完全加载后获取目录树数据
4. 设置目录页面的回调监听
* SearchBookActivity.java:搜索页面类
1. 初始化UriFileService
2. 页面控件初始化,视图控制管理器监听控制页面变化
3. 配置使用Intent获取URI进行文件访问的回调监听
* Service/Manager/:
* FileManager:文件管理类
1. APP初始化检查Library文件夹、检查记录文本文件
2. 读取最近阅读记录文本文件
3. 读取书架文件夹
4. 删除文件夹或者文件
* ViewManager:视图控制管理类
1. 书架显示
2. 显示"最近阅读"书架
3. 目录显示
4. 显示搜索结果列表
* PermissionManager:权限控制类。主要进行动态获取权限、检查权限状况。
* Service/Service/:提供服务接口的类
* UriFileService:提供使用Intent获取URI访问文件的服务
1. 启动Intent获取打开文件、文件树的URI的页面
2. 文件复制:提供文件URI与目录路径执行复制操作
3. 获取文件树URI对应文件夹下所有的PDF文件的URI
* Service/Listener/:
* ListenerAddBook:添加PDF文件的按键的点击事件监听器
* ListenerCatalogueGoBack:目录页面返回按键的点击事件监听器
* ListenerCatalogueItemOnClick:目录页面目录项的点击事件监听器
* ListenerCatalogueSubset:目录页面展示子目录按键的点击事件监听器
* ListenerCreateShell:创建新书架按键的点击事件监听器
* ListenerDisplayBook:下拉显示电子书按键的点击事件监听器
* ListenerDisplayBookRecentRead:下拉"最近阅读"书架显示电子书按键的点击事件监听器
* ListenerOpenCatalogue:阅读页面打开目录按键的点击事件监听器
* ListenerRemoveRenameBook:电子书块的长按执行重命名或删除的事件监听器
* ListenerRemoveRenameRecentRead:"最近阅读"书架长按执行重命名或删除的事件监听器
* ListenerRenameRemoveShell:普通书架块的长按执行重命名或删除的事件监听器
* ListenerSearchItemOnClick:搜索结果列表各项的点击事件监听器
* ListenerToolbarOnClick:主页面的工具栏(ToolBar)点击事件监听器
* Service/Adapter/:各个ListView的子元素数据接口Adapter
* ListViewAdapter:用于显示:书架电子书、搜索项电子书的ListView的子元素数据接口
* ListViewCatalogueSubsetAdapter:主要用于显示目录的子目录的ListView每一项的数据接口
* widget/:JavaBean风格抽象类
* Book:电子书抽象化
* Shell:书架抽象化
* MyListView:自定义ListView控件,解决ScrollView中只显示一项的问题
* TreeNodeData:树形控件数据类(会用于页面间传输,所以需实现Serializab
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于Android studio实现的一款简单、高效、开源的PDF电子书书架软件源码,含APK文件 特点: 简单:简洁UI界面;无需用户登录; 干净:不带有任何广告,不会插播任何等待打开页面 安全:不提供联网接口,不会发送任何用户信息 高效:功能清晰,记录每次最后阅读 独立:不与任何第三方软件进行交互 兼容:适用于任何Android版本的系统 轻量:自身体积小,后期所占空间由添加的PDF文件决定 开源:源码完全开放,可根据需求自定义
资源推荐
资源详情
资源评论
收起资源包目录
基于Android studio实现的一款简单、高效、开源的PDF电子书书架软件源码,含APK文件 (114个子文件)
app-release.apk 20.98MB
app-release.apk 20.98MB
gradlew.bat 2KB
.gitignore 208B
.gitignore 6B
build.gradle 1KB
build.gradle 530B
settings.gradle 44B
gradlew 5KB
gradle-wrapper.jar 53KB
ViewManager.java 15KB
PdfViewActivity.java 7KB
ListenerRemoveRenameBook.java 7KB
ListenerRenameRemoveShell.java 7KB
UriFileService.java 6KB
FileManager.java 6KB
SearchBookActivity.java 5KB
ListenerCreateShell.java 3KB
ListenerRemoveRenameRecentRead.java 3KB
ListenerCatalogueSubset.java 3KB
MainActivity.java 3KB
ListenerSearchItemOnClick.java 3KB
ListenerDisplayBook.java 2KB
ListenerDisplayBookRecentRead.java 2KB
ListViewAdapter.java 2KB
ListViewCatalogueSubsetAdapter.java 2KB
CatalogueActivity.java 2KB
TreeNodeData.java 2KB
PermissionManager.java 2KB
ListenerOpenCatalogue.java 1KB
ListenerToolbarOnClick.java 1011B
MyListView.java 974B
ListenerAddBook.java 777B
ExampleInstrumentedTest.java 754B
ListenerCatalogueItemOnClick.java 728B
ListenerCatalogueGoBack.java 696B
Shell.java 460B
Book.java 431B
ExampleUnitTest.java 381B
阅读页面.jpg 152KB
搜索页面.jpg 92KB
目录页面.jpg 74KB
主页面.jpg 40KB
output-metadata.json 372B
LICENSE 1KB
README.md 11KB
my_icon-playstore.png 61KB
my_icon_layer.png 26KB
my_icon_round.png 17KB
my_icon_layer.png 17KB
ic_launcher_round.png 16KB
my_icon.png 12KB
my_icon_round.png 12KB
ic_launcher_round.png 12KB
ic_launcher.png 10KB
my_icon_layer.png 9KB
my_icon.png 8KB
ic_launcher.png 8KB
ic_launcher_round.png 7KB
my_icon_round.png 7KB
my_icon_layer.png 6KB
ic_launcher_round.png 5KB
my_icon.png 5KB
my_icon_round.png 5KB
ic_launcher.png 5KB
my_icon_layer.png 4KB
my_icon.png 4KB
ic_launcher.png 4KB
ic_launcher_round.png 3KB
my_icon_round.png 3KB
ic_launcher.png 3KB
my_icon.png 2KB
proguard-rules.pro 750B
gradle.properties 1KB
gradle-wrapper.properties 232B
ic_launcher_background.xml 5KB
my_icon_background.xml 5KB
activity_searchbook.xml 4KB
ali_searchall.xml 4KB
strings.xml 4KB
Project.xml 3KB
misc.xml 3KB
ali_searchback.xml 3KB
ali_searchdocument.xml 3KB
activity_main.xml 2KB
activity_pdfview.xml 2KB
alert_developinfo.xml 2KB
listview_shell.xml 2KB
ali_star.xml 2KB
activity_catalogue.xml 2KB
activity_catalogue.xml 2KB
alert_selectbook.xml 2KB
alert_renameremove.xml 2KB
ic_launcher_foreground.xml 2KB
AndroidManifest.xml 1KB
alert_makeshell.xml 1KB
ali_addshell.xml 1KB
ali_display.xml 1KB
jarRepositories.xml 1KB
gradle.xml 796B
共 114 条
- 1
- 2
资源评论
- Σ(°△°|||)︴2024-04-02这个资源值得下载,资源内容详细全面,与描述一致,受益匪浅。
云哲-吉吉2021
- 粉丝: 3198
- 资源: 1130
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于python的高性能爬虫程序,使用了多线程+缓存+xpath实现的,这里以彼-岸图库为例,实现,仅用于学习交流
- 中分辨率成像光谱仪(MODIS)烧毁面积产品信息MODIS-C6-BA-User-Guide-1.2.pdf
- Screenshot_20240427_172613_com.huawei.browser.jpg
- 关于学习Python的相关资源网站链接及相关介绍.docx
- (HAL库)基于STM32F103C8T6的温控PID系统[Dht11、ESP8266、无线透传、L298N……]
- VoLTE高丢包优化指导书.xlsx
- Rust资源文件.zip
- 前后端分离实践:使用 React 和 Express 搭建完整登录注册流程
- gradle-publish-to-MavenLocal.zip
- 10份网络优化创新案例.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功