Android开发技术周报 Issue#104

十一月 07, 2016 0 条评论 AndroidDevWeekly

新闻

  1. Google已正式结束对Eclipse Android开发工具的支持

  2. Google Play推出软件新订阅户折扣功能

教程

  1. 记一次 StackOverflow 崩溃分析: Proguard 5.3 错改指令

    近期工作主要在细化项目的proguard混淆规则, 简单的去掉一些暴力keep, 可以减少项目1k+的方法数. 在删除某些配置之后, 尽管我知道对功能没有影响, 还是会去测一下功能是否正常. 于是就遇到了一个隐藏在主干上的StackOverflow崩溃。从堆栈上看, 匿名内部类的run调MyApp.startActivity, MyApp.startActivity又new了一个Runnable, 它的run继续调MyApp.startActivity, 最终栈溢出. 看了堆栈, 还以为是一个简单的问题, 直接去找到了代码.

  2. 安卓自定义View进阶-MotionEvent详解

    Android MotionEvent 详解,之前用了两篇文章 事件分发机制原理事件分发机制详解 来讲解事件分发,而作为事件分发主角之一的 MotionEvent 并没有过多的说明,本文就带大家了解 MotionEvent 的相关内容,简要介绍触摸事件,主要包括 单点触控、多点触控、鼠标事件 以及 getAction() 和 getActionMasked() 的区别。Android 将所有的输入事件都放在了 MotionEvent 中,随着安卓的不断发展壮大,MotionEvent 也开始变得越来越复杂,

  3. Android系统中的进程管理:进程的优先级

    本文会主要讲解Android系统对于进程优先级的管理。优先级反应了系统对于进程重要性的判定。当系统剩余内存很低的时候,系统便会按照进程的优先级倒序杀死进程以回收内存。关于系统如何回收进程我们会在后面的文章中讲解,本文主要讲解系统对于进程优先级的判断依据和计算方法。在Processes and Threads (如果你还没有阅读,请立即阅读一下这篇文章)一文中,我们已经了解到,系统对于进程的优先级有如下五个分类:前台进程、可见进程、服务进程、后台进程、空进程,这只是一个粗略的划分。其实,在系统的内部实现中,优先级远不止这么五种。

  4. Android 7.0中的多窗口实现解析

    在以往的Android系统上,所有Activity都是全屏的,如果不设置透明效果,一次只能看到一个Activity界面。但是从Android N(7.0)版本开始,系统支持了多窗口功能。在有了多窗口支持之后,用户可以同时打开和看到多个应用的界面。并且系统还支持在多个应用之间进行拖拽。在大屏幕设备上,这一功能非常实用。本文将详细讲解Android系统中多窗口功能的实现。

  5. DataBinding实现原理探析

    DataBinding 技术的出现,肯定是为了解决我们在开发中的一些痛点问题。所以,了解 DataBinding 要解决的问题,能够使我们更深刻地理解 DataBinding 技术的设计实现。从开发角度看,简言之,DataBinding 主要解决了两个问题:1.需要多次使用 findViewById,损害了应用性能且令人厌烦 2.更新UI数据需切换至UI线程,将数据分解映射到各个view比较麻烦,应该说,针对上述问题,都有第三方解决方案。第一个问题可以使用 Jake Wharton 的 ButterKnife;对于第二个问题,谷歌提供了 Loop-Handler 方案,你还可以使用 RxJava,EventBus 等方案,但它们只是解决了线程切换的问题,却没有解决将数据分解映射到各个view的问题,这正是 DataBinding 的魅力所在!

  6. Activity 全屏,沉浸式模式这一篇就够了

    第一次在项目中要用到全屏功能的时候无从下手,然后就是去百度了。百度到的结果都是差不多的。不过直接把代码贴过来的确是可以用的。但是除了知道怎么做之外还想去理解它,因为只有理解了才能举一反三嘛。好在在后来的时候看到了官方的文档,写的非常详细。

  7. Android研发安全-Activity组件安全(上)

    Activity组件是用户唯一能看见的组件,作为软件所有功能的显示载体,其安全性不言而喻。针对Activity组件安全,作为一个安卓开发者来讲需要在日常开发过程中注意两点:1.Activity访问权限的控制 2.Activity被劫持,本篇文章将分享Activity访问权限控制方面的安全问题,首先科普下基础知识,Activity类型和使用方式决定了其风险和防御方式,故将Activity分类如下: Private、Public、Parter、In-house, Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。

  8. 有赞Android客户端网络架构演进

    Android客户端网络请求是每一个应用都不可或缺的模块,其设计的好坏直接影响应用的性能和代码稳定性、扩展性。Android网络请求最开始官方只提供了最基础的方法,开发者必须在此基础上进行二次封装,这样就要求开发者对Http请求协议、缓存、JSON转换、错误处理以及线程切换等都比较熟悉,稳定性、可扩展性和可维护性都是比较大的挑战。

  9. Android SurfaceView 源码分析及使用

    SurfaceView 是 Android 中一种比较特殊的视图(View),它跟平时时候的 TextView、Button 最大的区别是它跟它的视图容器并不是在同一个视图层上,它的 UI 显示也可以不在一个独立的线程中完成,所以对 SurfaceView 的绘制并不会影响到主线程的运行。综合这些特点,SurfaceView 一般用来实现动态的或者比较复杂的图像还有动画的显示。

开源库 & App

  1. Android-ScaleLayout

    一个简单的,方便的多屏适配的Android库

  2. TyperEditText

    仿打字机效果

  3. RaiflatButton

    A raised button that lowers down to 0dp of elevation

  4. FloatingView

    FloatingView can make the target view floating above the anchor view with cool animation

  5. SquareMenu

    SquareMenu is a custom Floating Action Button with a different shape from traditional FABs and with three sub menu buttons.

  6. Monotweety

    一个用 Kotlin 写的 Twitter 客户端

  7. SearchFilter

    Yalantis 开源的一个很赞的搜索框过滤效果

  8. Sketch mirror

    Yet another Sketch Mirror App for Android.

  9. MobileGuard

    一个管理安卓手机的应用,支持安卓7.0

  10. YaMvp

    又一个Mvp库,超级简单,但有足够的功能

  11. SuperTextView

    一个功能强大的TextView,可以满足日常大部分布局方式,开发者可已自行组合属性配置出属于自己风格的样式

  12. dns66

    a DNS based ad blocker for Android.

  13. roundbutton

    可设置圆角背景边框的的按钮

工具

  1. kap

    Mac 上轻量级 GIF 录屏小工具

  2. scouter

    Scouter is an open source APM and an open source profiler for java application like web applications on a tomcat .

活动

  1. Google Developer Day China 2016

    Google 开发者大会是一个互动交流的大会,旨在与开发者们和科技行业领先者们分享 Google 的最新科技和开放平台。今年,Google 开发者大会将于12月8日和12月14日分别在北京和上海举办。我们非常高兴与你分享创新科技,并且鼓励开发者们去建立下一个伟大的移动网络或本地应用。这不仅是创新科技的互联网时代,更是属于每一位开发者的时代。

设计

  1. 移动端用户体验:底部导航

    设计师都知道,设计不只是为了好看。设计也决定用户如何融入一个产品,无论是网站还是app。这是一种交谈。导航就是一种交谈。因为如果用户不明白使用方式,你的网站或app再漂亮都没用。

捐赠

如果你觉得Android开发技术周报对您有所帮助,请考虑对本周报捐赠支持。支持我把Android开发技术周报做的更好,帮助更多的人,金额随意,您的捐赠将用于支付服务器和邮件推送服务的费用。捐赠列表

支付宝

版权声明

欢迎自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 4.0

脉脉不得语
ZhengZhou Website
{Developer=菜鸟Android程序猿; Blog=http://inferjay.com; Github=http://github.com/inferjay}