电子书阅读器上的浏览器 [Day03] 站在巨人的肩膀上,找到对的起跑点

如何做选择

选择一个好的开源专案来当作起点,可以省下很多重新发明轮子的时间,把精力专注在想要改善和提供的功能上。Github 上面有许多选择:大型的如 Firefox 的原始码,Brave browser 的原始码;小的话,甚至可以找到在一个 Activity 中塞一个单纯 WebView 的 Sample project。

我想要找的,自然不会是大型的专案;一来,时间有限,光是研究原始码可能就要花上许多时间;二来,即使是要做个小功能,可能也会因为程序码太过复杂,而需要花太多工夫在层层架构中来回。在挑选的时候,会先以小型的专案为主,只要稍微看一下程序码就可以有比较高的掌握度;但是又希望它主要的功能是完整的,像是多分页浏览,Cookie 的控制,书签的储存等基本功能,这些如果都已经实作了的话,我才可以直接专注在电子书阅读器所需要的功能和画面呈现上。

FOSS Browser

很幸运地,我很快就找到我想要的起点了。在 Github 网站上用 android 和 browser 当作关键字去搜寻的话,第一个出现有就是符合我要求的浏览器 — FOSS Browser

https://ithelp.ithome.com.tw/upload/images/20210901/20140260Q38gOwnKrF.png

scorte-dich 开发的 browser 是个小而美的浏览器,从 2016 年年底推出以来,一直有持续在更新。编译完後的执行档大小约在 3.5 ~ 4.5 MB,程序架构不会太复杂,核心功能主要都在一个 BrowserActivity.java ;与 WebView 相关的实作则大部分在 NinjaWebView.java 中。不论是要新增功能或是修改原有的功能,都可以很快上手。所以我选定以它做为我的起点,开始我的浏览器开发之路。下面是它的一些画面长相:

https://ithelp.ithome.com.tw/upload/images/20210901/20140260JAxrOe7mzi.png

第一件事是先在 Github fork 它。由於我之後的实作都会以电子书阅读器专用的功能为主,所以不大会再将修改的内容发回原本的 repository 去。因此,在 fork 完後,我有先依照下面的方式将 fork 的 dependency 去除。这麽一来,日後如果有人想要对我的 repository 发 pull request 时会比较好管理。

如何移除 fork dependency

连到 https://support.github.com/request
点选 Attach, detach or reroute forks
点选 Detach a fork
这时虚拟助手会出现,要你输入你的 owner/repository-name 或是 repo 的完整 url
输入後,再点选画面上的 Send request 就可以啦。

完成以上准备工作後,下一篇真的要开工啦,我们会先来谈谈如何支援网页内容翻页的功能。


<<:  Docker - Docker 执行 Maven with Dockerfile

>>:  [Day3]odd sum

Day2 javascript用法

JavaScript 是可插入 HTML 页面的编程代码,插入 HTML 页面后,可由所有的现代浏览...

庄家 show hand 了? - 竭尽点 ?

今年是台股放量的一年,也是新一代韭菜毕业的一年 很多人提到无本当冲多好赚之类的 但当冲没看懂方向真的...

视觉化当日趋势图(6)-折线图/趋势图

今天进入到重头戏了, 昨天介绍完我们使用的工具我们今天就要使用它, (1)html部分 这个部分主要...

D23: 工程师太师了: 第12话

工程师太师了: 第12话 杂记: 今天看到一个议题 到底对自己做长远的规划是否比较好? 很多人都会对...

< 关於 React: 开始打地基| 图片的使用方式 >

React 图片显示 ?引入图片(svg)-背景图片 只需要将图片放到 public目录下 然后以此...