Android Manifest Merging & Overriding

Android projelerinde kullandığımız third party bileşenlerin de kendine özgü çalışma zamanı izinleri (runtime permissions) olabiliyor. Bu izinler genellikle önceden readme dosyalarında "şu izinleri de eklemelisiniz" şeklinde yer almaktayken son zamanlarda kullandığım bir bileşenin üst versiyonunu kullandığımda uygulamanın otomatik olarak bazı ek izinlere daha ihtiyaç duyduğunu gördüm.
Ayrıca bileşen aar şeklinde paketlenmiş halde geldiği için hemen manifest dosyasına bakma imkanım da olmadı. Kısa bir araştırma ile manifest merging işleminin -önceden de minSDK versiyonu için aynı durumu birkaç kez yaşamıştım.- tüm bağımlılıkları da kapsayacak şekilde yapıldığı ve istersek aşağıdaki gibi uygulamamızın manifest dosyasına ekleyeceğimiz remove node attributeu ile bu izinden kurtulabileceğimizi buldum. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="remove"> </uses-permission> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" tools:node="remove"> </uses-permission>
Written on May 14, 2016