通过附近是否有可信任设备来解锁
7.Ok Google语音指令
手机处于待机状态,可以说一些语音指令来执行对应的程序
8.Face unlock面部解锁
花费较大的力气优化了面部解锁功能
1.1.2 替换ListView和GridView的RecyclerView
有了 ListView、 GridView, 为什么还需要 RecyclerView 这样的控件呢? 从整体上看, RecyclerView架构提供了一种插拔式的体验, 它具有高度的解耦、 异常的灵活性和更高的效率, 通过设置它提供的不同LayoutManager、 ItemDecoration、 ItemAnimator 可实现更加丰富多样的效果。 但是RecyclerView也有缺点和让人头疼的地方: 设置列表的分割线时需要自定义, 另外列表的点击事件需要自己去实现。
书中也没有特别深入,介绍了些简单的使用方法,我也就按着作者的步骤总结一下吧
1.配置build.gradle
导包,没啥说的
2.使用RecyclerView
设置布局管理器,设置动画,设置适配器等就那几个步骤
3.设置分割线
书中用的是继承ItemDecoration来实现分割线效果的
我们还可以在每一项布局的底部加一个分割线
或者去使用默认
《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享
的分割线,直接传一个DividerItemDecoration
通过分割线的实例对象去setDrawable一个shape标签写的xml布局
4.自定义点击事件
通过回调接口来设置点击事件
5.实现GridView
这个设置一下布局管理器,分割线就可以了
6.实现瀑布流
在onBindViewHolder中通过LayoutParams去设置每一个Item的高度就可以实现了
附加:
Adapter中的执行顺序是getItemViewType()、onCreateViewHolder()、onBindViewHolder()
onCreateViewHolder():在这个界面首次加载Item的布局的时候执行
onBindViewHolder():首次加载在onCreateViewHolder()之后执行,然后只要Item滚动进屏幕就会频繁调用
1.1.3 卡片CardView
- 主要是可以直接在xml中设置圆角、阴影等等
1.配置build.gradle
- 导包,没啥说的
2.使用CardView
- 这个也没啥说的
1.1.4 三种Notification
otification可以在状态栏,锁屏界面,甚至悬浮窗口进行通知,最直观的就是我们在打王者荣耀的时候微信有新消息会有一个悬浮窗来通知我们
1.普通Notification
通过PendingIntent来跳转,就那几行代码,不详细说了
2.折叠式Notification
和普通的Notification基本一样,只不过多了一个展开的视图,需要使用RemoteViews创建自定义的视图
3.悬挂式Notification
不需要下拉通知栏直接显示出来悬挂在屏幕上方,并且焦点不变,过几秒就消失,需要调用setFullScreenIntent
4.Notification的显示等级
VISIBILITY_PUBLIC:任何情况都会显示通知。
VISIBILITY_PRIVATE:只有在没有锁屏时会显示通知。
VISIBILITY_SECRET:在pin、password等安全锁和没有锁屏的情况下才能够显示通知。
直接通过调用setVisibility方法就可以了
1.1.5 Toolbar与Palette
-
Toolbar比Actionbar好用得多
-
在Android群英传已经详细介绍过这个了,这里简单说几句
1.引入Toolbar
-
导包,没啥说的
-
style中把Actionbar去掉,并且自定义各种颜色
写布局,代码中调用
2.自定义Toolbar
我们还可以设置Toolbar的标题和图标以及Menu、Item等属性
覆盖setOnMenuItemClickListener实现点击的回调
3.添加DrawerLayout实现侧滑
没啥说的
4.Palette
意为:调色板,用来提取颜色,让主题能够动态适应当前界面的色调,
实现方式:将bitmap传递给Palette,调用generate即可,在onGenerated回调中得到图片的色调
1.2 Android 6.0新特性
==================
2015年5月,Android推出了6.0 Marshmallow(棉花糖)的新系统,依旧保持Material Design风格,在软件体验与运行性能上进行来大幅度的优化,据测试,Android6.0可使续航时间提升30%
1.2.1 Android 6.0主要新特性概述
1.应用权限管理
应用的权限都开放给开发者和用户
2.Android Pay
支持4.4以后的系统设备并且可以使用指纹来进行支付
3.指纹支持
其实6.0之前也有部分手机厂商就实现了指纹的功能,比如我之前用的5.0的oppo手机也有指纹功能,而这一次是谷歌提供的指纹识别支持
4.Doze电量管理
手机静止不动一段时间后,进入Doze电量管理模式,当屏幕处于关闭状态,平均续航时间可提高30%
5.App links
将app与它们的web域名关联,比如手机邮箱中收到一封邮件,点击链接中的Twitter链接,可以直接跳到Twitter应用,而不是网页
6.Now on Tap
这个功能可以很大的方便用户,比如在某一个程序界面长按Home键,它会识别屏幕上的内容并创建Now卡片
1.2.2 运行时权限机制
Android 6.0之前,会在安装App的时候列出各种访问权限,那么在Android 6.0之后会在App运行的时候一个一个的来询问用户来授权
1.Android 6.0之前版本的应对之策
Android 6.0默认为targetSDKVersion小于23的应用授予了所有的权限,如果应用的targetSDKVersion低于23,在运行时不会崩溃,如果手动取消了权限,则会提示拒绝了权限而无法运行,依赖该项授权的方法的返回值为null,所以有可能报空指针异常,所以我们要尽快着手修改App支持最新的权限系统
2.Normal Permissions与Dangerous Permission
Google将权限分为两类:普通权限和危险权限
普通权限不涉及用户隐私,比如手机振动、访问网络什么的直接在AndroidManifest.xml中简单声明就可以
危险权限涉及用户隐私比如读取sdcard、访问通讯录、短信等就必须用户授权了
3.实现支持运行时权限
用打电话来举个例子,在点击按钮的时候判断是否有权限,没有权限就去申请权限,申请权限的回调中判断申请是否成功,如果拒绝了每次都会请求权限,如果拒绝并勾选了不再询问,如果想更改权限就只能到系统设置中的应用权限去开启权限了
4.处理不再询问选项
在权限的回调中弹个对话框出来
5.PermissionDispatcher框架的使用
这是一个github上的框架,然后封装了一些操作,不说太多了
1.3 Android 7.0新特性
==================
- 2016年8月,谷歌推出Android 7.0 Nougat(牛轧糖)正式版,我们看一下有什么新功能
1.3.1 Android 7.0主要新特性概述
1.多窗口模式
在一个应用程序中长按Overview按钮,就可以进入分屏模式,oppo手机三指上滑也会进入分屏模式
2.Data Saver
流量保护机制,启用Data Saver模式时,系统将拦截后台数据使用,减少前台运行应用使用的数据量,例如限制流媒体服务的码率,下调画质,以及减少缓存等
3.改进的Java8语言支持
支持Java8,可以直接用Lambda表达式



