0%

接着上一篇文章 《手写一个Hexo评论系统(一)》 ,本篇文章主要是讲述记述评论系统实现的一些具体的设计方案与技术细节,方便以后修改或者重构。还有项目的部署问题,包括域名解析,Nginx配置代理,云服务器选购的一些问题,选购服务器的坑是真的大,所以还是尽量选择大厂,稳定一点,好用一点就不用在乎多几那块钱嘛,而且根据自己的需要买配置还是比较划算的。

我的个人博客时使用Hexo构建的,个人觉得使用Hexo非常方便,而且主题也很好看。因为我的Hexo仓库推送地址同时配置了Github和Gitee,所以一个hexo d命令便可以通知部署到 zouchanglin.cn zouchanglin.gitee.io 两个站点。唯一美中不足的就是Hexo缺少一款我比较满意的评论系统,所以决定自己手撸一个Hexo博客的评论系统,现在已经部署好了,去我的博客站点是可以看到效果的。

本篇文章主要是记录一下高级控件ListView和CardView的使用方式和注意事项,虽然目前都已经用RecyclerView替代了ListView但是了解其中的原理和优化还是有必要的,关于ListView的原理和真正意义上的优化在后面会专门写一片文章来讲述,本篇只谈其具体使用与必须优化的方式。至于CardView其实用的还是比较多的,可以看到我的小Demo实现的效果还是很不错!最后涉及到了一些Android屏幕适配问题的解决方案。

为什么需要Fragment?Fragment与Activity又是什么关系?Fragment的生命周期是怎样的?Fragment如何使用呢?其实Fragment是一种可以嵌入在活动中的UI片段,能够让程序更加合理和充分地利用大屏幕的空间,出现的初衷是为了适应大屏幕的平板电脑,可以将其看成一个小型Activity,又称作Activity碎片。下面来看看Fragment到底有哪些神奇之处吧 ~

消息提示机制,常用于向用户传递信息、提示或警告用户的行为。通用的方法有setTitle、setMessage、create、show。本片文章主要是简单对话框的使用,如何自定义对话框,如何使用PopupWindow进行弹框,以及如何对PopupWindow弹框加上动画效果。

本文会介绍三种Menu,分别是Options Menu、Context Menu、Popup Menu的使用方式。

Menu菜单是Android应用中非常重要且常见的组成部分,主要可以分为三类:选项菜单、上下文菜单/上下文操作模式以及弹出菜单。它们的主要区别如下:

  • 选项菜单:一个应用的主菜单项,用于放置对应用产生全局影响的操作,如搜索/设置。
  • 上下文菜单:用户长按某一元素时出现的浮动菜单。它提供的操作将影响所选内容,主要应用于列表中的每一项元素(如长按列表项弹出删除对话框)。上下文操作模式将在屏幕顶部栏(菜单栏)显示影响所选内容的操作选项,并允许用户选择多项,一般用于对列表类型的数据进行批量操作。
  • 弹出菜单:以垂直列表形式显示一系列操作选项,一般由某一控件触发,弹出菜单将显示在对应控件的上方或下方。它适用于提供与特定内容相关的大量操作。

下面通过代码实际演示一下这三种菜单实际用法,另外测试是在真机Android5.1上进行的。

一般情况下,Android中每个应用程序一开启就会创建一个任务栈,任务栈的ID是自增长的。最小化的时候,应用程序实际上是后台运行,任务栈是保留的。

  • Standard 标准启动模式:这种模式下每开启一个新的Activity,都会被放置在任务栈的栈顶,不存在复用
  • SingleTop 启动模式:这种模式下,如果栈顶已经存在了要开启的Activity,系统就不会重复创建了,而是利用这个已经存在的Activity,只复用栈顶的Activity
  • SingleTask 启动模式:这种模式下,它要求当前Activity只会在任务栈存在一个实例,如果要开启的 Activity已经在任务栈中,系统会直接复用这个已经存在的Activity,并清空这个 Activity上面所有的栈引用,复用所有已存在的Activity
  • SingleInstance 启动模式:这种模式下,系统会创建一个单独的任务栈,这个任务栈里只有它自己,并且在整个手机操作系统内存里,它是唯一的。比如打电话时的通话界面,全局唯一

然后是Activity的生命周期,被迫退出时的信息状态保存,返回键监听,Activity之间的数据传递等。

Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。这里是Protobuf的官方手册 https://developers.google.cn/protocol-buffers/docs/overview