Android Weekly Notes Issue #322
Android Weekly Issue #322
August 12th, 2018
Android Weekly Issue #322.
本期内容包括: 键盘的图像支持; 网络安全实现; Kotlin Native插件; MotionLayout实现折叠Toolbar; MotionLayout的关键帧和路径动画; 用Sceneform渲染3D物体; Paging Library的使用; 如何在文字底部绘制一个带圆角的背景, 可跨行; Google Play的新计划; aapt2的更准确的控制; 系统和应用中关于Accessibility的实现讨论.
新闻部分: Android 9 Pie发布啦!
ARTICLES & TUTORIALS
Exploring Image Keyboard Support on Android
Image Keyboard Support (IKS)是Android 7.1 (API level 25)引入的, 允许我们用输入法查询和发送更丰富的内容.
注: 这个API同样在support库中支持: v13 Support Library as of revision 25.0.0.
本文讨论了这个API如何工作和使用.
Securing Network Data Tutorial for Android
保护网络数据:
- 用HTTPS来做网络请求.
- 用证书来信任一个连接.
- 验证传输数据的完整性.
第一部分解释了为什么要用HTTPS请求.
如何强制应用所有的网络请求都用HTTPS(Android N and higher):
添加一个文件: res\xml\network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="false">
<domain includeSubdomains="true">github.io</domain>
</domain-config>
</network-security-config>
在Application中使用它:
<application android:networkSecurityConfig="@xml/network_security_config"
第二部分解释了证书是什么, 以及Certificate pinning.
一个查看证书的网站: SSL Labs.
这个public key同样也是添加在上面那个network_security_config.xml文件里. 但如果想要在Android N以下支持, 可以使用第三方库, 比如TrustKit.
本文后面还有详细解释加密验证等方面的内容.
Droidcon App with Kotlin Native Gradle
在Droidcon App中使用了gradle插件kotlin-native.
MotionLayout – Collapsing Toolbar – Part 1
作者推荐一个关于MotionLayout的介绍文章: Introduction to MotionLayout (part I).
本文介绍如何用MotionLayout实现Collapsing Toolbar的效果.
之前可以用CoordinatorLayout和CollapsingToolbarLayout来实现这个效果. 也没什么不对.
MotionLayout提供了更多的自由性.
文本详细解释了实现细节.
Defining motion paths in MotionLayout
这个作者写了一系列关于MotionLayout的文章.
本文讨论MotionLayout中的关键帧和路径动画相关.
Render 3D objects at Runtime using Sceneform
ARCore Cupcakes是一系列的博客文章, 主要是ARCore和Sceneform的Android开发相关.
本文教大家如何使用Sceneform来渲染3D物体.
7 Steps to implement Paging library in Android
7步在Android中实现Paging Library:
- 增加依赖.
- 用Retrofit取数据.
- 建立DataSource, 有三种选择.
- 建立
DataSourceFactory. - 建立
ViewModel. - 写好Adapter.
- 写好Activity.
作者的Demo在这里.
Drawing a rounded corner background on text
如何给文字加上带圆角的背景呢? 可以跨行, 也支持从右到左.
分析了需求之后, 最终的解决方案是写一个自定义的TextView.
例子代码: RoundedBackground-Kotlin.
Looking forward with Google Play
总结了Google Play过去这一年做出的重大改变以及下一年的计划目标等.
Increased accuracy of aapt2 "keep" rules
aapt2提供了更加精细的控制力度, 可以明确指定哪个构造函数被保留, 这样可以减少APK中最终的方法数.
How VRT puts accessibility first
Android系统提供的一些辅助设置:
- 放大字体: Settings > Display > Font Size.
- 放大显示: Settings > Display > Display Size. (Android 7.0).
- 颜色校正: Settings > Accessibility > Color Correction.
这些都是系统级的, 开发者不需要在应用中实现.
盲人需要借助另一个应用, 比如TalkBack, 这种应用会给用户震动反馈, 读出屏幕上的内容. 所以作为应用的开发者, 我们应当确保所有的view都有正确的内容描述, 并且有一个合理的布局, 遵循Material的规定和一些惯例.
注: 在开发时可以打开这个: Talkback settings > Developer Settings > Display speech output. 这样读出的内容就会显示成文字, 不会打扰到其他人.
其他辅助应用还有: Brailleback, Switch Access.
一些开发者工具:
- Accessibility Scanner App: 扫描你的应用, 给出更好地提供辅助的建议.
- Android Studio也会给出一些建议: 颜色对比度不够, ImageView没有contentDiscription, 字太小等.
文章后面是作者他们应用的一些实践.
LIBRARIES & CODE
Ferris Wheel
一个会动的摩天轮.
folding-cell-android
一个可以折叠的View, 动画效果很炫.
multiplatform-settings
Kotlin写的跨平台保留键值对设置的工具.
News
Introducing Android 9 Pie
更加智能
A smarter smartphone, with machine learning at the core.
- Adaptive Battery.
- Slices.
- App Actions.
- Text Classifier和Smart Linkify.
- 神经网络API 1.1.
更加方便
Getting the most from your phone -- more easily.
- 新的系统导航. 可以滑动显示全屏预览, 然后点击进入.
- 显示cutout(刘海).
- 通知和智能回复.
- 字体放大.
安全和隐私
- 生物识别认证提供了系统弹框.
- Protected Confirmation.
- Stronger protection for private keys.
- DNS over TLS.
- 默认HTTPS.
- Compiler-based security mitigations.
- 用户隐私方面: 闲置的应用不能访问传感器, 读取build.serial现在需要权限.
相机, 音频和图像的新体验
- 相机: 多相机API, Session parameters等.
- HDR VP9 Video和HEIF图像压缩.
- 音频的动态处理API: DynamicsProcessing.
- 图像解码API: ImageDecoder.
网络连接和地理位置
- Wi-Fi RTT室内定位.
- JobScheduler根据网络状态更好地处理任务.
- Open Mobile API for NFC payments and secure transactions.
性能
- ART performance.
- 为Kotlin做的优化.
- Modern Android.
Android Weekly Notes Issue #322的更多相关文章
- Android Weekly Notes Issue #230
Android Weekly Notes Issue #230 November 6th, 2016 Android Weekly Issue #230. Android Weekly笔记, 本期内容 ...
- Android Weekly Notes Issue #227
Android Weekly Issue #227 October 16th, 2016 Android Weekly Issue #227. 本期内容包括: Google的Mobile Vision ...
- Android Weekly Notes Issue #237
Android Weekly Issue #237 December 25th, 2016 Android Weekly Issue #237 这是本年的最后一篇issue, 感谢大家. 本期内容包括 ...
- Android Weekly Notes Issue #229
Android Weekly Issue #229 October 30th, 2016 Android Weekly Issue #229 Android Weekly笔记, 本期内容包括: 性能库 ...
- Android Weekly Notes Issue #221
Android Weekly Issue #221 September 4th, 2016 Android Weekly Issue #221 ARTICLES & TUTORIALS And ...
- Android Weekly Notes Issue #219
Android Weekly Issue #219 August 21st, 2016 Android Weekly Issue #219 ARTICLES & TUTORIALS Andro ...
- Android Weekly Notes Issue #236
Android Weekly Issue #236 December 18th, 2016 Android Weekly Issue #236 本期内容包括: Google的物联网平台Android ...
- Android Weekly Notes Issue #235
Android Weekly Issue #235 December 11th, 2016 Android Weekly Issue #235 本期内容包括: 开发一个自定义View并发布为开源库的完 ...
- Android Weekly Notes Issue #234
Android Weekly Issue #234 December 4th, 2016 Android Weekly Issue #234 本期内容包括: ConstraintLayout的使用; ...
随机推荐
- 选择一个 Python Web 框架:Django vs Flask vs Pyramid
Pyramid, Django, 和 Flask都是优秀的框架,为项目选择其中的哪一个都是伤脑筋的事.我们将会用三种框架实现相同功能的应用来更容易的对比三者.也可以直接跳到框架实战(Framework ...
- 使用Powermock和mockito来进行单元测试
转载:http://blog.csdn.net/u013428664/article/details/44095889 简介 Mockito是一个流行的Mocking框架.它使用起来简单,学习成本很低 ...
- UE把环境变量Path改了
为了比较个文件,装了UE. 文件比较完了,环境变量也被改了. 改还不是写添加式的改,是写覆盖式的改. 搞得ant都起不动了,一看Path被改的那样(C:\hy\soft\ultraedit\Ultra ...
- http Keep-Alive
1.什么是Keep-Alive模式? 我们知道HTTP协议采用“请求-应答”模式,当使用普通模式,即非KeepAlive模式时,每个请求/应答客户和服务器都要新建一个连接,完成之后立即断开连接(HTT ...
- Android开发之短信验证码示例
在说Android中的短信验证码这个知识点前,我们首先来了解下聚合数据 聚合数据介绍 聚合数据是一家国内最大的基础数据API提供商,专业从事互联网数据服务.免费提供从天气查询.空气质量.地图坐标到金融 ...
- shell循环,判断介绍,以及实例
shell的循环主要有3种,for,while,until shell的分支判断主要有2种,if,case 一,for循环 #!/bin/bash for file in $(ls /tmp/test ...
- HttpRuntime Cache用法及参数解释
自己用到的: HttpRuntime.Cache.Insert("SchoolBindKcChangci", SchoolBindKcChangci, null, DateTime ...
- css3动画学习资料整理
现在主流浏览器(先不管IE8,IE9吧),尤其是移动端浏览器基本都支持css3了,为了增强页面的表现力,css3动画必不可少了.这篇文章主要整理一下我在学习css3动画所查阅的一些好的资料,并附上两个 ...
- Linux进程间通信(IPC)编程实践(十二)Posix消息队列--基本API的使用
posix消息队列与system v消息队列的区别: (1)对posix消息队列的读总是返回最高优先级的最早消息,对system v消息队列的读则能够返回随意指定优先级的消息. (2)当往一个空队列放 ...
- ubuntu16.04--在标题栏显示网速
有时感觉网络失去响应,就通过Ubuntu 14.04自带的系统监视器程序来查看当前网速,但是这样很不方便,遂打算让网速显示在标题栏,那样就随时可直观的看到.一番搜索尝试后,成功实现!同时也实现了CPU ...