Komik bir resim, bilgilendirici bir video veya ilgi çekici bir ses klibi olabilir. Kullanıcıların içerik paylaşmasını sağlamak, deneyimlerini zenginleştirir ve en iyi yollarını bulmaya çalışırsınız. Bu belgede, Android, iOS, Android ve iOS'te ihtiyacınız olan API'ler ve teknikler dahil.
Paylaşım için tasarlandı
Android'in tasarımı Amaçlar. Intent, yapılacak işlemin soyut bir açıklamasıdır. Amaçlar, uygulamaların bilgi sahibi olmadan birbirleriyle iletişim kurmasına olanak tanır bir araya gelmelerini sağlar.
Bir uygulama veri paylaşmak veya işlem başlatmak istediğinde içeriğin ve işlemin türünü belirtir. Android sistemi bir liste sunar alakalı uygulamalar arasından seçim yaparak kullanıcının hangi amaçla çalışacağını karar verebilirsiniz. Bu yaklaşım, iş birliğine dayalı bir ekosistemi teşvik eder.
Metin paylaşmak yalnızca birkaç satır koddan oluşur:
val sendIntent: Intent = Intent().apply {
action = Intent.ACTION_SEND
putExtra(Intent.EXTRA_TEXT, "This is my text to share.")
type = "text/plain"
}
val shareIntent = Intent.createChooser(sendIntent, null)
startActivity(shareIntent)
createChooser
satırında Android Sharesheet kullanıcı arayüzü görüntülenir.
kullanıcıların, alakalı uygulama önerileri de dahil olmak üzere bilgileri insanlarla paylaşmasına olanak tanır
tek bir dokunuşla. Android Sharesheet ile başka şeyler de yapabilirsiniz:
- Kullanıcılarınızın ne zaman ve nereye paylaşım yaptığını öğrenme
- Android 10 (API düzeyi 29) ve sonraki sürümlerde zengin metin içerik önizlemeleri sağlama
Android hakkında daha fazla bilgi için Diğer uygulamalara basit veriler gönderme başlıklı makaleye bakın Paylaşım sayfaları ve bunların nasıl kullanılacağı.
alan adının kullanıcıları için daha kolay ve hızlı hale getirmek üzere Doğrudan Paylaşım hedefleri sağlayın diğer uygulamaları kullanarak URL'leri, resimleri veya başka tür verileri uygulamanızla paylaşın. Doğrudan Paylaş, mesajlaşmadaki ve sosyal uygulamalardaki kişileri doğrudan sunarak çalışır Android Sharesheet üzerinden, kullanıcıların uygulamayı seçmesine ve kişiyi arayın.
Zengin içerik alma desteği
OnReceiveContentListener
. Bu API ile
Düz ve stil özellikleri ayarlanmış metinden işaretlemeye kadar tüm içeriği almada kullanılacak kod
resimler, videolar, ses dosyaları ve diğerleri. İçerik, resim klavyelerinden, sürükleyip bırakma veya panodan gelebilir.
Medya dosyalarını paylaşma
Intent'ler az miktarda veri içerebildiğinden Android Dosyalar için güvenli bir herkese açık kullanıcı adı içerme amaçları. Medya dosyaları şuradan güvenli bir şekilde paylaşılıyor: Uygulamanız aşağıdakileri içeriyor:
- Uygulamanızı, dosyaya güvenli bir herkese açık kullanıcı adı sunacak şekilde yapılandırın:
content URI'si (Android
FileProvider
bileşenini kullanır). - Manifest'inizde paylaşılabilir dizinleri belirtin.
- Güvenli bir içerik URL'si işlevi gören bir içerik URL'si oluşturmak için
getUriForFile
kullanın herkese açık kullanıcı adını seçer. - Dosya için izin veren bir Intent oluşturun.
Güvenli bir şekilde nasıl paylaşacağınız hakkında daha fazla bilgi için Dosya paylaşma hakkında başlıklı makaleyi inceleyin. dosyası olarak da kaydedebilir.
Medyayı paylaşım için optimize etme
Uygulamanızdaki diğer kullanıcılarla veya başka bir uygulamada kullanmak istiyorsanız, yüksek kaliteli paylaşmaya istekli olmalıdır.
Kalite ve boyut arasındaki dengeyi kurma
Büyük medya dosyaları, bant genişliği ve depolama alanını hızlı bir şekilde tüketerek can sıkıcı gecikmeler ve kullanıcılarınızdan gelebilecek olası veri aşımları ücretiyle ilgili sorunlarınız olduğu anlamına gelir. Burada en iyi arkadaşınız kompresyondur.
- Resim sıkıştırma: Aşağıdaki gibi modern resim sıkıştırma biçimlerinden yararlanın Geleneksele kıyasla daha üstün sıkıştırma oranları sunan WebP ve AVIF Önemli kalite kaybı olmayan JPEG'ler. Farklı kalitelerle denemeler yapın ayarları gözden geçirin.
- Video sıkıştırma: AV1 veya H.265 (HEVC) teknolojisinin gücünden yararlanın
kullanarak daha iyi sıkıştırma verimliliği sağlamak üzere
mükemmel görsel kalite. Donanım kodlaması olup olmadığını kontrol edebilirsiniz.
Android 10 ve sonraki sürümlerin yüklü olduğu cihazlarda
mediaPerformanceClass
ve cihazınızın neleri en iyi destekleyebileceğini belirleyin. Farklı kullanıcı tercihlerine ve ağ koşullarına hitap etmek için farklı çözünürlük seçenekleri sunabilirsiniz.
fun hasHardwareEncodingSupportFor(mimeType: String): Boolean {
val codecList = MediaCodecList(REGULAR_CODECS)
val codecInfos = codecList.codecInfos
for ( codecInfo in codecInfos ) {
if (!codecInfo.isEncoder()) {
continue;
}
if (!codecInfo.isHardwareAccelerated()) {
continue;
}
val types: Array<String> = codecInfo.getSupportedTypes()
for (j in types.indices) {
if (types[j].equals(mimeType, ignoreCase = true)) {
return true
}
}
}
return false
}
// test for AV1 hardware encoding support
val hasAV1 = hasHardwareEncodingSupportFor("video/av01")
Medyayı uyarlama
Sosyal medya platformları genellikle görüntülü reklamlar için belirli boyutlar ve en boy oranları uygular. paylaşılan medya. Medya dosyalarını önceden yeniden boyutlandırıp kullandığınızda, beklenmedik sorunları giderdiğinizde en beğendikleri platformlarda paylaşım yapan kullanıcılara ulaşmasına yardımcı olur.
Kullanıcıların medyalarını nasıl optimize edebilecekleri konusunda net talimatlar ve rehberlik sağlayın inceleyin. Kodlama bit hızlarını ayarlama, örnekleme parametrelerini ayarlama, video biçimini seçme, uygun dosya boyutlarını seçme veya farklı paylaşım seçeneklerinin etkisini anlama ile ilgili ipuçları bulabilirsiniz.
Medyanın bulunabilirliğini artırma
Medyanıza başlıklar, açıklamalar ve etiketler gibi alakalı meta verileri ekleme dosyalar keşfedilebilirliğini artırabilir. Kullanıcıları kendi deneyimi daha da kişiselleştirmek için uygulamamı paylaşırken açıklamalar ve altyazılar kullanıyor.
Resimlere meta veri ekleme
Jetpack ExifInterface sınıfı JPEG, PNG ve WebP biçimlerinde meta veriler yazar. resim olarak ekleyebilirsiniz.
// sets the title of the image in the form of Exif data
val exif = ExifInterface(imageFile)
exif.setAttribute(ExifInterface.TAG_IMAGE_DESCRIPTION, "Beautiful sunset")
exif.saveAttributes()