FBReader阅读器各源码作用和知识点分析

ZLLibrary包下的core子包提供了要使用的各个抽象类,如ZLApplication

ZLAndroidApplication 本应用的Application

其实例化了三个类,分别做数据库,图片,library的操作,这些类并未使用,但我们可以使用它们。

数据库,首先创建或读取数据库,如果是新建则根据版本进行版本兼容,初始化增删改查的语句以供使用。(此处是通过构造方法的方式进行初始化的)

 

 

Bug的处理

自己捕获异常,并处理,当发生无法捕捉的异常(如运行时异常时)会转到这个Handler执行。

Thread.setDefaultUncaughtExceptionHandler(

new UncaughtExceptionHandler(this)

这里的UncaughtExceptionHandler就是异常处理类(继承自同名类)

在这个里面,我们可以开启一个activity用于处理和显示页面

Activity配置如下:

 <activity

            android:name="org.geometerplus.android.fbreader.crash.FixBooksDirectoryActivity"

            android:configChanges="orientation|keyboardHidden"

            android:process=":crash"

            android:theme="@android:style/Theme.Dialog" >

            <intent-filter>

                <action android:name="android.fbreader.action.CRASH" />

 

                <category android:name="android.intent.category.DEFAULT" />

 

                <data android:scheme="CachedCharStorageException" />

            </intent-filter>

  </activity>

使用的是action+UriIntent方式,如果能够找到解决方案则进入Activity

如果不行,则进入BugReportActivity

 

    <activity

            android:name=".library.BugReportActivity"

            android:configChanges="orientation|keyboardHidden"

            android:label="FBReader crash"

            android:process=":crash" />

 

 

 

FBReader基础------------ZLAndroidActivity

该类是FBReader的父类,实现功能如下:

·转屏判断

·亮度判断

·电量判断

·wakeLock

从使用的View可以知道,该Activity指定的layoutR.layout.main,其主要操作的就是org.geometerplus.zlibrary.ui.android.view.ZLAndroidWidget

 

org.geo.meterplus.zlibrary.ui.android.library包下,

 

 

进阶--FBReader 

onCreate中设置占据屏幕大小,添加功能(action),添加3popupFBreaderApp

onStart中检查屏幕大小是否符合,不符重开activity

Oncreate中添加的3popup设置位置

 

 

ZLTreeResource

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值