API Düzeyi: 11
Geliştiriciler için Android 3.0 platformu
(HONEYCOMB
) indirilebilir olarak mevcut
bileşeni hakkında daha fazla bilgi edinin. İndirilebilir platform, bir Android kitaplığı ve sistemi içerir.
bir dizi emülatör görünümü ve daha fazlası bulunuyor. İndirilebilir platform, harici reklam kaynağı veya
kitaplıklar.
Geliştiriciler, Android 3.0 platformu 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.0'ı kullanarak geliştirme veya test yapmaya 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 Android 3.0, yeni özellikler ve önceki sürümden bu yana Framework API'de yapılan değişiklikler dahil.
Parçalar
Parça, bir öğenin farklı öğelerini ayırmanızı sağlayan yeni bir çerçeve bileşenidir
etkinliklerini kendi kullanıcı arayüzünü ve yaşam döngülerini tanımlayan bağımsız modüller halinde birleştirir. Bir
parçasını görmek için Fragment
sınıfını genişletmeli ve
birden fazla yaşam döngüsü uygulamanız gerekir.
Activity
ile benzer şekilde geri çağırma yöntemleri kullanabilirsiniz. Daha sonra birden çok
küçük parçalara bölerek her birinin ayrı bir çok bölmeli
bölmesi kendi yaşam döngüsünü ve kullanıcı girişlerini yönetir.
Ayrıca, bir parçayı kullanıcı arayüzü sağlamadan kullanabilir ve bunun yerine bu parçayı bir çalışan olarak kullanabilirsiniz (örneğin, yalnızca indirme işlemi sırasında gerçekleşen bir indirme işleminin ilerlemesini yönetmek için) çalışıyor.
Buna ek olarak:
- Parçalar bağımsızdır ve birden fazla etkinlikte yeniden kullanılabilir.
- Etkinliğin içindeki parçaları ekleyebilir, kaldırabilir, değiştirebilir ve bunlara animasyon uygulayabilirsiniz
- Parçalar, etkinlik tarafından yönetilen bir arka yığınına, öğenin durumunu koruyarak ve kullanıcının farklı seçenekler arasında geriye doğru gitmesine olanak tanımlamak için kullanılır. eyaletler
- Sağlayarak alternatif düzenler sunuyorsanız parçaları ekran boyutunda ve yönünde
- Parçalar, kapsayıcı etkinliklerine doğrudan erişebilir ve etkinliğin İşlem Çubuğu (sonraki bölümde açıklanmıştır)
Etkinliğinizdeki parçaları yönetmek amacıyla, parçalarla etkileşim için çeşitli API'ler sağlayan FragmentManager
kullanmanız gerekir. Örneğin,
geri yüklemek için etkinlikteki parçaları bulmak ve arka yığından parçaları patlatmak olarak
önceki durum.
Parça ekleme veya kaldırma gibi bir işlem gerçekleştirmek için FragmentTransaction
oluşturmanız gerekir. Ardından add()
remove()
veya replace()
gibi yöntemleri çağırabilirsiniz. Tümünü uyguladığınızda
işlem için gerçekleştirmek istediğiniz değişiklikleri içeriyorsa commit()
öğesini çağırmalısınız ve sistem, parça işlemini
etkinliği tıklayın.
Parçaları kullanma hakkında daha fazla bilgi için Parçalar dokümanlarını okuyun. Birkaç örnekleri de API Demos uygulaması.
İşlem Çubuğu
İşlem Çubuğu, etkinlik penceresinin üst kısmındaki geleneksel başlık çubuğunun yerine geçer. Sol köşede uygulama logosunu içerir ve Seçenekler Menüsü. Ayrıca, İşlem Çubuğu ile şunları yapabilirsiniz:
- Menü öğelerini doğrudan İşlem Çubuğu'na "işlem öğeleri" olarak ekleyin.
Menü öğesi için XML bildiriminize
"ifRoom"
değerini içerenandroid:showAsAction
özelliğini ekleyin. Yeterli alan olduğunda menü öğesi doğrudan İşlem Çubuğunda görünür. Aksi takdirde, öğe işlem çubuğunun sağ tarafındaki menü simgesiyle gösterilen taşma menüsü. - Bir işlem öğesini widget (arama kutusu gibi) ile değiştirerek
"işlem görünümü".
Menü öğesinin XML bildirimine
android:actionViewLayout
özelliğini ekleyin bir düzen kaynağı veyaandroid:actionViewClass
özelliğiyle widget'ını tıklayın. (Öğenin görünmesi içinandroid:showAsAction
özelliğini de beyan etmeniz gerekir. görünür.) İşlem Çubuğunda yeterli alan yoksa ve öğe, normal bir menü öğesi gibi davranır ve widget'ı göstermez. - Uygulama logosuna işlem ekleme ve bunu özel bir logoyla değiştirme
Uygulama logosuna otomatik olarak
android.R.id.home
kimliği atanır. Bu özellik, dokunulduğunda etkinliğinizinonOptionsItemSelected()
geri çağırmasına iletir. Geri aramanızda bu kimliğe yanıt vermeniz yeterlidir uygulamanızın "ana sayfasına" gitmek gibi bir işlem gerçekleştirmek için yöntem etkinliği'ne dokunun.Simgeyi bir logoyla değiştirmek için manifest dosyasında uygulama logonuzu
android:logo
özelliğini kullanın, ardından etkinliğinizdesetDisplayUseLogoEnabled(true)
numaralı telefonu arayın. - Arkadaki parça yığınında geri gitmek için içerik haritaları ekleyin
- Parçalar arasında gezinmek için sekmeler veya bir açılır liste ekleyin
- İşlem Çubuğunu temalar ve arka planlarla özelleştirin
İşlem Çubuğu, yeni holografik temayı kullanan tüm uygulamalar için standarttır.
android:minSdkVersion
veya android:targetSdkVersion
öğesini "11"
olarak ayarladığınızda da standart olur.
İşlem Çubuğu hakkında daha fazla bilgi için İşlem Çubuğu dokümanlarını okuyun. Birkaç örnekleri de API Demos uygulaması.
Sistem panosu
Uygulamalar artık sistem genelinde veri (metinden çok daha fazlası) kopyalayıp yapıştırabilir panoya ekleyebilirsiniz. Kırpılmış veriler düz metin, URI veya amaç olabilir.
Kullanıcının kopyalamasını istediğiniz verilere sistem erişimi sağlayarak Kullanıcı, uygulamanızdan karmaşık bir içerik (resim veya veri yapısı gibi) kopyalayabilir ve bu içerik türünü destekleyen başka bir uygulamaya yapıştırabilirsiniz.
Panoyu kullanmaya başlamak için genel ClipboardManager
nesnesini alın
getSystemService(CLIPBOARD_SERVICE)
numaralı telefonu arayarak.
Bir öğeyi panoya kopyalamak için, bir veya daha fazla ClipData.Item
içeren yeni bir ClipData
nesnesi oluşturmanız gerekir
her biri tek bir varlığı açıklayan nesnelere işaret eder. ClipData
nesnesi oluşturmak için
bir ClipData.Item
içeriyorsa, yardımcı yöntemlerden birini kullanabilirsiniz.
newPlainText()
, newUri()
ve newIntent()
gibi. Bunların her biri,ClipData
ClipData.Item
sağlayın.
ClipData
öğesini panoya eklemek için ClipboardManager
örneğiniz için setPrimaryClip()
öğesine iletin.
Daha sonra, ClipboardManager
üzerinde getPrimaryClip()
çağırarak panodaki bir dosyayı okuyabilirsiniz (yapıştırmak için). Aldığınız ClipData
ile şunları yapabilirsiniz:
Karmaşık olmalı ve panodaki veri türünü gerçekten işleyebileceğinizden emin olmalısınız.
lütfen kontrol edin.
Panoda, kırpılmış verilerin yalnızca bir parçası (ClipData
)
nesnesidir), ancak bir ClipData
birden fazla ClipData.Item
içerebilir.
Daha fazla bilgi için ve Yapıştırma dokümanlarını sağlamanıza olanak tanır. Ayrıca API Demolarında kolayca kopyalayıp yapıştırma işleminin nasıl yapıldığını görebilirsiniz bir uygulama ile birlikte not defteri örneğinde daha kapsamlı bir şekilde kullanabilirsiniz.
Sürükleme ve bırakma
Yeni API'ler, uygulamanızın kullanıcı arayüzündeki sürükle ve bırak işlemlerini basitleştirir. Sürükleme
işlem, ClipData
içinde gerçekleştirilen bir tür verinin aktarılmasıdır
bir yerden başka bir yere gider. Sürükleme işleminin başlangıç ve bitiş noktası View
olduğundan, sürükle ve bırak işlemlerini doğrudan işleyen API'ler
View
sınıfında.
Sürükle ve bırak işleminin, birkaç sürükleme işlemiyle tanımlanan bir yaşam döngüsü vardır: Her biri
ACTION_DRAG_STARTED
, ACTION_DRAG_ENTERED
ve gibi bir DragEvent
nesnesiyle tanımlanır
ACTION_DROP
. Bir sürüklemeye katılmak isteyen her görünüm
işlemi bu işlemleri dinleyebilir.
Etkinliğinizdeki içeriği sürüklemeye başlamak için startDrag()
numaralı telefonu arayın
View
üzerinde, değeri temsil eden ClipData
nesnesini sağlar
sürüklenecek veriler, "gölge"yi kolaylaştırmak için bir View.DragShadowBuilder
Kullanıcıların sürüklerken parmaklarının altında gördükleri ve paylaşabilen bir Object
nesneleri alabilen görünümlere sahip sürükleme nesnesi hakkında bilgiler sağlar.
View
içindeki bir sürükleme nesnesini kabul etmek için ("bırakmayı alma") görünümü kaydedin
setOnDragListener()
numaralı telefonu arayarak OnDragListener
ile. Görünümde bir sürükleme etkinliği gerçekleştiğinde
sistem, OnDragListener
için onDrag()
çağırıyor. Bu işlemde DragEvent
gerçekleşen sürükleme işleminin türünü (örneğin, ACTION_DRAG_STARTED
, ACTION_DRAG_ENTERED
ve
ACTION_DROP
). Sürükleme sırasında sistem, sürüklenin altındaki görünüm için onDrag()
öğesini sürekli olarak çağırır.
ve sürükleme etkinlikleri akışı. Alıcı görünümü, DragEvent
üzerinde getAction()
öğesini çağırarak onDragEvent()
öğesine teslim edilen etkinlik türünü sorgulayabilir.
Not: Sürükleme etkinliği ClipData
nesnesi taşıyabilecek olsa da bu, sistem panosuyla ilgili değildir. Sürükleme ve bırakma
işlemi, sürüklenen verileri hiçbir zaman sistem panosuna yerleştirmemelidir.
Daha fazla bilgi için Sürükleme ve Dokümanları atlama. Ayrıca, sürükle ve bırak uygulamasını API Demoları uygulaması ve Honeycomb Gallery bir uygulamadır.
Uygulama widget'ları
Android 3.0, kullanıcılarda daha etkileşimli uygulama widget'ları için birkaç yeni widget sınıfını destekler.
Aşağıdakiler dahil olmak üzere ana ekran: GridView
, ListView
, StackView
, ViewFlipper
ve AdapterViewFlipper
.
Daha da önemlisi, uygulama oluşturmak için yeni RemoteViewsService
kullanabilirsiniz
GridView
, ListView
ve StackView
gibi uzak veriler tarafından desteklenen widget'ları kullanarak koleksiyonlu widget'lar
daha fazla bilgi edindiniz.
AppWidgetProviderInfo
sınıfı (<appwidget-provider>
öğesiyle XML'de tanımlanır) iki yeni alanı da destekler: autoAdvanceViewId
ve previewImage
. autoAdvanceViewId
alanı, tarayıcının görünüm kimliğini belirtmek için
Uygulama widget'ının ana makinesi tarafından otomatik olarak geliştirilmesi gereken uygulama widget'ı alt görünümü. İlgili içeriği oluşturmak için kullanılan
previewImage
alanı,
uygulama widget'ı nasıl görünür ve widget seçiciden kullanıcıya gösterilir. Bu alan eşleşmiyorsa
sağlandığında uygulama widget'ının simgesi önizleme için kullanılır.
Android emülatörü, uygulama widget'ınız için bir önizleme resmi oluşturmanıza yardımcı olmak üzere (previewImage
alanında belirtmek üzere) bir
bir uygulamadır. Önizleme resmi oluşturmak için bu uygulamayı başlatın,
uygulama widget'ını kullanın ve önizleme resminizin nasıl görünmesini istediğinizi ayarlayın
uygulamanızın çekilebilir kaynaklarına yerleştirin.
Yeni uygulama widget'ı özelliklerinin kullanımını StackView App Widget'ta ve Hava Durumu Listesi Widget'ında görebilirsiniz. izin verir.
Durum çubuğu bildirimleri
Notification
API'leri, daha fazla içerik zengini durumunu destekleyecek şekilde genişletildi.
çubuk bildirimleri ve yeni Notification.Builder
sınıfı sayesinde çok kolay bir şekilde
Notification
nesne oluşturun.
Yeni özellikler:
- Bildirimde
setLargeIcon()
kullanılarak büyük simge desteği. Bu genellikle bir kişinin fotoğraf çekmesine yardımcı olan sosyal uygulamalar bildirimi veya medya uygulamalarının albüm küçük resmini göstermesini sağlayabilirsiniz. setTicker()
kullanılarak durum çubuğu sohbet şeridinde özel düzenler desteği.- Daha etkileşimli bildirim widget'ları için
PendingIntent
içeren düğmeler içeren özel bildirim düzenleri desteği. Örneğin, bildirimi, bir etkinlik başlatmadan müzik çalmayı kontrol edebilir.
İçerik yükleyiciler
Yeni çerçeve API'leri, Loader
sınıfını kullanarak verilerin eşzamansız olarak yüklenmesini kolaylaştırır. Bunu görünümler ve
iş parçacıklarından verileri dinamik olarak yüklemek için kullanılır. CursorLoader
alt sınıfı,
ContentProvider
.
Tek yapmanız gereken, yeni bir yükleyici istendiğinde veya veriler paylaşıldığında geri çağırma almak için LoaderCallbacks
arayüzünü uygulamaktır.
değiştirildi, ardından şu komutu başlatmak için initLoader()
çağrısı:
etkinliğiniz veya parçanız için yükleyiciyi seçin.
Daha fazla bilgi için Yükleyiciler dokümanlarını okuyun. Ayrıca şunu da görebilirsiniz: LoaderCursor aracındaki yükleyicileri kullanan örnek kod ve LoaderThrottle örnekleri
Bluetooth A2DP ve mikrofonlu kulaklık API'leri
Android artık bağlı Bluetooth A2DP'nin ve bağlı Bluetooth A2DP'nin durumunu doğrulamak için uygulamalara mikrofonlu kulaklık profili cihazları. Örneğin, uygulamalar bir Bluetooth mikrofonlu kulaklığının gerektiği şekilde kullanıcıya bildirilmelidir. Uygulamalar ayrıca şunları da alabilir: satıcıya özel AT komutları için yayınlar ve bağlı cihazın durumu hakkında kullanıcıyı (örneğin, bağlı cihazın pilinin düşük olması)
A2DP
veya HEADSET
ile getProfileProxy()
çağrısı yaparak ilgili BluetoothProfile
öğesini başlatabilirsiniz.
profil sabiti ve almak için bir BluetoothProfile.ServiceListener
Bluetooth istemcisi bağlandığında veya bağlantısı kesildiğinde geri çağırma özellikleri içerir.
Animasyon çerçevesi
Tamamen yeni esnek animasyon çerçevesi, herhangi bir nesnenin rastgele özelliklerini canlandırmanıza olanak tanır. (Görünüm, Çekilebilir, Parça, Nesne veya başka herhangi bir şey). Bir şirketin çeşitli yönlerini tanımlamanıza Örneğin:
- Süre
- Tekrar sayısı ve davranışı
- Zaman interpolasyonunun türü
- Animatör, animasyonları birlikte, sırayla veya belirtilen gecikmelerden sonra oynatacak şekilde ayarlar
- Kare yenileme gecikmesi
Nesnenin int, kayan ve onaltılık özellikleri için bu animasyon özelliklerini ve diğerlerini tanımlayabilirsiniz.
varsayılan olarak renk değerlerine göre ayarlanır. Yani bir nesnenin bu türlerden biri için bir özellik alanı olduğunda,
bir animasyonu etkilemek için zaman içinde değerini değiştirebilir. Başka herhangi bir değer türünü canlandırmak için
TypeEvaluator
arayüzünü uygulayarak söz konusu tür için değerlerin nasıl hesaplanacağını sisteme bildirir.
Bir özelliğin değerlerini canlandırmak için kullanabileceğiniz iki animatör vardır: ValueAnimator
ve ObjectAnimator
. ValueAnimator
, animasyon değerlerini hesaplar, ancak belirli
sonuç olarak canlandırılan nesne veya özellik. Yalnızca hesaplamaları yapar ve sizin için
ve verileri kendi mantığınıza göre işleyin. ObjectAnimator
, ValueAnimator
ve
Böylece, nesneyi ve özelliği animasyonlu olacak şekilde ayarlayabilirsiniz ve tüm animasyon işleri işlenebilir.
Yani ObjectAnimator
içine animasyon için nesne,
zamanla değiştirilecek nesnenin özelliği ve mülke uygulanacak bir dizi değer
ve animasyonu başlatın.
Ayrıca, LayoutTransition
sınıfı otomatik geçişi etkinleştirir.
animasyonları ekleyin. Şu kısım için geçişleri etkinleştirmek istiyorsanız:
düzen eklemek için bir LayoutTransition
nesnesi oluşturun ve
setLayoutTransition()
numaralı telefonu arayarak herhangi bir ViewGroup
. Bu, varsayılan olarak oluşturulur
animasyonların çalıştırılmasına olanak tanır. Özel belirtmek için
animasyonlar için LayoutTransition
üzerinde setAnimator()
yöntemini çağırın ve özel bir Animator
sağlayın,
ValueAnimator
veya ObjectAnimator
gibi
yukarıda ele aldığımızı unutmayın.
Daha fazla bilgi için Mülk Animasyonu dokümanlarına bakın. Şunları yapabilirsiniz: API'deki animasyon API'lerini kullanan çeşitli örneklere de Demos uygulaması.
Genişletilmiş kullanıcı arayüzü çerçevesi
- ListView ve GridView için çoktan seçmeli seçim
setChoiceMode()
için yeniCHOICE_MODE_MULTIPLE_MODAL
modu, kullanıcıların birden fazla öğe seçmesine olanak tanırListView
veyaGridView
aratın. Kullanıldığı yer: Kullanıcılar, İşlem Çubuğu ile birlikte birden fazla öğe seçip İşlem Çubuğu'ndaki (çoktan seçmeli, Çoklu seçim) bir seçenek listesinden seçim yapabilirsiniz. işlem modu) ekleyebilirsiniz.Çoktan seçmeli seçimi etkinleştirmek için
setChoiceMode(CHOICE_MODE_MULTIPLE_MODAL)
numaralı telefonu arayın ve birsetMultiChoiceModeListener()
ileMultiChoiceModeListener
.Kullanıcı bir öğeye uzun bastığında İşlem Çubuğu Çoklu seçim moduna geçer İşlem Modu. Öğeler seçildiğinde sistem,
onItemCheckedStateChanged()
çağrısı yaparakMultiChoiceModeListener
öğesini bilgilendirir.Çoktan seçmeli seçim örneği için bkz. List15. Java sınıfını kullanır.
- Görünümleri dönüştürmek için yeni API'ler
Yeni API'ler, etkinliğinizdeki görünümlere kolayca 2D ve 3D dönüşümleri uygulamanıza olanak tanır kullanır. Görünümün görünümünü tanımlayan bir dizi nesne özelliği ile yeni dönüşümler yapılabilir. düzen konumu, yön, şeffaflık ve daha fazlası.
Görünüm özelliklerini ayarlamak için kullanabileceğiniz yeni yöntemler arasında şunlar bulunur:
setAlpha()
,setBottom()
,setLeft()
,setRight()
,setBottom()
,setPivotX()
,setPivotY()
,setRotationX()
,setRotationY()
,setScaleX()
,setScaleY()
,setAlpha()
ve diğerleri.Bazı yöntemler, düzeninizde belirtebileceğiniz karşılık gelen bir XML özelliği de içerir. dosyasını seçin. Kullanılabilir özellikler şunlardır:
translationX
,translationY
,rotation
,rotationX
,rotationY
,scaleX
,scaleY
,transformPivotX
,transformPivotY
vealpha
.Bu yeni görünüm özelliklerinden bazılarını yeni animasyon çerçevesi ile birlikte kullanma (daha önce açıklanmış yer alır), görünümlerinize bazı gösterişli animasyonları kolayca uygulayabilirsiniz. Örneğin, bir sonucu döndürmek için y ekseninde görünümü,
ObjectAnimator
değeriniView
, "rotasyonY" ile sağlayın özelliğini ve başlangıç ile bitiş değerlerini değiştirin:Kotlin
ObjectAnimator.ofFloat(myView, "rotationY", 0f, 360f).apply { duration = 2000 start() }
Java
ObjectAnimator animator = ObjectAnimator.ofFloat(myView, "rotationY", 0, 360); animator.setDuration(2000); animator.start();
- Yeni holografik temalar
Standart sistem widget'ları ve genel görünüm yeniden tasarlandı ve yeni bir görünüm kazandı. "holografik" kullanıcı arayüzü teması. Sistem yeni temayı uygular Bunu yapmak için standart stil ve tema sistemini kullanmanız gerekir.
android:minSdkVersion
"11"
için veyaandroid:targetSdkVersion
değeri: Varsayılan olarak holografik temayı devralır. Ancak, uygulamanız kendi temasını da uyguluyorsa temanız Stillerinizi holografik temayı devralacak şekilde güncellemediğiniz sürece holografik tema.Holografik temayı bireysel etkinliklere uygulamak veya bunları kendi temanızda devralmak için birkaç yeni
Theme.Holo
tanımından birini kullanın kullanabilirsiniz. Uygulamanız, Android'in 3.0'dan önceki sürümleriyle uyumluysa ve geçerliyse özel temalar içeriyorsa platforma göre bir tema seçmeniz gerekir. sürümü) tıklayın. - Yeni widget'lar
AdapterViewAnimator
Geçiş sırasında animasyonlar gerçekleştiren bir
AdapterView
için temel sınıf arasında geçiş yapacaktır.AdapterViewFlipper
Şu özelliklere sahip iki veya daha fazla görünüm arasında animasyon içeren basit
ViewAnimator
: eklenmiş olması gerekir. Tek seferde yalnızca bir çocuk gösterilir. İstenirse otomatik olarak çevirilebilir şunların arasında: izleyebilirsiniz.CalendarView
Kullanıcıların tarihe dokunarak takvimden tarih seçmesine ve sayfayı kaydırarak veya hızlı bir şekilde kaydırmasına olanak tanır takvime ekleyebilirsiniz. Widget'ta yer alan tarih aralığını yapılandırabilirsiniz.
ListPopupWindow
Kendisini ana makine görünümüne sabitler ve bir dizi seçenek (örneğin,
EditText
görünümüne yazarken öneriler sunar.NumberPicker
Kullanıcının önceden tanımlanmış bir aralıktan sayı seçebilmesini sağlar. Widget bir giriş sunar alanı ve sayı seçmek için yukarı ve aşağı düğmeleri içerir. Kullanıcı, giriş alanına dokunarak şunları yapabilir: değerleri kaydırın veya geçerli değeri doğrudan düzenlemek için tekrar dokunun. Ayrıca harita çıkarma işlemini konumları dizelere dönüştürür. Böylece, dizin yerine karşılık gelen dize görüntülenir. dokunun.
PopupMenu
Bir görünüme bağlı kalıcı pop-up pencerede bir
Menu
görüntüler. İlgili içeriği oluşturmak için kullanılan pop-up, yer varsa sabit görünümün altında, yoksa üstünde görünür. IME (yumuşak klavye) görünürse, kullanıcı klavyedeki tuşa dokununcaya kadar pop-up, IME tıklayın.SearchView
Arama sorgularını belirli bir hedefe göndermek için yapılandırabileceğiniz bir arama kutusu sağlar etkinliği düzenleyebilir ve arama önerilerini görüntüler (geleneksel arama iletişim kutusuyla aynı şekilde). Bu widget'ı özellikle İşlem Çubuğu'nda bir arama widget'ı sunulması açısından kullanışlıdır. Daha fazla bilgi için Arama Arayüzü Oluşturma adlı makaleyi inceleyin.
StackView
Alt öğelerini 3D yığında görüntüleyen ve kullanıcıların kaydırarak aralarında gezinmesine olanak tanıyan bir görünüm çok daha fazladır.
Grafik
- Donanım hızlandırmalı 2D grafik
Artık manifest öğenizin
<application>
bölümündeandroid:hardwareAccelerated="true"
ayarını yaparak uygulamanız için OpenGL oluşturucuyu etkinleştirebilirsiniz. öğesi veya tek tek<activity>
için öğeler.Bu işaret, uygulamaların daha hızlı çizim yapmasını sağlayarak onlara yardımcı olur. Bu sayede animasyonlar daha akıcı daha akıcı kaydırma ve genel olarak daha iyi performans ve kullanıcı etkileşimi.
- Donanım ve yazılım katmanları desteğini görüntüleyin
Varsayılan olarak,
View
için katman belirtilmemiştir. Örneğin, görünümü,LAYER_TYPE_HARDWARE
veLAYER_TYPE_SOFTWARE
değerleriyle belirtilen bir donanım veya yazılım katmanıyla desteklenir.setLayerType()
veyalayerType
özelliğini gönderin.Bir donanım katmanı, donanıma özgü bir dokuyla desteklenir (genellikle Çerçeve Arabellek Nesneleri veya OpenGL donanımında FBO) oluşturur ve görünümün, Android'in donanım oluşturma işlemi kullanılarak oluşturulmasına neden olur. Ardışık düzende, yalnızca görünüm hiyerarşisinde donanım hızlandırma etkinleştirildiğinde. Donanım hızlandırma devre dışıyken, donanım katmanları tam olarak yazılım katmanları gibi davranır.
Bit eşlem destekli bir yazılım katmanı, görünümün Android'in (Donanım hızlandırma etkin olsa bile) yazılım oluşturma ardışık düzeni üzerinde çalışmaya devam eder. Yazılım katmanları sıklıkla güncellendiğinden kaçınılmalıdır. Her güncellemede, bir yazılım katmanından yararlanın.
Daha fazla bilgi için
LAYER_TYPE_HARDWARE
veLAYER_TYPE_SOFTWARE
belgelerine bakın. - Renderscript 3D grafik motoru
Renderscript, 3D sahne oluşturmak için de API sağlayan bir çalışma zamanı 3D çerçevesidir Maksimum performans için özel, platformdan bağımsız bir gölgelendirici dili olarak kullanın. Renderscript'i kullanarak grafik işlemlerini ve veri işlemeyi hızlandırabilir. Renderscript, dosya oluşturmak için Uygulamalar, duvar kağıtları, bantlar ve daha fazlası için yüksek performanslı 3D efektler.
Daha fazla bilgi için bkz. 3D Oluşturma ve Hesaplama Renderscript dokümanlarını inceleyin.
Medya
- Zaman atlamalı video
Video kamera API'leri artık zaman atlamalı video kaydetme özelliğini destekliyor.
setCaptureRate()
, karelerin gönderilme hızını belirler yakalamanız gerekir. - Görüntü akışları için doku desteği
Yeni
SurfaceTexture
, bir OpenGL ES olarak görüntü akışı yakalamanıza olanak tanır dokunun.setPreviewTexture()
numaralı telefonuCamera
örneği üzerinden, video oynatma veya önizleme karelerinin alınacağıSurfaceTexture
öğesini belirtebilirsiniz. bulun. - HTTP Canlı yayını
Uygulamalar artık HTTP Live başlatmak için bir M3U oynatma listesi URL'sini medya çerçevesine geçirebilir akış oturumu. Medya çerçevesi, HTTP canlı yayın spesifikasyonunun çoğunu destekler. bit hızı da dahildir. Aşağıdakiler için Desteklenen Medya Biçimleri dokümanına bakın: daha fazla bilgi edinin.
- EXIF verileri
ExifInterface
, fotoğraf diyafram açıklığı, ISO ve pozlama için yeni alanlar içerir. gerekir. - Video kamera profilleri
Yeni
hasProfile()
yöntemi ve birkaç video kalite profilleri (QUALITY_1080P
,QUALITY_720P
,QUALITY_CIF
ve diğerleri gibi), video kameranızı belirlemenize olanak tanır seçenekleri sunar. - Dijital medya dosyası aktarımı
Platformda USB üzerinden Medya/Resim Aktarım Protokolü (MTP/PTP) için yerleşik destek vardır. Bu da kullanıcıların her tür medya dosyasını cihazlar arasında ve bir ana bilgisayara kolayca aktarmalarına olanak tanır. Geliştiriciler bu desteği temel alarak kullanıcıların zengin içerikler oluşturmasına veya yönetmesine olanak tanıyan uygulamalar geliştirebilir. medya dosyalarını paylaşmak için kullanabilirsiniz.
- Dijital hak yönetimi (DRM)
Dijital süreçleri kontrol etmek ve uygulamak için yeni genişletilebilir dijital haklar yönetimi (DRM) çerçevesi haklar. İki mimari katmanda uygulanmıştır:
- Bu, uygulamalara sunulan ve standart uygulamalar.
- Çerçeve API'sini uygulayan ve DRM için arayüz sunan yerel bir kodlu DRM yöneticisi çeşitli DRM şemaları için hak yönetimi ve şifre çözme işlemlerini gerçekleştiren eklentiler.
Uygulama geliştiriciler için bu çerçeve, API'yi basitleştiren koruma altındaki içeriğin yönetimiyle ilgilidir. API, DRM işlemlerinin karmaşıklığını gizler ve hem korumalı hem de korumasız içerik ve çeşitli DRM'ler için tutarlı çalışma modu oluşturabilirsiniz.
Cihaz üreticileri, içerik sahipleri ve internet dijital medya sağlayıcıları için DRM çerçevenin eklenti API'sı, DRM şeması için destek veren bir çerçevenin İçerik korumasının güvenli şekilde uygulanması için Android sistemi.
Önizleme sürümü, dijital sürümlerin denetlenmesi ve uygulanması için yerel DRM eklentisi sağlamıyor. haklar. Ancak, cihaz üreticileri cihazlarıyla birlikte DRM eklentileri de gönderebilirler.
DRM API'lerinin tümünü
android.drm
paketinde bulabilirsiniz.
Klavye desteği
- Control, Meta, Caps Lock, Num Lock ve Scroll Lock değiştiricileri için destek. Daha fazla bilgi için
META_CTRL_ON
ve ilgili alanlara bakın. - Escape, Home, End,
ve diğerlerini silin. Önemli etkinliklerin tam klavyeden gelip gelmediğini şu şekilde belirleyebilirsiniz:
getKeyboardType()
sorgulanıyor veKeyCharacterMap.FULL
kontrol ediliyor TextView
artık klavye tabanlı kesme, kopyalama ve Ctrl+X, Control+C, Ctrl+X, Control+C tuş kombinasyonlarını kullanarak Control+V ve Control+A tuşlarına basın. Ayrıca PageUp/PageDown, Home/End ve klavye tabanlı metin seçimi.KeyEvent
, anahtarı kontrol etmeyi kolaylaştırmak için birkaç yeni yöntem ekler doğru ve tutarlı şekilde değiştirmeniz gerekir. Bkz.hasModifiers(int)
,hasNoModifiers()
,metaStateHasModifiers()
,metaStateHasNoModifiers()
.- Uygulamalar
Activity
,Dialog
veyaView
alt sınıflarını sınıflandırıponKeyShortcut()
. Çerçeve bu yöntemi çağırır her tuş Ctrl tuşuyla birlikte kullanıldığında. Seçenekler menüsü oluştururken klavyeyi kaydettirebilirsiniz Her bir<item>
içinandroid:alphabeticShortcut
veyaandroid:numericShortcut
özelliğini ayarlayarak kısayollar öğesi (veyasetShortcut()
ile). - Android 3.0 yeni bir "sanal klavye" içeriyor
KeyCharacterMap.VIRTUAL_KEYBOARD
kimlikli cihaz. Sanal klavye, test amacıyla önemli etkinlikleri sentezlemek için yararlı olan masaüstü tarzı bir ABD tuş haritasına sahiptir giriş.
Bölünmüş dokunma etkinlikleri
Daha önce, dokunma etkinliklerini aynı anda yalnızca tek bir görünüm kabul edebiliyordu. Android 3.0 Dokunma etkinliklerini görünümlerde ve hatta pencerelerde bölme desteği eklendi. Böylece farklı görünümler, gerçek zamanlı iletişim etkinlikleridir.
Bir uygulama şunları hedeflediğinde "bölünmüş dokunma etkinlikleri" varsayılan olarak etkinleştirilir
Android 3.0 Yani uygulama, android:minSdkVersion
veya android:targetSdkVersion
özelliğinin değerini "11"
olarak ayarlayın.
Bununla birlikte, aşağıdaki özellikler içerideki görünümlerde bölünmüş dokunma etkinliklerini devre dışı bırakmanıza olanak tanır. belirli görünüm grupları arasında ve pencerelerde geçerli.
- Görünüm grupları için
android:splitMotionEvents
özelliği , bir düzendeki alt görüntülemeler arasında gerçekleşen bölünmüş dokunma etkinliklerini devre dışı bırakmanıza olanak tanır. Örnek:<LinearLayout android:splitMotionEvents="false" ... > ... </LinearLayout>
Böylece, doğrusal düzende alt görüntülemeler dokunma etkinliklerini bölemez. Bu şekilde yalnızca bir görünüm Dokunma etkinliklerini bir defada al.
android:windowEnableSplitTouch
stil özelliği Bunu aktivite için bir temaya uygulayarak pencereler arasında bölünmüş dokunma etkinliklerini devre dışı bırakmanızı sağlar veya tüm uygulamayı kapsar. Örnek:<style name="NoSplitMotionEvents" parent="android:Theme.Holo"> <item name="android:windowEnableSplitTouch">false</item> ... </style>
Bu tema bir
<activity>
veya<application>
için uygulandığında yalnızca geçerli etkinlik penceresindeki dokunma etkinlikleri kabul edilir. Örneğin, bölme işlemini devre dışı bırakarak sistem çubuğu, 24 saat veya 25 saat arasındaki dokunma etkinliklerini etkinliği'ne dokunun. Bu durum, etkinlikteki görüntülemelerin dokunmayı ayırıp ayıramayacağını etkilemez. etkinlikler: varsayılan olarak etkinlik, dokunma etkinliklerini görünümler arasında bölmeye devam edebilir.Tema oluşturma hakkında daha fazla bilgi için Stil ve Temaları Uygulama bölümünü okuyun.
WebKit
- Şundan oluşan bir parça oluşturmak için yeni
WebViewFragment
sınıfı:WebView
. - Yeni
WebSettings
yöntemleri:setDisplayZoomControls()
, gizlemenize olanak tanır. kullanıcının parmak hareketleriyle yakınlaştırma yapmasına izin verirken ekrandaki yakınlaştırma kontrollerini kullanın (setBuiltInZoomControls()
ayarlanmalıdırtrue
).- Yeni
WebSettings
yöntemi olansetEnableSmoothTransition()
sayesinde şunları yapabilirsiniz: kullanarak kaydırma ve yakınlaştırma sırasında yumuşak geçişler elde edebilirsiniz. Etkinleştirildiğinde WebView bir çözüm seçer artırmak (örneğin, Web Görünümü'nün içeriği geçişi) için geçerlidir.
- Yeni
WebView
yöntemleri:- İşlemleri duraklatmak için
onPause()
geri çağırma işlemi gizlendiğinde Web Görünümü ile ilişkilendirilir. Bu işlem, gereksiz CPU ya da e-posta sayısını azaltmak için ağ trafiğini artırır. - İşlemenin devam etmesi için
onResume()
geri çağırmasıonPause()
sırasında duraklatılan Web Görünümü ile ilişkilendirilmiştir. saveWebArchive()
, verileri kaydetmenize cihazda bir web arşivi olarak kullanabilirsiniz.showFindDialog()
, metin araması başlatır görünüm.
- İşlemleri duraklatmak için
Tarayıcı
Tarayıcı uygulaması, web uygulamalarını desteklemek için aşağıdaki özellikleri ekler:
- Medya yakalama
HTML Medya Yakalama ile tanımlandığı gibi özellikleri, Tarayıcı, web uygulamalarının ses, görüntü ve video çekimlerine erişmesine izin verir cihazın özelliklerini göstermenizi sağlar. Örneğin, aşağıdaki HTML, kullanıcının yüklemek için bir fotoğraf çekin:
<input type="file" accept="image/*;capture=camera" />
Kullanıcı,
capture=camera
parametresini hariç tutarak kamerayla yeni bir resim veya cihazdan (Galeri uygulamasından) bir resim seçin. - Cihaz Yönü
Cihaz Yön Etkinliği tarafından tanımlandığı şekilde belirtilen özellik gibi, Tarayıcı, web uygulamalarının bilgi sağlayan DOM etkinliklerini dinlemesine izin verir. cihazın fiziksel yönü ve hareketi hakkında bilgi edindiniz.
Cihazın yönü x, y ve z eksenleriyle, derece ve hareket cinsinden ifade edilir ve ivme ve dönüş hızı verileriyle ifade edilir. Bir web sayfası yön için kaydedilebilir
"deviceorientation"
etkinlik türüylewindow.addEventListener
çağrısı yaparak etkinlikler ve"devicemotion"
etkinlik türünü kaydederek hareket etkinliklerine kaydolmalısınız. - CSS 3D Dönüşümleri
CSS 3D Dönüşümü ile tanımlandığı gibi Modül spesifikasyonunda, Tarayıcı, CSS tarafından oluşturulan öğelerin üçte dönüştürülmesine izin verir seçin.
JSON yardımcı programları
Yeni sınıflar (JsonReader
ve JsonWriter
) size yardımcı olur
JSON akışlarını okuma ve yazma. Yeni API'ler, manipüle eden org.json
sınıflarını tamamlar.
bir belgedir.
Şu numarayı çağırarak JsonReader
örneği oluşturabilirsiniz:
kurucu yöntemini kullanarak JSON dizesini besleyen InputStreamReader
öğesini iletir.
Ardından beginObject()
komutunu çağırarak bir nesneyi okumaya başlayın,
anahtar adını nextName()
ile okuyun, değeri yöntemleri kullanarak okuyun
nextString()
ve nextInt()
gibi) ve hasNext()
doğru olduğunda da aynı işlemi yapmaya devam edin.
Oluşturucuyu çağırarak JsonWriter
örneği oluşturabilir ve
doğru OutputStreamWriter
iletilebilir. Ardından JSON verilerini istediğiniz şekilde yazın
okuyucuya benzer şekilde, özellik adı eklemek için name()
kullanılması
ve ilgili öğeyi eklemek için uygun bir value()
yöntemi
değer.
Bu sınıflar varsayılan olarak katıdır. setLenient()
kabul etme konusunda daha serbest olmalarını sağlar. Bu esnek
ayrıştırıcı modu, org.json
öğesinin varsayılan ayrıştırıcısıyla da uyumludur.
Yeni özellik sabitleri
<uses-feature>
manfest öğesi, harici tüzel kişilere (Google Play gibi)
uygulamanızın bağlı olduğu donanım ve yazılım özellikleri. Android bu sürümde
uygulamaların bu öğeyle tanımlayabileceği aşağıdaki yeni sabit değerler:
"android.hardware.faketouch"
Bu durum, beyan edildiğinde uygulamanın şu özelliklere sahip bir cihazla uyumlu olduğunu gösterir: emüle edilmiş dokunmatik ekran (veya daha iyisi). Emülasyonlu dokunmatik ekran sunan bir cihaz, kullanıcı girişi sağlar. Dokunmatik ekranlı bir alt küme emülasyonu yapabilen bir sistem özellikler. Bu tür bir giriş sistemine örnek olarak ekranda imleç. Bu tür giriş sistemleri aşağı tıklama, yukarı tıklama ve sürükleme gibi temel dokunma etkinliklerini destekler. Ancak, daha karmaşık giriş türleri (hareketler, hızlı kaydırmalar vb.) daha zor veya bu imkansızdır (ve çoklu dokunmayla yapılan hareketler kesinlikle mümkün değildir).
Uygulamanız karmaşık hareketler gerektirmiyorsa ve Uygulamanızın, emülasyonlu dokunmatik ekrana sahip cihazlardan filtrelenmesini istemiyorsanız
"android.hardware.faketouch"
,<uses-feature>
ile tanımlanmalıdır öğesine dokunun. Böylece, uygulamanız en fazla sayıda cihaz türünde kullanılabilecektir. Yalnızca emülasyonlu dokunmatik ekran girişi sağlayanlar da dahil.Dokunmatik ekranlı tüm cihazlar
"android.hardware.faketouch"
özelliğini de destekler. Çünkü dokunmatik ekran özellikleri, sahte dokunma kapasitelerinin üst kümesidir. Dolayısıyla, gerçekte herhangi bir bir<uses-feature>
eklemeniz gerekir. öğesi oluşturun.
Yeni izinler
"android.permission.BIND_REMOTEVIEWS"
Bu,
<service>
manifest dosyasında gerekli bir izin olarak belirtilmelidir. öğesi (RemoteViewsService
uygulaması için). Örneğin, bir uygulama widget'ı oluşturmak içinRemoteViewsService
kullanan bir koleksiyonu görünümündeyken, manifest girişi aşağıdaki gibi görünebilir:<service android:name=".widget.WidgetService" android:exported="false" android:permission="android.permission.BIND_REMOTEVIEWS" />
Yeni platform teknolojileri
- Depolama
- ext4 dosya sistemi desteğini kullanarak yerleşik eMMC depolama alanını etkinleştirin.
- MTP cihazları desteklemek için dosya sistemini FUSE ile kullanın.
- Klavyeleri ve USB çoğaltıcıları desteklemek için USB ana makine modu desteği.
- MTP/PTP desteği
- Linux Kernel'i
- 2.6.36 sürümüne yükseltildi
- Dalvik Sanal Makine
- SMP'yi destekleyecek ve optimize edecek yeni kod
- JIT altyapısında çeşitli iyileştirmeler
- Çöp toplayıcı ile ilgili iyileştirmeler:
- SMP'ye göre ayarlandı
- Daha büyük yığın boyutları için destek
- Bit eşlemler ve bayt arabellekleri için birleşik işleme
- Dalvik Core Kitaplıkları
- Yeni, çok daha hızlı NIO uygulaması (modern G/O kitaplığı)
- İyileştirilmiş istisna mesajları
- Videonun doğruluğu ve performansla ilgili düzeltmeleri
API farklılıkları raporu
Android 3.0'daki (API Düzeyi) tüm API değişikliklerinin ayrıntılı görünümü için API Farklılıkları Raporu'na bakın.
API Düzeyi
Android 3.0 platformu, çerçeve API'si. Android 3.0 API bir tam sayı tanımlayıcısına atanır — 11: 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.0'da kullanıma sunulan API'leri uygulamanızda kullanmak için
uygulamayı, verilen Android kitaplığına göre derlemeniz gerekir
Android 3.0 SDK platformu. İhtiyaçlarınıza bağlı olarak
bir android:minSdkVersion="11"
eklemeniz de gerekiyor
özelliğinin <uses-sdk>
öğesine
manifest'ini kullanabilirsiniz. Uygulamanız yalnızca Android 2.3 ve daha sonraki sürümlerde çalışacak şekilde tasarlandıysa
bir özelliğin bildirilmesi, uygulamanın daha erken
sürümleri bulunuyor.
Daha fazla bilgi için API nedir? Düzey mi?