Android O(SDK 8.0)新特性,刘海屏

> Android刘海屏

  Android 屏幕,16:9,17:9,19:10,18:9,18.5:9所谓全面屏。挖孔屏、凹凸屏等。

android 全面屏/刘海屏有效适配- https://blog.youkuaiyun.com/zane_xiao/article/details/81781723
详解Android刘海屏适配- https://blog.youkuaiyun.com/xiangzhihong8/article/details/80317682
Android 刘海屏适配全攻略- https://www.jianshu.com/p/561f7241153b/
Android 刘海屏适配总结- https://www.jianshu.com/p/f93683dcb8b6

-- Android P刘海屏适配
 谷歌提供的刘海屏适配方案,要求应用必须适配到P版本才可使用。请参考:https://developer.android.com/preview/migration.html ,https://developer.android.com/preview/features

-- 对比较大的国产厂商的适配方案列举如下。如果要适配其他厂商的刘海屏,可以去找下他们的开发者文档,一般都会有提供的。
1、华为:https://developer.huawei.com/consumer/cn/devservice/doc/50114 https://developer.huawei.com/consumer/cn/devservice/doc/50114?from=timeline
2、小米:https://dev.mi.com/console/doc/detail?pId=1293
3、vivo:https://dev.vivo.com.cn/documentCenter/doc/103
4、oppo:https://open.oppomobile.com/wiki/doc#id=10159
5、一加:没找到。。。有同学提供没
6、锤子:https://resource.smartisan.com/resource/61263ed9599961d1191cc4381943b47a.pdf
7、三星:滚
刘海屏手机,主流手机厂商的适配方案,华为和小米,Vivo和Oppo-https://github.com/StephenZKCurry/NotchAdaptedTest

  Android上的刘海屏出现在8.0系统上,小米、华为、vivo、oppo、一加、锤子等都有自家刘海屏手机。
 只要在 AndroidManifest.xml 中加入如下配置:<meta-data android:name="android.max_aspect"  android:value="2.1"/>
 也可以在 Application 添加属性:android:maxAspectRatio="ratio_float"
 ps:这个属性需要 API 26 才支持

 1.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES模式会让屏幕到延申刘海区域中。
 2.LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER模式不会让屏幕到延申刘海区域中,会留出一片黑色区域。
 3.LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT模式在全屏显示下跟LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER一样。

-- 华为系统对页面做偏移处理的有以下2种情况: 
1.未设置meta-data值,页面横屏状态; 
2.未设置meta-data值,页面竖屏状态,不显示状态栏;

-- Android 8.0指令优化的点包括:
1.消除边界检查
  静态:在编译时证明范围位于边界内
  动态:运行时测试确保循环始终位于边界内(否则不进行优化)
2.消除归纳变量
  移除无用归纳
  用封闭式表达式替换仅在循环后使用的归纳
3.消除循环主体内的无用代码,移除整个死循环
4.强度降低
5.循环转换:逆转、交换、拆分、展开、单模等
6.SIMDization(也称为矢量化)

> Android O(SDK 8.0)新特性

 -- 对于上层应用App开发者的我来说,适配新版本API 的工作还好,而有JNI且有很多深层修改的人来说则是痛苦的。

  根据以往的经验,第三季度到年底才陆续有旧设备的OTA升级,而到国内的新机发布和旧设备的升级则持续到了第二年的三四月份。

    2017年下,Google发布了Android 8(奥利奥)系统。新系统在安全方面引入了多种内核安全加固特性,以对抗漏洞程序获取手机的最高权限。其中,最为重要的安全特性就是PAN(Privileged Access Never)和KASLR(Kernel Address Space Layout Randomization)。可见,利用一个漏洞来获取众多最新手机系统的最高权限是非常有挑战性的。

Android 8.0 特别是自动色域(根据不同设备显示不同的配色) 消息通知的分类 还有画中画功能(小窗显示)????

干货 | Android 8.0正式版发布:Android O 新特性和行为变更总结- https://mp.weixin.qq.com/s?__biz=MzI0MjE3OTYwMg==&mid=2649550148&idx=1&sn=c9633c3998f71d98bd44d5fbca4076bf&chksm=f1180639c66f8f2f6dce9f58bdd9b210c8b95a5f8ce027cde02498332c338bba3cbb2b513c46&scene=21#wechat_redirect

Android O Preview官方说明  - https://developer.android.google.cn/preview/index.html

Android 8.1适配规范及常见问题处理方式- http://blog.youkuaiyun.com/xJ032w2j4cCjhOW8s8/article/details/78927957

Android 8.0 功能和 API- https://developer.android.google.cn/about/versions/oreo/android-8.0.html

Android5.0,6.0,7.0,8.0新特性整理- http://blog.youkuaiyun.com/u010871962/article/details/78370108

Android O(8.0)通知栏适配的坑- http://blog.youkuaiyun.com/rentee/article/details/78303532
Android8.0 启动后台Service的坑- https://www.jianshu.com/p/71e16b95988a
在Android O上启动Service遇到问题记录- http://blog.youkuaiyun.com/lylddingHFFW/article/details/78219327?locationNum=6&fps=1
Android 8.0后台执行限制- http://blog.youkuaiyun.com/chenshengfa/article/details/71407704

Android 8.0 功能和 API- https://developer.android.google.cn/about/versions/oreo/android-8.0#notifications

值得你关注的Android8.0(Android O)上的重要变化- http://blog.youkuaiyun.com/w7849516230/article/details/68935953

> Android 8.0新特性
  1.通知中心
用户在通知界面可以发现顶部的快捷键有了更充裕的空间,并且根据网络大数据的用户使用频繁度调整了这几个快捷键的顺序;并且长按推送消息可以看到一个开关,操作它可以开启和关闭这个该应用的未来所有通知。
  2.设置菜单
在新的AndroidO系统中,设置的界面有了大幅变化,主菜单的覆盖性变得更广,更多的功能将在子菜单中体现,并且在菜单界面中重新设计了很多图标。
  3.PinnedShortcuts
安卓创造出了PinnedShortcuts功能,类似苹果的3DTouch,长按一个软件后可以弹出子菜单,然后就可以通过这个方式快捷的使用该应用的部分功能。
  4.图标形状,圆形图标
新的系统中开发者可以使用不同的应用图标,比如圆角矩形或者圆形图标,不过所有的图标需要保证是同一个形状,不能有一个方一个圆这样“个性”的样式出现。
  5.后台限制
AndroidO将进一步优化后台程序,减少应用在没完全退出后占用系统的资源,并且减少电量的消耗。
  6.安装限制,权限限制
新系统中用户可以在权限设置中添加安装限制功能,这样可以有效的避免带有中国特色的“全家桶”行为。
  7.TensorFlowLite
这个新功能并不会直接体现在手机和系统中,它是谷歌的一项新技术,用来把人工智能在更多的软件上继续拓展,并提高工作处理的效率,让你的手机更“聪明”。
  8.分屏
在AndroidO中,分屏画中画功能得到了强化,变得更加流畅,而且悬浮窗可以随意拖动位置,然后在主屏幕中继续工作 [2]  。正在播放视频的窗口可以悬浮在其他正在使用的App上方,用户可以完成多任务操作。此前,三星和LG等手机厂商自行“改造”安卓系统,已经融入这一功能好多年   。
  9.NotificationDots
在谷歌的Pixel手机上,安卓8还新加了通知功能Notification Dots,会标出用户的行程、信息等,有些通知还可以被设定为稍后提醒。此外长按某个应用图标现在可以显示一些信息,与iOS上的3D Touch类似,这项功能在安卓7.0上已经有所体现
  10.SmartTextSelection
系统将会预测用户将使用某些电话或者其他选项出现在将会用到的应用中,举个例子就是如果邀请朋友来吃饭,系统会根据发送的地址来开启地图并且导航。
  11.自动保存密码
这个功能将会保存用户的部分帐号和密码,用于在网站或者应用中的快速登录,效率提升了不少 [2]  。
  12.GooglePlayProtect
这个功能主要用于GooglePlay中,下载的应用和游戏将会经过它的排查,来看看是否是有害甚至携带病毒的应用,不过国内用户可能不能访问GooglePlay   。
  13.应用加速
在AndroidO中,大部分应用的启动速度将会快上一倍,这个要归功于新系统的优化,使后台占用资源减少,并且对并发进程等问题的处理更加出色,也是个相当有用的功能   。
  14.字体优化
AndroidO中谷歌还增加了对系统字体的更多支持,开发者可以自行更改字体样式,让用户有了更多字体的选择   。
  15.表情符号
安卓8还带来了符合Unicode 10标准的表情符号,比原来新加超过60个表情符,这也是比较明显的改变之一   。

> 小米8.0相册裁剪兼容性问题(可能其他小米手机也会存在)
android实现拍照、相册选图、裁剪功能,兼容7.0以及小米- https://github.com/NeedKwok/MyPet
Android 调用系统相册、相机实现头像(图片)裁剪并选取的功能-
https://blog.youkuaiyun.com/erweidetaiyangxi/article/details/80538645
Android 7.0适配 -- FileProvider 拍照、选择相册、裁切图片, 小米机型适配- https://www.jianshu.com/p/bec4497c2a63
-- android 小米手机选择相册图片截取照片不进onActivityResult报“保存时发生错误,保存失败”-
https://blog.youkuaiyun.com/qq_34900897/article/details/79540666  ,需要再定义一个图片Uri,因为图片自己的Uri在部分手机不能被裁剪后的图片URI覆盖。

> 8.0适配

Android 8.0 升级笔记(适配图片、通知栏、ContentProvider、Receiver)- https://blog.youkuaiyun.com/moxiouhao/article/details/79209054
记录Android8.0的app开发的一个坑:与桌面应用图标相关- https://blog.youkuaiyun.com/xlh1191860939/article/details/79312338
应用图标Drawable转Bitmap,适配安卓8.0- https://www.jianshu.com/p/6b611a5e3300

-- 8.0应用图标适配

Google官方文档之Image Asset Studio- https://developer.android.google.cn/studio/write/image-asset-studio

Android应用图标微技巧,8.0系统中应用图标的适配- https://blog.youkuaiyun.com/guolin_blog/article/details/79417483
-- Android8.0应用图标矩形适配, image asset生成矩形图标
android:icon="@mipmap/ic_launcher" ; android:roundIcon="@mipmap/ic_launcher_round"
 兼容8.0以下:适配8.0制作出来的ic_launcher图标大家会发现周围空出了很多像素,导致在有的机型比如魅族6.0.1上会非常小,这时需要将所有mipmap分辨率下的ic_launcher换成之前没有剥离的完整的icon图标。8.0的会根据v26的文件下架的xml文件自动自动找到background和foreground图片完成合成适配。
 桌面icon模糊:在mdpi下的background和foreground图片的分辨率会很低,合成出来的ic_launcher也会很模糊,解决办法是将xhdpi或者更高的xxxhdpi下的background和foreground图片复制覆盖到低分辨文件下就行了。
 在manifest文件下icon属性引用ic_launcher.xml,roundIcon引用ic_launcher_round.xml。大家最好在6.0,7.0,8.0上的机型验证一下
-- 最后结果是圆形图标,请问怎么让最终的图标变成圆角,方形等其它样式?
 文章里已经讲了,背景层在设计的时候只允许定义颜色和纹理,但是不能定义形状。Google将定义形状的这个权利就交给 手机厂商了,我的这台pixel手机是定义的圆形mask,可能小米就会定义成圆角形,别的手机就会定义成方形。
 华为手机在国内率先内置了8.0系统,但EMUI 8.x 华为并没有定制支持adaptive icons,华为内置的APP的icon都是矩形圆角(矩形圆角mask),适配了adaptive icons的app是圆形的,而且部分内置主题(如:‘星满天’)下还会被一个黑色的矩形圆角mask套在外面很丑,博主和开发者可以验证,APP灰度上线该特性已经被用户当成“异类”,反馈给华为后,他们的工程师还在评估解决方案中。基于这些原因,爱奇艺适配了8.0系统而暂缓全面适配adaptive icons特性。

studio3.0 App gradle配置compileSdkVersion 26 targetSdkVersion 26
  适配8.0桌面图标,APP Logo图标在部分8.0手机上显示圆形图标

studio2.1(<3.0) App gradle配置compileSdkVersion 23 //(<=25) targetSdkVersion 23
  APP Logo图标在手机上显示方块形的(矩形)等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值