Android Weekly Issue #244

February 12th, 2017
Android Weekly Issue #244
本期内容包括: Android Fragments使用教程; ClassyShark使用; Firebase的Personal App Indexing功能引出的一些权限问题; 关于应用内没有提供Privacy Policy的后续处理; Kotlin中的annotation processor讨论; Pull和Push模式的讲解; 为什么Android测试这么难; Android 7 Nougat不再支持用Intent发送file:// URI, 应用需要改用FileProvider实现原有功能.

ARTICLES & TUTORIALS

Android Fragments Tutorial: An Introduction

一篇如何使用Fragments的讲解.

Exporting data from ClassyShark

ClassyShark的APK dashboardA检查apk的问题(重复依赖, 过期依赖等).
本文介绍如何一次性导出全部的数据.

Post-mortem : Firebase vs permissions

两周前Firebase发布了一个新功能: Personal App Indexing. 之后遇到了一些权限相关的问题, 本文讨论遇到的具体问题和解决方法, 然后他们发布了一个hotfix版本.

Did you get one of these Google Play Developer Policy Violation Emails?

如果你的应用使用了一些"dangerous permissions", 你需要在应用或者Google Play上附有privacy policy, 否则你就会收到Google Play的邮件.

作者他的Demo app也收到了这种邮件, 所以他提供了他的解决方法.

他找到了这个网站, 这是他最后写成的Gist. 利用RawGit可以将github上的文件url转成用HTML显示的url. 之后在app中设置一个链接, 点击打开这个url就可以了.

Pushing the limits of Kotlin annotation processing

关于Kotlin的annotation processor支持, 是一个很复杂的问题, 作者讨论了关于这个问题的历史进展和当前的局限性.

Pull vs Push & Imperative vs Reactive - Reactive Programming

作者用浅显的代码例子解释了Pull和Push模式的区别, 一个是自己不停地查询读取, 另一个是等改变发生的时候收到通知.

Why Android Testing is so Hard: Historical Edition

为什么Android项目这么难测试呢? 作者认为主要有三方面的历史原因:

  • Performance方面的考虑.
  • 对Android组件的误解.
  • Android和Unit Testing出现的时机.

Sharing files though Intents: are you ready for Nougat?

Android 7 Nougat引入了一些文件系统的权限变化, 来增强安全性.

如果你已经把targetSdkVersion升到了24+, 并且你用Intent发送一个file:// URI, 你将会得到一个FileUriExposedException.

解决办法是使用FileProvider.

LIBRARIES & CODE

SlidingSquaresLoader

一个有趣的动画方块的loading图案.

ason

一个JSON库, 简化了序列化, 更易使用.

Intro-To-RxJava

上一期有一篇文章提过的RxJava练习项目.

chuck

An in-app HTTP inspector for Android OkHttp clients.
截取请求和响应, 点击通知可以查看UI显示.

android-parcelable-intellij-plugin-kotlin

为kotlin的类生成Parcelable代码的插件.

Android Weekly Notes Issue #244的更多相关文章

  1. Android Weekly Notes Issue #230

    Android Weekly Notes Issue #230 November 6th, 2016 Android Weekly Issue #230. Android Weekly笔记, 本期内容 ...

  2. Android Weekly Notes Issue #227

    Android Weekly Issue #227 October 16th, 2016 Android Weekly Issue #227. 本期内容包括: Google的Mobile Vision ...

  3. Android Weekly Notes Issue #237

    Android Weekly Issue #237 December 25th, 2016 Android Weekly Issue #237 这是本年的最后一篇issue, 感谢大家. 本期内容包括 ...

  4. Android Weekly Notes Issue #229

    Android Weekly Issue #229 October 30th, 2016 Android Weekly Issue #229 Android Weekly笔记, 本期内容包括: 性能库 ...

  5. Android Weekly Notes Issue #221

    Android Weekly Issue #221 September 4th, 2016 Android Weekly Issue #221 ARTICLES & TUTORIALS And ...

  6. Android Weekly Notes Issue #219

    Android Weekly Issue #219 August 21st, 2016 Android Weekly Issue #219 ARTICLES & TUTORIALS Andro ...

  7. Android Weekly Notes Issue #236

    Android Weekly Issue #236 December 18th, 2016 Android Weekly Issue #236 本期内容包括: Google的物联网平台Android ...

  8. Android Weekly Notes Issue #235

    Android Weekly Issue #235 December 11th, 2016 Android Weekly Issue #235 本期内容包括: 开发一个自定义View并发布为开源库的完 ...

  9. Android Weekly Notes Issue #234

    Android Weekly Issue #234 December 4th, 2016 Android Weekly Issue #234 本期内容包括: ConstraintLayout的使用; ...

随机推荐

  1. js 弹性导航

    <style> *{margin:0;padding:0;} #box{height:50px;float:left;position:relative;background:#f90;} ...

  2. MNIST手写数字识别 Tensorflow实现

    def conv2d(x, W): return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME') 1. strides在官方定义中是一 ...

  3. 趣说Java:我是一个线程

    第一回 初生牛犊 我是一个线程,我一出生就被编了个号:0x3704,然后被领到一个昏暗的屋子里,在这里我发现了很多和我一模一样的同伴. 我身边的同伴0x6900 待的时间比较长,他带着沧桑的口气对我说 ...

  4. Microsoft Power BI Desktop概念学习系列之Microsoft Power BI Desktop的官网自带示例数据(图文详解)

    不多说,直接上干货! https://docs.microsoft.com/zh-cn/power-bi/sample-datasets 后续的博文系列,将进行深入的剖析和分享. 欢迎大家,加入我的微 ...

  5. graphql pass arg

    ; ; var xhr = new XMLHttpRequest(); xhr.responseType = 'json'; xhr.open("POST", "http ...

  6. AMQP技术术语

    什么是AMQP AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计.基 ...

  7. C#自定义处理事件(作者还没完全理解事件和委托,所以有可能错漏百出)

    1.C#的处理事件整个框架,其实就是观察者模式的一种应用 观察者模式:老师监视学生考试,学生若作弊,老师立即打人 2.涉及的元素: 所以必须涉及两个对象,事件引发者(触发)--学生:事件处理者--老师 ...

  8. Nginx的upstream的5种分配方式

    转自:Nginx的upstream目前支持5种分配方式 1.轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除. 2.weight指定轮询几率,weigh ...

  9. js处理json数据,java处理json数据

    一.js处理json数据 处理办法之一是把本机json数据或远程返回json数据用eval函数,使之变成DOM对象. 例如: var people = { "programmers" ...

  10. HandlerInterceptor与MethodInterceptor

    HandlerInterceptor是springMVC项目中的拦截器,它拦截的目标是请求的地址,比MethodInterceptor先执行.实现一个HandlerInterceptor拦截器可以直接 ...