美文网首页
Android Apache HTTP 客户端

Android Apache HTTP 客户端

作者: 红色海_ | 来源:发表于2020-02-27 16:11 被阅读0次

    Android 目录工程各文件的说明
    proguard-rules.pro 代码混淆
    Android studio写在proguard-rules.pro中,
    写在proguard-android.txt中也可以。

    Apache HTTP 客户端弃用影响采用非标准 ClassLoader 的应用
    借助 Android 6.0取消了对 Apache HTTP 客户端的支持。
    此变更对大多数
    不以 Android 9 或更高版本为目标的应用没有任何影响。
    不过此变更会影响使用非标准 ClassLoader 结构的某些应用,即使这些应用不以 Android 9 或更高版本为目标平台。
    如果应用使用显式委托到系统 ClassLoader 的非标准 ClassLoader,则应用会受到影响。 在 org.apache.http.* 中查找类时,这些应用需要委托给应用 ClassLoader。
    如果它们委托给系统 ClassLoader,则应用在 Android 9 或更高版本上将失败并显示 NoClassDefFoundError,
    因为系统 ClassLoader 不再识别这些类。 为防止将来出现类似问题,一般情况下,
    应用应通过应用 ClassLoader 加载类,而不是直接访问系统 ClassLoader。

    Android中的ClassLoader类型
    和Java中的ClassLoader类型类似,也分为两种类型,
    分别是系统ClassLoader和自定义ClassLoader。
    其中系统ClassLoader包括三种分别是BootClassLoader、PathClassLoader和DexClassLoader。
    BootClassLoader
    Android系统启动时会使用BootClassLoader来预加载常用类,是由Java实现的。
    PathClassLoader
    Android系统使用PathClassLoader来加载系统类和应用程序的类。
    DexClassLoader
    DexClassLoader可以加载dex文件以及包含dex的apk文件或jar文件,也支持从SD卡进行加载。非标准 ClassLoader 结构的某些应用?

    Android9以后应用支持 Apache HTTP 客户端
    Android9.0_P:ClassNotFoundException: Didn't find class "org.apache.http.conn.scheme.SchemeRegistry"
    Apache HTTP 客户端弃用
    在 Android 6.0 中,我们取消了对 Apache HTTP 客户端的支持。 从 Android 9 开始,默认情况下该内容库已从 bootclasspath 中移除且不可用于应用。
    要继续使用 Apache HTTP 客户端,以 Android 9 及更高版本为目标的应用可以向其 AndroidManifest.xml的application节点下 添加以下内容:
    <uses-library android:name="org.apache.http.legacy" android:required="false"/>

    相关文章

      网友评论

          本文标题:Android Apache HTTP 客户端

          本文链接:https://www.haomeiwen.com/subject/saqxhhtx.html