API Düzeyi: 11
Android 3.0 platformu (HONEYCOMB
), geliştiriciler için Android SDK'sı'nın indirilebilir bir bileşeni olarak kullanılabilir. İndirilebilir platform, bir Android kitaplığı ve sistemi içerir.
bir dizi emülatör görünümü ve daha fazlası bulunuyor. İndirilebilir platformda harici kitaplıklar bulunmaz.
Geliştiriciler, Android 3.0 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.0 ile uygulama 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, önceki sürüme kıyasla Android 3.0'taki yeni özellikler ve çerçeve API'sindeki değişiklikler de dahil olmak üzere geliştiriciler için Android 3.0'taki yeniliklere teknik bir genel bakış sunulmaktadır.
Parçalar
Fragment, bir etkinliğin farklı öğelerini kendi kullanıcı arayüzlerini ve yaşam döngülerini tanımlayan bağımsız modüllere ayırmanıza olanak tanıyan yeni bir çerçeve bileşenidir. 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. Ardından, her bölmenin kendi yaşam döngüsünü ve kullanıcı girişlerini yönettiği çok bölmeli bir kullanıcı arayüzü oluşturmak için birden fazla parçayı tek bir etkinlikte birleştirebilirsiniz.
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 kullanabilirsiniz.
- Etkinlik içinde parça ekleyebilir, kaldırabilir, değiştirebilir ve parçaları canlandırabilirsiniz.
- Etkinlik tarafından yönetilen bir geri yığına parça ekleyebilirsiniz. Böylece, parçalar değiştikçe parçaların durumunu koruyabilir ve kullanıcının farklı durumlar arasında geriye doğru gezinmesine izin verebilirsiniz.
- 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. İşlem için yapmak istediğiniz tüm değişiklikleri uyguladıktan sonra commit()
işlevini çağırmanız gerekir. Sistem, parça işlemini etkinliğe uygular.
Parçaları kullanma hakkında daha fazla bilgi için Parçalar dokümanlarını okuyun. API Demoları uygulamasında da çeşitli örnekler mevcuttur.
İşlem Çubuğu
İşlem çubuğu, etkinlik penceresinin üst kısmındaki geleneksel başlık çubuğunun yerini alır. Sol köşede uygulama logosunu içerir ve Seçenekler Menüsü'ndeki öğeler için yeni bir arayüz sağlar. Ayrıca işlem çubuğuyla şunları yapabilirsiniz:
- Menü öğelerini doğrudan işlem çubuğuna "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 işlem çubuğunda görünür. Aksi takdirde öğe, işlem çubuğunun sağ tarafındaki menü simgesine gösterilen taşma menüsüne yerleştirilir. - Bir işlem öğesini bir widget'la (ör. arama kutusu) değiştirerek "işlem görünümü" oluşturun.
Menü öğesinin XML bildirimine
android:actionViewLayout
özelliğini ekleyin bir düzen kaynağı veyaandroid:actionViewClass
özelliğiyle widget'ını tıklayın. (Öğenin işlem çubuğunda görünmesi içinandroid:showAsAction
özelliğini de belirtmeniz gerekir.) İşlem Çubuğunda yeterli alan yoksa ve öğe, normal bir menü öğesi gibi davranır ve widget'ı göstermez. - Uygulama logosuna bir işlem ekleme ve logoyu ö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 logoyla değiştirmek için manifest dosyasında
android:logo
özelliğini kullanarak uygulama logonuzu belirtin, ardından etkinliğinizdesetDisplayUseLogoEnabled(true)
işlevini çağırın. - Parçaların arka yığınında geriye gitmek için içerik haritası ekleme
- 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 uygulamalarda standarttır. android:minSdkVersion
veya android:targetSdkVersion
'i "11"
olarak ayarlarsanız da standarttır.
İşlem Çubuğu hakkında daha fazla bilgi için İşlem Çubuğu dokümanlarını okuyun. API Demoları uygulamasında da çeşitli örnekler mevcuttur.
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. Yalnızca bir ClipData.Item
içeren bir ClipData
nesnesi oluşturmak için newPlainText()
, newUri()
ve newIntent()
gibi yardımcı yöntemlerden birini kullanabilirsiniz. Bu yöntemler, sağladığınız ClipData.Item
ile önceden yüklenmiş bir ClipData
nesnesi döndürür.
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 Demos örneğinde kopyalama ve yapıştırma işleminin basit bir uygulamasını, Not Defteri örneğinde ise daha kapsamlı bir uygulamasını görebilirsiniz.
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ürme işlemi, bir ClipData
nesnesinde taşınan bir tür verinin bir yerden başka bir yere aktarılmasıdır. Sürükleme işleminin başlangıç ve bitiş noktası bir View
olduğundan, sürükle ve bırak işlemlerini doğrudan yöneten API'ler View
sınıfındadır.
Sürükle ve bırak işleminin, ACTION_DRAG_STARTED
, ACTION_DRAG_ENTERED
ve ACTION_DROP
gibi her biri bir DragEvent
nesnesi tarafından tanımlanan çeşitli sürükleme işlemleriyle tanımlanan bir yaşam döngüsü vardır. 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 kabul edersiniz.
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
uygulamasını kullanabilirsiniz
Uzak veriler tarafından desteklenen GridView
, ListView
ve StackView
gibi widget'ları kullanarak koleksiyonlu widget'lar
daha fazla bilgi edindiniz.
AppWidgetProviderInfo
sınıfı (XML'de <appwidget-provider>
öğesiyle tanımlanır), autoAdvanceViewId
ve previewImage
adlı iki yeni alanı da destekler. autoAdvanceViewId
alanı, uygulama widget'ının ana makinesi tarafından otomatik olarak ilerletilmesi gereken uygulama widget'ı alt görünümünün görüntü kimliğini belirtmenize olanak tanır. İ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 sağlanmazsa önizleme için uygulama widget'ının simgesi 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
"Widget Önizlemesi" adlı bir uygulama oluşturabilirsiniz. Ö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 sosyal uygulamaların bildirimin kaynağı olan kişinin kişi fotoğrafını göstermesi veya medya uygulamalarının albüm küçük resmini göstermesi için kullanılır. setTicker()
kullanarak durum çubuğu akışındaki özel düzenler için destek.- 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
tarafından desteklenen veriler için bunu yapmanıza yardımcı olmak üzere özel olarak tasarlanmıştır.
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.
sonra şunu 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 kulaklık API'leri
Android artık uygulamaların bağlı Bluetooth A2DP ve kulaklık profili cihazlarının durumunu doğrulaması için API'ler içeriyor. Örneğin, uygulamalar müzik dinlemek için Bluetooth mikrofonlu kulaklık bağlandığında bunu tespit edebilir ve kullanıcıyı uygun şekilde bilgilendirebilir. 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
Yepyeni ve esnek bir animasyon çerçevesi, herhangi bir nesnenin (Görünüm, Çizimlenebilir, Kırıntı, Nesne veya başka bir şey) rastgele özelliklerini canlandırmanıza olanak tanır. 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
Bir nesnenin int, float ve onaltılık renk değerleri için varsayılan olarak bu animasyon özelliklerini ve diğer özellikleri tanımlayabilirsiniz. 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. Diğer değer türlerini animasyonlu hale getirmek için TypeEvaluator
arayüzünü uygulayarak sisteme söz konusu türdeki değerleri nasıl hesaplayacağını bildirirsiniz.
Bir mülkün değerlerini animasyonlu hale getirmek 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. Güncellemeleri dinlemeniz ve verileri kendi mantığınızla işlemeniz gerekir. ObjectAnimator
, ValueAnimator
ve
Böylece, nesneyi ve özelliği animasyonlu olacak şekilde ayarlayabilirsiniz ve tüm animasyon işleri işlenebilir.
Yani ObjectAnimator
'ye animasyon uygulanacak nesneyi, nesnenin zaman içinde değişecek özelliğini ve zaman içinde özelliğe uygulanacak bir değer grubunu verirsiniz, ardından animasyonu başlatırsınız.
Ayrıca, LayoutTransition
sınıfı otomatik geçişi etkinleştirir.
animasyonları ekleyin. Sayfa düzeninin bir kısmı için geçişleri etkinleştirmek üzere bir LayoutTransition
nesnesi oluşturun ve setLayoutTransition()
'yi çağırarak bu nesneyi herhangi bir ViewGroup
üzerinde ayarlayın. 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 belgelerine 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 çoklu 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. İşlem çubuğuyla birlikte kullanıldığında, kullanıcılar birden fazla öğe seçebilir ve ardından işlem çubuğundaki seçenekler listesinden (çoklu seçimli işlem moduna dönüşmüştür) yapılacak işlemi seçebilir.Ç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, etkinlik düzeninizdeki görünümlere kolayca 2D ve 3D dönüşümler uygulamanıza olanak tanır. Görünümün düzen konumunu, yönünü, şeffaflığını ve daha fazlasını tanımlayan bir dizi nesne özelliğiyle yeni dönüşümler yapılabilir.
Görüntüleme özelliklerini ayarlamak için kullanılabilecek yeni yöntemler arasında şunlar yer alır:
setAlpha()
,setBottom()
,setLeft()
,setRight()
,setBottom()
,setPivotX()
,setPivotY()
,setRotationX()
,setRotationY()
,setScaleX()
,setScaleY()
,setAlpha()
ve diğerleri.Bazı yöntemler, varsayılan bir dönüşüm uygulamak için düzen dosyanızda belirtebileceğiniz karşılık gelen bir XML özelliğine de sahiptir. 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çevesiyle (yukarıda ele alınmıştır) birlikte kullanarak görünümlerinize kolayca bazı süslü animasyonlar 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ıç ve 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 "holografik" kullanıcı arayüzü teması eklendi. Sistem, standart stil ve tema sistemini kullanarak yeni temayı uygular.
Android 3.0 platformunu hedefleyen (
android:minSdkVersion
veyaandroid:targetSdkVersion
değerini"11"
olarak ayarlayarak) tüm uygulamalar varsayılan olarak holografik temayı devralır. Ancak uygulamanız kendi temasını da uyguluyorsa stillerinizi holografik temayı devralacak şekilde güncellemediğiniz sürece temanız holografik temayı geçersiz kılar.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 kullanıyorsanız 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
Eklenen iki veya daha fazla görüntüleme arasında animasyonlu geçiş yapan basit
ViewAnimator
. Aynı anda 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 olanak tanır ve takvimi kaydırabilir veya istenen tarihe fırlatabilir. Widget'ta yer alan tarih aralığını yapılandırabilirsiniz.
ListPopupWindow
Kendisini bir ana görünüme sabitler ve
EditText
görünümüne yazarken öneriler listesi gibi seçeneklerin listesini gösterir.NumberPicker
Kullanıcının önceden tanımlanmış bir aralıktan bir sayı seçmesine olanak tanır. Widget'ta, bir sayı seçmek için bir giriş alanı ve yukarı ve aşağı düğmeleri bulunur. 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 sabitlenmiş kalıcı pop-up pencerede
Menu
gösterir. Yer varsa pop-up, sabit görünümün altında, yer yoksa üstünde görünür. IME (sanal klavye) görünür durumdaysa kullanıcı menüye dokunana kadar pop-up IME ile örtüşmez.SearchView
Belirli bir etkinliğe arama sorguları yayınlamak ve arama önerilerini görüntülemek (geleneksel arama iletişim kutusuyla aynı şekilde) için yapılandırabileceğiniz bir arama kutusu sağlar. 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 başlıklı 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>
öğesinde veya tek tek<activity>
öğelerindeandroid:hardwareAccelerated="true"
ayarlayarak uygulamanız için OpenGL oluşturma aracını etkinleştirebilirsiniz.Bu işaret, uygulamaların daha hızlı çizilmesini sağlayarak onlara yardımcı olur. Bu sayede animasyonlar ve kaydırma daha akıcı hale gelir, genel performans ve kullanıcı etkileşimine verilen yanıt iyileşir.
- 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ışır. Etkilenen görünüm ağacı sık sık güncelleniyorsa yazılım katmanlarından 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ırabilirsiniz. Renderscript, dosya İş Listesi’ni 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 canlı yayın oturumu başlatmak için medya çerçevesine bir M3U oynatma listesi URL'si iletebilir. Medya çerçevesi, uyarlanabilir bit hızı da dahil olmak üzere HTTP Canlı Yayın spesifikasyonunun çoğunu destekler. 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 aktarmasına olanak tanır. Geliştiriciler bu desteği kullanarak, kullanıcıların cihazlar arasında aktarmak veya paylaşmak isteyebilecekleri zengin medya dosyaları oluşturmasına ya da yönetmesine olanak tanıyan uygulamalar oluşturabilir.
- Dijital hak yönetimi (DRM)
Dijital hakları kontrol etmek ve uygulamak için yeni, genişletilebilir dijital hak yönetimi (DRM) çerçevesi. İki mimari katmanda uygulanır:
- Uygulamalara sunulan ve standart uygulamalar için Dalvik sanal makinesi üzerinden çalışan bir DRM çerçeve API'si.
- Ç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çerikler için ve çeşitli DRM şemaları genelinde tutarlı bir çalışma modu sağlar.
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çeveye, İçerik korumasının güvenli şekilde uygulanması için Android sistemi.
Önizleme sürümünde, dijital hakları kontrol etmek ve uygulamak için yerel DRM eklentileri sağlanmaz. Ancak, cihaz üreticileri cihazlarıyla birlikte DRM eklentileri de gönderebilirler.
Tüm DRM API'lerini
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 Ctrl+X, Ctrl+C, Ctrl+V ve Ctrl+A tuş kombinasyonlarını kullanarak klavyeyle kesme, kopyalama, yapıştırma ve tümünü seçme işlemlerini destekliyor. Ayrıca PageUp/PageDown, Home/End ve klavye tabanlı metin seçimi.KeyEvent
, anahtar değiştirici durumunu doğru ve tutarlı bir şekilde kontrol etmeyi kolaylaştırmak için birkaç yeni yöntem ekler. Bkz.hasModifiers(int)
,hasNoModifiers()
,metaStateHasModifiers()
,metaStateHasNoModifiers()
.- Uygulamalar,
Activity
,Dialog
veyaView
alt sınıfını oluşturarak veonKeyShortcut()
'ı uygulayarak özel klavye kısayolları uygulayabilir. Ç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 klavyede, girişi test etmek için önemli etkinlikleri sentezlemek amacıyla kullanılabilen masaüstü tarzında bir ABD tuş haritası bulunur.
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.
Bölünmüş dokunma etkinlikleri, bir uygulama Android 3.0'u hedeflediğinde varsayılan olarak etkindir. Yani uygulama, android:minSdkVersion
veya android:targetSdkVersion
özelliğinin değerini "11"
olarak ayarlayın.
Ancak aşağıdaki mülkler, belirli görüntüleme gruplarındaki ve pencerelerdeki görünümler arasında bölünmüş dokunma etkinliklerini devre dışı bırakmanıza olanak tanır.
- ViewGroup'lar için
android:splitMotionEvents
özelliği, bir düzendeki alt görünümler 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 mülkü, etkinliğin veya uygulamanın tamamının temasına uygulayarak pencereler arasında bölünmüş dokunma etkinliklerini devre dışı bırakmanıza olanak tanır. Ö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 Tema Uygulama başlıklı makaleyi okuyun.
WebKit
- Şundan oluşan bir parça oluşturmak için yeni
WebViewFragment
sınıfı:WebView
. - Yeni
WebSettings
yöntemleri:setDisplayZoomControls()
, kullanıcının parmak hareketleriyle yakınlaştırma yapmasına izin verirken ekrandaki yakınlaştırma denetimlerini gizlemenize olanak tanır (setBuiltInZoomControls()
,true
olarak ayarlanmalıdır).- 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:onPause()
geri çağırma işlevi, WebView gizli hale geldiğinde WebView ile ilişkili tüm işlemleri duraklatmak için kullanılır. Bu işlem, gereksiz CPU ya da e-posta sayısını azaltmak için ağ trafiğini artırır.onPause()
sırasında duraklatılan Web Görünümü ile ilişkili işlemeyi devam ettirmek içinonResume()
geri çağırma işlevi.saveWebArchive()
, mevcut görünümü cihazda web arşivi olarak kaydetmenize olanak tanır.showFindDialog()
, geçerli görünümde metin araması başlatır.
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 üzere fotoğraf çekmesi için bir giriş sağlar:
<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önlendirmesi
Cihaz Yönlendirme Etkinliği spesifikasyonunda belirtildiği gibi, tarayıcı web uygulamalarının cihazın fiziksel yönelimi ve hareketi hakkında bilgi sağlayan DOM etkinliklerini dinlemesine izin verir.
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 kaydolun. - 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, bellekteki bir dokümanı işleyen org.json
sınıflarını tamamlar.
Şu numarayı çağırarak JsonReader
örneği oluşturabilirsiniz:
kurucu yöntemini kullanarak JSON dizesini besleyen InputStreamReader
öğesini iletir.
Ardından beginObject()
'ü çağırarak bir nesneyi okumaya başlayın, nextName()
ile bir anahtar adını okuyun, nextString()
ve nextInt()
gibi türe özgü yöntemleri kullanarak değeri okuyun ve hasNext()
doğru olduğu sürece bunu yapmaya devam edin.
Oluşturucuyu çağırarak JsonWriter
örneği oluşturabilir ve
doğru OutputStreamWriter
iletilebilir. Ardından, JSON verilerini okuyucuya benzer bir şekilde yazın. Mülk adı eklemek için name()
'ü, ilgili değeri eklemek için de uygun bir value()
yöntemini kullanın.
Bu sınıflar varsayılan olarak katı kurallara sahiptir. 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 özellik, uygulamanın taklit edilmiş dokunmatik ekran (veya daha iyisi) sunan bir cihazla uyumlu olduğunu gösterir. 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
- Yerleşik eMMC depolama alanını etkinleştirmek için ext4 dosya sistemi desteği.
- MTP cihazları desteklemek için dosya sistemini FUSE ile kullanın.
- Klavyeleri ve USB hub'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 makinesi
- SMP'yi destekleyecek ve optimize edecek yeni kod
- JIT altyapısında çeşitli iyileştirmeler
- Çöp toplayıcı ile ilgili iyileştirmeler:
- SMP için 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 Libraries
- NIO'nun (modern G/Ç kitaplığı) yeni ve çok daha hızlı uygulaması
- İ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 Seviyesi" olarak adlandırılan bu tanımlayıcı, sistemin uygulamayı yüklemeden önce uygulamanın sistemle uyumlu olup olmadığını doğru şekilde belirlemesine olanak tanır.
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 seviyesi nedir? başlıklı makaleyi okuyun.