image

Nalan Ulusoy

Merhaba,Kısaca kendimden biraz bahsedeyim.Çanankkale On Sekiz Mart Üniversitesi Bilgisayar Mühendisligi mezunuyum.Yazılm geliştirmek yeni teknoloji ve trendleri takip etmek bu noktada da ögrendiklerimi sizlerle paylaşmayı seviyorum.


EGİTİM
Çanakkale On Sekiz Mart Üniversitesi

Bilgisayar Mühendisligi

2015


PROJELER

YETENEKLER
Nesne Yönelimli Programlama
Java
Objective C
Git
Sql
YAZILARIM

ANDROİD PROJESİNDEKİ DOSYA YAPISI



Yeni bir Android projesi yarattığımızda standart bir Java projesinden farklı olarak birtakım yeni klasör ve xml dosyası görürüz.Bu dosya yapısını kavramak projeyi geliştirmeden önceki en önemli adımdır.Temelleri iyi oturtup neyi neden ve hangi dosyadan yaptıgımızı anlamak çok önemli.



android



















src klasörü: Kaynak dosyaları burada yer alır. Bu klasörün içinde Java dosyalarını tutacağız.src nin altında MyActivity dosyası var burda uygulama ile ilgili kodları yazıyorum.Ve yine Android Manifest.xml dosyası var burda uygulama ile ilgili her türlü bilgiyi barındırır.Android programı çalışırken kendisini oluşturan elemanlar arası iletişimi bu dosya üzerinden sağlar.
AndroidManifest.xml dosyası üzerinden uygulamanın cihaz üzerinde erişebileceği kaynaklar(internet erişimi, konum bilgisi ve klasörlere erişim gibi) belirlenir.

gen klasörü: Android tarafından otomatik oluşturulan dosyalar burada bulunur. Biz uygulamaya yeni kaynaklar ekledikçe bu sınıf da ADT tarafından otomatik olarak güncelleniyor. Bu sınıf, appt(Android Asset Packing Tool) tarafından oluşturuluyorBuradaki R.java dosyası projede kullandığınız her türlü tasarım, resim ve metin dosyasının tanımlayıcılarına (ID) referans içerir. Bu dosya otomatik olarak oluşturulur ve dışarıdan müdahale edilmemesi önerilir. 

assets klasörü: Uygulamada kullanacağımız destekleyici dosyaları burada tutabiliriz. Örneğin, sqlite veritabanı oluşturduysak ve uygulamayla beraber sqlite dosyasını da göndermek istiyorsak, dosyanın bu klasör içinde bulunması gerekir. Yada uygulamamız ile birlikte paketlenmesini istediğimiz dosyalar varsa(tar.gz gibi) bunları koymamız gereken klasördür.

bin klasörü: Uygulamanın derlenmiş hali bu klasörde tutulur. 

libs klasörü: Eğer uygulamamızda Android SDK içinde yer almayan bir Java kütüphanesi (örneğin AdMob) kullanıyorsak, ilgili jar dosyalarını bu klasöre atmamız gerekir. Ancak bir jar dosyası ekledikten sonra dosyaya sağ tuşla tıklayıp Add To Build Path seçeneğini seçmeyi unutmamalıyız. Aksi takdirde derleyici jar dosyasını göremez. 

res klasörü: Uygulamayla ilgili her türlü kaynak bu klasörde tutulur. Burada tutulan dosya tipleri resim dosyaları, ekran tasarımları ve metin dosyaları olabilir. Şimdi bu klasörü biraz daha detaylı inceleyelim;

drawable klasörleri: Bu klasörler uygulamada kullanılan resim dosyalarını içerir. Bu dosyalar PNG ya da JPEG formatında olabilir. Klasörün yanındaki hdpi (high dpi), ldpi (low dpi), mdpi (medium dpi) ve xhpi (extra hight dpi) cihaza özel ekran çözünürlüklerine göre dosya çağırmamızı sağlar. Örneğin uygulamanın çalıştığı cihaz eski modelse ve ekranı düşük çözünürlük destekliyorsa ldpi klasörü içindeki resim dosyaları kullanılacaktır. Ama uygulama yeni nesil geniş ekran bir cihazda çalışıyorsa ona uygun olarak yüksek çözünürlüklü bir klasörde bulunan dosyalar kullanılır. Eğer uygulamanızda düzgün bir tasarım varsa ve geniş yelpazede cihazlar destekliyorsanız tasarımcınızdan uygun formatlarda dosyalar istemenizi öneririz. 

layout klasörü: Burada ekranlara dair tasarım dosyaları bulunur. xml formatındaki bu dosyalar her ekrana ait tasarımları barındırır. Bir ekran Activity ile oluşturulduğunda onCreate metodu içinde ilgili layout çağırılır ve ekranda yer alacak öğeler oluşturulur. Ve içerisindeki main.xml dosyasını bulundurur main.xml dosyası design kısmı ve bu objelere id ve name gibi özeliklerinin verildigi text kısmı bulunuyor.bu dosya bize uygulamamızda kullanıcagım  button , textview radiobutton ,textbox gibi tasarım objelerini sunar.


android











values klasörü: Uygulamada kullanılan sabit değişkenler burada saklanabilir. strings.xml dosyası uygulamada kullanılan ve ekranlarda kullanıcıya gösterilen her türlü metni saklar. Anahtar – veri mantığıyla saklanan bu değerler kod içinde ya da layout dosyalarında çağırılır. Aynı zamanda bu değerler R.java dosyasında işaretlenir. Bunun dışında colors.xml dosyası layout dosyalarında kullanılacak önceden tanımlanmış renkleri içerir. styles.xml dosyası ise ekranlarda kullanılan ve yine layout dosyalarından çağrılan stilleri içerir. values klasörünün bir başka özelliği de cihazın ayarlanmış ana diline göre yerelleşebilmesidir.Ve cihaza çoklu dil seçenegi eklerkende yine bu dosyadan yararlanıcagız.   
 


AndroidManifest.xml dosyası: Bu dosya uygulamanın kalbidir. AndroidManifest.xml dosyası android uygulamalarının hepsinde bulunması zorunlu olan çok önemli bir dosyadır. Bu dosya android uygulamasının root klasöründe bulunur ve uygulamanın çalışabilmesi için mutlaka dosya adının "AndroidManifest.xml" şeklinde olması gerekir.Uygulamayla ilgili her türlü özellik ve uygulamanın işletim sisteminden talep edeceği bütün izinler burada tanımlanır. Aynı zamanda uygulama içinde kullanılan her ekran burada kaydedilip tanımlanmak zorundadır.Ve burda sdknın versiyon bilgileri var cihaz ile ilgili biruyumsuzluk söz konusu oldugunda bu dosyadan bu versiyonu düşürebiliriz.


Proguard-project.txt:Uygulama kodlarına bir dizi performans optimizasyonu yapar.Kodun şifrelenmesini ve lisanslanmasını da sağlar.

.properties uzantılı dosyalar: Uygulamanın derlenip cihaza gönderilmesi sırasında çalışan ‘Ant’ scripti tarafından kullanılan özellik dosyasıdır.Burada uygulamanın hangi SDK versiyonu ile çalışacağı tutulur. Yazdığımız uygulamanın cihaza gönderilip çalışması sırasında arka planda kullanılan dosyadır. Elle değiştirilmesi genelde tavsiye edilmez.




LİNUX İÇİN ANDROİD SDK VE İNTELLİJ KURULUMU


Öncelikle her nekadar kolaymış hissi versede kurulumu dogru yapmadıgınızda aldıgınız hatalar saç yoldurtucu kıvama getiriyor insanı.O yüzden kurulumu en dogru şekilde kurmanızı tavsiye ederim.

1.adım: İlk olarak http://www.jetbrains.com/idea/download/ bu linkten intellij son sürümünü bilgisayarıma indiriyorum.Ve zipli halinden kurtarıyorum.

android 










2.adım: Daha sonra  oracle  jdk kurulumu yani java geliştirme paketi kurulumu yapıcagız.http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html bu linkten bilgisayarınıza uygun olanı seçip indirin.Yada terminalden şu komutu yazarakta inditrebilirsiniz.

$sudo  apt-get install oracle -java7-installer


 3.adım: Daha sonra zipli halinden kurtarıyorum.Bu noktada sdknın ayarlarını yapıyorum ben apı 19 için tüm paketleri indirdim.Siz diger seçenekleri  kurabilirsiniz.Zaten diger kurulumlarıda yapınca intellijde yazdıgım uygulamaya run yapınca   cihazımla arasında uyuşmazlık oluyorsa yani şu uyarıyı alıyorsanız  Failure [INSTALL_FAILED_OLDER_SDK]
 apı degerini Android manifest.xml dosyasında yazılı olan sdk versiyonunu buradan düşürün ve  telefonunuzun android sürümüne uygun hale getirin.

 Ayarları yapmak için sdk yı terminalden açıyorum.

$cd sdkdosyasınınyolu
 $cd /tools
$./android


 android




sdk
 

  4.adım: Ve son olarak  terminalimi açıyorum. bu klasörün içine giriyorum.Ve inteliji kurduktan sonra açarken bu yolu izlicem.
$cd klasörünyolu

$cd /bin

$./idea.sh 
 


  android



  5.adım: En son sdk  ile ilgili kurulumu yaptıgım için yeni proje açıp  sdknın yolunu  belirtiyorum

sdk






VARSAYILAN AYARLARIN ANDROİD CİHAZLARDA SAKLANDIĞI YER

 Cihazlar ile gelen yazılımlarda bazı varsayılanların nerelerde saklandığını ve dizin içeriğini nasıl bulabilecegimi anlatacagım bir yazı olucak.

1.Cihazımın varsayılan wallpaper (cihaz ilk alındıgında yüklü olan):ilk etapta  cihazımızın adb shell ile telefonumuzun komut ekranına baglanıyoruz.
1.$adb shell
2.$ls
2.$cd /system
3.$ls system

android












4. yukardaki çıktı da görmüş oldugumuz framework içine giriyoruz.
$cd /framework ve l$ ls ile listeliyoruz.


android











5.En önemli nokta burası framework-res.apk dosyasını açmamız gerekiyor fakat bu dosyayı bilgisayara indirerek açabiliyoruz.Çünki saklı bir dosya daha sonra adb shell den çıkalım çünki adb pull ve adb push ve adb pull kabuktan çıkılarak çalıştırılır.
$adb pull '/system/framework/framework-res.apk' /home/nalanulusoyy/Masaüstü/
Buşekilde  framework-res.apk dosyasını masaüstüne çıkarmış oldum.


android












6.Daha sonra framework-res.apk dosyasını açarak  aradıgımız default wallpaper bulabiliriz.


android











2.Cihazımın varsayılan zilsesi ve alarm sesi : yine ilk etapta adb shell ile telefonumun komut satırına baglanıyorum.

1.$adb shell
2.Daha sonra /system dizinin içine giriyorum.
$cd /system
3.ls ile içerigini listeliyorum.


android












4.ve resimde gördügünüz build.prop dosyasının içerigini cat komutu ile yazdırıyorum.
$cat build.prop


android













5.Yukardaki komut çıktısında taranmış kısım cihazımın varsayılan zil sesi ve alarmıdır.

3.Son olarak cihazımda zilsesleri ve diger sistem seslerinin saklandıgı yer: Tabiki ilk yapıcagım şey adb shell ile telefonumun komut satırına baglanma

1.$adb shell
2.$ cd /system
3.$ls
4.$cd /media


android












5.$ cd /audio komutunu çalıştırıp içerigini $ls ile listeledigimde zilseslerimi ve diger sistem seslerimin oldugu klasörlere ulaştım.



android












6..Ve bu şekilde sistem seslerimin cihazımdaki saklandıgı yerlerede ulaşmış oldum.


BUSYBOX



Rootun yeterli olmadıgı durumlarda telefonumuza daha fazla yetki veren bir uygulamadır.Android kökenli bir uygulama degil unix kökenlidir.İçerisinde unixin destekledigi çokça komut barındırır.Ayrıca telefonumuzla busybox komutlarıyla
 çalışmak için adb yani android sdk kurulumunun bilgisayarınızda olması gerekir.

busybox komut kümesi ile ilgili detaylı bilgiyi bilgisayarımızın komut satırından
$busybox --help komutunu çalıştırarak version bilgisi ve parametrelerini ögrenebiliriz.

android
  










Busybox çok rahat bir şekilde googleplay storedan telefonunuza indirip kullanabilirsiniz.Ama rootlu telefonlarda kullanılan bir uygulama oldugunu unutmayalım.

 1.ADIM:Busybox indir.                              2.ADIM:Busybox kur.
androidbusybox

                                   



3.Adım:Busybox kuruldugunu
supersuda gördüm

adb 



















Hatırlatmam gereken önemli bir nokta busybox komutlarını kullanırken busybox ekleyerek komutları kullanıyorum.

$busybox ash komutuda $adb shell komutuyla aynı işi yapar telefonun komut satırına baglanırız.

BİR ZİP DOSYASINI AÇMA:
 komut ekranımızdan sdcarımızda olan bir zip dosyamızı açmak için
$busybox unzip zipdosyasının yolu yazarak çalıştırıp telefonumdaki bir zip
 dosyasını komut satırından açabiliyorum.

 TERMİNAL EMÜLATÖR
Son olarak bahsetmek istedigim bir araç var. Terminal Emülatör  bu araç bize telefonumuzdan komut satırına baglanmayı saglar.Ubuntu komut satırında çalıştırdıgımız komutları bu uygulama ile telefonumuzdan yapabiliriz.Bu uygulamayı telefonumuza google play storedan kolayca indirebilirsiniz.



emulatorandroid











PAKET YÖNETİCİSİ



Daha önce adb den bahsetmiştik cihazımızla bilgisayarımız üzerinden işlem yapabilmek için bir kabuk saglıyordu.
Android, Linux çekirdeği ile çalışan masaüstü işletim sistemlerinde olduğu gibi bir paket yöneticisine sahiptir. Bu paket yöneticisi komut satırı üzerinden kullanılabilmektedir.Bu sayede Paket yöneticisini komut satırından kullanarak arka planda uygulama kaldırma silme gibi işlerin nasıl yürüdügünü daha rahat kavramış oluyoruz.

android












Şimdi sizlere paket yöneticisi ile yapabileceklerimizden bahsedicegim.
Bir apk dosyasını cihazımıza yüklemek ,silmek, bir uygulamayı kaldırmak,ekran kagıdı özelligini devre dışı bırakmak, sistem ve kullanıcı uygulamalarını listelemek ve bunun gibi daha bir çok işi paket yöneticisi ile yapabilirsiniz.

Paket yöneticisinin komutlarını kullanabilmek için aşagıdaki işlemleri yapmalısınız.
İlk olarak usb takılı olan cihazımızı bilgisayara baglıyoruz.Daha sonra geliştirici seçeneklerinden usb hata ayıklamayı açık hale getirelim.

Daha sonra $adb shell komutuyla telefonumun komut satırına baglanıyorum.
Şimdi pm komutlarını kullanabilirim.
Öncelikli tavsiyem terminalinizde $pm --help komutunu çalıştırıp pm komutlarını tanımak ve ne işe yaradıklarına bir göz atmak.
android















Bir apk dosyasını kurma:

Öncelikle bilgisayarıma bir apk dosyası indiriyorum.Bu https://f-droid.org/ linkten kolaylıkla edinebilirsiniz.Daha sonra telefonumun sdcardına atıyorum.Sonra $cd /sdcard komutuyla  sdcardın içine giriyorum.
$ls komutuyla sdcardın içindekileri listeledigimde apk dosyasını görebiliyorsam atmayı başarmışımdır.
Sonra bu paketin sdcarddaki tam yolunu aşagıdaki komuta yazıp paketi kuruyorum.
$pm install paketin telefonumdaki tam yolu

 Bir apk dosyasını silme:

Peki silme işlemi nasıl oluyor burda dikkat etmemiz gereken noktalar var.Paketi silerken paketin tam adıyla silicegim bu yüzden paketleri listeliyorum ve paketin tam adını ögreniyorum.

$pm list packages komutuyla paketler listeleniyor.



android













Paket adı packages: dan sonraki kısımdır.Daha sonra $pm uninstall paket adı  komutunu çalıştırınız.

Son olarak bahsetmek istedigim bir konu daha var pm ile ilgili sistem uygulamaları kullanıcı uygulamaları ayrı ayrıda listeleye biliyoruz.

Kullanıcı uygulamaları listele:
Kullanıcı uygulamalarını listelerken $pm list packages -user komutu ile listeleyebiliyorum.

Sistem uygulamaları listele:
Sistem uygulamalarını $pm list packages -s komutu ile listeleyebiliyorum.
  
Duvar kagıdı özelligini devre dışı bırak:$pm list packages  komutuyla ilk olarak paketleri listeliyorum ve duvar kagıdı paketinin tam adını ögreniyorum.
 Daha sonra bu özelligi devre dışı bırakmak için aşagıdaki komutu terminalde çalıştırıyorum.

$pm disable paketin tam adı 


ADB KOMUTLARI

adb


Tüm bu komutlar komut satırından cihazımıza ulaşıp işlemler ve degişiklikler yapmamızı saglar.

  $adb usb :Cihazımızla bilgisayarımız arasındaki usb modunu başlatır.

 $adb devices :Bilgisayara baglı olan cihazların listesini gösterir.


  $adb help :Desteklenen adb komutlarının listesi ve kısa bilgiler içerir.

 $adb install path(uygulamanın tam yolu):Cihazımıza bir android uygulamayı kurmayı saglar.

$adb start-server :adb sunucusunu çalıştırır  

$adb kill-server :adb sunucusulemini sonlandırır.

$adb pull  dosyayolu dosyaadi :Cihazımızdaki dosyayı bilgisayarımıza çekiyoruz.

$adb push dosyaadi dosya yolu : Bilgisayarımızdaki dosyayı cihazımıza atmayı saglar.

$adb reboot : Cihazımızı yeniden başlatmayı saglar..


$adb sideload yüklenecek paketin yolu:Komut satırından Bilgisayarımdan cihazımıza zip paketi yükleme root işleminde kullanırız.

$adb connect ip adresi :wifi üzerinden adb  baglantısını saglar.

$adb remount : yazma modunda sistemi yeniden baglar.Bu sayede Cihazımızın sistem dosyalarını degiştirirebilirz.

ANDROİD CİHAZLARDA ADB BAĞLANTISI



Aslında Adb baglantısını anlatmadan önce biraz adb nin ne oldugundan bahsedicegim.Android debug bridge  yani  açılımındanda çıkaracagımız gibi bize bilgisayarımızla cihazımız arasında köprü görevi yapar. Ve Adb bir bilgisayar komut satırı üzerinden cihazımızın degişmesine olanak saglar.

1.adım:Bu baglantıyı saglamanın ilk aşaması bilgisayarımıza bir Android sdk manager yüklemekten geçiyor.Eclipse üzerinden Android ortamı kurmuş herkeste bu kurulum vardır zaten.Ama Olmayanlarda http://developer.android.com/tools/help/sdk-manager.html bu linkten kolayca kurulumu uygulayabilirler.

android adb 














2.adım: Eger sdk kurulumlarındaki ayarlarla ilgili bir aksaklık varsa  bu komutu terminale yazıp çalıştırın $sudo apt-get install android-tools-fastboot .Bu sayede Sdk için gerekli ayarları yapıyorum


3.adım:Sonra usb kablomu cihazıma takıp bilgisayarıma baglıyorum.Bu noktada dikkat etmem gereken  telefonumun ayarlar menüsünden geliştirici seçeneklerine girip usb hata ayıklama moduna alarak işleme devam ediyorum.Daha sonra terminale $adb devices komutunu çalıştırıp baglantıyı saglayıp saglamadıgımı görüyorum. Yani bu komut baglı olan cihazları listelemiş oluyor.Bu komutunun ekran çıktısında devices olarak geri dönüş alırsam baglantıyı kurmuş oluyorum.

4.adım:Son olarak $adb shell komutunu çalıştırarak telefonumun komut satırına baglanıyorum

ANDROİD CİHAZLARDA ROOTLAMA NASIL YAPILIR


 Bu aşamada cihazımızı tanımak önemli o yüzden maddeleri iyi anlayalım.Root olurken adımları iyi inceleyelim yanlış bir şey uygulamak cihaza zarar verebilir.

1.Adım:
ilk aşama cihazımın içerisindeki menüden ayarlar kısmına giriyorum.Burdan telefon hakkında kısmından sürümü model numaramı ögrenerip yine ayarlar menüsüne dönerek burdaki geliştirici seçeneklerinin usb hata ayıklama modunu etkin
hale getiriyorum.

2.Adım:Aslında recovery mode cihazlarımızda hazır ama Bu aşamada telefonuma clockwork recovery modun google un bazı imzalanmamış yazılımlara izin vermediginden dolayı bu modu daha etkin kulanabilme için bilgisayarıma bu adresten https://www.clockworkmod.com/rommanager telefonumun modeline uygun olanı seçiyorum.Bu aşamada cihazı usb ile bigisayarıma baglıyorum ve terminalden bu komutu yazıp çalıştırarak cihazımın aktif durumda olup olmadıgımı görebilirim.
~$ adb devices
çıktı olarakta aşagıdaki çıktıyı almalısınız
List of devices attached
014691070400B01F    device
Bu çıktıyı almış olmalıyım.

 3.Adım:Sonra Telefonumda (galaxy nexusta) power dügmesi +ses kısma dügmesine aynı anda biraz bekleyerek basarak download moduna alıyorum. 


android














4.Adım: Bu aşamada usb takılıyor bilgisayarıma daha sonra facebood moduna geçiyorum.Bu mode geçerken şu komutu terminale yazıyorum

 $ fastboot flash recovery
https://www.clockworkmod.com/rommanager  bu adresten indirdigim zip dosyasının bilgisayarımdaki tam yolu 

 
Daha sonra + - tuşlarıyla recovery mode getiriyorum yani resimdeki start yazısında recovery mode yazanı onaylıyorum
  

android













 5.Adım:
http://download.chainfire.eu/204 bu linkten super su zip dosyasını bilgisayarıma indiriyorum.
Daha sonra  önüme bir menü geliyor ordan install zip seçenegini seçiyorum.



root

.










6.Adım: Daha sonra  telefonumdaki ekrana gelen menüden  sdcard sideload seçenegini seçip.

  $ adb sideload  zip dosyasının yolu 
  
bu yükleme  sonrasında işlemi onaylayıp .Ekrana gelen menüde reboot
system now diyip rootlama işlemimi tamamlıyorum. 



root



ANDROİD CİHAZLARDA ROOTLAMA

root

En temelden başlayarak root nedir?

Bir cihazı  rootlamak nedir? 

Ne işe yarar?

Custom rom Nedir?

ClockWorkMode Nedir?


Root nedir?
 Bir sistemde yönetici yetkilerine sahip kullanıcıya root denir.Root haklarına sahip bir kişi sistem ile ilgili birçok dosyaya erişebilir ve degiştirebilir.

Rootlamak nedir?
Cihazınıza root yetkisi saglamaktır.Yani cihazı root etmek o cihazın köklerine       inebilip cihazdaki yazılımları düzenleyip degiştirerek istediginiz duruma
getirebiliyorsunuz.Rootlama sayesinde cihazınızı en etkin şekilde kullanıp hatta üretici firmalar tarafından kullanıma kapatılmış bir çok özeligini kullanabilir hale getiriyorsunuz.Tüm bunlar android işletim sisteminin açık kaynak kodlu olmasının bize sundugu güzelliklerdir.Kısaca rootlamak  cihazdaki her veriye erişip,yedekleme yapabilmemizi sistem dosyalarınıdaki degişikler yapabilmeyi saglıyor  yani sistem üzerindeki tüm yetkiyi bize verir.Kısaca toparlamak gerekirse cihazınızı kişiselleştirmek için biçilmiş kaftandır.

Ne işe yarar?
Sistem üzerinde tam kontrol saglar demiştik bunu biraz açalım yani sistem üzerinde erişimedigimiz yerlere erişebilme okuma hakkı dışında yazma ve çalıştırabilme hakkıda sunuyor.
Bize  sagladıgı bir diger şeyler yeni bir recovery imajı yükleme, sistem yedegi alabilmemizi saglar.Ayrıca İstediğiniz custom rom’u yükleyebilir, normalde telefonunuzun silmenize izin vermediği programları silebilirsiniz (basit bir örnek, Twitter kullanmıyorsunuz ve silmek istiyorsunuz. Orjinal rom'larda Twitter’ı silmeniz mümkün değil. Sadece uygulamayı pasifleştirip bir kenarda kendi halinde kalmasını sağlayabiliyorsunuz. Fakat telefonunuzu root ederseniz Twitter’ı tabi dilerseniz silebilirsiniz. Ayrıca bunlara ek olarak telefonunuzun tam bir yedeğini her şeyi  kolayca alabilirsiniz. Aklımıza şu an gelmeyen daha bir sürü faydasını görebilirsiniz.


Custom rom nedir?
Custom ROM, Android işletim sistemine sahip olan bir akıllı telefonu üreticinin yüklediği Android sürümünü kullanmak yerine, telefonunuzu kendinize göre özelleştirmenize yarayan ve Android geliştiricileri tarafından geliştirilen bir çeşit Android sürümü olarak görülebilir. Zira Android açık kaynak kodlu bir işletim sistemi olduğu için, bağımsız bir geliştirici sistemi kendine göre fazlalıklardan arındırıp, optimize edebilir


Cwm Nedir?
Kısa adıyla CWM tam adıyla ClockWorkMod olarak tanımlanan bu sistem android cihazlar için bir çeşit yedekleme ve geri yükleme sistemidir.Bu yedekleme sistemi ile yapabilecekleriniz ise sadece yedeklemek ve geri yüklemekten ibaret değil. CWM sistemini kullanarak cihazınıza custom rom yüklemek, root erişimi sağlamak, temalar yükleyebilirsiniz. Örneğin bir custom rom yükledikten sonra CWM recovery’yi kullanarak cihazın bütün bilgilerini yedekleyebilir, herhangi bir sorun durumunda ise yedeklediğiniz tarihe geri dönebilirsiniz.