Linux 命令手册安卓版

1114 字
6 分钟
Linux 命令手册安卓版

前两天逛GitHub时候发现了一个命令行手册项目jaywcjlove/linux-command 手册网站,觉得非常实用。GitHub的Pages很方便,但是国内访问有时候比较慢。虽然网上类似的在线手册很多了,但是我觉得一个手册应该是随手可用,而且即使在没有网时候,也可随时翻阅的。于是打算用一天半天把手册做成个离线版简易手册APP。

准备工作#

翻了一下GitHub上项目的README,发现作者很贴心的把爬虫抓到的数据保存成MarkDown格式了。不得不说一下,MarkDown是程序员最喜欢的文档格式之一。把项目clone到本地,手册的数据来源就准备好了。再次 感谢作者的辛勤付出。

MarkDown解析#

安卓没有原生支持MarkDown的控件,在GitHub上用markdown为关键字搜了一下,pegdown 这个MarkDownn解析库是最多star的。遗憾的是,尽管目前仍然是最流行的MarkDown解析库之一,作者在三个多月前声明这个项目停止维护了。不过作者推荐了@vschflex-mark-java,另一个性能优越的markdown解析库。

flexmark-java解析架构基于commonmark-java,另一款解析库(开源的世界就是这么任性啊),想到罗永浩的那句生命不息,折腾不止,决定先用commonmark-java解析,后面再切换到flexmark-java。尽管是最简单的引用,并没有怎么折腾。

搜索功能#

手册的数据,解析都准备好了,还有一个手册必不可少的功能——搜索。以前做项目的时候都是用EditText+Button来实现搜索功能的。虽然一直知道安卓有个原生的searchView,但是项目做视觉设计的小伙伴设计出来的视觉不给searchView用武之地。自从进TV应用开发的坑后,也好久没有开发手机APP了。基于这两个原因,决定在这个小应用中学习一下searchView的使用。 计划实现的是带搜索建议的searchView,这样可以尽量的简化在手机上的输入。searchView的配置很简单,但是搜索建议需要有一定的学习。 安卓现在推荐的是ActionBar中搜索,除了要增加一点actionView的配置,其他的跟searchView大同小异。正所谓磨刀不误砍柴工,何况之前没有系统的学习过searchView,于是开始找百度,找博客补习功课。 以searchView搜索看了几篇配置博文后,发现一个博客把谷歌的searchView介绍做了一个专题的介绍,于是把这几篇文章细读了一遍。在读这几篇译文的时候想起很多大牛的教导,要读就读一手的文档,最好是出自代码作者之手的,再次一点就是读一手文档的翻译。除了这两种文章干货较多,其他类型的文章往往介绍得不够全面。 英文原文(需要翻墙) 译文第一篇:[Searchable(一)](剩下的几篇链接就不贴了,在文末有上下篇的链接跳转)

依照译文的介绍,我对搜索功能有了大概的方向。主要做了以下几点:

  • 把前面获取到的MD文件放到assets目录下,用AssetsManager进行管理,这样就可以不用数据库了。展示命令详情的时候,也可以直接读取到命令对应文件流,再方便不过了。
  • searchView的搜索建议需要有一个ContentProvider来提供搜索建议的数据源,没有数据库怎么用ContentProvider? 答案是MatrixCursorMatrixCursor可以做到模拟数据库的作用,也提供方法方便插入数据等。
  • 有了实现ContentProvider的思路,只需把AssetsManager获取到的命令文件名作为数据,提供给searchView来查询就可以了。

总结#

手册的实现并没有什么难度,在补充了相关的知识后,只需要不到半天的时间就可以搞定了。项目虽小,但是还是给我不少收获的。之前看到有一篇文章,名字叫《提问的智慧》。搜索其实就是向机器提问的一种方式,科学的搜索关键词,合适的网站搜索事半功倍。搜索还是首选 Google.comstackoverflow.com

项目地址: GitHub coding.net

欢迎关注我的公众号

如果这篇文章对你有帮助,欢迎扫码关注公众号,后续会继续分享技术实践、踩坑记录和效率工具。

微信公众号二维码

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
Linux 命令手册安卓版
https://suqishuo.cn/linux-command-mannual/
作者
Ernest
发布于
2017-03-22
许可协议
CC BY-NC-SA 4.0
相关文章智能推荐
1
GitHub上star超过2k的安卓MVP架构指南
架构近日在搜MVP模式作为安卓项目架构时候,发现GitHub上一篇介绍MVP架构的文章。一看star已经超过2K了。通读全文发现作者用实际项目将MVP架构要怎么分职责讲得十分通俗易懂。为了方便大家查阅,把原文翻译了一下。作者还有一篇文章讲安卓项目和代码风格指南的。欢迎查看相关翻译。
2
Gradle 依赖反复下载?缓存回收与排查指南
开发效率项目关掉一段时间再打开,Gradle 重新下载所有依赖的四个主要原因及对应解决方案。
3
GitHub上star超过2k的安卓项目和代码风格指南(绝对干货)
最佳实践近日在搜MVP模式作为安卓项目架构时候,发现GitHub上一篇介绍MVP架构的文章。一看star已经超过2K了。作者同项目的这篇文章讲安卓项目和代码风格指南,也非常有参考价值。为了方便大家查阅,把原文翻译了一下。点击查看作者介绍安卓MVP架构指南的翻译文章。
4
安卓开发相关框架文章收集(长期更新)
开发效率在做项目初期,如果知道有哪些框架/工具可用,对项目的开发会有很大的帮助。这篇帖子收集项目开发用过的,或者有类似需求不知道有对应工具,后来发现这些工具有相见恨晚感觉的。作为一个类似于备忘录的帖子,根据个人判断在需要的时候进行增删改查。介绍时候尽量用一两个关键词。收集的文章可能会因各
5
Evernote带来的计划任务神器Android-Job
开源框架在新版本安卓版本(API23以上)中,谷歌把`android.net.conn.CONNECTIVITYCHANGE` 这个广播废弃了。总的来说,应用不应该依赖这个广播来执行相关任务,而应该使用 `JobScheduler` 或者 ` GCMNetworkManager`。计划任
随机文章随机推荐
Profile Image of the Author
Ernest
一个有理想的Android程序员
公告
欢迎关注我的公众号,第一时间获取技术文章与实践记录。
微信公众号二维码
音乐
封面

音乐

暂未播放

0:000:00
暂无歌词
分类
标签
站点统计
文章
29
分类
12
标签
53
总字数
126,599
运行时长
0
最后活动
0 天前
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.13.6
文章许可
CC BY-NC-SA 4.0

文章目录