本周学习笔记 6/25 - 7/1

2018-07-01 17:42


本周技术文章分享

本周的Android Weekly包含一篇文章Remember, remember… to target API 26 on November!提醒你在11月之前要将app的target API提升到26以上,否则将无法在Play Store上传安装包。

文章贴心地列出了从23以上每级提升的注意事项。我摘录了一些:

提升到23(Marshmallow)

  • 要使用Runtime permission。
  • 停止使用Apache HTTP client。

提升到24(Nougat)

  • 不能在app外通过URI的方式访问app私有文件夹下的文件。

提升到25

提升到26(Oreo)

  • App处于后台时好像不能启动Service了。
  • 不能再使用大部分implicit broadcast了。
  • 要使用FusedLocationProviderClient更新位置。或者用geofence。
  • 显示通知时必须指定channel。

本周代码心得

周末继续在Github Pages上搭建blog。目前完成了将文本框里的内容转化为JSON的功能和将JSON显示为HTML的功能。下一步需要完成:

  1. 文本编辑按钮。在输入内容中插入各种符号。
  2. 一键复制到剪贴板功能。
  3. 编辑中“后退”功能。

学到几个HTML和CSS相关的小技巧:

正常情况下,HTML显示一段文字时,会将一段连续的空格压缩成一个空格。如果我们想保留空格原状,可以在这段文字的CSS属性里加一个white-space: pre即可。在Bootstrap里也可以直接用<pre>这个tag。 但是这样一来,这段文字就不会自动折行了,而是会超出右边框,显示为一行。如果我们想在保留空格原状的同时让文字折行显示在元素范围内,只要将该属性改为white-space: pre-wrap即可。

JSON.stringify()方法其实可以有三个参数:第一个是要转化为字符串的JSON对象。第二个是一个replacer方法,它接受key、value两个参数;JSON下的每一对属性都要依次执行这个方法;该方法返回一个新value值,替换该属性的value;如果返回值是undefined,该属性会被删除。第三个参数如果存在,stringify的字符串将改变格式,自动折行和缩进;第三个参数决定了缩进的长度,它可以是一串空格或者一个数字。