API Düzeyi: 21
Android 5.0 (LOLLIPOP) kullanıcılar ve uygulama geliştiriciler için yeni özellikler sunuyor. Bu belge, kullanıma sunduk.
Yayınlanmış bir uygulamanız varsa Android 5.0 Davranışı Uygulamanızda dikkate almanız gereken değişiklikler. Bu davranış değişiklikleri yeni API'ler kullanmıyor olsanız bile Android 5.0 cihazlardaki uygulamanızı etkileyebilir yeni bir işlevi hedefleyebilirsiniz.
Bunun yerine, yeni platform özelliklerine genel bir bakış için bkz. Android Lollipop öne çıkanlar.
Geliştirmeye başlayın
Android 5.0 için uygulama oluşturmaya başlamak üzere öncelikle Android SDK. Ardından SDK Manager'ı kullanın Android 5.0 SDK Platformu ve Sistem Görüntülerini indirin.
Hedef API düzeyinizi güncelleyin
Uygulamanızı Android 5.0 çalıştıran cihazlar için daha iyi optimize etmek üzere
targetSdkVersion
cihazını şuna ayarla:
"21"
, uygulamanızı Android cihaza yükleyin
5.0 sistem görüntüsü kullanın, test edin ve güncellenmiş uygulamayı
değiştirmiyor.
Eski sürümleri desteklerken Android 5.0 API'lerini de kullanabilirsiniz
koda sistem API düzeyini kontrol eden koşullar ekleyerek sürümler
minSdkVersion
tarafından desteklenmeyen API'leri yürütmeden önce doğrulayabilirsiniz.
Geriye dönük uyumluluğun korunması hakkında daha fazla bilgi edinmek için Destekleme
Farklı Platform Sürümleri.
API düzeylerinin işleyiş şekli hakkında daha fazla bilgi için API nedir? Düzey mi?
Davranışla ilgili önemli değişiklikler
Daha önce Android için bir uygulama yayınladıysanız uygulamanızın Android 5.0'daki değişikliklerden etkilenebileceğini unutmayın.
Ayrıntılı bilgi için lütfen Android 5.0 Değişiklikleri bölümüne bakın.
Kullanıcı Arayüzü
Materyal tasarım desteği
Android 5.0, Android'in yeni materyal tasarımı için destek sunmaya başladı stiline sahip. Görsel olarak dinamik olan, materyal tasarıma sahip uygulamalar oluşturabilirsiniz. kullanıcı arayüzü öğesi geçişleri vardır. Bu destek türüne şunlar dahildir:
- Materyal teması
- Gölgeleri göster
RecyclerView
widget'ı- Çekilebilir animasyon ve stil efektleri
- Materyal tasarım animasyonu ve etkinlik geçiş efektleri
- Görünümün durumuna göre görünüm özellikleri için animatörler
- Sizin kontrol ettiğiniz renk paletlerine sahip özelleştirilebilir kullanıcı arayüzü widget'ları ve uygulama çubukları
- XML vektör grafiklerine dayalı animasyonlu ve animasyonsuz çekilebilir öğeler
Uygulamanıza materyal tasarım işlevi ekleme hakkında daha fazla bilgi edinmek için Materyal Tasarım.
Son kullanılanlar ekranında eşzamanlı dokümanlar ve etkinlikler
Önceki sürümlerde,
son ekran
kullanıcının etkileşimde bulunduğu her uygulama için yalnızca bir görev görüntülenebilir
en son. Uygulamanız artık gerektiğinde daha fazla görev açabilir,
için aynı anda birden fazla işlem gerçekleştirmenize olanak tanır. Bu özellik, birden fazla işi aynı anda yapmanızı sağlar.
Kullanıcılar her zaman farklı etkinlikler ve dokümanlar arasında kolayca geçiş yapabilir.
son kullanılanlar ekranı ile tüm uygulamalarda tutarlı bir geçiş deneyimi sunar.
Bu tür eşzamanlı görevlere örnek olarak web’deki açık sekmeler gösterilebilir
tarayıcı uygulaması, üretkenlik uygulamasındaki dokümanlar, eşzamanlı eşleşmeler
mesajlaşma uygulamasındaki sohbetlerdir. Uygulamanız, görevlerini yönetebilir
ActivityManager.AppTask
sınıfı üzerinden.
Sistemin etkinliğinizi yeni bir etkinlik olarak değerlendirmesi için mantıksal bir ara eklemek
görev için FLAG_ACTIVITY_NEW_DOCUMENT
ve etkinliği startActivity()
ile başlatıyoruz. Bu davranışı,
<activity>
öğesinin documentLaunchMode
özelliğini "intoExisting"
veya
Manifest'inizde "always"
.
Son kullanılanlar ekranının dağınık olmasını önlemek için her biri için maksimum
o ekranda görünebilecek çeşitli görevlere göz atabilirsiniz. Bunu yapmak için,
<uygulama>
android:maxRecents
özelliği için değer ekleyebilirsiniz. Şu anki
belirtilebilecek maksimum görev sayısı kullanıcı başına 50'dir (düşük RAM'e sahip cihazlar için 25 görev).
Son kullanılanlar ekranındaki görevler, yeniden başlatma sırasında kalıcı olacak şekilde ayarlanabilir. Kontrol etmek için
kalıcılık davranışını göstermek için
android:persistableMode
özelliğini gönderin. İsterseniz
son kullanılanlar ekranındaki bir etkinliğin görsel özelliklerini
adını çağırarak etkinliğin rengini, etiketini ve simgesini
setTaskDescription()
.
yöntemidir.
WebView güncellemeleri
Android 5.0, WebView
uygulamasını günceller
Chromium M37'ye getirildiğinde güvenlik ve kararlılıkla ilgili iyileştirmeler yapıldı,
ve hata düzeltmeleri yapıldı. Bir için varsayılan kullanıcı aracısı dizesi
Android 5.0 çalıştıran WebView
37.0.0.0 sürüm numarası eklenerek güncellenmiştir.
Bu sürümde PermissionRequest
sınıfı tanıtılmaktadır.
Bu, uygulamanızın WebView
izni vermesine olanak tanır
web API'leri üzerinden kamera ve mikrofon gibi korunan kaynaklara erişme
(getUserMedia() gibi). Uygulamanız,
Bu kaynaklara Android izinleri vermek için kullanarak
WebView
.
Yeni onShowFileChooser()
yöntemiyle,
artık WebView
, alan adında bir giriş formu
ve Android cihazdan resim ve dosya seçmek için bir dosya seçici
başlatın.
Ayrıca bu sürüm, WebAudio WebGL ve WebRTC açık standartları. Bu sürüme eklenen yeni özellikler hakkında daha fazla bilgi edinmek için bkz. Android için WebView.
Ekran görüntüsü yakalama ve paylaşma
Android 5.0, uygulamanıza ekran görüntüsü alma ve ekran paylaşımı özellikleri eklemenizi sağlar.
uygulamanızı yeni android.media.projection
API'leriyle değiştirin. Bu işlev
Örneğin, bir videoda ekran paylaşımını etkinleştirmek isterseniz
konferans uygulamasıdır.
Yeni createVirtualDisplay()
yöntemi
uygulamanızın ana ekranın içeriğini yakalamasına izin verir (varsayılan
görüntü) Surface
nesnesine çevirir. Böylece uygulamanız
ağ üzerinden gönderebilirsiniz. API yalnızca güvenli olmayan ekranın yakalanmasına izin verir
(sistem sesinin değil). Ekran görüntüsü almaya başlamak için öncelikle uygulamanız
Ekran görüntüsü alma iletişim kutusu açarak kullanıcının iznini isteme
Intent
,
createScreenCaptureIntent()
yöntemidir.
Yeni API'lerin nasıl kullanılacağıyla ilgili bir örnek için MediaProjectionDemo
sayfasını ziyaret edin.
sınıfını kullanır.
Bildirimler
Kilit ekranı bildirimleri
Android 5.0'daki kilit ekranları, ekran gösterme özelliğine sahiptir. bildirimleri etkinleştirebilirsiniz. Kullanıcılar, Ayarlar üzerinden izin verip vermemeyi seçebilir Güvenli kilit ekranı üzerinden gösterilecek hassas bildirim içeriği.
Uygulamanız, bildirimleri alındığında gösterilen ayrıntı düzeyini kontrol edebilir
güvenli kilit ekranının üzerinde görüntülenir. Görünürlük seviyesini kontrol etmek için şu numarayı arayın:
setVisibility()
ve
şu değerlerden birini belirtin:
VISIBILITY_PRIVATE
: Bildirimin simgesi gibi temel bilgileri gösterir ancak bildirimin tüm içeriğini kontrol edebilirsiniz.VISIBILITY_PUBLIC
: Bildirimin tüm içeriğini gösterir.VISIBILITY_SECRET
: Bildirimin simgesi hariç, hiçbir şey göstermez.
Görünürlük seviyesi VISIBILITY_PRIVATE
olduğunda
bildirimin çıkartılmış bir sürümünü de gönderebilirsiniz.
kişisel ayrıntıları gizleyen içeriklerdir. Örneğin, bir SMS uygulamasında
"3 yeni kısa mesajınız var" bildirimi ancak mesajı gizler
en iyi uygulamaları paylaşacağız. Bu alternatif bildirimi sağlamak için önce
Notification.Builder
aracılığıyla değişim bildirimi gönderebilirsiniz. Zaman
özel bildirim nesnesini oluşturduktan sonra, yeni bildirimi
ve
setPublicVersion()
yöntemini çağırın.
Bildirim meta verileri
Android 5.0, uygulama bildirimlerinizle ilişkili meta verileri kullanır
daha akıllı bir şekilde sıralayabilirsiniz. Meta verileri ayarlamak için
Aşağıdaki yöntemleri Notification.Builder
içinde uygulayın:
oluşturun:
setCategory()
: cihazın öncelik modunda olması gerekir (örneğin, bir bildirim gelen arama, anlık mesaj veya alarm).setPriority()
: Bildirimi, normal bildirimlerden daha fazla veya daha az önemli olarak işaretler. Öncelik alanıPRIORITY_MAX
veyaPRIORITY_HIGH
, Bildirimde ses veya titreşim de varsa küçük kayan pencere.addPerson()
: Bildirimle alakalı bir veya daha fazla kullanıcı eklemenizi sağlar. Uygulamanız, sisteme birlikte gruplandırılmasını belirtmek için bunu kullanabilir belirtilen kişilerden gelen bildirimleri veya bu kişilerden gelen bildirimleri sıralayın olduğunu unutmayın.
Grafik
OpenGL ES 3.1 desteği
Android 5.0, Java arayüzleri ve OpenGL için yerel destek ekler ES 3.1. OpenGL ES 3.1'de sağlanan yeni temel işlevler şunlardır:
- Gölgelendiricileri hesapla
- Gölgelendirici nesnelerini ayırma
- Dolaylı çizim komutları
- Çoklu örnek ve şablon dokuları
- Gölgelendirme dili iyileştirmeleri
- Gelişmiş karışım modları ve hata ayıklama için uzantılar
- OpenGL ES 2.0 ve 3.0 ile geriye dönük uyumluluk
Android'de OpenGL ES 3.1 için Java arayüzü
GLES31
OpenGL ES 3.1'i kullanırken
bunu manifest dosyanızda
<uses-feature>
etiketi ve android:glEsVersion
özelliği. Örnek:
<manifest> <uses-feature android:glEsVersion="0x00030001" /> ... </manifest>
OpenGL ES'yi kullanma hakkında daha fazla bilgi için, aşağıdaki bağlantı da dahil olmak üzere için desteklenen OpenGL ES sürümünü öğrenmek için OpenGL ES API kılavuzu.
Android Uzantı Paketi
OpenGL ES 3.1'e ek olarak, bu sürüm
Gelişmiş grafik işlevi için Java arayüzleri ve yerel destek. Bu
uzantıları, Android tarafından tek bir paket olarak ele alınır. (
ANDROID_extension_pack_es31a
uzantısı mevcut. Uygulamanız şunları yapabilir:
Paketteki tüm uzantıların mevcut olduğunu varsayar ve gölgelendirme dilini etkinleştirir
(tek bir #extension
ifadesi olan özellikler)
Uzantı paketi şunları destekler:
- Gölgelendirici depolama arabellekleri, resimler ve atomik (OpenGL ES 3.1'de parça gölgelendirici desteği isteğe bağlıdır.)
- Mozaik ve geometrik gölgelendiriciler
- ASTC (LDR) doku sıkıştırma biçimi
- Örnek başına interpolasyon ve gölgelendirme
- Çerçeve arabelleğindeki her renk eki için farklı karışım modları
Uzantı paketi için Java arayüzü
GLES31Ext
Uygulama manifestinizde uygulamanızın
Uygulamanız yalnızca uzantı paketini destekleyen cihazlara yüklenmelidir.
Örnek:
<manifest> <uses-feature android:name=“android.hardware.opengles.aep” android:required="true" /> ... </manifest>
Medya
Gelişmiş kamera özellikleri için Kamera API'si
Android 5.0 kullanıma sunuluyor
android.hardware.kamera2
Ayrıntılı fotoğraf yakalamayı ve görüntü işlemeyi kolaylaştıran API. Artık şunları yapabilirsiniz:
Sistemin kullanabileceği kamera cihazlarına programatik şekilde erişmek için
getCameraIdList()
.
ve belirli bir cihaza bağlanmak için
openCamera()
.
Resim çekmeye başlamak için bir CameraCaptureSession
oluşturun
ve yakalanan görüntülerin gönderileceği Surface
nesneyi belirtin.
CameraCaptureSession
, şu şekilde yapılandırılabilir:
tek seferde bir veya bir seri çekimde birden fazla resim çekebilirsiniz.
Yeni görüntüler çekildiğinde bildirim almak için
CameraCaptureSession.CaptureCallback
dinleyicisi
ve yakalama isteğinizde ayarlayın. Sistem, resmi tamamladığında
yakalama isteği, CameraCaptureSession.CaptureCallback
dinleyici,
onCaptureCompleted()
,
Böylece size resim yakalama meta verilerini
CaptureResult
.
CameraCharacteristics
sınıfı şu işlemleri yapmanıza olanak tanır:
uygulaması bir cihazda hangi kamera özelliklerinin bulunduğunu algılar. Nesnenin
INFO_SUPPORTED_HARDWARE_LEVEL
özelliği, kameranın işlevsellik düzeyini temsil eder.
- Tüm cihazlar en az
Özelliklere sahip
INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY
donanım düzeyi kullanımdan kaldırılanCamera
ile hemen hemen eşdeğerdir API'ye gidin. INFO_SUPPORTED_HARDWARE_LEVEL_FULL
donanım seviyesini destekleyen cihazlar manuel olarak gerçekleştirilebilir yakalama ve işleme sonrası ile yüksek çözünürlüklü görüntüler yakalamanın kontrolü yüksek kare hızlarında gösterilebilir.
Güncellenen
Kamera
API, Camera2Basic
ve Camera2Video
uygulamasına bakın
örnekler.
Ses çalma
Bu sürüm aşağıdaki değişiklikleri içerir:
AudioTrack
:
- Uygulamanız artık kayan nokta biçiminde ses verileri sağlayabilir
(
ENCODING_PCM_FLOAT
). Bu daha fazla dinamik aralık, daha tutarlı hassasiyet ve daha fazla olasılık sağlar. Kayan nokta aritmetiği, özellikle ara hesaplamalar sırasında yararlıdır. Oynatma uç noktaları, ses verileri için daha düşük bit derinliğinde tam sayı biçimini kullanır. (Android 5.0'da, dahili ardışık düzenin bazı bölümleri henüz kayan nokta) - Uygulamanız artık ses verilerini
ByteBuffer
olarak sağlayabilir:MediaCodec
tarafından sağlanan ile aynı biçimdedir. WRITE_NON_BLOCKING
seçeneği, bazı uygulamalar için arabelleğe alma ve çoklu iş parçacıklarını basitleştirebilir.
Medya oynatma kontrolü
Yeni bildirim ve medya API'lerini kullanarak
sistem arayüzü, medya oynatmanızı bilir ve albüm kapağını çıkarıp gösterebilir.
Yeni
MediaSession
ve
MediaController
sınıf.
Yeni MediaSession
sınıfının yerini alır
kullanımdan kaldırılan RemoteControlClient
sınıfını kullanır ve
aktarım denetimlerini ve medya düğmelerini yönetmek için tek bir geri çağırma yöntemleri grubu.
Uygulamanız medya oynatma özelliği sağlıyor ve Android üzerinde çalışıyorsa
TV veya
Wear platformunda kullanmak için
Taşıma işleminizi gerçekleştirecek MediaSession
sınıf
aynı geri çağırma yöntemlerini kullanarak kontrol eder.
Artık yeni medya denetleyici ile kendi medya denetleyici uygulamanızı
MediaController
sınıf. Bu sınıf şunları sağlar:
Medya oynatmayı, uygulamanızın kullanıcı arayüzü işleminden izleyip kontrol etmenin, iş parçacığı açısından güvenli bir yöntem sunmasını sağlar.
Kumanda oluştururken MediaSession.Token
belirtin
uygulamanızın belirtilen MediaSession
ile etkileşimde bulunabilmesi için nesnel
MediaController.TransportControls
yöntemlerini kullandığınızda
play()
, Google Etiket Yöneticisi ve
stop()
,
skipToNext()
,
ve setRating()
bu oturumda medya oynatmayı
kontrol edebilirsiniz. Kumandayla şunları da yapabilirsiniz:
bir MediaController.Callback
nesnesini kaydedin
oturumdaki meta verileri ve durum değişikliklerini dinlemeniz gerekir.
Ayrıca, oynatma kontrolüne olanak tanıyan zengin bildirimler de oluşturabilirsiniz.
yeni Notification.MediaStyle
ile bir medya oturumuna bağlandı
sınıfını kullanır.
Medyaya göz atma
Android 5.0, uygulamaların medya içeriğine göz atma yeteneğini sunuyor
başka bir uygulamanın kitaplığındaki yeni
android.media.browse
API'ye gidin. Uygulamanızdaki medya içeriğini göstermek için
MediaBrowserService
sınıf.
MediaBrowserService
,
Uygulamaların medya içeriğini oynatabilmesi için MediaSession.Token
bir hizmet sunulur.
Bir medya tarayıcı hizmetiyle etkileşimde bulunmak için
MediaBrowser
sınıf. Bileşeni belirtin
bir MediaSession
adı oluştururken
MediaBrowser
örneği. Bu tarayıcı örneğini kullanarak
daha sonra uygulamanız ilişkilendirilmiş hizmete bağlanarak
Oynatılacak MediaSession.Token
nesne gösteriliyor
gerekiyor.
Depolama
Dizin seçimi
Android 5.0 Depolama Erişim Çerçevesi kullanıcıların bir dizin alt ağacının tamamını seçmesine olanak tanıyarak uygulamalara okuma/yazma erişimi verir eklenen tüm dokümanlara uygulanır.
Bir dizin alt ağacı seçmek için bir dizin alt ağacı derleyip gönderin
OPEN_DOCUMENT_TREE
.
isteyebilirsiniz. Sistemde tüm reklamlar
Alt ağaç seçimini destekleyen DocumentsProvider
örnek,
Dizine göz atıp bir dizin seçmesini sağlar. Döndürülen URI,
erişim izni verebilirsiniz. Ardından buildChildDocumentsUriUsingTree()
uzantısını kullanabilirsiniz
ve buildDocumentUriUsingTree()
şununla birlikte:
query()
alt ağacı keşfedin.
Yeni createDocument()
yöntemi, istediğiniz yerde yeni dokümanlar veya dizinler oluşturmanıza olanak tanır
alt ağacın altında. Mevcut dokümanları yönetmek için şunu kullanın:
renameDocument()
ve
deleteDocument()
.
Bunu kontrol edin: COLUMN_FLAGS
.
DocumentsProvider
uyguluyorsanız ve
alt ağaç seçimini desteklemek için isChildDocument()
uygulayın ve FLAG_SUPPORTS_IS_CHILD
ekleyin
COLUMN_FLAGS
içinde.
Android 5.0 ayrıca
uygulamanızın dahil edilmek üzere medya dosyaları yerleştirebileceği paylaşılan depolama alanı
MediaStore
Yeni
getExternalMediaDirs()
, şuna giden yolları döndürür:
dizinleri oluşturabilirsiniz. Şuna benzer:
getExternalFilesDir()
,
Uygulamanızın döndürülen yollara erişmek için ek izinlere ihtiyacı yoktur. İlgili içeriği oluşturmak için kullanılan
platform, bu dizinlerdeki yeni medyaları düzenli olarak tarar ancak
yeni verileri açıkça taramak için MediaScannerConnection
kullanın
içerik.
Kablosuz ve Bağlantı
Çoklu ağ bağlantıları
Android 5.0, uygulamanızın farklı cihazlarda görüntülenebilmesi için yeni çoklu ağ API'leri belirli özelliklere sahip kullanılabilir ağları dinamik olarak tarayabilir ve onlarla bağ kurabilirsiniz. Bu işlev, uygulamanız supL, MMS veya operatör faturalandırması ağı gibi özel bir ağ gerektirirse Belirli bir aktarım protokolü türünü kullanarak veri göndermek istiyorsanız.
Uygulamanızdan dinamik olarak bir ağ seçmek ve ağa bağlanmak için aşağıdaki adımları uygulayın: için şu adımları izleyin:
ConnectivityManager
oluşturun.NetworkRequest.Builder
sınıfını kullanarakNetworkRequest
nesnesi ve ağ özelliklerini belirtin ve ulaşım türünü seçin.- Uygun ağları taramak için
requestNetwork()
numaralı telefonu arayın ya daregisterNetworkCallback()
veNetworkRequest
nesnesi ve bir uygulamasıConnectivityManager.NetworkCallback
. Şunu kullanın: Tespit edilen uygun bir ağa aktif olarak geçiş yapmak istiyorsanızrequestNetwork()
yöntemini; almak için aktif olarak geçiş yapmadan yalnızca taranan ağlara ait bildirimleri almak için Bunun yerineregisterNetworkCallback()
yöntemini kullanın.
Sistem uygun bir ağ tespit ettiğinde ağa bağlanır ve
şunu çağırır:
onAvailable()
.
geri arama. Geri çağırma işlevindeki Network
nesnesini
ağ hakkında ek bilgi almak veya
seçili ağ.
Bluetooth Düşük Enerji
Android 4.3, şunun için platform desteğini kullanıma sundu: Bluetooth Düşük Enerji (Bluetooth LE) var. Android 5.0'da artık Android cihazlar bir Bluetooth LE çevre birimi cihazı işlevi görür. Uygulamalar bu özelliği kullanabilir bilmelerini sağlıyor. Örneğin, şirket çalışanlarına bir adım ölçer veya sağlık monitörü olarak kullanılmasına ve iletişim kurulmasına olanak bağlantısını kesebilir.
Yeni android.bluetooth.le
API'leri, uygulamalarınızın yayın yapmasına olanak tanır
reklamlar, yanıtlar için tarama ve yakındaki Bluetooth ile bağlantı oluşturma
LE cihazları. Yeni reklamcılık ve tarama özelliklerini kullanmak için
BLUETOOTH_ADMIN
.
izni ekleyebilirsiniz. Kullanıcılar uygulamanızı Play Store'dan güncellediklerinde veya indirdiklerinde,
kullanıcıdan uygulamanıza aşağıdaki izni vermesi istenir:
"Bluetooth bağlantı bilgileri: Uygulamanın Bluetooth'u kontrol etmesini sağlar.
yakındaki Bluetooth cihazlara yayın yapma veya bu cihazlarla ilgili bilgi alma dahil."
Diğer cihazların keşfedebilmesi için Bluetooth LE reklamcılığına başlamak
telefon edin,
startAdvertising()
.
ve
AdvertiseCallback
sınıf. Geri çağırma nesnesi
Reklam çalışmasının başarılı veya başarısız olduğuna dair bir rapor alır.
Android 5.0, ScanFilter
sınıfını kullanıma sunuyor.
tarayabileceğinden yalnızca
belirli cihaz türlerine göre değişir. Bluetooth taramasını başlatmak için
LE cihazları, startScan()
numaralı telefonu arayın
ve bir filtre listesi
geçirebilirsiniz. Yöntem çağrısında,
bir değişiklik olduğunda raporlamak için ScanCallback
Bluetooth LE reklamı bulundu.
NFC geliştirmeleri
Android 5.0 daha geniş bir kitleye ve daha fazlasına olanak tanımak için bu geliştirmeleri ekler. NFC'nin esnek kullanımı:
- Android Beam artık paylaş menüsünde kullanılabilir.
- Uygulamanız, verileri aşağıdaki yöntemlerle paylaşmak için kullanıcının cihazında Android Beam'i çağırabilir.
invokeBeam()
aranıyor. Bu sayede, kullanıcının cihazı başka bir cihaza manuel olarak dokunması gerekmez Veri aktarımını tamamlamak için NFC özellikli bir cihaz. - UTF-8 metin verileri içeren bir NDEF kaydı oluşturmak için yeni
createTextRecord()
yöntemini kullanabilirsiniz. - Bir ödeme uygulaması geliştiriyorsanız artık şunları yapabilirsiniz:
şunu çağırarak bir NFC uygulama kimliğini (AID) dinamik olarak kaydetmek
registerAidsForService()
Ayrıca, kullanılması gereken kart emülasyon hizmetini ayarlamak içinsetPreferredService()
ön planda belirli bir etkinlik olduğunda kullanılabilir.
Volta Projesi
Android 5.0, yeni özelliklere ek olarak pille ilgili iyileştirmelere de önem verir. hayat. Uygulamanızın gücünü anlamak ve optimize etmek için yeni API'leri ve aracı kullanın tüketim.
İşleri planlama
Android 5.0, yeni bir JobScheduler
Sistemin çalıştıracağı işler tanımlayarak pil ömrünü optimize etmenizi sağlayan API
veya belirtilen koşullar altında (örneğin,
cihaz şarj oluyor). İş planlaması şu durumlarda yararlıdır:
- Uygulamada, kullanıcıya yönelik olmayan ve erteleyebileceğiniz çalışmalar var.
- Uygulama, birim takılıyken yapmayı tercih ettiğiniz işlemler içeriyor.
- Uygulamada ağ erişimi veya kablosuz ağ gerektiren bir görev var bağlantı.
- Uygulamada, düzenli aralıklarla toplu şekilde çalıştırmak istediğiniz birkaç görev vardır: hakkında bilgi edindiniz.
Çalışma birimi, bir JobInfo
nesnesi tarafından kapsüllenir.
Bu nesne, planlama ölçütlerini belirtir.
JobInfo.Builder
gerektiğini bileceksiniz. Görevi belirli bir alt yapı altında çalışacak şekilde
koşulları karşılayabilir, örneğin:
- Cihaz şarj olurken başlat
- Cihaz sınırsız bir ağa bağlandığında başlat
- Cihaz boşta kaldığında başlat
- Belirli bir son tarihten önce veya minimum bir gecikmeyle bitirme
Örneğin, görevinizi bir cihazda çalıştırmak için sınırsız ağ:
Kotlin
val uploadTask: JobInfo = JobInfo.Builder( jobId, serviceComponent /* JobService component */ ).run { setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED) build() } val jobScheduler = context.getSystemService(Context.JOB_SCHEDULER_SERVICE) as JobScheduler jobScheduler.schedule(uploadTask)
Java
JobInfo uploadTask = new JobInfo.Builder(jobId, serviceComponent /* JobService component */) .setRequiredNetworkCapabilities(JobInfo.NETWORK_TYPE_UNMETERED) .build(); JobScheduler jobScheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE); jobScheduler.schedule(uploadTask);
Cihazın stabil bir gücü varsa (yani cihaz daha uzun süre fişe takılıysa 2 dakikadan fazla kullanıldıysa ve pil sağlıklı seviye), sistem, çalıştırılmaya hazır olan planlanmış bir işi çalıştırır. son tarihin sona ermediğinden emin olun.
JobScheduler
API'nin nasıl kullanılacağına dair bir örnek görmek için:
Bu sürümdeki JobSchedulerSample
uygulama örneğine bakın.
Pil kullanımı için geliştirici araçları
Yeni dumpsys batterystats
komutu
bir cihazdaki pil kullanımıyla ilgili, benzersiz kullanıcı kimliğine göre düzenlenmiş istatistiksel veriler
(UID). İstatistikler şunları içerir:
- Pille ilgili etkinliklerin geçmişi
- Cihazla ilgili genel istatistikler
- UID ve sistem bileşeni başına yaklaşık güç kullanımı
- Uygulama başına mobil ms (paket başına)
- Sistem UID'sinin toplu istatistikleri
- Uygulama UID'si toplu istatistikleri
Çeşitli seçenekleri öğrenmek için --help
seçeneğini kullanın.
ve çıktıyı uyarlayabilirsiniz. Örneğin, pil kullanımını yazdırmak için
cihazın son şarjından bu yana belirli bir uygulama paketinin istatistikleri; bu dosyayı
komut:
$ adb shell dumpsys batterystats --charged <package-name>
URL parametrelerinin Google tarafından nasıl ele alınmasını istediğinizi belirtmek için
Pil Tarihçisi
aracını kullanarak dumpsys
komutunun çıkışını
günlüklerden güçle ilgili etkinliklerin HTML görselleştirmesini oluşturur. Bu
bilgileri, pilleri anlamanızı ve teşhis etmenizi kolaylaştırır
bazı işaretler bulabilirsiniz.
İş Yerinde ve Eğitimde Android
Yönetilen temel hazırlık
Android 5.0, Google Play'de uygulamaları çalıştırmak için kurumsal bir ortam yaratmak. CEVAP cihaz yöneticisi tarafından Ortak ancak ayrı bir hesap eklemek için yönetilen temel hazırlık işlemi başlatın. yönetilen profil (kullanıcının mevcut kişisel hesabı varsa). Yönetilen profillerle ilişkili uygulamalar, yönetilmeyen uygulama ve bildirimler görebilirsiniz.
Yönetilen temel hazırlık işlemini başlatmak için
Intent
içinde ACTION_PROVISION_MANAGED_PROFILE
. Öğe
başarılı olursa sistem,
onProfileProvisioningComplete()
geri arama.
Ardından şu numarayı arayabilirsiniz: setProfileEnabled()
bu yönetilen profili etkinleştir.
Varsayılan olarak, yönetilen profilde uygulamaların yalnızca küçük bir kısmı etkinleştirilir.
Yönetilen profile daha fazla uygulama yüklemek için şu numarayı arayabilirsiniz:
enableSystemApp()
Bir Başlatıcı uygulaması geliştiriyorsanız başlatılabilir etkinliklerin listesini almak için yeni LauncherApps
sınıfını kullanabilirsiniz
ve ilişkili yönetilen tüm profiller için geçerli olacaktır. Launcher'ınız şunları yapabilir:
yönetilen uygulamalar simgesine bir iş rozeti eklenerek, görsel olarak belirgin
çekilebilir. Rozetli simgeyi almak için şu numarayı arayın:
getUserBadgedIcon()
Yeni işlevleri nasıl kullanacağınızı öğrenmek için
Bu sürümde BasicManagedProfile
uygulama örneği.
Cihaz sahibi
Android 5.0, cihaz sahibi uygulamalarını dağıtma özelliğini sunar. Bir cihaz
sahip özel bir türdür
cihaz yöneticisi
oluşturma ve kaldırma özelliklerine sahip olan ve ayrıca, kullanıcı başına
cihazın genel ayarlarını yapılandırabilirsiniz. Cihaz sahibi uygulamanız
DevicePolicyManager
sınıfındaki
yönetilen cihazlardaki yapılandırma, güvenlik ve uygulamalar üzerinde ayrıntılı denetim.
Bir cihazın aynı anda yalnızca bir etkin cihaz sahibi olabilir.
Bir cihaz sahibini dağıtmak ve etkinleştirmek için NFC veri aktarımı gerçekleştirmeniz gerekir Cihazın temel hazırlığı yapılmamış durumdayken bir programlama uygulamasından cihaza durumu. Bu veri aktarımı, temel hazırlık niyetindekiyle aynı bilgileri gönderir Yönetilen temel hazırlık bölümünde açıklanmıştır.
Ekran sabitleme
Android 5.0'da sunulan yeni ekran sabitleme API'si: kullanıcıların görevinizden ayrılmasını veya bildirimlerin sizi kesintiye uğratmasını kısıtlayabilirsiniz. Örneğin, eğitim uygulaması geliştiriyorsanız bu uygulama kullanılabilir: Android'de önemli değerlendirme şartlarını desteklemesi ya da kiosk uygulaması. Uygulamanız ekran sabitlemeyi etkinleştirdiğinde kullanıcılar diğer uygulamalara erişme veya ana ekrana dönme gibi gerekir.
Ekran sabitlemeyi etkinleştirmenin iki yolu vardır:
- Manuel olarak: Kullanıcılar ekran sabitlemeyi etkinleştirebilir Ayarlar > Güvenlik > Ekran Sabitleme'yi tıklayıp istedikleri görevleri Son kullanılanlar ekranındaki yeşil iğne simgesine dokunarak raptiyeyi sabitleyebilirsiniz.
- Programatik olarak: Ekran sabitlemeyi etkinleştirmek için
programatik olarak,
startLockTask()
yöntemini çağırın nasıl sağlayabileceğini de öğreneceksiniz. İstekte bulunan uygulama cihaz sahibi değilse kullanıcıdan istenir bakın. Cihaz sahibi uygulamasısetLockTaskPackages()
. yöntemini kullanmalarını öneririz.
Görev kilitleme etkinken aşağıdaki davranış gerçekleşir:
- Durum çubuğu boş. Kullanıcı bildirimleri ve durum bilgileri de gizlendi.
- Ana Sayfa ve Son Uygulamalar düğmeleri gizlenir.
- Diğer uygulamalar yeni etkinlik başlatamaz.
- Mevcut uygulama, başlamadığı sürece yeni etkinlikler başlatabilir yeni görevler oluşturabilirsiniz.
- Ekran sabitleme özelliği bir cihaz sahibi tarafından çağrıldığında kullanıcı kilitli kalır
uygulama arayana kadar
stopLockTask()
- Ekran sabitleme özelliği, cihazın sahibi olmayan veya kullanıyorsanız kullanıcı Geri ve Son düğmelerini basılı tutarak çıkış yapabilir.
Yazdırma Çerçevesi
PDF'yi bit eşlem olarak oluştur
Artık PDF doküman sayfalarını yazdırma için bit eşlem resimlerine dönüştürebilirsiniz:
yeni PdfRenderer
sınıfı kullanılıyor. Belirtmeniz gereken:
Aranabilen ParcelFileDescriptor
(yani içerik
(rastgele erişilebilir) kullanılabilir.
Uygulamanız, oluşturmak üzere bir sayfayı alabilir
openPage()
, ardından telefon et
render()
açık PdfRenderer.Page
öğesini bir bit eşlemeye dönüştürün. Siz
Ayrıca, yalnızca bir kısmını dönüşüm bu bölümde
bir belgeye dönüştürmenize olanak tanır (örneğin,
karo oluşturma
yakınlaştırın veya uzaklaştırın).
Yeni API'lerin nasıl kullanılacağıyla ilgili bir örnek için PdfRendererBasic
sayfasını ziyaret edin.
örneklem.
Sistem
Uygulama kullanım istatistikleri
Artık
yeni android.app.usage
API. Bu API, daha ayrıntılı kullanım sağlar
bilgileri de
getRecentTasks()
yöntemini çağırın.
Bu API'yi kullanmak için önce şunu beyan etmeniz gerekir:
Manifest dosyanızda "android.permission.PACKAGE_USAGE_STATS"
izniniz var.
Kullanıcı ayrıca Ayarlar > Güvenlik > Uygulamalar
erişebilir.
Sistem, kullanım verilerini uygulama bazında toplar ve verileri günlük, haftalık, aylık ve yıllık aralıklarla görebilirsiniz. Maksimum süre saklaması gereken işin aşağıdaki gibi olduğunu görürsünüz:
- Günlük veriler: 7 gün
- Haftalık veriler: 4 hafta
- Aylık veriler: 6 aylık
- Yıllık veriler: 2 yıl
Sistem, her uygulama için aşağıdaki verileri kaydeder:
- Uygulamanın en son kullanıldığı zaman
- Söz konusu zaman aralığında uygulamanın ön planda olduğu toplam süre (güne, haftaya, aya veya yıla göre)
- Bir bileşen (paket ve etkinlik adıyla tanımlanır) olduğunda yakalanan zaman damgası bir gün boyunca ön plana veya arka plana taşındı
- Cihaz yapılandırması değiştiğinde (ör. cihaz yönü, döndürme nedeniyle değiştirildi)
Test ve Erişilebilirlik
Test ve erişilebilirlik iyileştirmeleri
Android 5.0, test ve destek için aşağıdaki erişilebilirlik:
- Yeni
getWindowAnimationFrameStats()
vegetWindowContentFrameStats()
Yöntemleri sayesinde pencere animasyonları ve içerikler için çerçeve istatistiklerini yakalar. Bu yöntemler bir uygulamanın uygulama yükleme işlemleri tarafından oluşturulup oluşturulmadığını değerlendirmek için sorunsuz bir kullanıcı deneyimi sağlamak için kareleri yeterli yenileme sıklığında kontrol edin. - Yeni
executeShellCommand()
. yöntemi, araç testinizden kabuk komutlarını çalıştırmanızı sağlar. İlgili içeriği oluşturmak için kullanılan komut yürütme, ana makinedenadb shell
çalıştırmaya benzer kullanarak kabuk tabanlı araçları kullanmanıza olanak tanır.dumpsys
,am
,content
vepm
. - Erişilebilirlik API'lerini kullanan erişilebilirlik hizmetleri ve test araçları
(ör.
UiAutomator
) şimdi ekran görüntüsü ekler. BirAccessibilityWindowInfo
nesne, yeni nesneyi çağırgetWindows()
yöntemidir. - Yeni
AccessibilityNodeInfo.AccessibilityAction
class, bir web sitesinde gerçekleştirilecek standart veya özelleştirilmiş işlemleri tanımlamanızaAccessibilityNodeInfo
. YeniAccessibilityNodeInfo.AccessibilityAction
sınıfı, önceden bulunan ve işlemlerle ilgili API'lerin yerini alır.AccessibilityNodeInfo
. - Android 5.0, metin okuma sentezi üzerinde daha hassas denetim sağlar.
en iyi şekilde yararlanabilirsiniz. Yeni
Voice
sınıfı, uygulamanızın şunları yapmasına olanak tanır: Belirli yerel ayarlar, kalite ve gecikmeyle ilişkili ses profilleri kullanın değerini ve metin okuma motoruna özgü parametreleri bulabilirsiniz.
IME
Giriş dilleri arasında daha kolay geçiş
Android 5.0 sürümünden itibaren kullanıcılar
tüm girişler
yöntem düzenleyicileri (IME) platformu tarafından desteklenir. Belirlenen görevlerin gerçekleştirilmesi
değiştirme işlemi (genellikle ekran klavyesinde Yerküre simgesine dokunma) döngüleri
üzerinden geçin. Bu davranış değişikliği
shouldOfferSwitchingToNextInputMethod()
.
yöntemidir.
Buna ek olarak, çerçeve artık bir sonraki IME'de kullanılabilecek bir
mekanizmaya geçmemesini sağlar (ve dolayısıyla IME'nin bu modele
IME'yi ekleyin).
Geçiş mekanizması olan IME, olmayan IME'ye geçmez. Bu
davranış değişikliğinin Google tarafından
switchToNextInputMethod()
.
yöntemidir.
Güncellenmiş IME geçiş API'lerinin nasıl kullanılacağına ilişkin bir örnek için bu sürümde güncellenmiş yazılım uygulama örneği verilmiştir. Şu konu hakkında daha fazla bilgi edinmek için: IME'ler arasında geçiş yapma hakkında daha fazla bilgi için Giriş Yöntemi Oluşturma.
Manifest Beyanları
Beyan edilen gerekli özellikler
Aşağıdaki değerler artık
<uses-feature>
öğesidir. Böylece uygulamanızın yalnızca
uygulamanızın ihtiyacı olan özellikleri sağlayın.
FEATURE_AUDIO_OUTPUT
FEATURE_CAMERA_CAPABILITY_MANUAL_POST_PROCESSING
FEATURE_CAMERA_CAPABILITY_MANUAL_SENSOR
FEATURE_CAMERA_CAPABILITY_RAW
FEATURE_CAMERA_LEVEL_FULL
FEATURE_GAMEPAD
FEATURE_LIVE_TV
FEATURE_MANAGED_USERS
FEATURE_LEANBACK
FEATURE_OPENGLES_EXTENSION_PACK
FEATURE_SECURELY_REMOVES_USERS
FEATURE_SENSOR_AMBIENT_TEMPERATURE
FEATURE_SENSOR_HEART_RATE_ECG
FEATURE_SENSOR_RELATIVE_HUMIDITY
FEATURE_VERIFIED_BOOT
FEATURE_WEBVIEW
Kullanıcı izinleri
Aşağıdaki izin artık
<uses-permission>
öğesi kullanabilirsiniz.
BIND_DREAM_SERVICE
: API hedeflenirken 21. seviye ve üstündeyseniz bu iznin, Daydream hizmeti, yalnızca sistemin bağlanmasını sağlamak için.