December 18th, 2016
Android Weekly Issue #236android
本期内容包括: Google的物联网平台Android Things; FileProvider; Android Studio的Layout Preview使用; Retrofit2使用; Google Sign-In和SmartLock; 把敏感信息放入NDK的解决方式.git
设计部分讨论了调色板的灵感来源和几个开发app的时候应该注意的问题.github
Internet of Things (物联网, IoT), 是互联网, 传统电信网等咨询承载体, 让全部能行使独立功能的物品之间实现互联互通的网络.安全
2016年12月, Google发布了Android Things的开发者预览版, 这是一个专门为IoT设备定制的Android系统.网络
本篇文章一步一步地教你如何写一个IoT的基本程序, 跑在Raspberry Pi 3 Model B上.app
上次咱们提到了用DownloadManager
下载的东西能够和其余应用分享, 那么若是咱们下载的时候没有用DownloadManager
呢?框架
比较常见的状况是咱们的应用须要分享内容到其余应用, 或者是文件的类型是咱们应用不能本身处理的, 须要找一个支持这种文件类型的其余应用来帮咱们打开它.less
怎么解决呢? 答案是用FileProvider
.ide
上一期有一篇文章也说过Android 7开始废弃了"file://", 解决方案就是用FileProvider
, 因此实现是同样的, 这里就不重复了.模块化
Layout Preview向你展现了你的xml将如何在设备上显示. 你能够用它查看布局在不一样的配置下如何显示, 好比能够切换横竖屏, 语言等等.
可是它一样也有一些问题:
Issue #1: Preview显示空白
当你的布局是由动态获取的数据来填充的, preview不知道如何填充, 因此你看到的是空白的.
一个好的practice是使用tools
命名空间, 指定一些只在preview阶段使用的属性. 这样你就能够指定一些text或src用来预览.
Tip #2: 使得动态内容在Preview可见
若是你的图片是动态资源, 你也能够设置一些最大宽高给parent view, 以防真实的图片比期待的大太多或者是比例不对. 你能够设置tools:layout_height
和tools:layout_width
, 还有tools:background
在preview中查看view占多大.
本文还推荐了另外一个阅读资料: Tools of the trade — Part 1
Tip #3: 修复坏掉的Previews
当你建立一个自定义View的时候, 你须要确保你的View不须要任何外部依赖便可被实例化, 不然Preview可能看不到你的View. 由于Preview不是运行在你的app上的, 它只是运行在IDE的JVM上, 因此View framework以外的东西它是访问不到的.
解决办法是在你的自定义View中作一些特殊处理, 好比把依赖注入放在!isInEditMode()
里, 或者用tools:
命名空间加一些默认值.
Tip #4:
解决的办法是使用
tools:showIn="layout"
, 指定
从Android Studio 2.2开始, 你可使用tools:parentTag
来指定parent的类型, 好比tools:parentTag="LinearLayout"
.
Tip #5: 在Preview中显示隐藏的View
若是你在layout中把view的visibility设置为gone, 那么它是不会在Preview中显示的.
解决办法: 使用tools:visibility="visible"
.
Android Things教程.
本篇文章以实例讲述如何使用Retrofit, 虽然都是基础内容, 但讲解很详细.
Google提供了两种方式来帮助咱们改善用户的登陆体验:
Google Sign-In(以前被称为Google+ Sign-In)和SmartLock.
这篇文章举例解释了Google Sign-In和SmartLock的实现.
Google Sign-In的部分比较简单.
SmartLock让咱们能够:
Demo app: charbgr/AuthManager
这篇文章说敏感信息放在Java代码里不安全, 很容易被人反编译查看出来, 若是放在NDK里面就好一些, 你打开查看的只能是二进制文件, 很难找到.
做者从大天然的图像中获得颜色组合的灵感.
文章中举了几个例子, 如何用相关的照片找到相关主题的调色板.
另推荐一个网站: IN COLOR
BALANCE
让你的App看起来更好的几点建议:
模块化和可定制的Material Design UI组件. Android, iOS, Web.
Kickstarter开源了他们的Android应用.
一个kotlin写的Android库, 实现一种文字路径的动画.
包装了Google Sign-In和SmartLock的Manager.
一个ePub阅读器和解析框架.
对Support Library中的TextInputLayout
的扩展, 增长了字数统计.
使用Builder模式来配置建立一个Layout的属性.