Android 9.0 适配

Android 9.0 适配:targetSdkVersion >= 28

一、Android P 限制明文流量的网络请求

1、问题

not permitted by network security policy。

2、原因:Android P 限制了明文流量的网络请求,非加密的流量请求都会被系统禁止掉。

3、解决方案:
步骤 1:res/xml 文件夹新建 network_security_config.xml 文件,如下:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>

步骤 2:在 AndroidManifest.xml 引用,如下:

    <application
        android:name="com.nobuytech.shop.DefaultApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:networkSecurityConfig="@xml/network_security_config"  // 明文网络 问题配置
        android:supportsRtl="true"
        android:theme="@style/PrimaryAppTheme"
        tools:ignore="GoogleAppIndexingWarning"
        tools:targetApi="n">
   </application>
二、Apache HTTP 客户端弃用

1、问题:环信 等第三方 SDK 用到 Apache HTTP 的库,报错找不到对应类。
2、原因:从 Android 9.0 开始,默认情况下 Apache HTTP 库已从 bootclasspath 中移除。
3、解决方案:在 AndroidManifest.xml 如下配置。

    <application
        android:name="com.nobuytech.shop.DefaultApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:networkSecurityConfig="@xml/network_security_config"
        android:supportsRtl="true"
        android:theme="@style/PrimaryAppTheme"
        tools:ignore="GoogleAppIndexingWarning"
        tools:targetApi="n">
        // Apache HTTP 问题配置
        <uses-library android:name="org.apache.http.legacy" android:required="false"/>
   </application>
三、挖孔屏适配

解决方案:

  • 有状态栏的页面,不会受到挖孔屏特性的影响。(不需要适配)。
  • 全屏显示的页面,系统挖孔屏方案会对应用界面做下移避开挖孔区显示。(需要适配)(方案:Android刘海屏、水滴屏全面屏适配方案
  • 沉浸式显示的页面,避免挖孔挡住UI布局,需要做好适配。(UI 设计避开刘海区域)
四、更多适配

Android 9.0 适配指南
Android P 兼容与适配

发布了99 篇原创文章 · 获赞 16 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览