すべてのプロダクト
Search
ドキュメントセンター

HTTPDNS:Android SDK バージョンアップグレードガイド

最終更新日:Nov 10, 2025

はじめに

このトピックでは、HTTPDNS Android ソフトウェア開発キット (SDK) の詳細な API アップグレードガイドを提供します。このガイドは、古いバージョンから最新バージョンへスムーズに移行するのに役立ち、次の情報が含まれています:

  • バージョン互換性の概要: 1.x から 2.6.x までのバージョン間の互換性の包括的なまとめ。これにより、互換性のないバージョンのアップグレードを迅速に特定できます。

  • 互換性のないバージョンのアップグレードガイド: 互換性のない各 SDK アップグレードの詳細なアップグレード手順、コード例、および新旧 API のマッピングテーブル。

バージョン互換性の概要

HTTPDNS Android SDK は、いくつかのメジャーバージョンを経て進化してきました。次の表は、1.x.x から 2.6.x までのバージョン間の互換性を示しています。

SDK バージョン

互換性

1.x.x - 2.3.x

✅ 完全な互換性

2.3.5 - 2.4.0

❌ 初期化インターフェイスが調整されました

2.4.0 - 2.5.0

✅ 完全な互換性

2.5.0 - 2.6.6

❌ API レベルがアップグレードされました (Android 4.4)

SDK をバージョン 2.4.0 以降にアップグレードするためのガイド

バージョン 2.4.0 は、HTTPDNS Android SDK の主要なマイルストーンです。このバージョンには、完全なアーキテクチャのリファクタリングとインターフェイスの最適化が含まれています。このアップグレードの目標は次のとおりです:

  • 統一された構成パターン: このバージョンでは、構成パターンが散在するランタイム構成から、Builder パターンを使用する統一された初期化構成に変更されます。これにより、構成のタイミングの問題が解決され、SDK の安定性が向上します。

  • 標準化された解決インターフェイス: 解決インターフェイスアーキテクチャは、同期ブロッキング、非同期、および同期非ブロッキングの 3 つの解決パターンを提供するように再設計されています。これらのパターンは、さまざまなシナリオのニーズを満たします。

  • モジュラー設計: ログ管理などの機能は、専用のクラスに分離されています。これにより、責任の分離が向上し、コードの保守性が向上します。

  • パフォーマンスの最適化: インターフェイスの最適化と内部実装の強化により、解決パフォーマンスとリソース使用効率が向上します。

これは主要な互換性のない変更です。変更は重要ですが、アプリケーションで使用されるインターフェイスを変更するだけで済みます。以下のアップグレード手順と API マッピングテーブルに従って、このアップグレードを完了してください。

詳細なアップグレード手順

  1. 依存関係のバージョンを更新する

    dependencies {
        implementation 'com.aliyun.ams:alicloud-android-httpdns:${httpdnsVersion}'
    }
    説明

    httpdnsVersion は、Android SDK リリースノートから取得できます。

  2. 初期化コードをリファクタリングする

    1. アップグレード前

      // 旧バージョン:散在した構成
      HttpDnsService httpdns = HttpDns.getService(this, "your_account_id");
      
      httpdns.setHTTPSRequestEnabled(true);
      httpdns.setExpiredIPEnabled(true);
      httpdns.setCachedIPEnabled(true);
      httpdns.setPreResolveAfterNetworkChanged(true);
      httpdns.setTimeoutInterval(3000);
      httpdns.setLogEnabled(true);
      
      httpdns.setLogger(new ILogger() {
          @Override
          public void log(String message) {
              Log.d("HTTPDNS", message);
          }
      });
      
      httpdns.setDegradationFilter(new DegradationFilter() {
              @Override
              public boolean shouldDegradeHttpDNS(String host) {
                  return "example.com".equals(host);
              }
       });
      
      // IP ランキング機能を使用する場合
      List<IPRankingBean> ipProbeList = new ArrayList<>();
      ipProbeList.add(new IPRankingBean("example.com", 80));
      httpdns.setIPProbeList(ipProbeList);
      
    2. アップグレード後

      List<IPRankingBean> ipRankingList = new ArrayList<>();
      ipRankingList.add(new IPRankingBean("example.com", 80));
      
      // 新バージョン:Builder パターンによる統一された構成
      InitConfig config = new InitConfig.Builder()
        .setContext(this)                           // 必須
        .setEnableHttps(true)                       // setHTTPSRequestEnabled を置き換えます
        .setEnableExpiredIp(true)                   // setExpiredIPEnabled を置き換えます
        .setEnableCacheIp(true)                     // setCachedIPEnabled を置き換えます
        .setPreResolveAfterNetworkChanged(true)     // setPreResolveAfterNetworkChanged を置き換えます
        .setTimeoutMillis(3000)                     // setTimeoutInterval を置き換えます
        .setIPRankingList(ipRankingList)            // setIPProbeList を置き換えます
        .setNotUseHttpDnsFilter(new NotUseHttpDnsFilter() {
              @Override
              public boolean notUseHttpDns(String host) {
                  return "example.com".equals(host);
              }
          })
        .buildFor("your_account_id");
       
        HttpDnsService httpdns = HttpDns.getService("your_account_id", config);
              
        // ログ管理は分離されました
        HttpDnsLog.enable(true);                        // setLogEnabled を置き換えます
        HttpDnsLog.setLogger(new ILogger() {            // setLogger を置き換えます
          @Override
          public void log(String message) {
            Log.d("HTTPDNS", message);
          }
        });
      }
      }
  3. 解決インターフェイスを更新する

    1. アップグレード前

      // 同期非ブロッキング、IPv4、単一 IP
      String ip = httpdns.getIpByHostAsync(host);
      // 同期非ブロッキング、IPv4、すべての IP
      String[ ] ips = httpdns.getIpsByHostAsync(host);
      // 同期非ブロッキング、IPv6、単一 IP
      String ipv6 = httpdns.getIPv6ByHostAsync(host);
      // 同期非ブロッキング、IPv4 および IPv6、すべての IP
      HTTPDNSResult result = httpdns.getAllByHostAsync(host);     
    2. アップグレード後

      // 同期非ブロッキング、IPv4、すべての IP
      HTTPDNSResult httpDnsResult = httpdns.getHttpDnsResultForHostSyncNonBlocking(host, RequestIpType.v4)
      String[ ] ips = httpDnsResult.getIps();
      
      // 同期非ブロッキング、IPv6、すべての IP
      HTTPDNSResult httpDnsResult = httpdns.getHttpDnsResultForHostSyncNonBlocking(host, RequestIpType.v6)
      String[ ] ipv6s = httpDnsResult.getIpv6s();
      
      // 同期非ブロッキング、IPv4 および IPv6、すべての IP
      HTTPDNSResult httpDnsResult = httpdns.getHttpDnsResultForHostSyncNonBlocking(host, RequestIpType.v6)
      String[ ] ips = httpDnsResult.getIps();
      String[ ] ipv6s = httpDnsResult.getIpv6s();
  4. HTTPDNS ブラックリストを設定するためのインターフェイスをアップグレードする

    1. アップグレード前

      InitConfig config = new InitConfig.Builder()
          .setDegradationFilter(new DegradationFilter() {
              @Override
              public boolean shouldDegradeHttpDNS(String host) {
                  return "example.com".equals(host);
              }
          })
          .build();
    2. アップグレード後

      InitConfig config = new InitConfig.Builder()
          .setNotUseHttpDnsFilter(new NotUseHttpDnsFilter() {
              @Override
              public boolean notUseHttpDns(String host) {
                  return "example.com".equals(host);
              }
          })
          .build();
説明

アプリケーションが互換性のない API を使用していない場合は、これらの手順をスキップできます。

API アップグレードマッピングテーブル

API の分類

アップグレード前

アップグレード後

HTTPS リクエストを有効にする

HttpDnsService.setHTTPSRequestEnabled(boolean)

InitConfig.Builder.setEnableHttps(boolean)

期限切れ IP を有効にする

HttpDnsService.setExpiredIPEnabled(boolean)

InitConfig.Builder.setEnableExpiredIp(boolean)

ローカルキャッシュを有効にする

HttpDnsService.setCachedIPEnabled(boolean)

InitConfig.Builder.setEnableCacheIp(boolean)

ネットワークトランジション時の事前解決

HttpDnsService.setPreResolveAfterNetworkChanged(boolean)

InitConfig.Builder.setPreResolveAfterNetworkChanged(boolean)

解決タイムアウトを設定する

HttpDnsService.setTimeoutInterval(int)

InitConfig.Builder.setTimeoutMillis(int)

IP ランキング機能を有効にする

HttpDnsService.setIPRankingList(List<IPRankingBean>)

InitConfig.Builder.setIPRankingList(List<IPRankingBean>)

カスタム解決のためのグローバルパラメーターを設定する

HttpDnsService.setSdnsGlobalParams(Map<String, String>)

InitConfig.Builder.setSdnsGlobalParams(Map<String, String>)

ログ出力を制御する

HttpDnsService.setLogEnabled(boolean)

HttpDnsLog.enable(boolean)

ログコールバックインターフェイスを設定する

HttpDnsService.setLogger(ILogger)

HttpDnsLog.setLogger(ILogger)

IP ランキングを有効にする (旧バージョン)

HttpDnsService.setIPProbeList(List<IPRankingBean>)

InitConfig.Builder.setIPRankingList(List<IPRankingBean>)

同期非ブロッキングインターフェイス、IPv4 解決、単一 IP を返す

getIpByHostAsync(String)

getHttpDnsResultForHostSyncNonBlocking(String, RequestIpType.v4)

同期非ブロッキングインターフェイス、IPv4 解決、IP のリストを返す

getIpsByHostAsync(String)

getHttpDnsResultForHostSyncNonBlocking(String, RequestIpType.v4)

同期非ブロッキングインターフェイス、IPv6 解決、単一 IP を返す

getIPv6ByHostAsync(String)

getHttpDnsResultForHostSyncNonBlocking(String, RequestIpType.v6)

同期非ブロッキングインターフェイス、IPv6 解決、IP のリストを返す

getIPv6sByHostAsync(String)

getHttpDnsResultForHostSyncNonBlocking(String, RequestIpType.v6)

同期非ブロッキング、IPv4 および IPv6 解決、IP のリストを返す

getAllByHostAsync(String)

getHttpDnsResultForHostSyncNonBlocking(String, RequestIpType.both)

同期非ブロッキングインターフェイス、カスタム解決、IPv4 アドレスのリストを返す

getIpsByHostAsync(String, Map<String,String>, String)

getHttpDnsResultForHostSyncNonBlocking(String, RequestIpType, Map<String, String>, String)

同期非ブロッキング、カスタム解決、IPv4 アドレスのリストを返す

getHttpDnsResultForHostAsync(String, Map<String, String> , String)

getHttpDnsResultForHostSyncNonBlocking(String, RequestIpType, Map<String, String>, String)

まとめ

HTTPDNS Android SDK は、いくつかのメジャーバージョンを経て進化してきました。バージョン 2.4.0 では、互換性のないアップグレードが導入されました。このガイドでは、完全な移行パスを提供します。このガイドの移行パスとベストプラクティスに従って、お使いのバージョンの HTTPDNS Android SDK を安全かつ効率的にアップグレードしてください。