Posts Tagged Android

Android Geliştirme İpuçları (I)

Android platformunda geliştirme yaparken hayatımı kolaylaştıran ipuçlarını buradan paylaşacağım. İşte ilk ipucu:

1. Google Code Search ile Android Kaynak Kodunu İnceleyin
Tecrübeli yazılımcıların dahil olduğu açık kaynak projelerin kodlarını incelemek bana keyif veriyor, çünkü başkaları tarafından yazılmış kodları okurken farklı düşünme biçimlerini görerek kendimi geliştirme fırsatı buluyorum.

Android platformu açık kaynak olmasına rağmen kaynak koduna erişmek oldukça zahmetli. Bu noktada imdadıma Google Code Search geliyor, kaynak kodunu görmek istediğim class’ı classadı package:android şeklinde aratıyorum.

Mesela AsyncTask class’ının işleyişini merak ediyordum, asynctask package:android şeklinde aratarak AsyncTask.java kaynak kodunu incelediğimde içerisinde LinkedBlockingQueue kullanıldığını gördüm.

Başka bir kullanım alanı ise nasıl çağıracağınızı bilmediğiniz fonksiyonların örnek kullanımını görmek için: Mesela ConnectivityManager‘ın requestRouteToHost metodu argüman olarak integer cinsinden bir hostname istiyordu. hostname’i nasıl integer’a çevireceğim konusunda dökümantasyon da açıklayıcı olmayınca, Code Search üzerinden requestRouteToHost şeklinde arama yaparak örnek bir kullanım buldum.

BONUS: Stackoverflow bildiğiniz gibi Android için resmi destek kanallarından birisi. Daha önce kullanmadığım bir class’ı kullanacaksam öncelikle classadı [android] şeklinde android olarak taglenmiş başlıklar arasında arama yaparak insanların neler yapmaya çalıştığını, ne sorunlarla karşılaştığını inceliyorum.

Siz de yorumlarda kendi ipuçlarınızı paylaşırsanız sevinirim.

, , , ,

No Comments

Samsung i7500 Driver Kurulumu

Samsung i7500 (Galaxy) Android cihazını bilgisayarınıza tanıtarak geliştirdiğiniz uygulamaları bu cihaz üzerinde test etmek için gerekli kurulum adımlarından bahsedeceğim.

Kullandığım cihaz üzerinde Android SDK 1.5 kurulu (Settings > About Phone > Firmware version), bilgisayarımda ise 32-bit Windows XP ve Android SDK ile beraber gelen USB Driver package, revision 2 yüklü. Farklı bir konfigürasyona sahipseniz anlatacaklarım sizin için geçerli olmayabilir.

yazi0

Adım 1: Samsung’un sitesinden telefonun driverlarını içeren Samsung New PC Studio uygulamasını indirip kurun.

Adım 2: Telefonunuzun ayarlarına girerek aşağıdaki kontrol edin:

  • Settings > Applications > Development > USB Debugging kutucuğu işaretli olsun
  • Settings > About phone > Additional Settings > Mass store only kutucuğu işaretli olmasın

Adım 3: Bilgisayarınızdaki Android SDK dizininin içerisinde usb_driver klasöründe bulunan android_winusb.inf dosyasını text editörü ile açın.

32-bit işletim sistemi kullanıyorsanız [Google.NTx86] kısmının en altına, 64-bit işletim sistemi kullanıyorsanız [Google.NTamd64] kısmının en altına aşağıdaki satırları ekleyin:

; Samsung galaxy
%CompositeAdbInterface% = USB_Install, USB\VID_04E8&PID_6640&MI_00
%SingleBootLoaderInterface% = USB_Install, USB\VID_04E8&PID_6640&MI_04

Adım 4: Telefonu USB kablosu aracılığı ile bilgisayarınıza bağlayın.  Windows’da Start > Run > devmgmt.msc yazarak Device Manager‘ı çalıştırın.

yazi1

Unknown device’ın üzerine sağ tıklayarak Update Driver‘ı seçin. Çıkan menülerden sırayla No, not this time ve Install from a list or specific location (Advanced) seçeneklerini seçin. Daha sonra Android SDK dizininin altındaki usb_driver klasörünü seçerek Next diyebilirsiniz.

yazi4

Bu aşamadan sonra Android Bootloader Interface yüklenecektir. Artık komut satırında adb devices dediğinizde (öncelikle adb kill-server demeniz gerekebilir) cihazını görebiliyor olmalısınız. Farklı konfigürasyonlar için kendi tecrübelerinizi yorumlarda paylaşırsanız sevinirim.

, , , , , ,

2 Comments

Android’in Veri Tabanlarında Gezinti

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:
 android1
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.

android2

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).

android3

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:
android4
 
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:
 
android5
 

Kaynaklar

, , , ,

No Comments