Android 3.1 API'leri

API Düzeyi: 12

Geliştiriciler için Android 3.1 platformu (HONEYCOMB_MR1) Android SDK için indirilebilir bileşen. İndirilebilir platform şunları içerir: Android kitaplığı ve sistem görüntüsünün yanı sıra bir dizi emülatör görünümü ve daha fazla. İndirilebilir platform, harici kitaplık içermez.

Geliştiriciler, Android 3.1 platformuna Android SDK için indirilebilir bileşen. İndirilebilir platform şunları içerir: Android kitaplığı ve sistem görüntüsünün yanı sıra bir dizi emülatör görünümü ve daha fazla. Android 3.1'i kullanarak geliştirmeye veya test etmeye başlamak için Platformu SDK'nıza indirmek için Android SDK Yöneticisi'ni kullanın.

API'ye Genel Bakış

Aşağıdaki bölümlerde, geliştiriciler için yeniliklere ilişkin teknik bir genel bakış sunulmaktadır yeni özellikler ve çerçeve API'sinde yapılan değişiklikler dahil, kontrol edebilirsiniz.

USB API'leri

Android 3.1, gelişmiş özellikler ve bağlı çevre birimlerini platformda çalışan uygulamalarla entegre etme. API'ler USB (Evrensel Seri Yol) yığınına ve USB ana makinesi ve cihaz desteği dahil olmak üzere platformda yerleşik olarak etkileşimleridir. API'leri kullanarak geliştiriciler, çeşitli cihaz türlerini keşfetme, bunlarla iletişim kurma ve bunları yönetme USB'ye dokunun.

Yığın ve API'ler, çalışma düzenine bağlı olarak iki temel USB donanımı türünü Android destekli cihazın ana makine olarak mı yoksa harici donanım olarak mı hareket ettiği düzenleyen kullanıcı olarak hareket ediyor:

  • USB cihaz, cihaza bağlı olan Ana makine olarak kullanılacak Android destekli cihaz. Örneğin çoğu giriş cihazı, fare USB cihazları gibi pek çok kamera, hub ve kontrol çubuğu da buna benzer.
  • USB aksesuarı, USB girişine sahip bağlı bir donanımdır. ana bilgisayar denetleyicisi, güç sağlar ve ile iletişim kurmak üzere tasarlanmıştır. USB üzerinden Android destekli cihazlar; çeşitli çevre birimleri robotik kumandalardan müzik ekipmanlarına, egzersiz bisikletlerine kadar çeşitli aksesuarlar ve diğerleri.

USB cihazlar ve USB aksesuarları Platformun USB API'leri, takıldığında veya tutulduğunda amaca göre keşfi destekler bağımsız ve standart arayüzler, uç noktalar ve aktarım modları (kontrol, toplu ve kesme).

USB API'leri android.hardware.usb paketinde mevcuttur. İlgili içeriği oluşturmak için kullanılan UsbManager, sağlar ve ve proje ekibiyle iletişim kurmak için yardımcı yöntemlere başvuran hem de USB aksesuarlarıyla çalışır. Uygulamalar şunun bir örneğini alabilir: UsbManager ve ardından ekli listeyi sorguladığınızda cihazlarla iletişim kurabilir veya yönetebilir. UsbManager, bir USB cihazı veya aksesuarı takılı olduğunu duyurmak için sistem yayınları çıktı.

Diğer sınıflar şunlardır:

  • UsbDevice, kuruluş dışından kişileri temsil eden bir sınıf USB cihazı olarak bağlanmış donanım (Android destekli cihaz, ana makine).
  • Harici donanımı temsil eden UsbAccessory USB ana makinesi olarak bağlanır (Android destekli cihaz, USB cihazda) olduğunu varsayalım.
  • Standart USB'ye erişim sağlayan UsbInterface ve UsbEndpoint için bir kontrol panelidir.
  • Veri gönderip alma ve denetim için UsbDeviceConnection ve UsbRequest senkronize veya eşzamansız olarak USB cihazıyla mesaj alışverişi yapabilirsiniz.
  • UsbConstants, uç nokta türleri, cihaz sınıfları vb. tanımlama

USB grubu platformda yerleşik olarak bulunsa da asıl desteğin belirli cihazlardaki USB ana makine ve açık aksesuar modları için üretirler. Özellikle, ana makine modu uygun USB denetleyici donanımı bulunuyor.

Ayrıca, geliştiriciler Google Play'de filtreleme isteğinde bulunabilirler. uygulamaları, cihazlarında bu özelliği sağlamayan kullanıcılara gerekir. Filtreleme isteğinde bulunmak için öğelerin birini veya her ikisini ekleyin aşağıdaki kodu uygulama manifestine ekleyin:

  • Uygulamanın yalnızca USB'yi destekleyen cihazlar tarafından görülebilmesi gerekiyorsa ana makine modunda (USB cihazları bağlantısı) şu öğeyi belirtin:

    <uses-feature android:name="android.hardware.usb.host" android:required="true">

  • Uygulamanın yalnızca USB'yi destekleyen cihazlar tarafından görülebilmesi gerekiyorsa (USB ana makinelerinin bağlantısı) şu öğeyi belirtin:

    <uses-feature android:name="android.hardware.usb.accessory" android:required="true">

Google tarafından sağlananlarla etkileşime geçen uygulamaların nasıl geliştirileceğine USB aksesuarları için: geliştirici belgelerini inceleyin.

USB ana makine API'sini kullanan örnek uygulamaları incelemek için ADB Test ve Missile Başlatıcı

MTP/PTP API'sı

Android 3.1, uygulamaların doğrudan etkileşim kurmasına olanak tanıyan yeni bir MTP API'sı sunar bağlı kameralar ve diğer PTP cihazlarıyla çalışır. Yeni API, projenizin Cihazlar takıldığında ve çıkarıldığında bildirim almak için uygulamayı, bu cihazlardaki dosyaları ve depolama alanını yönetebilir, dosyalar ve meta verileri yardımcı olabilir. MTP API, PTP (Resim Aktarım Protokolü) alt kümesini uygular olmal.

MTP API, android.mtp paketinde bulunur ve şu sınıflarda:

  • MtpDevice, aşağıdaki gibi bir MTP cihazını içerir: bağlanmıştır. Bir uygulama, cihaz ve cihaz hakkında bilgi almak için yöntemlerini verilerin yanı sıra, bağlantıyı açma ve veri aktarma konularında daha fazla bilgi edinmenizi sağlar. Bu yöntemlerden bazıları şunlardır:
    • getObjectHandles(), cihazdaki tüm nesnelerin listesini döndürür ve belirtilen biçim ve üst öğeyle eşleşmelidir. Bir nesne hakkında bilgi almak için uygulaması getObjectInfo() işlevine bir herkese açık kullanıcı adı geçirebilir.
    • importFile(), uygulamanın bir nesneye ait verileri harici cihazdaki bir dosyaya kopyalamasına izin verir depolama alanına sahip olursunuz. Bu çağrı, ve cihazların hızına göre ayarlanır. Bu nedenle, özel bir ortak çalışma ileti dizisi.
    • open(). bir uygulamanın bağlı bir MTP/PTP cihazını açmasına izin verir.
    • getThumbnail() karşılığında iade bayt dizisi olarak nesnenin küçük resmini sunar.
  • MtpStorageInfo, bir depolama alanıyla ilgili bilgileri içerir MTP cihazındaki StorageInfo Veri Kümesine karşılık gelen birim bölüm 5.2.2'dir. Sınıftaki yöntemler, bir uygulamanın depolama biriminin açıklama dizesini, boş alanı, maksimum depolama kapasitesini depolama alanı kimliği ve birim tanımlayıcısı bulunur.
  • MtpDeviceInfo, bir MTP cihazıyla ilgili bilgileri içerir MTP'nin 5.1.1 bölümünde açıklanan DeviceInfo Veri Kümesine karşılık gelen bakın. Sınıftaki yöntemler, uygulamaların bir cihazın üretici, model, seri numarası ve sürüm.
  • MtpObjectInfo, depolanan bir nesneyle ilgili bilgileri içerir (Bölüm 7'de açıklanan ObjectInfo Veri Kümesine karşılık gelen) MTP spesifikasyonunun 5.3.1'i. Sınıftaki yöntemler, uygulamaların nesnenin boyutu, veri biçimi, ilişkilendirme türü, oluşturma tarihi ve küçük resmi ekleyebilirsiniz.
  • MtpConstants, MTP dosyasını tanımlamak için sabit değerler sağlar biçim kodları, ilişkilendirme türü ve koruma durumu.

Yeni giriş cihazları ve hareket etkinlikleri için destek

Android 3.1, giriş alt sistemini yeni giriş cihazlarını destekleyecek şekilde genişletir ve tüm görünümlerde ve pencerelerde hareket etkinliği türlerini görebilirsiniz. Geliştiriciler, mobil cihazlarda kullanıcıların fare kullanarak uygulamalarıyla etkileşim kurmasına olanak tanıyan bu özellikler oyun kumandaları ve diğer cihazların yanı sıra dokunmatik ekranlar.

Platform; fare, kaydırma tekerleği ve izleme topuyla ilgili girişlerin işlenmesi için şunları destekler: İki yeni hareket etkinliği işlemi var:

  • ACTION_SCROLL (işaretçiyi açıklayan) örneğin fare kaydırma tekerleği gibi dokunmatik olmayan kaydırma hareketinin gerçekleştirilmiştir. MotionEvent'te AXIS_HSCROLL ve AXIS_VSCROLL eksenlerinin değeri göreli kaydırmayı belirtir harekettir.
  • ACTION_HOVER_MOVE, güncel bilgileri verir herhangi bir düğmeye basılmadan önce farenin konumu ve son HOVER_MOVE etkinlikten bu yana puan. Fareyle giriş yapma ve çıkış bildirimler henüz desteklenmiyor.

InputDevice sınıfı, kontrol çubukları ve oyun kumandalarını desteklemek için aşağıdaki yeni giriş cihazı kaynaklarını içerir:

Bu yeni kaynaklardaki hareket etkinliklerini ve farelerden gelen hareket etkinliklerini açıklamak ve iztoplarını tanımlarken platform, KeyEvent üzerindeki anahtar kodlarını tanımlamasına benzer şekilde, MotionEvent üzerinde eksen kodlarını tanımlar. Kontrol çubukları için yeni eksen kodları Oyun kumandaları arasında, AXIS_HAT_X, AXIS_HAT_Y, AXIS_RTRIGGER, AXIS_ORIENTATION, AXIS_THROTTLE ve daha pek çok kullanıcı. Mevcut MotionEvent eksenleri AXIS_X, AXIS_Y, AXIS_PRESSURE, AXIS_SIZE, AXIS_TOUCH_MAJOR, AXIS_TOUCH_MINOR, AXIS_TOOL_MAJOR, AXIS_TOOL_MINOR ve AXIS_ORIENTATION.

Ayrıca, MotionEvent bir dizi genel tanımı tanımlar. çerçeve bir öğenin nasıl eşleneceğini bilmediğinde kullanılan eksen kodları kullanabilirsiniz. Belirli cihazlar, özel segmentleri aktarmak için genel eksen kodlarını kullanabilir ve hareket verilerini uygulamaya koyabiliyoruz. Eksenlerin tam listesi ve amaçları için MotionEvent sınıf dokümanlarına bakın.

Platform, hareket etkinliklerini uygulamalara toplu olarak sağlar. Dolayısıyla, olayın içinde mevcut bir konum ve sözde birden fazla tarihsel hareket bulunabilir. Uygulamaların şunu almak için getHistorySize() kullanması gerekir: geçmiş örneklerin sayısını belirlemeniz, ardından tüm geçmiş örnekleri alıp numuneleri getHistoricalAxisValue() kullanarak sıralayın. Bundan sonra, başvurular mevcut getAxisValue() kullanan örnek.

Bazı eksenler özel erişimci yöntemleri kullanılarak alınabilir. Örneğin, uygulamalar getAxisValue() yerine getX() yöntemini çağırabilir. Yerleşik erişimcileri olan eksenler arasında AXIS_X, AXIS_Y, AXIS_PRESSURE, AXIS_SIZE, AXIS_TOUCH_MAJOR, AXIS_TOUCH_MINOR, AXIS_TOOL_MAJOR, AXIS_TOOL_MINOR ve AXIS_ORIENTATION.

Her giriş cihazının sistem tarafından atanmış benzersiz bir kimliği vardır ve birden fazla kaynak olduğunu varsayalım. Bir cihaz birden fazla kaynak sağladığında, birden fazla kaynak aynı ekseni kullanarak eksen verileri sağlayabilir. Örneğin, yaklaşan bir dokunma etkinliği kontrol çubuğu, ekran konumu verileri için X eksenini, kontrol çubuğu ise kontrol çubuğu kaynağından gelen etkinlik, çubuk konumu için X eksenini kullanır . Bu nedenle, uygulamaların eksenlerini yorumlaması ve kaynakların kaynağındaki bilgilere göre değerlendirmelisiniz. Hareketi ele alırken etkinliği varsa, uygulamalar InputDevice üzerindeki yöntemleri kullanmalıdır. sınıfını kullanır. Özellikle, uygulamalar bir cihazın tüm eksenlerini veya belirli bir eksenin tüm eksenlerini sorgulamak için getMotionRanges() öğesini kullanabilir cihazın kaynağını kontrol edebilirsiniz. Her iki durumda da, InputDevice.MotionRange nesnesi, her eksen değeri için gösterilir.

Son olarak, oyun çubuklarının, oyun kumandalarının, farelerin ve iztopları dokunma etkinlikleri değildir; platform, platform, bunları "genel" olarak bir View öğesine iletme hareket etkinlikleridir. Özellikle, dokunmatik olmayan hareket etkinliklerini onTouchEvent() yerine onGenericMotionEvent() numaralı telefona yapılan bir çağrı üzerinden View.

Platform, genel hareket etkinliklerini, mevcut konuma bağlı olarak etkinlik kaynağı sınıfı. SOURCE_CLASS_POINTER etkinlik dokunmaya benzer şekilde işaretçinin altındaki View simgesine gidin nasıl belirleyeceğinizi öğreneceksiniz. Diğer tüm kullanıcılar, şu anda odaklanılan View bölümüne gider. Örneğin bu, View ürününün kontrol çubuğu etkinlikleri alma. Gerekirse, uygulamalar bu etkinlikleri iletişim düzeyini kontrol etmek için kullanırsınız.onGenericMotionEvent()

Kontrol çubuğu hareketi kullanan örnek bir uygulamaya bakmak için etkinlikler için GameControllerInput bölümüne bakın ve GameView öğelerini açın.

RTP API'sı

Android 3.1, yerleşik RTP'sine (Gerçek Zamanlı Aktarım Protokolü) bir API sunar. yığını, hangi uygulamaların isteğe bağlı veya etkileşimli verileri yönetmek için kullanabileceği yayın. Özellikle VOIP, bas ve konuş, konferans, iletişim vb. özellikli uygulamalar ve ses akışı, oturumları başlatmak ve iletmek ya da almak için API'yi kullanabilir. veri akışlarına erişebilir.

RTP API, android.net.rtp paketinde kullanılabilir. Sınıflar şunlardır:

  • RtpStream, gönderen ve RTP üzerinden medya yüküne sahip ağ paketlerini alma
  • AudioStream, RTP üzerinden ses yükü taşıyan bir RtpStream alt sınıfıdır.
  • AudioGroup, yönetim ve ses merkezi cihaz hoparlörü, mikrofonu ve AudioStream karıştırılıyor.
  • barındıran codec'ler koleksiyonunu barındıran AudioCodec bir AudioStream için tanımlarsınız.

Sesli konferans ve benzer kullanımları desteklemek için bir uygulama örnek olarak gösterilebilir. akışın uç noktası olarak iki sınıfı kullanır:

En basit kullanım, tek bir uzak uç nokta ve yerel uç nokta içerir. Daha karmaşık kullanımlar için lütfen AudioGroup

Uygulamaların RTP API'yi kullanmak için şu tarihe kadar kullanıcıdan izin istemesi gerekir: <uses-permission android:name="android.permission.INTERNET"> tanımlanıyor bildirmelidir. Cihaz mikrofonunu edinmek için <uses-permission android:name="android.permission.RECORD_AUDIO"> izni de gerekir.

Yeniden boyutlandırılabilir uygulama widget'ları

Android 3.1 sürümünden itibaren geliştiriciler ana ekran widget'larını oluşturabilirler (yatay, dikey veya her iki eksende) yeniden boyutlandırabilirsiniz. Kullanıcılar bir cihazda dokunup yeniden boyutlandırma tutamaçlarını görün, ardından yatay ve/veya dikey tutma yerlerini kullanabilirsiniz.

Geliştiriciler herhangi bir Ana ekran widget'ını Widget'ın AppWidgetProviderInfo meta verilerinde resizeMode özelliği. için değerler resizeMode özellikleri arasında "Yatay", "dikey" ve "yok" bulunur. Bir widget'ı yatay ve dikey olarak yeniden boyutlandırılabilir olarak tanımlamak için "yatay|dikey" şeklinde olmalıdır.

Aşağıda bununla ilgili bir örnek verilmiştir:

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:minWidth="294dp"
    android:minHeight="72dp"
    android:updatePeriodMillis="86400000"
    android:previewImage="@drawable/preview"
    android:initialLayout="@layout/example_appwidget"
    android:configure="com.example.android.ExampleAppWidgetConfigure"
    android:resizeMode="horizontal|vertical" >
</appwidget-provider>

Ana ekran widget'ları hakkında daha fazla bilgi için Uygulama Widget'ları bölümüne bakın. belgelerinden faydalanabilirsiniz.

Animasyon çerçevesi

  • Yeni ViewPropertyAnimator sınıfı
    • Yeni bir ViewPropertyAnimator sınıfı, uygun geliştiricilerin View nesne üzerindeki belirli mülkleri canlandırmaları için bir yol sunar. Sınıf ve özelliklerin animasyonunu otomatikleştirir ve optimize etmeyi, Bir View nesnesinde aynı anda birden çok animasyonu yönetebilir.

      ViewPropertyAnimator kullanımı oldukça kolaydır. Şu öğelerin özelliklerine animasyon eklemek için: View için animate() numaralı telefonu arayın söz konusu View için bir ViewPropertyAnimator nesnesi oluşturun. Şunu kullanın: yöntemleri belirtmek için ViewPropertyAnimator üzerinde nasıl canlandırılacağını öğreneceğiz. Örneğin, View rengini şeffaf hale getirmek için alpha(0); numaralı telefonu arayın. ViewPropertyAnimator nesnesi temel Animator sınıfını yapılandırma ve başlatma, animasyon ekler.

  • Animasyon arka plan rengi
    • Yeni getBackgroundColor() ve setBackgroundColor(int) yöntem pencere animasyonları için animasyonların arkasındaki arka plan rengini alırsınız/ayarlarsınız gerekir. Şu anda arka planın, istenen alfa düzeyiyle siyah olması gerekir.
  • ViewAnimator öğesinden animasyonlu kesir alınıyor
    • Yeni bir getAnimatedFraction() yöntem animasyon kesirini (geçen/interpolasyon) elde etmenizi sağlar en son kare güncellemesinde kullanılan kesir (ValueAnimator karesinden).

Kullanıcı arayüzü çerçevesi

  • Bir katmanın zorunlu olarak oluşturulması
    • Yeni bir buildLayer() yöntemi, bir uygulamanın bir Görünüm katmanının oluşturulmasına ve Görünüm'ün hemen ona oluşturulmasını sağlayabilir. Örneğin, bir uygulama, kendi içinde bir Görünüm oluşturmak için bu yöntemi kullanabilir katmanını kullanmanız gerekir. Görünüm karmaşıksa, katmanın karelerin atlanmasını önler.
  • Kamera mesafesi
    • Uygulamalar yeni bir yöntem kullanabilir ile uzaklığı ayarlamak için setCameraDistance(float) kamera bir görünüm olarak ekleyebilirsiniz. Bu sayede, uygulamaların 3D dönüşümleri üzerinde daha fazla kontrol sahibi görebilirsiniz.
  • Tarih Seçici'den takvim görünümü alma
  • Görüntülemeler ayrıldığında geri arama alma
  • Parça içerik haritası işleyicisi, yeni onInflate() imzası
  • Arama sonucunu yeni sekmede göster
  • Çekilebilir metin imleci
    • Artık yeni yazı tipini kullanarak metin imleci olarak kullanılacak bir çekilebilir kaynak özelliği textCursorDrawable.
  • Uzaktan görünümlerde görüntülenen alt öğeyi ayarlama
  • Oyun kumandaları ve diğer giriş cihazları için genel anahtarlar
    • KeyEvent, oyun kumandası düğmelerinin yerini değiştirebilir. Sınıfta ayrıca isGamepadButton(int) ve birkaç kullanıcı daha yardımcı yöntemlere yer verir.

Grafik

  • Bit eşlemleri yönetme yardımcıları
    • setHasAlpha(boolean), uygulamanın şunu belirtmesine izin verir: bir Bit eşlemdeki tüm piksellerin opak (yanlış) olduğu veya bazı piksellerin pikseller, opak olmayan alfa değerleri (doğru) içerebilir. Bazı yapılandırmalarda (ör. RGB_565 olarak) içeriyorsa bu çağrı, piksel başına alfa değerini desteklemediği için yoksayılır. değerler. Bu, çizime dair bir ipucudur. Bazı durumlarda, dikkat çekmek istediğiniz bir çizim durumu, opak olmayan bir çizime göre daha hızlı olabilir. piksel başına alfa değerlerine karşılık gelir.
    • getByteCount(), bir Bit eşlemin boyutunu alır. bayt olarak kabul edilir.
    • getGenerationId(), uygulamaların şunu bulmasına izin verir: bir bit eşlemin değiştirilip değiştirilmediğini (ör. önbelleğe almak için) kontrol eder.
    • sameAs(android.graphics.Bitmap) belirler belirli bir Bit Eşlem'in, boyut olarak mevcut Bit Eşlem'den farklı olup veya piksel verileri olabilir.
  • Kamera konumunu ve dönüşünü ayarlama

  • Yüksek performanslı kablosuz ağ kilidi
    • Yüksek performanslı yeni bir kablosuz kilidi, uygulamaların kablosuz bağlantı (cihazın ekranı kapalıyken bile yüksek performanslı kablosuz bağlantı) sağlar. Uzun süre müzik, video veya ses akışı sağlayan uygulamalar yüksek performanslı kablosuz bağlantı kilidiyle ekran açıkken bile akış performansı kapalı olduğundan emin olun. Daha fazla güç tükettiği için, uygulamalar ihtiyaç olduğunda yüksek performanslı bir kablosuz bağlantı kullanmaya başlayabilirsiniz. bağlantı.

      Yüksek performanslı bir kilit oluşturmak için WIFI_MODE_FULL_HIGH_PERF değerini createWifiLock() numaralı telefona sesli arama yapın.

  • Diğer trafik istatistikleri
    • Uygulamalar artık daha fazla ağ kullanımı türüyle ilgili istatistiklere erişebilir (TrafficStats ürününde yeni yöntemler kullanarak). Uygulamalar, UDP istatistiklerini, paket sayısını, TCP iletim/alma yük baytlarını ve segmentlerini seçin.
  • SIP kimlik doğrulaması kullanıcı adı
    • Uygulamalar artık bir profil için SIP kimlik doğrulaması kullanıcı adını alıp ayarlayabilir kullanarak yeni getAuthUserName() ve setAuthUserName() yöntemleri.

İndirme Yöneticisi

IME çerçevesi

  • Giriş yönteminin ek değer anahtarını alma

Medya

  • Yeni ses akışı biçimleri
    • Medya çerçevesi, ham ADTS AAC içeriği için yerleşik destek sağlar. iyileştirilmiş ses akışı ile FLAC ses desteği, en yüksek kalite için sıkıştırılmış ses içeriği (kayıpsız) Desteklenen Medya Biçimleri bölümüne bakın. belgesini inceleyebilirsiniz.

üzerindeki başlatma kontrolleri durduruldu uygulamalar

Sistemin paket yöneticisi, Android 3.1'den başlayarak tüm görevleri uygulamalar için bir kontrol aracı sağlayan ve durdurulmuş ve diğer uygulamalardan lansman sonrasında gerçekleşebilir.

Bir uygulamanın durdurulmuş durumunun bir Etkinliğin durduruldu. Sistem, bu iki durdurulmuş durumu ayrı ayrı yönetir.

Platform, gönderenin belirtmesine olanak tanıyan iki yeni amaç işareti tanımlar. Intent'in durdurulduğunda bileşenleri etkinleştirmesine izin verilip verilmemesi bir uygulamadır.

Bu işaretlerin ikisi de ya da her ikisi de bir intent'de tanımlanmadığında varsayılan listesine, durdurulan uygulamaların filtrelerini eklemek önceliklendirebilirsiniz.

Sistemin tüm yayınlara FLAG_EXCLUDE_STOPPED_PACKAGES eklediğini unutmayın intent'lere karşılık gelir. Bunu, arka plan hizmetlerinden gelen yayınların durdurulan uygulamaların bileşenlerini yanlışlıkla veya gereksiz şekilde başlatma. Bir arka plan hizmeti veya uygulama, Yayınlanacak FLAG_INCLUDE_STOPPED_PACKAGES işareti Durdurulan uygulamaları etkinleştirmesine izin verilmesi gereken amaçlar.

Uygulamalar ilk kez yüklendiklerinde ancak henüz yüklenmediklerinde durmuş durumda başlatıldığı ve kullanıcı tarafından elle durdurulduğu zaman (Yönetme Uygulamalar).

Uygulamanın ilk kez başlatılması ve yeni sürüme geçirilmesiyle ilgili bildirim

Platform, uygulamanın ilk kez başlatılmasıyla ilgili daha iyi bildirimler ekler ve iki yeni amaç işlemiyle yükseltme işlemleri:

  • ACTION_PACKAGE_FIRST_LAUNCH — Alıcı: Bir uygulama ilk çalıştırıldığında yükleyici paketi (yani, durdurulmuş durumdan ilk kez taşındığında). Veriler içerir.
  • ACTION_MY_PACKAGE_REPLACED — Bildirim gönderir güncellendiği, yeni bir sürümün yüklü olduğu bir uygulama ekleyebilirsiniz. Bu e-posta, yalnızca değiştirilen uygulamaya gönderilir. Google ek veri içermez. Bunu almak için intent filtresi tanımlayın bu işlem için aradım. Web sitenizdeki verilerin yeni sürüme geçişten sonra uygulamanın düzgün çalışmaya devam etmesini sağlar.

    Bu niyet doğrudan uygulamaya gönderilir ancak cihaz, başlatılmış durumda (durdurulmuş durumda değil) yeni sürüme geçirildiyse.

Temel yardımcı programlar

  • LRU önbelleği
    • Yeni LruCache sınıfı, uygulamalarınızın avantaj elde etmesini sağlar verimli önbelleklerden kurtarır. Uygulamalar, harcanan zamanı azaltmak için sınıfı kullanabilir. ağdan veri bilişim veya indirme işlemini gerçekleştirirken önbelleğe alınan veriler için bellek ayak izi.LruCache bir önbellektir . Bir değer sıranın başına taşınır. Tam bu önbelleğin sonundaki değer atılır ve bu işlem her şeyi öğreteceğim.
  • int olarak dosya tanımlayıcı

WebKit

  • Dosya şeması çerezleri
    • CookieManager artık "the" file: URI şeması. setAcceptFileSchemeCookies() ile yapabilecekleriniz: örnek oluşturmadan önce dosya şeması çerezleri desteğini etkinleştirin/devre dışı bırakın WebView veya CookieManager. CookieManager örneğinde olduğu gibi, dosya şeması çerezlerinin allowFileSchemeCookies() aranarak etkinleştirilir.
  • Giriş isteği bildirimi
    • Android 3.0'da kullanıma sunulan tarayıcı otomatik giriş özelliklerini desteklemek için yeni yöntem onReceivedLoginRequest() düzenleyeni bilgilendirir Kullanıcı için otomatik giriş isteğinin işlendiği uygulama.
  • Kaldırılan sınıflar ve arayüzler
    • Sonraki adımlardan sonra bazı sınıf ve arayüzler, genel API'den kaldırıldı. önceden desteği sonlandırıldı. Bkz. API Farklar Raporu'na göz atın.

Tarayıcı

Tarayıcı uygulaması, web'i desteklemek için aşağıdaki özellikleri ekler uygulamalar:

  • HTML5'e yerleştirilmiş videoların satır içinde oynatılması desteği <video> etiketi. Oynatma, mümkün olduğunda donanım hızlandırmalı olarak gerçekleştirilir.
  • Tüm siteler için sabit konum öğeleri için katman desteği (mobil ve masaüstü).

Yeni özellik sabitleri

Platform, geliştiricilerin bildirebileceği yeni donanım özelliği sabitleri ekler Google gibi harici tüzel kişileri bilgilendirmek amacıyla Desteklenen yeni donanım özellikleri için uygulama gereksiniminin Play Store'u kullanıma sunuyoruz. Geliştiriciler bunları ve diğer özellikleri beyan eder <uses-feature> manifest öğelerinde sabit değerler.

Google Play, uygulamaları <uses-feature> manifest öğelerinde belirtilen özelliklere göre filtreler. Daha fazla bilgi için uygulama manifest dosyasında özellikleri tanımlamak için Google Play Filtreler.

API Farkları Raporu

Android 3.1'deki (API) tüm API değişikliklerinin ayrıntılı görünümü için Seviye 12), bkz. API Farklılıklar Raporu.

API Düzeyi

Android 3.1 platformu, çerçeve API'si. Android 3.1 API bir tam sayı tanımlayıcısına atanır — 12: yani sistemde depolanır. "API Düzeyi" adı verilen bu tanımlayıcı, sistemiyle uyumlu olup olmadığını doğru şekilde belirlemek amacıyla kullanılabilir. sisteme yükleyin.

Android 3.1'de kullanıma sunulan API'leri uygulamanızda kullanmak için uygulamayı, verilen Android kitaplığına göre derlemeniz gerekir Android 3.1 SDK platformu. İhtiyaçlarınıza bağlı olarak, şunu yapabilir: bir android:minSdkVersion="12" eklemeniz de gerekiyor özelliğinin <uses-sdk> öğesine manifest'ini kullanabilirsiniz.

Daha fazla bilgi için API nedir? Düzey mi?