Uygulama Başına Ağ Seçimi (PANS)

Araçlar, hem OEM'ler hem de araç sahipleri tarafından talep edilen ve giderek artan kullanım senaryoları listesini yönetmek için bağlantıya giderek daha fazla güveniyor ve bu da artan veri ayak izi ve ilgili maliyetlerle sonuçlanıyor. OEM tarafından ödenen ağlarda rotasına belirtilen uygulamaların trafiğini Başına Uygulama Şebeke Seçimi (KAZANLARi) özelliğini kullanın.

PANS ile aynı anda sağlam, güvenli ve bağlantılı bir araç deneyimi sağlarken veri kullanımının hacmini ve maliyetini yönetebilirsiniz. tavalar:

  • Eklenen yeni API oluşmaktadır ConnectivityManager sadece otomotiv cihazda kullanılabilir.
  • Güncelleştirilmiş Kablosuz öneri API (bkz Sağlar internet bağlantısı için Wi-Fi öneri API dinamik KAZANLARi ağ yetenekleri değiştirmek için destek içerecek şekilde).
  • Destekleyici metrikleri toplar.
  • Bir referans uygulaması sağlar.

Neden PANS?

PANS şunları yapabilir:

  • Uygulamadan ağa eşlemeleri dinamik olarak güncelleyin.
  • Uygulamalarda değişiklik yapmadan uygulama düzeyinde yönlendirmeyi yönetin.
  • Eşlenen OEM ağlarına yalnızca OEM tarafından izin verilen uygulamalar erişebilir.
  • Uygulama geliştiricilerin bu özelliği uygulamak için herhangi bir değişiklik yapmasına gerek yoktur.
  • Kullanıcıya yönelik ölçümler, OEM tarafından yönetilen ağlar için uygulamadan ağa veri kullanımını izler.
  • Ağ erişimi güvenlidir ve istenmeyen kullanım durumları veya yetkisiz uygulamalar yoluyla kötüye kullanılamaz.
  • PANS uygulama-ağ eşlemelerinde yapılan değişiklikler kullanıcılara iletilir.
  • Aynı ağ yapılandırması tüm kullanıcılara uygulanır.

Temel avantajlar

PANS, OEM'lere şu temel avantajları sağlar:

  1. OEM'ler, kullanıcılar yerine ağ trafiği için ödeme yapabilir:
    • Sistem güncellemeleri, kullanıcıya ücretsiz olarak sağlanabilir.
    • Belirtilen uygulamaların ağ kullanımı, kullanıcıya ücretsiz olarak sağlanabilir.
    • Telemetri ve diğer analitikler, kullanıcıya hiçbir ücret ödemeden yönetilebilir.
  2. OEM'ler, kullanıcı tarafından ödenen bir veri planı olmadan bile kritik uygulamaların bağlı kalmasını sağlayabilir. Örneğin, haritalar, asistan (eller serbest sürüş) ve sistem güncellemeleri gibi güvenlik açısından kritik özellikler, kullanıcının veri planı olmadığında bile çalışmaya devam eder.
  3. PANS, Android'de ağ trafiği yönlendirmesine özgü ek denetim ayrıntı düzeyi sağlar. Örneğin, OEM'ler uygulama düzeyinde trafiğin yönlendirilmesi için en uygun şekilde mantıksal bir ağ topolojisi tanımlayabilir.

Şekil 1. PANS çerçevesi

PANS'ı Uygulamak

Tava, yeni uygulamak için ConnectivityManager API, setOemNetworkPreference sağlanmaktadır. Bu yeni API uygulamaları eşler OemNetworkPreference . Bu API yalnızca otomotiv cihazlarda kullanılabilir ve bir olarak açıklandı @SystemApi yeni ile signature izni.

Tavalar uygulamak 2. Şekil

OemAğ Tercihi

OemNetworkPreference üzerinde bir soyutlama OEM_PAID ve OEM_PRIVATE NetworkCapabilities bir ağ tercihine paket adına göre haritalama uygulamalar. Ağ tercihleri, ağ hiyerarşilerine izin verir. Örneğin, bir uygulamayı haritalama OEM_NETWORK_PREFERENCE_OEM_PAID tercihi ağlarının aşağıdaki öncelik neden olur: Bir kullanmak UNMETERED eğer ilk ağını UNMETERED mevcut kullanımı, değil OEM_PAID ağ ve eğer OEM_PAID kullanılamaz, sistem varsayılan ağ kullanın.

  • OEM_PAID OEM ve OEM olmayan ağlar hem yönlendirilebilir uygulamalar için öncelikle kullanılır.
  • OEM_PRIVATE öncelikle OEM için kullanılır onlara adanmış bir ağa erişim sağlamak için uygulamalar.
/**
* If an unmetered network is available, use it.
* Otherwise, if a network with the OEM_PAID capability is available, use it.
* Otherwise, use the general default network.
*/
public static final int OEM_NETWORK_PREFERENCE_OEM_PAID = 1;

/**
* If an unmetered network is available, use it.
* Otherwise, if a network with the OEM_PAID capability is available, use it.
* Otherwise, the app doesn't get a default network.
*/
public static final int OEM_NETWORK_PREFERENCE_OEM_PAID_NO_FALLBACK = 2;

/**
* Use only NET_CAPABILITY_OEM_PAID networks.
*/
public static final int OEM_NETWORK_PREFERENCE_OEM_PAID_ONLY = 3;

/**
* Use only NET_CAPABILITY_OEM_PRIVATE networks.
*/
public static final int OEM_NETWORK_PREFERENCE_OEM_PRIVATE_ONLY = 4;

PANS API'lerini çağırma

PANS API'lerini kullanmak için:

  1. Kullanım OemNetworkPreferences bir ağ tercihi bir uygulamayı eşleştirmek için.
  2. Çağrı setOemNetworkPreference ile OemNetworkPreferences nesne.
  3. Kullanım Runnable API tamamlanması için dinlemeye arayüz.

Örneğin:

// Mapping three packages to two network preferences
// Packages have a 1:1 mapping to network preferences
OemNetworkPreferences pref = new OemNetworkPreferences.Builder()
   .addNetworkPreference("first.package.name", OEM_NETWORK_PREFERENCE_OEM_PAID)
   .addNetworkPreference("second.package.name", OEM_NETWORK_PREFERENCE_OEM_PAID)
   .addNetworkPreference("third.package.name", OEM_NETWORK_PREFERENCE_OEM_PRIVATE_ONLY)
   .build();

myConnectivityManager.setOemNetworkPreference(pref, myExecutor, myListener);

Hususlar

PANS'ı uygularken aşağıdaki noktaları aklınızda bulundurun:

  • Ağ tercihleri, önyüklemeler arasında kalıcı değildir ve her önyüklemede yeniden uygulanması gerekir.
  • Bir uygulama için tercih oluşturmak için yüklenmesi gerekmez. Bu nedenle, kaldırılan uygulamalar için ağ tercihleri ​​proaktif olarak ayarlanabilir.
  • Herhangi bir zamanda, bir uygulama yalnızca tek bir ağ tercihiyle eşlenebilir.

Bir ağı yapılandırma

Ya sahip bir ağ OEM_PAID veya OEM_PRIVATE karşılık gelen bir ağ tercih kullanılırken yetenekleri kullanılabilir olması gerekir. Android, Ethernet ve Wi-Fi ağları için yeteneklerin yapılandırılması için destek sağlar. Ethernet ağlarda, bir kaynak paylaşımını kullanabilirsiniz config_ethernet_interfaces . Bu derleme zamanında ayarlanır.

Wi-Fi için WifiNetworkSuggestion API Yeni Android 12 API'ler ile kullanılabilir, setOemPaid(Boolean) ve setOemPrivate(Boolean) . Bu, çalışma zamanında değiştirilebilir.

Şu örnekleri düşünün:

  1. Bir kaynak paylaşımı adında config_ethernet_interfaces belirtir:
    • Yapılandırılacak arayüzün adı.
    • İstenen NetworkCapabilities değerleri.
      <!-- 11 NET_CAPABILITY_NOT_METERED
           12 NET_CAPABILITY_INTERNET
           14 NET_CAPABILITY_TRUSTED
           15 NET_CAPABILITY_NOT_VPN
           22 NET_CAPABILITY_OEM_PAID || 26 NET_CAPABILITY_OEM_PRIVATE -->
      <string-array translatable="false" name="config_ethernet_interfaces">
         <item>eth0;11,12,14,15,22;;</item></string-array>
      
  2. Bu WiFiNetworkSuggestion dinamik olarak değiştirilebilir:
    ArrayList<WifiNetworkSuggestion> list = new ArrayList<>();
    list.add(new WifiNetworkSuggestion.Builder()
                   .setSsid(WifiInfo.sanitizeSsid(ssid))
                   .setOemPrivate(true)
                   .build());
    mWifiManager.addNetworkSuggestions(list);
    

PANS ağlarına erişimi kısıtlama

Ya bir ağ etiketlenmesi OEM_PAID veya OEM_PRIVATE yetenekleri işaretleri olduğunu kısıtlı ağ olarak ağı. Kısıtlı ağlar yalnızca verdiğiniz uygulamalar tarafından kullanılabilir CONNECTIVITY_USE_RESTRICTED_NETWORKS OEM'ler tarafından kontrol edilir izni.

Bu izne sahip uygulamalar uygulamalar bunları açıkça talep sağlanan ağlar kısıtlı kullanabilirsiniz. Ancak, bu uygulamalar varsayılan olarak kısıtlanmış ağlar almaz. PANS aracılığıyla eşlenen uygulamalar, varsayılan olarak ayarlanmış kısıtlı OEM ağlarına sahip olabilir ve bunları kullanmak için kısıtlı ağ iznine ihtiyaç duymaz. Böyle bir uygulama, PANS tarafından varsayılan ağı olarak atanan kısıtlı bir OEM ağına sahip olduğunda, uygulama bunu seçerse, söz konusu OEM ağını açıkça talep etme yeteneğine de sahiptir.

Referans uygulamasını gözden geçirme

Adlı (kod dahil) bir referans uygulaması NetworkPreferenceApp kullanıcı-debug sağlanan otomotiv oluşturur ve nasıl gösterir:

  • PANS ölçümlerini kullanın.
  • PANS politikasını ayarlayın.
  • Cihaz için varsayılan bir politika belirleyin.
  • Bir politikayı temizleyin.
  • Önyüklemede bir ilke uygulayın.
  • Sürücü Dikkat dağınıklığı API kullanın (bkz Sürücü distraksiyon Kuralları ).
  • Dinamik ile Wi-Fi güncelleştirmek OEM_PAID ve OEM_PRIVATE .

Şekil 3. Başvuru uygulaması

Metrikler

Veri kullanımına dair şeffaflığın kolaylaştırmak için, ölçümler toplanarak üzerinden iletilen veri miktarı ile ilgili olarak hazır OEM_PAID ve OEM_PRIVATE ağ eşleştirmeleri.

Sorun giderme

Çoğu sorun giderme koşulu, yanlış ağ kullanan bir uygulamadan (ağ bağlantısı yok) veya veri fazlalığından kaynaklanır. Hızlı çözünürlükleri etkinleştirmek için:

  • Bağlantı dumpsys (PAN'lara dan eşleştirilmiş) aktif başı uygulaması varsayılan ağları ve bunların ilişkili uygulamaların bir listesini içerir.
  • NETD dumpsys UID IP ve güvenlik duvarı kuralları içerir.
  • Netstats dumpsys KAZANLARi başına uygulama ölçümlerini içerir. Örneğin hangi uygulamaların hangi OEM ağını kullandığı.

Tüm dumpsys veriler bir Android Hata raporu oluşturarak mevcuttur.