Android Weekly Notes Issue #316
July 1st, 2018
Android Weekly Issue #316
本期内容包含教你使用Kotlin通过Annotation Processor生成代码文件, JetPack中的Android KTX, 以及升级到Target26所需要注意的东西,还包含如何使用KTX简化AndroidX里面的Slice的Build,以及如何通过MotionLayout方便实现动画的系列,还有MLKit中扫条形码的Lib介绍,以及一些譬如Kotlin MVVM, Koin依赖注入做Test, UI Test去除动画,入行一年感受,DialogFLow来做面试机器人等等的有趣内容.
ARTICLES & TUTORIALS
Generating Code via Annotations in Kotlin
文章介绍了如果用Kotlin来写Annotation Processor生成代码.
两个关键的Lib
\\ Code generation library for kotlin, highly recommended
implementation 'com.squareup:kotlinpoet:0.7.0'
\\ configuration generator for service providers
implementation "com.google.auto.service:auto-service:1.0-rc4"
kapt "com.google.auto.service:auto-service:1.0-rc4"
- 首先需要通过
annotation class定义自己的Annotation. - 其实继承
AbstractProcessor实现自己的Processor, 通过@AutoService注册到系统的Processor.class上去.复写process方法生成代码.
Android KTX - Android development with Kotlin
之前已经有不少Kotlin的语法糖了,这次JetPack推出的是Android官方的KTX,其主要实现原理就是通过给已有的Framework添加很多方法或者变量的Extension.
类似于Anko, 支持的列表在这里,当然对于类似的Project, 学习是一个过程.
Remember, remember… to target API 26 on November!
文章列举了要逐步将Target升级到26所需要注意的东西.
Marshmallow 6.0 Level 23
- Runtime Permission
- 删除了Apache Http Client
- 从OpenSSL到BoringSSL
- 删除
Notification.setLatestEventInfo()
Nougat 7.0 Level 24
- 限制后台网络,删除了
CONNECTIVITY_ACTION广播通知,以及Intent中的ACTION_NEW_PICTURE与ACTION_NEW_VIDEO. - App外无法通过
file://访问私有文件. - 链接非NDK的Lib不行了.
Nougat 7.1 Level 25
- App Shortcuts
- 支持Image到Keyboard里,通过Commit Content API.
- 添加了
android:roundIcon
Oreo 8.0 Leve26
- 必须通过
startForeground和startForegroundService来启动前台的服务,无法启动后台服务. - 移除了几乎所有的隐式广播,除了部分.
- 后台位置信息收到限制,推荐使用GCM的
FusedLocationProviderClient或者Geofencing. - 必须制定Notification Channel,否则收不到通知.
My first weeks as an Android Dev
介绍了自己第一周做Android开发的经历,面对自己的任务,接触到了譬如Design,ConstraintLayout,Data Binding & ViewModel, DI,以及Kotlin的东西,有点应接不暇.
Espresso animations disabled flag
通过设置flag来禁止测试中动画, 方便测试.
testOptions {
animationsDisabled = true
}
Exploring Firebase MLKit on Android: Barcode Scanning (Part Three)
文章介绍了用Firebase的VisionBarcode来扫条形码.
Introducing Slice Builders KTX
Android Slice是最新推出的AndroidX里面的控件,主要是给Google Search App来提供一些类似Google Assistant的那种UI,支持静态与动态的布局.
KTX也推出了对该组件的支持,以便通过Kotlin来简化Slice Build使用过程.
如:
list(context, sliceUri, ListBuilder.INFINITY) {
row {
setTitle("Hello world")
}
}
Building an Action to Solve a Real World Problem: Part 1, Plan & Design
通过Dialogflow等一系列技术搭建了一个给面试者出题的训练系统,根据对话提供不同的题目.
Introduction to MotionLayout (part I)
介绍了Google最新的ConstraintLayout 2.0的子类MotionLayout的使用,它可以通过在xml文件里定义的MotionScene来指定一些动画.
这些都是通过TransitionManager完成的,它会自己计算开始与结束之间的位置,完成动画,有点像Activity之间的SharedElement Transition Animation.
Testing with Koin
通过Koin依赖注入框架来简化Kotlin Test里面的mock注入.
MVVM with Kotlin
介绍了Kotlin下Android的MVVM的全套实践,包含了DataBinding, Retrofit, Dagger等等.
Introducing adb-enhanced: A swiss army knife for Android development
一个Python的应用, enhance的adb,可以方便的进行clean安装,节能模式,doze模式的调试等等.
pip3 install adb-enhanced
LIBRARIES & CODE
ColorPickerView
一个选择颜色的picker view
adb-enhanced
上面介绍的加强型Adb
Android Weekly Notes Issue #316的更多相关文章
- 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的使用; ...
随机推荐
- 香蕉派(or 皮?)上手初体验 -- 外观鉴赏,安装,配置&总结
一.前言及简单介绍 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG9uZ2Vyem9uZQ==/font/5a6L5L2T/fontsize/400/f ...
- EVB-P6UL:一识庐山真面目
前言 原创文章,转载引用务必注明链接.水平有限,如有疏漏,欢迎指正. 本文使用Markdown写成,为获得更好的阅读体验与正确的图片链接显示,请访问我的博客原文: 在爱板网上看到这个活动,昨晚确认,今 ...
- 鼠标点击input框后里面的内容就消失
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- linux下编译ffmpeg 引入外部库x264
Found no assembler Minimum version is nasm-2.13 If you really want to compile without asm, configure ...
- java ConcurrentHashMap 初识
“ConcurrentHashMap是一个线程安全的哈希表“,但是不允许key和value为空: HashTable和ConcurrentHashMap都是线程安全的,但是HashTable是同步容器 ...
- C语言 结构体作为函数的参数
1)使用结构体变量作为函数的参数 使用结构体变量作为函数的实参时,采用的是值传递,会将结构体变量所占内存单元的内容全部顺序传递给形参,形参必须是同类型的结构体变量 demo: # include &l ...
- 概率图模型(PGM)学习笔记(二)贝叶斯网络-语义学与因子分解
概率分布(Distributions) 如图1所看到的,这是最简单的联合分布案例,姑且称之为学生模型. 图1 当中包括3个变量.各自是:I(学生智力,有0和1两个状态).D(试卷难度,有0和1两个状态 ...
- 【Python基础】之for循环、数组字典
一. for循环实例 1.循环字符串 Python Shell: for i in "hello": print(i) h e l l o 2.循环数组Python Shell: ...
- 检查Nginx的配置,重载配置和重启的方法
Nginx 安装后只有一个程序文件,本身并不提供各种管理程序,它是使用参数和系统信号机制对 Nginx 进程本身进行控制的. Nginx 的参数包括有如下几个: 可以这样使用 /usr/local/n ...
- 嵌入式开发之davinci--- 8148/8168/8127 中的xdc 简介
XDC是TI公司为嵌入式实时系统可重用软件组件(在XDC里被成为packages,以下成为包)制定的一套标准.它包括一些有用的工具,标准的API函数,静态配置文件和打包(packaging)操作.XD ...