Android 3.0 API'leri

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çeren android: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ğı veya android:actionViewClass özelliğiyle widget'ını tıklayın. (Öğenin görünmesi için android: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ğinizin onOptionsItemSelected() 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ğinizde setDisplayUseLogoEnabled(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 yeni CHOICE_MODE_MULTIPLE_MODAL modu, kullanıcıların birden fazla öğe seçmesine olanak tanır ListView veya GridView 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 bir setMultiChoiceModeListener() ile MultiChoiceModeListener.

    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ı yaparak MultiChoiceModeListener öğ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 ve alpha.

    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ğerini View, "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 veya android: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ünde android: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 ve LAYER_TYPE_SOFTWARE değerleriyle belirtilen bir donanım veya yazılım katmanıyla desteklenir. setLayerType() veya layerType ö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 ve LAYER_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ı telefonu Camera ö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 ve KeyCharacterMap.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 veya View alt sınıflarını sınıflandırıp onKeyShortcut(). Ç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çin android:alphabeticShortcut veya android:numericShortcut özelliğini ayarlayarak kısayollar öğesi (veya setShortcut() 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ır true).
    • Yeni WebSettings yöntemi olan setEnableSmoothTransition() 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.

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üyle window.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çin RemoteViewsService 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?