Android开发技术周报 Issue#104

   2016-11-07 0
核心提示:新闻 Google已正式结束对Eclipse Android开发工具的支持 Google Play推出软件新订阅户折扣功能教程 记一次 StackOverflow 崩溃分析: Proguard 5.3 错改指令近期工作主要在细化项目的proguard混淆规则, 简单的去掉一些暴力keep, 可以减少项目1k+的方法数. 在删

新闻

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

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

Android开发技术周报 Issue#104

教程

  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 也开始变得越来越复杂,

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

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

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

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

  3. DataBinding实现原理探析

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

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

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

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

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

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

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

  7. 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再漂亮都没用。

版权声明

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

捐赠

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

 
标签: 安卓开发
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • 安卓中通知功能的具体实现
    安卓中通知功能的具体实现
    通知[Notification]是Android中比较有特色的功能,当某个应用程序希望给用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知实现。使用通知的步骤1、需要一个NotificationManager来获得NotificationManager manager = (NotificationManager
    02-05 安卓开发
  • Android view系统分析-setContentView
    Android view系统分析-setContentView
    第一天上班,列了一下今年要学习的东西。主要就是深入学习Android相关的系统源代码,夯实基础。对于学习Android系统源代码,也没什么大概,就从我们平常使用最基础的东西学起,也就是从view这个切入点开始学习Android的源码,在没分析源码之前,我们有的时候
    02-05 安卓开发
  • 如何进行网络视频截图/获取视频的缩略图
    如何进行网络视频截图/获取视频的缩略图
    小编导读:获取视频的缩略图,截图正在播放的视频某一帧,是在音视频开发中,常遇到的问题。本文是主要用于点播中截图视频,同时还可以获取点播视频的缩略图进行显示,留下一个问题,如下图所示, 如果要获取直播中节目视频缩略图,该怎么做呢?(ps:直播是直
  • Android NDK 层发起 HTTP 请求的问题及解决
    Android NDK 层发起 HTTP 请求的问题及解决
    前言新的一年,大家新年快乐~~鸡年大吉!本次给大家带来何老师的最新文章~虽然何老师还在过节,但依然放心不下广大开发者,在此佳节还未结束之际,给大家带来最新的技术分享~ 事件的起因不说了,总之是需要实现一个 NDK 层的网络请求。为了多端适用,还是选择
  • Android插件化(六): OpenAtlasの改写aapt以防止资源ID冲突
    Android插件化(六): OpenAtlasの改写aapt以防
    引言Android应用程序的编译中,负责资源打包的是aapt,如果不对打包后的资源ID进行控制,就会导致插件中的资源ID冲突。所以,我们需要改写aapt的源码,以达到通过某种方式传递资源ID的Package ID,通过aapt打包时获取到这个Package ID并且应用才插件资源的命名
    02-05 安卓开发
  • Android架构(一)MVP架构在Android中的实践
    Android架构(一)MVP架构在Android中的实践
    为什么要重视程序的架构设计 对程序进行架构设计的原因,归根结底是为了 提高生产力 。通过设计是程序模块化,做到模块内部的 高聚合 和模块之间的 低耦合 (如依赖注入就是低耦合的集中体现)。 这样做的好处是使得程序开发过程中,开发人员主需要专注于一点,
    02-05 安卓开发
  • 安卓逆向系列教程 4.2 分析锁机软件
    安卓逆向系列教程 4.2 分析锁机软件
    安卓逆向系列教程 4.2 分析锁机软件 作者: 飞龙 这个教程中我们要分析一个锁机软件。像这种软件都比较简单,完全可以顺着入口看下去,但我这里还是用关键点来定位。首先这个软件的截图是这样,进入这个界面之后,除非退出模拟器,否则没办法回到桌面。上面那
    02-05 安卓开发
  • Android插件化(二):OpenAtlas插件安装过程分析
    Android插件化(二):OpenAtlas插件安装过程分析
    在前一篇博客 Android插件化(一):OpenAtlas架构以及实现原理概要 中,我们对应Android插件化存在的问题,实现原理,以及目前的实现方案进行了简单的叙述。从这篇开始,我们要深入到OpenAtlas的源码中进行插件安装过程的分析。 插件的安装分为3种:宿主启动时立
    02-05 安卓开发
  • [译] Android API 指南
    [译] Android API 指南
    众所周知,Android开发者有中文网站了,API 指南一眼看去最左侧的菜单都是中文,然而点进去内容还是很多是英文,并没有全部翻译,我这里整理了API 指南的目录,便于查看,如果之前还没有通读,现在可以好好看一遍。注意,如果标题带有英文,说明官方还没有翻
  • 使用FileProvider解决file:// URI引起的FileUriExposedException
    使用FileProvider解决file:// URI引起的FileUri
    问题以下是一段简单的代码,它调用系统的相机app来拍摄照片:void takePhoto(String cameraPhotoPath) {File cameraPhoto = new File(cameraPhotoPath);Intent takePhotoIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);takePhotoIntent.putExtra(Medi
    02-05 安卓开发
点击排行