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
veUsbEndpoint
için bir kontrol panelidir. - Veri gönderip alma ve denetim için
UsbDeviceConnection
veUsbRequest
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'teAXIS_HSCROLL
veAXIS_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 sonHOVER_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:
SOURCE_CLASS_JOYSTICK
— kaynak cihazda kontrol çubuğu eksenleri var.SOURCE_CLASS_BUTTON
— kaynak cihazındaki düğmeler veya tuşlar vardır.SOURCE_GAMEPAD
- kaynak cihazKEYCODE_BUTTON_A
gibi oyun kumandası düğmeleri içeriyor veyaKEYCODE_BUTTON_B
. İmaSOURCE_CLASS_BUTTON
.SOURCE_JOYSTICK
- kaynak cihaz kontrol çubuğu baltaları var. SOURCE_CLASS_JOYSTICK anlamına gelir.
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 almaAudioStream
, RTP üzerinden ses yükü taşıyan birRtpStream
alt sınıfıdır.AudioGroup
, yönetim ve ses merkezi cihaz hoparlörü, mikrofonu veAudioStream
karıştırılıyor.- barındıran codec'ler koleksiyonunu barındıran
AudioCodec
birAudioStream
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:
AudioStream
, uzak bir uç nokta belirtir ve ağ eşleme ve yapılandırılmışAudioCodec
.AudioGroup
, birinin yerel uç noktasını gösterir veya daha fazlaAudioStream
.AudioGroup
mix'leri tümAudioStream
'lar ve isteğe bağlı olarak cihazla etkileşime girer mikrofonu aynı anda kullanın.
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ştiricilerinView
nesne üzerindeki belirli mülkleri canlandırmaları için bir yol sunar. Sınıf ve özelliklerin animasyonunu otomatikleştirir ve optimize etmeyi, BirView
nesnesinde aynı anda birden çok animasyonu yönetebilir.ViewPropertyAnimator
kullanımı oldukça kolaydır. Şu öğelerin özelliklerine animasyon eklemek için:View
içinanimate()
numaralı telefonu arayın söz konusuView
için birViewPropertyAnimator
nesnesi oluşturun. Şunu kullanın: yöntemleri belirtmek içinViewPropertyAnimator
üzerinde nasıl canlandırılacağını öğreneceğiz. Örneğin,View
rengini şeffaf hale getirmek içinalpha(0);
numaralı telefonu arayın.ViewPropertyAnimator
nesnesi temelAnimator
sınıfını yapılandırma ve başlatma, animasyon ekler.
- Yeni bir
- Animasyon arka plan rengi
- Yeni
getBackgroundColor()
vesetBackgroundColor(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.
- Yeni
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).
- Yeni bir
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.
- Yeni bir
- 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.
- Uygulamalar yeni bir yöntem kullanabilir
ile uzaklığı ayarlamak için
- Tarih Seçici'den takvim görünümü alma
- Yeni bir
getCalendarView()
yöntemiDatePicker
ile başlayan fiyatlarlaCalendarView
kullanır.
- Yeni bir
- Görüntülemeler ayrıldığında geri arama alma
- Yeni bir
View.OnAttachStateChangeListener
şunları yapmanıza olanak tanır: almak bir Görünüm penceresine eklendiğinde veya penceresinden ayrıldığında geri çağırmalar yapar.addOnAttachStateChangeListener()
hesabını kullan bir işleyici ekleyin ve kaldırmak içinaddOnAttachStateChangeListener()
simgesini tıklayın.
- Yeni bir
- Parça içerik haritası işleyicisi, yeni onInflate() imzası
- Yeni bir yöntem olan
setOnBreadCrumbClickListener()
, projenin yolunda gitmesini uygulamalar parçalı içerik haritası tıklamalarına müdahale eder ve gerekli işlemleri yapar tıklanan geri yığın girişine veya parçasına gitmeden önce. Fragment
sınıfındaonInflate(attrs, savedInstanceState)
kullanımdan kaldırılmıştır. Lütfen bunun yerineonInflate(activity, attrs, savedInstanceState)
kullanın.
- Yeni bir yöntem olan
- Arama sonucunu yeni sekmede göster
ACTION_WEB_SEARCH
amaçları içinEXTRA_NEW_SEARCH
veri anahtarı, bir aramayı yeni bir tarayıcı sekmesinde görünür.
- Çekilebilir metin imleci
- Artık yeni yazı tipini kullanarak metin imleci olarak kullanılacak bir çekilebilir
kaynak özelliği
textCursorDrawable
.
- Artık yeni yazı tipini kullanarak metin imleci olarak kullanılacak bir çekilebilir
kaynak özelliği
- Uzaktan görünümlerde görüntülenen alt öğeyi ayarlama
- Yeni bir kolaylık yöntemi olan
setDisplayedChild(viewId, childIndex)
, aşağıdaki amaçlarlaRemoteViews
alt sınıfta kullanıma sunulmuştur:ViewAnimator
içinde gösterilen alt öğeyi ayarlamanıza veAdapterViewFlipper
,StackView
,ViewFlipper
veViewSwitcher
gibiAdapterViewAnimator
alt sınıf.
- Yeni bir kolaylık yöntemi olan
- Oyun kumandaları ve diğer giriş cihazları için genel anahtarlar
KeyEvent
, oyun kumandası düğmelerinin yerini değiştirebilir. Sınıfta ayrıcaisGamepadButton(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
Camera
, şunlar için iki yeni yöntem ekler:rotate()
vesetLocation()
kontrolün kameranın konumunu değiştirebilirsiniz.
Ağ
- 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ğerinicreateWifiLock()
numaralı telefona sesli arama yapın.
- 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ı.
- 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.
- Uygulamalar artık daha fazla ağ kullanımı türüyle ilgili istatistiklere erişebilir
(
- 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()
vesetAuthUserName()
yöntemleri.
- Uygulamalar artık bir profil için SIP kimlik doğrulaması kullanıcı adını alıp ayarlayabilir
kullanarak
yeni
İndirme Yöneticisi
- Tamamlanan indirmelerin işlenmesi
- Uygulamalar artık kullanıcılara yalnızca
teşekkür etmenin de
önemli bir yoludur. Bu tür bir indirme işlemini başlatmak için uygulamalar
VISIBILITY_VISIBLE_NOTIFY_ONLY_COMPLETION
testini geçersetNotificationVisibility()
yönteminde: bir istek nesnesidir. - Yeni bir yöntem olan
addCompletedDownload()
, bir uygulamanın İndirilenler uygulaması tarafından yönetilebilmesi için veri tabanı indirilir.
- Uygulamalar artık kullanıcılara yalnızca
teşekkür etmenin de
önemli bir yoludur. Bu tür bir indirme işlemini başlatmak için uygulamalar
- İndirmeleri boyuta göre sıralanmış olarak göster
- Uygulamalar, İndirilenler uygulamasını
yeni ekstra
INTENT_EXTRAS_SORT_BY_SIZE
,ACTION_VIEW_DOWNLOADS
amacına ekleniyor.
- Uygulamalar, İndirilenler uygulamasını
yeni ekstra
IME çerçevesi
- Giriş yönteminin ek değer anahtarını alma
InputMethodSubtype
, yöntem ExtraValue dizesinin depolanıp depolanmadığını kontrol etmek içincontainsExtraValueKey()
ve ExtraValue karma haritasından belirli bir anahtar değerini çıkarmak içingetExtraValueOf()
yöntemini kullanabilirsiniz.
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.
FLAG_INCLUDE_STOPPED_PACKAGES
- Durdurulan uygulamaların intent filtrelerini potansiyel hedefler listesine dahil et bir hedef belirleyebilirsiniz.FLAG_EXCLUDE_STOPPED_PACKAGES
- Durdurulan uygulamaların intent filtrelerini potansiyel olanlar listesinden çıkar belirler.
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.
- Yeni
int
olarak dosya tanımlayıcı- Artık yeni
getFd()
veyadetachFd()
yöntemlerinden birini kullanarakParcelFileDescriptor
için yerel dosya tanımlayıcısını alabilirsiniz.
- Artık yeni
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ınWebView
veyaCookieManager
.CookieManager
örneğinde olduğu gibi, dosya şeması çerezlerininallowFileSchemeCookies()
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.
- Android 3.0'da kullanıma sunulan tarayıcı otomatik giriş özelliklerini desteklemek için
yeni
yöntem
- 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.
android.hardware.usb.accessory
— Uygulama USB API aracılığıyla USB ve bağlantı üzerinden bağlanmış harici donanım cihazlarıyla iletişim ana bilgisayar olarak işlev görür.android.hardware.usb.host
— Uygulama USB API'yi kullanır USB üzerinden bağlanmış harici donanım cihazlarıyla iletişim kurmak ve cihazlar.
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?