这次更新新增的 通知渠道 & 通知角标,到底是个啥?看完你就知道了。
Android 6.0 运行时权限处理完全解析
前段时间解决了几个 QQ 音乐多窗口屏幕显示的 bug,虽然这个问题最终不是 Android O 版本的问题,多窗口是 Android 7.1 之后引入的,但是趁此机会了解一下 Android O 版本的新特性也不错。
无聊? 来看看应用冷启动流程吧? 看不懂? 找我打酱油
上一次讲解了一下startPreview过程,主要是为了画出一条大致的从上到下的线条,今天我们看一下Camera在Framework的sendCommand和dataCallback,这部分属于衔接过程,可以看到上下是如何交流沟通的。 首先,sendCommand Camera…
从 Android 6.0(API 级别 23)开始,用户开始在应用运行时向其授予权限,而不是在应用安装时授予。
系统权限分为两类:
正常权限:只需在你应用的 Androidmanifest.xml 中列出,安装时授权。
危险权限:需要在你应用的 Androidmanifest.xml 中列出,并在运行时授权。运行时权限的加入增加了用户隐私的安全,但同时也给开发者带来了一些负担,因为多了检查权限,请求权限,处理权限请求响应的步骤。
于是就出现了一些框架,用于简化运行时权限的处理,如 PermissionsDispatcher,Dexter,RxPermissions,easypermissions 等。
这里只用过 easypermissions 和 PermissionsDispatcher,最终选择了 PermissionsDispatcher,原因是使用人数最多,api 设计简单易用,兼容性较好,easypermissions 使用起来相对麻烦一些。
PermissionsDispatcher 提供简单的基于...
基于 EasyPermission 的重新封装,删除了注解,只使用回调方法处理权限是否授予。代码更清晰,让你更专注于业务逻辑。
欢迎 Follow 我的 GitHub , 关注我的掘金. 本文是探索Activity启动源码的第二篇, 其余参考第一篇, 基于Android SDK 25(即7.1). Activity 第一篇的流程图: 流程图 第一篇已经探索至关键位置, 即ActivityStackSup…
就在我们分析 Android M 版本的 ART 还只走出了一小段路的时候,Android N 的新 ART 就问世了。 Android N 上的 ART 还是有不小的改进的。不过做为一个关注细节的系列文章,我们还是从 Compile 的过程说起。
CameraService启动 CameraService是在MediaServer启动过程中进行的 main_mediaserver.cpp (frameworksavmediamediaserver) ...... AudioFlinger::instantiate(…
刚适配完 Android7.0 还没多久,就看到 Android8.0(Android O)已经推出开发者预览版的新闻,我的心情你是可以想到的。这次趁早刷到最新版,运行示例代码,看看 Google 又做了哪些新的限制与变化,新增了什么特性,对我们已有的 app 有何影响,或者能增加什么新奇有趣的功能。
我们永远都需要流畅的用户体验,但很遗憾我们手上的硬件资源却总是和这个需求唱反调。这也是 Android 平台不断努力的切入点——从 API 26开始,Android 对后台服务引入了严格的限制。基本上,除非您的应用在前台运行,否则系统将在几分钟内停止应用的所有后台服务。 由于对…
安卓O又增强了通知的能力了!!“小红点”,颜色化,通知超时等特性你了解了吗?
1 先介绍 DiffUtil 的简单用法,实现刷新时的 “增量更新” 效果。(“增量更新”是我自己的叫法)
2 DiffUtil 的高级用法,在某项 Item 只有内容 (data) 变化,位置 (position) 未变化时,完成部分更新(官方称之为 Partial bind,部分绑定)。 3 了解到 RecyclerView.Adapter 还有 public void onBindViewHolder(VH holder, int position, List payloads)方法,并掌握它。 4 在子线程中计算 DiffResult,在主线程中刷新 RecyclerView。 5 少部分人不喜欢的 notifyItemChanged()导致 Item 白光一闪的动画 如何去除。 6 DiffUtil 部分类、方法 官方注释的汉化中秋加班怒撸的这篇,希望对你有帮助。概述 该篇文章主要讲解vold的整体框架和工作流程,不会涉及到具体的实现。具体的实现(从framework到Native再到协议族)会在如下的后续文章里提及。Android5.0 vold-启动过程Android5.0 vold-注册过程(上)Android5.0 vold-注…
Android 系统在 MarshMallow 之前,权限都是在安装的时候授予的,虽然在 4.3 时,Google 就试图在源码里面引入 AppOpsManager 来达到动态控制权限的目的,但由于不太成熟,在 Release 版本中都是把这个功能给隐藏掉的。在 6.0 之后,Google 为了简化安装流程且方便用户控制权限,正式引入了 runtime-permission,允许用户在运行的时候动态控制权限。
源码传送门 前言 现在谈论Android权限适配可能有点没必要,因为网上关于权限适配的文章很多,搜一下Android6.0权限适配关键词能搜到一堆文章,而且很多写的还很不错。不过自己想了想还是总结一下,因为那些文章都是别人的,不是自己的,之前一直想总结一下,但是一直没做,今天就…
结合图片描述了 Launcher 的结构
Android6.0M 权限管理实战, 完美轻量级封装
Android N Notification 简介
指定 KeyStore 签名算法为椭圆曲线 DSA,实现 Android6.0 以上 SSL 通信
前两篇博客分别对 Lancher 的启动和 Launcher 的框架结构进行了一些分析,这一篇,将着重开始分析界面的加载流程。
Launcher 是安卓系统中的桌面启动器,安卓系统的桌面 UI 统称为 Launcher。Launcher 是安卓系统中的主要程序组件之一,安卓系统中如果没有 Launcher 就无法启动安卓桌面。
前言 PopupWindow可以说是Google坑最多的一个控件,使用PopupWindow的时候没有遇到几个坑你都不好意思说你用过它,说一个可能大多数人都遇到过的一个坑:那就是我们想触摸PopupWindow 以外区域就隐藏PopupWindow,理论上我们只需要调用 setO…
关于异形图标和规则图标的取舍,在不同阵营的 Android 用户之间一直存在着争议。而一向提倡使用异形图标、讲求图标「个性」的 Google 在 Android 7.1 中引入了圆形图标规范,在 Android 8.0 中还将带来全新的自适应图标特性——Google 似乎想通过…
前言 从之前的几篇文章,可以基本弄清楚 Camera从APK,经过framework的衔接,与HAL层进行交互,最终通过驱动完成Camera的一些动作。 Camera层次分析 APP层 Framework层 HAL层 大致的框架图如下框架图 从图中可以看到几个关键的地方: AP…
高级输入框 EditText 设计。新手也可以做出新时代的安卓登录界面。
动态权限管理全解析
图文并茂,带你看Android 8.0 "奥利奥"新功能
Android8.0也就是Android O即将要发布了,有很多新特性,目前我们可以通过AndroidStudio3.0 Canary版本下载Android O最新的系统映像的Developer Preview 4版本,Developer Preview 4是Android O正…
上一次讲解了一下CameraService的启动过程,今天梳理一下Camera预览的过程 StartPreview过程 首先,我们还是从应用层的使用入手Camera.java (packagesappslegacycamerasrccomandroidcamera)…
安卓 5.0 6.0 新特性简单总结
Android 6.0 运行时权限简洁封装
背景介绍 谷歌2017 I/O开发者大会今年将于5月17-19日在美国加州举办。大会将跟往年一样发布最新的 Android 系统,今年为 Android 8.0。谷歌在今年3 月21日发布 Android 新系统开发者预览版时已给新系统取名为 Android O。自2008 年发…
Android O 引入了名为「自适应图标」(adaptive icon)的全新应用图标格式。自适应图标可以统一应用图标形状,允许开发者使用新特效,进而使设备的使用体验更为连贯。本文将会阐述自适应图标的工作原理,还会介绍设计自适应图标的一些技巧。
Android O新特性和行为变更总结
Android 8.0 为用户和开发者引入多种新功能。本文重点介绍面向开发者的新功能。
安卓的版本历史全知道,做到心中有数
Shortcut 是 Android-25(Android 7.1)新增的一项类似 iOS 的 3D Touch 功能的快捷方式组件,但是有着不同的表现形式,因为 Android 在硬件上不支持触摸压力感应,所以表现形式为长按,而 iOS 须用力长按。
欢迎 Follow 我的 GitHub , 关注我的掘金. 本篇是第一篇, 参考第二篇. 无论怎么说, Activity都是Android最核心的组件, 主要负责向用户展示应用信息. Activity的生命周期由Android系统控制, 启动与绘制都是自动完成. 对于开发人员而…
来呀,来 7.1 造作呀
一般情况下,Android 系统安装 apk 会出现一个安装界面,用户可以点击确定或者取消来进行 apk 的安装。但在实际项目中,有一种需求就是希望 apk 在后台安装(不出现安装界面的提示),这种安装方式称为静默安装,同样,apk 在后台卸载(不出现卸载界面的提示),这种卸载方式称为静默卸载。本篇章暂只讨论与静默卸载相关的情况,基于 Android M 系统源码分析。
Android 7.0 特性
权限 Android6.0
总结了自己在Android 7.0中遇到的问题,前三个问题是自己现实遇到的,后三个是收集来的没有验证,作为记录以备不时之需。
由于 Android 7.0 或更高版本的系统在国内手机市场上的占比不是很高,很多 Android 开发人员并没有做 7.0 适配工作,同时测试人员也容易忽视这方面的兼容问题。这导致 7.0 及以上版本的手机用户在使用到应用部分功能时可能出现 App 崩溃闪退。其中,大部分原因…
从6.0 MarshMallow开始,Android支持动态权限管理,即有些权限需要在使用到的时候动态申请,根据用户的选择需要有不同的处理,具体表现可以看下图: 权限申请 本文并不关心权限适配的原理,原理可以参考Android权限管理原理 ,这里只是针对6.0中的表现做适配,先…
Android M 运行时权限想必大家已经不陌生了。在这还是放出一篇经典的对于运行时权限的说明和解释的说明。 同时Google也提供了帮助处理的第三方库EasyPermission,可以见这篇文章。 这个项目从Easypermissions中fork出来,翻译了中文文档,并封装…