Android: Root Olmadan, Uygulamaları Hafıza Kartına Taşımak
08 Eyl 2011
Uzun bir aradan sonra merhaba blog
Bilindiği gibi android işletim sistemli telefonlarda en büyük sıkıntılardan biri, ve özellikle dahili hafızası kısıtlı olanlarda, bazı uygulamaların hafıza kartına taşınamaması. Bunun nedeni Android Froyo 2.2 sürümünden önce uygulamaların hafıza kartına yükleme desteğinin olmaması veya uygulama geliştiricisinin tercihi. Android 2.2′den itibaren uygulamaların hafıza kartına taşınıp taşınamayacağı seçeneği uygulama geliştiricisine bırakıldı.
Tüm programları hafıza kartına taşımanın bir yöntemi root etmek. Ancak bu işlem cihazların garantilerini bozuyor. Tabii root edilmiş bir android telefonla, uygulamaları hafıza kartına taşımak dışında sistem dosyalarını değiştirebilme gibi üst düzey bilgi ve dikkat gerektiren şeyler de yapılabilir. Fakat sadece uygulamaları hafıza kartına kurmak ihtiyacı olanlar için root gereksiz sayılabilir. Telefonu root etmek istemeyenler için Android SDK kullanarak yapılan bir yöntem daha var. Hem de geri dönüşümlü.
İşlemleri sırasıyla anlatıyorum:
1. Telefonda; Menü>Ayarlar>Uygulamalar>Gelişim>USB Hata Ayıklama açık olsun.
2. Telefonun kutusundan çıkan CD ile telefon üreticisinin internet sitesinden, geliştirdiği uygulamayı bilgisayarınıza kurun. Örneğin ben Samsung Gio telefonum için Samsung’un ürettiği Kies yazılımını kullandım. Siz de telefonunuz için üretici firmanın geliştirdiği programı yükleyin.
3. Telefonu USB’den bilgisayara bağlayın.
4. Buradan Android SDK’in zip versiyonunu indirin: http://developer.android.com/sdk/index.html
5. Zip dosyasını açarak içinden çıkan klasörün ismini android yapın ve bu klasörü C:\ dizinine kopyalayın.
(İsmi, komut satırına yazması kolay olsun diye değiştiriyoruz)
6. Zipin içinden çıkan SDK Manager programını çalıştırın.
7. Settings’ten “Force https:// sources to be fetched using http://” kutucuğunu işaretleyin.
8. Available Packages’dan Platform-tools’u yükleyin ve programı kapatın.
(Bulamazsanız, alttaki display updates onlyi kaldırın, android repository altında..)
9. Windows’tan Başlat>Çalıştır’a girin. CMD yazıp enter’a basın.
(Windows 7′de direk arama kutusuna CMD yazın)
10. Açılan komut penceresinde “cd c:\android\platform-tools\” yazıp enter’a basın.
(Tırnaklar olmadan)
11. Şimdi “adb shell pm setInstallLocation 2″ yazarak enter’a basın. (tırnak yok ) İşlem tamam. Herhangi bir mesaj çıkmıyor. Bir hata mesajı çıkarsa bir yerlerde hata var demektir.
12. Tüm pencereleri kapatıp telefonu çıkartın. Telefonu kapatıp açın.
13. İsterseniz uygulamaları yönet’ten tek tek elle uğraşarak, isterseniz App 2 SD gibi bir programlar kolay bir şekilde tüm uygulamaları hafıza kartına taşıyabilirsiniz. Ayrıca yeni yüklenen uygulamaların hepsi otomatik olarak hafıza kartına yüklenir.
Not: Widgetlar, live wallpaperlar, service şeklinde devamlı çalışan uygulamalar, IM uygulamaları vs. hafıza kartına taşınırsa problem yaratabilir. Çünkü hafıza kartını çıkardığınızda yada bilgisayara USB bellek olarak telefonu bağladığınızda hafıza kartına iletişim kesilir. Bu tür programları hafıza kartına taşımanızı tavsiye etmiyorum.
14. Telefonu eski haline döndürmek için, tekrar USB’den bilgisayara bağlıyoruz. 9. ve 10. adımları tekrarlıyoruz. Ondan sonra bu sefer “adb shell pm setInstallLocation 0″ yazarak enter’a basıyoruz. Telefon eski haline dönüyor. Taşıdığımız uygulamalar hafıza kartında kalıyor.
Yaptığımız işlem default olarak uygulamaların yükleneceği yeri hafıza kartı olarak ayarlamak. Normalde uygulamaların yükleneceği yer telefon tarafından seçiliyor.Root gibi bir işlem olmadığı için garantiyi bozacağını sanmıyorum. Ama garanti de vermiyorum. Kendim v2.2.1 Froyo versiyonlu Samsung Galaxy Gio telefonumda denedim. Ayrıca daha sonra resmi olarak çıkan v2.3.4 Gingerbread güncellemesini yaptım ve bu ayarlar değişmedi. Kısacası herhangi bir sorun yaşamadım. Ama bu sizde kesinlikle bir sorun yaşamayacağınız anlamına gelmez. Çıkabilecek sorunlar; uygulamanın yavaş çalışması ya da hiç çalışmaması olabilir. Bende olmadı ama böyle bir durumda uygulamayı tekrar telefona taşıyabilirsiniz.