RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
Android8.0适配那点事(二)-创新互联

小伙伴们,咱们今天咱继续对Android8.0的适配进行分解,今天将针对启动页,版本适配和系统限制等进行“啃食”

目前成都创新互联已为千余家的企业提供了网站建设、域名、网络空间、成都网站托管、企业网站设计、东安网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

1、启动页适配

近日,我无意中发现应用在8.0系统上面启动页崩溃,赶紧去找BUG,运行后发现如下异常:

Android8.0适配那点事(二)

翻译后意思是:只有全屏不透明的activity才可以设置方向;

解决方案如下:

1.1、如果不考虑配置屏幕方向的话,直接将android:screenOrientation="portrait" 去掉即可;

1.2、如果既要固定屏幕方向,又解决启动过慢导致的白(黑)屏问题,那么可以找到你设置透明的Activity,然后在他的theme中将android:windowIsTranslucent改为false,再加入true

1.3、参考Google给出的解决方案:不要禁用预览窗口,而要遵循常见的 Material Design模式。您可以使用活动的 windowBackground主题属性为开始活动提供简单的自定义绘图.

2、8.0版本安装适配

 android 8.0系统更新之后,未知应用安装权限的开关被除掉,取而代之的是未知来源应用的管理列表,需要用户给予允许app安装未知来源应用的权限;

2.1、添加权限

 

   

2.2、然后在用户点击更新时判断是否开启了该应用的“允许安装未知来源”的权限,没有的话,就引导用户去开启该应用的“允许安装未知来源”的权限

Android8.0适配那点事(二)

注意:此处如果自己实现版本更新,需配合通知渠道,进行版本下载进度显示

3、运行时权限策略变化

在 Android 8.0 之前,如果应用在运行时请求权限并且被授予该权限,系统会错误地将属于同一权限组并且在清单中注册的其他权限也一起授予应用,在8.0中此行为被纠正,系统只会授予应用明确请求的权限;

同组权限一起申请:

Android8.0适配那点事(二)

8.0中引入了多个与电话有关的新权限:

  • ANSWER_PHONE_CALLS 允许您的应用通过编程方式接听呼入电话。要在您的应用中处理呼入电话,您可以使用 acceptRingingCall() 函数。

  • READ_PHONE_NUMBERS 权限允许您的应用读取设备中存储的电话号码。

这些权限均被划分为危险类别,属于 PHONE 权限组。

1、后台执行限制

1.1、后台服务限制:处于空闲状态时,应用可以使用的后台服务存在限制。 这些限制不适用于前台服务,因为前台服务更容易引起用户注意;

1.2、广播限制:除了有限的例外情况,应用无法使用清单注册隐式广播。 它们仍然可以在运行时注册这些广播,并且可以使用清单注册专门针对它们的显式广播。

注意:默认情况下,这些限制仅适用于针对 O 的应用。 不过,用户可以从 Settings 屏幕为任意应用启用这些限制,即使应用并不是以 O 为目标平台。

2、后台服务限制

系统可以区分 前台 和 后台 应用。 (用于服务限制目的的后台定义与内存管理使用的定义不同;一个应用按照内存管理的定义可能处于后台,但按照能够启动服务的定义又处于前台。)如果满足以下任意条件,应用将被视为处于前台:

  • 具有可见 Activity(不管该 Activity 已启动还是已暂停)。

  • 具有前台服务。

  • 另一个前台应用已关联到该应用(不管是通过绑定到其中一个服务,还是通过使用其中一个内容提供程序)。 例如,如果另一个应用绑定到该应用的服务,那么该应用处于前台:

    • IME

    • 壁纸服务

    • 通知侦听器

    • 语音或文本服务

如果以上条件均不满足,应用将被视为处于后台。

后台服务会被kill掉,官方推荐可使用AlarmManager、SyncAdapter、JobScheduler代替后台服务。

3、广播限制

如果应用注册为接收广播,则在每次发送广播时,应用的接收器都会消耗资源,在7.0中对广播施加了一些限制,8.0 让这些限制更为严格:

  • 针对 Android 8.0 的应用无法继续在其清单中为隐式广播注册广播接收器;

  • 应用可以继续在它们的清单中注册显式广播;

  • 应用可以在运行时使用 Context.registerReceiver() 为任意广播(不管是隐式还是显式)注册接收器;

  • 需要签名权限的广播不受此限制所限,因为这些广播只会发送到使用相同证书签名的应用,而不是发送到设备上的所有应用。

4、后台位置限制

  • Android 8.0 都会对后台应用检索用户当前位置的频率进行限制(会出现后台应用定位收不到定位信息);

(注:以上内容引自Google中国开发者网站:https://developer.android.google.cn)

新系统在手,还需多多了解其中的变化,以我们自身的能力来解决实际开发过程中的问题,各位小伙伴,你们的应用在适配8.0的过程中遇到了哪些问题,欢迎留言,共同探讨并解决。如文中有误,请留言指出.

Android8.0适配那点事(二)

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页标题:Android8.0适配那点事(二)-创新互联
新闻来源:http://scpingwu.com/article/dddicj.html