手把手教你写高质量Android技术博客,画图工具,录像工具,Markdown写法

前言

作为程序员,写博客是一件很有意义的事情,可以加深自己对技术的理解,可以结交更多的朋友,记录自己的技术轨迹,而且分享可以让更多的人从中受益,独乐乐不如众乐乐嘛。

但是要写好博客也不是件容易的事,一是写博客是长期坚持的过程,心血来潮写个一两篇并没有什么意义,很多人写着写着就放弃了,二是写博客需要自己用心去写,一方面需要自己对分享的内容很熟悉,钻研得深,另一方面需要一些文笔和技巧,能把自己会的东西通俗得展示出来。

对于上面两个问题,第一个本文就不探讨了,我主要探讨第二个问题,如何写出好一篇文章,我将通过两方面来探讨:

  • 不断学习,培养钻研精神,让自己有东西可分享
  • 如何将会的东西,通俗得展示出来

01

不断学习、培养专研精神

为什么我会讲钻研精神,因为你写博客首先得有东西可写,那不然就是纸上谈兵了,再好的写作技巧也没有用。而要想有好的东西分享出来,自己就得多钻研,对自己熟悉的领域砥砺深耕,让自己成为行业佼佼者,而这一切都是很不容易的。

他人励志的故事特别多,我就讲一个自己的吧,让大家见笑了。

我现在是个Android程序员,但是大学的专业是法学,可能很多人都觉得这跨度也太大了吧,一个法学的文科生居然跑去写代码,其实我高中的时候理科就比文科好,当初选法学只是觉得文理要双修,只会理科的加减乘除会让自己变得死板,即便现在我已经从事程序开发了,还是后悔当初英语为什么没好好学,因为好的文档都是英文的,语文为什么没好好学,因为写博客都没有条理,陈词滥调,所以多学点东西总是好的。

大学毕业后,同学都去考研,考公务员,然后去当法官,检察官,律师法务什么的,但是我本身还是对理科的东西感兴趣点,正好13年的时候移动互联网很火,于是我就去报了个培训班,开始了自己的Hello world!

那时自己内心是彷徨的,因为自己一点基础都没有,培训期间又没有收入,之间兼职就剩3000块钱,要管6个月,房租,吃饭,日用,每个月都过得很拮据,租的房子10平米不到,吃饭全是自己做,因为这样一天只需要8块。家里的人也不支持,好端端一个法学生,干嘛去学程序,为此还跟家里人吵了一架。。。哎,现在回想那真是一生中最艰苦的半年。

在培训班里,就我一个外行,其他都是科班出身,我从第一行System.out.println开始恶补,经常为写好一个功能熬夜到两三点,我就记得那时候老师让我们写一个五子棋的项目,用Swing来写的,一直写到凌晨五点,终于第二天交给老师看,全班就我写出来了,而且老师把源码展示给大家看,说注释写得不错,那是我进班以来第一次受到表扬,后来就一发不可收拾,经常受到老师关注,学校也破例让我直接跳到就业班,提前结束了培训。

现在回想起来,应该归功于自己对程序的热爱吧,让自己有无限的动力去钻研,不把一个东西弄出来就不甘心,每次成功之后又让自己信心大增,然后更有动力去学习,形成了良性循环。

后来到了第一家公司,接触的是跨平台开发工具Xamarin,用C#写,用Mac开发,用Git管理代码,靠!又是一堆搞不懂的东西,毕竟学校用的Eclipse+Java+Windows开发的,代码管理?压根没听说过,于是学C#,学Mac命令,学Xcode,学Git,经过疯狂补脑,不到一周时间,已经能顺利开发了。这其中关于Git的学习真是刻苦,对我而言,第一次接触命令行,一脸懵逼,当时老板强制用命令行操作,说这样快,给了我一本500页的书,不过也还是自己去写命令行 + 百度学会了,那本书基本没看。

之后到了现在的公司,15年进的,进公司又是接触新的开发工具Android Studio,那时候Android Studio还是1.3.0版本,又是重新学Android Studio,学Gradle。不过还好我会Git,公司还在用svn,领导觉得Git好,于是就安排我做了次分享,将公司代码全部用Git管理了。说白了,之前用Xamarin开发都是半调子的Android开发,因为还要开发ios,用Android Studio开发后才真正完全开发Android,于是我开始认真去研究Android,学着用ButterKnife、EventBus、Volley、Glide、Lottie等三方库,学习MVP框架,学习NDK、C++、编译so,学习Aes,Des加密算法,学习groovy,写脚本打多渠道包,皮肤包,资源混淆。

后来又学习代码组件化,Tinker热修复,MVVM,Retrofit+RxJava,Robolectric单元测试,我想说新的东西导出不穷,程序员不学习,不去钻研,很快就落伍了。

如今我打算回归源码,会用的东西永远是别人的,自己却写不出来,原因就是源码读得少,所以我打算系统地看一下AOSP的源码,之前看了些Android系统启动流程,Application启动流程以及Binder的东西,还不够多,理解得也不深,现在从头再来。

分享了自己的经历,也是想告诉大家,不管我们过去什么样,从事过什么工作,只要你现在想去改变点什么,你就去做,只要自己够努力,有刻苦钻研的精神,迟早一天也会发光发亮,谁说文科生不能写代码呢?

哈哈,说这么多让大家见笑了,接下来,我讲讲怎么写博客吧。

02

如何写出通俗易懂得博客

肚子里有了好东西,我们也需要技巧把它展示出来,俗话说酒好也怕巷子深嘛,没有好的吆喝功夫,再好的酒也卖不好。接下来我将展示一些我写博客的技巧:

  • 列好提纲,做到条理清晰
  • 用好画图工具,制作流程图、思维导图等
  • 用好录像工具,制作Gif图
  • 好好学习Markdown

2.1 列好提纲,条理清晰

我们写文章之前,对自己要讲的内容必须清楚明白,不然到时候乱写一通,只会让读者看得云里雾里的。我们可以列个提纲,帮助自己整理思路,先讲什么,后讲什么,文中要注意些什么细节的探讨等等。

我们列好提纲后,可以在文章的开头写个前言,主要讲述写这篇文章的目的,然后罗列一下这篇文章要讲哪些内容,这样读者一看开头就大概知道你要讲些什么了,然后就会顺着你的思路去看。

接下来我们可以把前言中提到的几个方面作为大标题,然后开始写具体内容,如果该内容太多,可以把内容再拆分下,列出几个小标题。如果小标题内容也还是多,那可以再拆分,介最好不要超过三层,因为层级太多反而看得眼花缭乱。

对于字号,前言,大标题我一般用##,小标题我一般用###,小标题以下,我会用####,对于序号,大标题前用中文的一,二,三,小标题用数字的1.1,1.2,如果小标题以下,就是1.1.1,1.1.2。

在文章结尾写一个小结,总结一下本文讲的内容,也可以提出一些问题给读者思考。

对于内容要适当地分段落,不要把所有内容都写在一个段落里,尽量一个段落写一个方面的东西。段落里也不要一逗到底,说完一个事情就句号结束,啊。。。突然想到以前我们语文老师教我们写作文也是这么说的。

上张图吧,一篇文章大概是这样子的

2.2 画图工具使用

光是写文字有时候并不能很好地展示内容,比如我们要分享一个工具的使用,要点哪些按钮,光是文字说明并不直观,截图却能一目了然

又比如讲一个代码执行流程,如果我们画一个图出来会更加容易理解

对于上面第一种情况,截个图就可以了,截图工具我就直接用的QQ的,感觉还是很方便

对于第二种情况,就要用画图工具了,画图工具有很多,目前我只用过下面这些,当然还有其他的,大家可以在评论里推荐下。

2.2.1 processon 使用

我平常用的最多的是processon,它有许多优势:

  • 在线版,免安装,跨平台,可以在任何时候,任何电脑上使用
  • 有云端储存,只要登录账号就可以云同步
  • 操作简单,容易上手
  • 国内网站,不需要翻墙,速度快

首先,这个工具需要注册,这个简单,直接访问 processon ,点击注册即可

注册后登录,然后点击新建,选择一个你想要的模版类型,系统已经提供了许多常用的模版,我们可以选择一个自己最需要的进行克隆。

当然你也可以不用模版,直接点击新建后,选择一个你想绘制的类型即可

这里要注意一点,这个工具文件个数有限制,新建的文件不要删除掉了,画完一个可以清空内容重新画,这样就相当于无限使用了

下面讲讲如何画图吧,这个工具简单在无脑操作,直接拖控件就可以了

如果你觉得图形不够,你可以选择更多图形

如果你还是觉得不够,可以插入你本地的图片,网络图片

图形风格可以任意切换

插入文字在图形上直接双击就可以了,也可以去拖拽,或者点击插入菜单,文字可以调整字体大小,颜色

线条可以点击插入菜单,也可以直接从图形上拖出来,调整粗细,样式,颜色

这个工具还有许多快捷键,可以方便操作

画完之后我们就可以取个名字,然后保存为png,pdf,svg等格式然后下载

2.2.2 websequencediagrams 使用

websequencediagrams 这个工具很有意思,它画图是直接用代码来画的,当然这个代码只是一种类似于markdown的语法,写起来非常的方便。

它还可以用Java,PHP等语言来编写,直接转为图片。

但是它功能比较局限,只能画时序图,而且必须付费才能有高清的图片下载,否则只是低清的图

2.2.3 Google Drawings 使用

这是Google的一个插件,也是非常方便的一个工具,但是前提要翻墙。

功能跟processon基本一致,操作也十分类似,比如画图形

插入文字,改变字体大小,颜色,样式

插入线条,改变线条粗线,颜色,样式等

Google Drawings 与 processon 各有优缺,下面我对比下,读者可根据自己喜好选择

2.2.4 edraw max(亿图图示) 使用

这个软件也是非常强大的,功能比processon还丰富,毕竟是PC版!整体界面跟word很像,如果你喜欢使用word,那么你上手会觉得很熟悉,来张界面图

一进入软件,会让我们先选择我们要画哪种类型的图,种类是相当的多,并且每种都有模版可以使用,我们可以选择一个合适的,比如UML,点击创建

老规矩,我们先试下画图形,这也是非常方便,直接拖拽就是

如果觉得不够,可以添加其他类型的图

当然你也可以直接选择本地图片插入

文字方面,直接在图形或线条上双击即可,支持修改字体大小等也不在话下,而且支持插入各种特殊字符,只要word能做的,它都能做

画线方面,可以画折线,贝塞尔曲线,可以改变线条粗细,样式,颜色

保存文件除了支持png,pdf,svg等外,还支持保存为word,ppt,ps,visio等,可以进行二次绘制,可谓是非常全面而强大

总之,Edraw max的功能是非常强大的,整理如下:

  • 提供全面而实用的模版
  • 各种画图方式的支持相当完美
  • 整体界面类似word,操作容易上手
  • 风格切换多样,可以自由定制
  • 保存格式种类全面,可以导入PS,PPT等进行二次绘图
  • Windows,Linux,Mac全平台支持

这个软件是需要注册的,不过我们可以免费用30天,如果大家要中文破解版,可以私信找我。

2.3 录像工具使用

大家在阅读本文的时候也可以看到,Gif图可以方便地展示工具的操作,不仅如此,要展示一些App的效果也是很直观的。

Gif图可以直接当作图片在Markdown中使用,所以如果录像工具可以直接把视频转换成Gif图,那将是很方便的,这种工具也比较多,今天我介绍下LICEcap

它的使用很简单:

  • 调整录像位置和大小
  • 点击录制,然后选择一个储存目录保存
  • 显示鼠标指针选项勾选,录像会显示鼠标点击事件,展示一个圈
  • 录像过程中可以暂停
  • 点击停止结束录制,然后打开之前选择的目录,找到对应gif文件,就可以点击查看了

作为Android程序员,平常写技术博客比较多,里面会有比较多代码展示,在代码展示时,最好在```后面加上代码类别,比如Java,xml,C++等,这样代码会有高亮显示,另外,写Markdown时,有时我们展示代码的时候需要在代码前加行号,方便补充说明的时候指定某行,类似

  1 int main(int argc, char** argv) {  2     if (!strcmp(basename(argv[0]), "ueventd")) {  3         return ueventd_main(argc, argv);  4     }  5 
  6     if (!strcmp(basename(argv[0]), "watchdogd")) {  7         return watchdogd_main(argc, argv);  8     }  9 
 10     if (REBOOT_BOOTLOADER_ON_PANIC) { 11         install_reboot_signal_handlers(); 12     } 13 }

 第11行主要作用将各种信号量,如SIGABRT,SIGABRT等的行为设置为SA_RESTART

03

小结

要想写出高质量的博客,技术沉淀和写作技巧是两个不可或缺的东。一方面我们要有一颗不断学习,积极向上的心,通过自己一点一滴的积累,用博客去记录自己的成长;另一方面,多学习一些写作技巧,学会画图工具,录像工具的使用,可以更清晰地把内容展示出来。

原文发布于微信公众号 - Android机动车(JsAndroidClub)

原文发表时间:2017-10-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏顶级程序员

你写过什么有趣的程序?最后一个笑出猪叫

源 / 程序员之家 苍冥说: 我们从高一到高三都强制采用图形计算器,可以画函数图像的那种。我们用的是德州仪器系列,Ti-Nspire,贵的要死要死的。然而我却买...

457110
来自专栏微信终端开发团队的专栏

关于Android N的那些事

今年3月,Google破天荒提前半年发布了Android N开发者预览版。当然,作为一个不合格的谷粉并没有第一时间体验安装,因为至今仍然能够回忆起来去年今日此门...

31660
来自专栏FreeBuf

用一首歌曲来谱写RTMP协议分析

最近在重温由W.Richard Stevens 的传世之作《TCP/IP详解》,看到第12章TCP ,基于传输层有TCP 、 UDP 、 TLS 、DCCP 、...

13320
来自专栏儿童编程

《爱溜达的小黄猫》——儿童学编程Scratch2”运动(Motion)“部分

Scratch2非常容易上手,无论对儿童还是零基础的成年人来说,都非常有趣。操作起来就像搭积木一样简单有趣。也许你印象里的编程是满屏代码,不知所云。而这里,编写...

42250
来自专栏吉浦迅科技

如何利用Python在Jetson TX2上抓取和显示摄像头影像

本文转载自JK Jung的帖子:https://jkjung-avt.github.io/tx2-camera-with-python/如果有侵犯到贴主利益,请...

643120
来自专栏一“技”之长

iOS10为用户添加触摸反馈 原

    在iOS10中,UIKit框架中新增加了3个类,UIImpactFeedbackGenerator类、UINotificationFeedbackGen...

10930
来自专栏Java学习网

Android自动化测试解决方案

Android自动化测试解决方案 桌面应用程序与浏览器端的自动化测试都已经历了十年的发展,无论是从工具上还是项目管理方 法论上都已经趋于成熟。而移动设备端应...

264100
来自专栏Android先生

如何写出一篇登得上大雅之堂的技术博客

本文原标题为:【Mac流派】程序猿修炼之道(7)-技能篇之如何写出一篇登得上大雅之堂的技术博客,后因标题如古时女人的裹脚布——又臭又长,遂改为:...

10630
来自专栏张坤的专栏

零基础读懂视频播放器控制原理: ffplay 播放器源代码分析

本文对ffplay源码进行分析,试图用更基础而系统的方法,来尝试解开播放器的音视频同步,以及播放/暂停、快进/后退的控制原理。

7.5K60
来自专栏Jerry的SAP技术分享

SAP S4CRM和C4C的技术比较

如果您对SAP S/4HANA for Customer Management(以下简称S4CRM)和SAP Cloud for Customer(以下简称C4...

45570

扫码关注云+社区

领取腾讯云代金券