AndroidManifest.xml Neden Önemli ? // Başlıkların Açıklamaları




Her android projesinin, proje kaynak setinin kökünde AndroidManifest.xml adında bir xml dosyası vardır.Bu dosya yeni proje oluşturduğumuzda Android Studio tarafından default olarak proje kökümüze eklenir.
Manifest dosyası genel olarak uygulamamızın işlevlerini-gereksinimlerini ifade etmemizi sağlıyor. Uygulamamızda sağlamak istediğimiz yapıya göre bu dosyayı tagler ve öznitelikleri ile yönetebiliyoruz. Bu dosyayı inceleyerek zararlının nasıl özelliklere sahip olduğunu birkaç başlık ile örneklendirecek olursak;

- Uygulamamızın adını, iconunu, temasını bildirmek

- Uygulamada kullanılacak version numaralarını, kütüphaneleri, minimum ve geçerli SDK sürümlerini bildirmek

- Uygulamanın gerektirdiği veya uygulamada kullanacağımız yazılım-donanım özelliklerini bildirmek (kamera, bluetooth vs.)

- Uygulama izinlerini belirlemek (internet bağlantısı, kullanıcı izinleri vs.)

- Activitylerimizi yönetmek ve bu activitylerin özelliklerini bildirmek şeklinde devam edilebilir.

Bu dosyanın önemini anlamak için biraz da android uygulamaların çalışma prensipleriyle ilgili temel bilgilere sahip olmalıyız. Bağlantısını şematize edecek olursak



Şimdi ise örnek bir xml dosyasının taglarını inceleyecek olursak

Kod:





















Tagların Açıklamaları

: Dosyamızın ana tagidir. Paket adı, version numaraları dahil başlıca özellikler burada bulunur. Eklenen diğer tagleri bu tag içerisine eklidir. Manifest tagi application tagi içermek zorundadır.

: Uygulamanın temel değişkenlerini belirlendiği tagdir. Uygulamanın adı, iconu, teması, gereken izinler, donanım ayarları, kullanıcı alanının yönetimi, yedekleme ayarları, ekran özelliklerini belirleme gibi işlevlerini bu tagde biçimlendirilmiştir.

: Uygulamanın doğru çalışması için kullanıcının vermesi gereken sistem izinleridir. İnternet erişimi, kamera kullanımı, kullanıcı alanına ulaşım vs.

: Uygulamanın belirli bileşenlerine veya özelliklerine erişimi sınırlamak için kullanılabilecek bir güvenlik izni olduğunu ifade eder.

: Bu tag bir izin değil, başka izinlerin yerleştirilebileceği bir izin ağacı için taban adını bildirir.

: İzinlerin mantıksal gruplandırılabilmesi için bir ad bildirir.

: Uygulamanın sistemle olan etkileşimini izlememizi sağlayan sınıfı bildirir. Bu sınıfın nesnesi uygulamanın herhangi bir
bileşeninden önce başlatılır ve uygulamayla ilgili testleri yerine getiren bileşendir.

: İsminde SDK geçiyor olmasına rağmen bu tag SDK ve Android platformunun versionunu değil API seviyesini belirlemek için kullanılır. API seviyesi daima tam sayıdır.

: Uygulamanın gerektirdiği yazılım ve donanım özelliklerini belirtir. Örneğin uygulama fiziksel bir klavye gerektiriyor olabilir.

: Uygulama tarafından kullanılan tek bir donanım veya yazılım özelliğini bildirir. Özellik desteği android cihazlarda farklılık gösterebileceği için bu tag ile belirtilen özellikler olmadan da uygulamanın çalışacağını belirtir.

[B][/B]: Uygulamanın desteklediği ekran boyutlarını belirtmemizi ve uygulamanın desteklediğinden daha büyük ekranlar için ekran uyumluluğu modunu etkinleştirmemizi sağlar.

: Uygulamanın uyumlu olduğu ekran yapılandırmasını belirtir. Android sistemi bu tagi okumaz yalnızca bilgi vermek içindir.

: Uygulamanın desteklediği sıkıştırılma formatını bildirir. Bir uygulama bir cihaza yüklendiğinde bu formatta sıkıştırılmış varlıkları sağlama yeteneğine sahipse,sıkıştırma formatını destekliyor demektir.

: Uygulamadaki activityleri ve özelliklerini belirtir.

: Üst taginin ne tür intent yetenekleri olduğunu belirtir,sınırlar.

: intent-filter tagine bir özellik ekler.

: intent-filter taginin kategori adını belirtir.

: intent-filter taginin varsa URI?ını belirtir.

: Üst tag e eklenebilecek isteğe bağlı ad-değer çiftidir. Bu değerler bir Bundle nesnesinde toplanır.

: Herhangi bir sebepten dolayı bir activitynin manifest içinde yönettiğiniz özelliklerine başka bir activitynin sahip olmasını istiyorsak, sahip olmasını istediğimiz activitye bu tag ile sahip olmasını istediğimiz activitynin adını takma ad olarak veririz.

: Uygulamanın servis elemanları ve servis kullanımlarını belirtir.

: İşletim sistemi tarafından uygulamaya gönderilen mesajları dinlemek ve takip etmek için kullanılır.

: Uygulamanın içerik sağlayıcı tagidir, içeriğin değer ve değişkenlerini belirtir.

: Providerın erişme izni olan veri kümelerini belirtir,içerik bir URI?dır.

: Providerın belirli bir veri kümesi için gerekli izinleri belirtir.