|
Önceki Yazılarda tanıtmış oldugumuz ifixit.com isimli sitede android sistemli nexus'u parçalarına ayırmışlardı şimdiki yazımızda ise donanımsal olarak değilde yazılımsal olarak kaynagınaineceğiz.Android Veri Tabanı bize hertürlü bilgiyi sağlayacaktır.Bazen geliştirdiğimiz uygulamalarda cihaz üzerinde tutulan verilere ihtiyacımız oluyor. Telefon rehberi, arama kayıtları, bookmarklar, müzik arşivi, sistem ayarları gibi bilgiler Android’in SQLite veri tabanında sakladıklarından bazıları. Uygulamayı geliştirirken hem ihtiyacımız olan bilgilerin tutulup tutulmadığını görmek, hem de telefonun iç işleyişini keşfetmek için Android’in kendi tuttuğu veri tabanlarında bir gezinti yapmak isteyebiliriz.
Andoid için uygulama geliştirme ortamımızı hazırladıktan sonra Android SDK’in tools klasöründe bulunan adb aracı bu konuda bize yardımcı olacak. Android Debug Bridge, emulator/cihaz ile bilgisayarımız aramızda bir köprü görevi gören bir uygulama. Komut satırından tools klasörüne giderek adb devices komutu ile bağlanabileceğimiz cihazları listeliyoruz:
Birden fazla cihaz bağlı olsa idi, yazacağımız tüm komutları adb -s emulator-5554 komut şeklinde hangi cihaz üzerinde çalışacağını belirterek yazmamız gerekecekti. Fakat bizde tek cihaz olduğu için, komutlarımızı kısaca adb komut şeklinde yazmamız yeterli olacak.
Dosya Sisteminde Gezinti
Cihaz üzerinde komut satırına erişmek için adb shell komutunu kullanıyoruz.Android işletim sistemi Linux kernel’i üzerine kurulu olduğu için, Linux üzerinde alışkın olduğumuz bazı komutları cihaz üzerinde de çalıştırabiliyoruz. Mesela ls komutu ile dizinleri listeleyebilir, cd dizinadı ile istediğimiz dizine geçebilir, cd .. ile bir üst seviyedeki dizine geri dönebiliriz.
Bu şekilde klasörler arasında dolaşarak istediğimiz bilgilerin nerede durduğunu bulmamız gerekiyor. Mesela veri tabanları genellikle /data/data dizinin altında duruyor. Örnek olarak Contacts uygulamasına ait verilere göz atalım. Bu bilgiler /data/data/com.android.providers.contacts/databases dizininde bulunan contacts.db dosyasında bulunuyor. (NOT: SDK 2.0 ve sonraki sürümlerde contacts2.db olarak geçer).
Database’e Erişim
İncelemek istediğimiz database dosyasını bulduktan sonra, sqlite3 dosyadı komutu ile bu veritabanını inceleyebiliriz. sqlite3 contacts.db diyerek Contacts uygulamasına ait veri tabanını açıyoruz:
sqlite3 içerisindeyken .tables komutu ile o veri tabanında bulunan tabloları listeliyor, .header on diyerek kolon isimlerini görünür kılıyoruz. Daha sonra select * from calls; sorgu cümlesi ile arama kayıtlarına ait tabloda tutulan verileri listeliyoruz.
sqlite3 içerisinde işimize yarayabilecek diğer komutlar şöyle:
.dump tabloismi diyerek tabloyu oluşturmak için gerekli SQL cümlelerini görebilir, .schema tabloismi ile tablonun yapısını öğrenebilir, .help ile de diğer komutları inceleyebilirsiniz. En son .exit diyerek sqlite3′ten çıkarak Android komut satırına geri dönüyoruz.
Cihazdan Dosya Kopyalamak
Komut satırından hoşlanmayanlardansanız, Android’in veri tabanını kendi bilgisayarınıza kopyalayıp, SQLite Database Browser gibi bir araç ile görsel olarak inceleyebilirsiniz. Bunun için adb pull cihazdakidizin localdizin komutunu kullanıyoruz. Mesela Contacts uygulamasına ait veri tabanını bilgisayarımıza kopyalamak için adb pull /data/data/com.android.providers.contacts/databases/contacts.db contacts.db yazarak contacts.db dosyasını tools klasörü altına kopyalamış oluyoruz. (Not: Bu işlemi adb shell içerisinden değil, işletim sisteminin komut satırından yapıyoruz) Daha sonra SQLite Database Browser ile dosyayı açarak içeriğine bakabiliriz:
Hiç yorum yok:
Yorum Gönder