Testler ve incelemeler

Android işletim sistemi. Android Nedir? Hangi Android platformunda çalışırlar?

Makaleler ve Yaşam Tüyoları

Bugün kendisini "akıllı" teknolojiyle çevrelemek istemeyen birini bulmak zaten zor. "Telefonsuz, elsiz gibidir" ifadesi giderek daha sık duyuluyor ve oynatıcı, dizüstü bilgisayar veya diğer popüler gadget'lar olmadan hayatı hayal etmek genellikle imkansız.

Bu nedenle modern elektronik pazarında ortaya çıkan yeni ürünleri herkesin bilmesi gerekir. Örneğin herkes Android platformunun ne olduğunu bilmiyor ama biz anlamaya çalışacağız.

Android nedir

  • Android, bir mobil cihazı (telefon, tablet bilgisayar, akıllı telefon) kontrol edebilen bir işletim sistemidir. Android platformu Linux çekirdeği temel alınarak geliştirildi.
  • 2005 yılında Google'ın Android Inc'i satın alarak onu yan kuruluşu haline getirmesi ve mobil cihazlar için aynı adı taşıyan platformlar üretmeye başlaması nedeniyle ortaya çıktı. O zamandan beri platform yalnızca gelişiyor.
  • Android sıklıkla programının yeni sürümlerini yayınlar. Her birinin isminin ilk harflerinin olması dikkat çekicidir. yeni versiyon Latin alfabesinin harflerine karşılık gelir.
  • Bugün Android platformu dünyada popülerlik açısından ikinci, işletim sisteminden sonra ikinci sırada yer alıyor iOS sistemi iPhone için geliştirildi.

Android ne içindir?

  • Bildiğiniz gibi işletim sistemi, herhangi bir elektronik cihazın tüm insan komutlarını yerine getirebilmesi için gerekli olan “beynidir”.
  • Buna göre bir android, bir mobil cihazın içinde oturan ve bu cihazın içinde meydana gelen tüm süreçlerin yürütülmesinden sorumlu olan sanal bir robottur.
  • Bu platformun avantajı, Android'in kullanışlı ve çok sezgisel bir arayüze sahip olmasının yanı sıra, aynı anda birden fazla uygulamayı çalıştırmanıza ve ayarları denemenize olanak tanıyan esnek ve çoklu görev sistemine sahip olmasıdır.
  • Diğer şeylerin yanı sıra, Android platformu için özel olarak oluşturulan çok sayıda uygulama, bu sistemin mutlu kullanıcılarına gerçekten sınırsız olanaklar sunuyor.
  • Sonuçta, bu uygulamaların yardımıyla satın alma işlemleri için ödeme yapabilir, fotoğraf çekebilir, film izleyebilir veya kitap okuyabilirsiniz.
  • Android'in ne olduğunu anladıktan sonra bu platformun şunun için yaratıldığı sonucuna varabiliriz: yaratıcı insanlarçünkü iki özdeş mobil cihaz tamamen farklı görünebilir.
  • Android, kişisel fitness eğitmeniniz, doktor, oyuncak veya TV gibi her şeyin her zaman yanınızda olmasını sağlar ve insan hayatını olabildiğince konforlu hale getirir.

Fastboot veya ADB'nin nasıl çalıştığını hiç merak ettiniz mi? Veya bir akıllı telefon neden aşağıdadır? Android kontrolü Bir tuğlaya dönüşmek neredeyse imkansız mı? Ya da belki uzun zamandır Xposed çerçevesinin büyüsünün nerede yattığını ve /system/etc/init.d önyükleme komut dosyalarına neden ihtiyaç duyulduğunu bilmek istiyorsunuz? Kurtarma konsolu ne olacak? Bu Android'in bir parçası mı yoksa başlı başına bir şey mi ve düzenli kurtarma neden üçüncü taraf ürün yazılımını yüklemek için uygun değil? Tüm bunların ve daha birçok sorunun cevabını bu yazıda bulacaksınız.

Android nasıl çalışır?

Gizli fırsatlar hakkında bilgi edinin yazılım sistemleriçalışma prensibini anlayarak bunu yapabilirsiniz. Bazı durumlarda sistem kodu kapalı olabileceğinden bunu yapmak zordur, ancak Android söz konusu olduğunda tüm sistemi içeriden ve dışarıdan inceleyebiliriz. Bu yazıda Android'in tüm nüanslarından bahsetmeyeceğim ve yalnızca işletim sisteminin nasıl başladığına ve güç düğmesine basılması ile masaüstünün görünümü arasındaki aralıkta hangi olayların gerçekleştiğine odaklanacağım.

Yol boyunca, bu olaylar zincirinde neyi değiştirebileceğimizi ve özel ürün yazılımı geliştiricilerinin bu yetenekleri, işletim sistemi parametrelerini ayarlama, uygulama depolama alanını genişletme, takas bağlama, çeşitli özelleştirmeler ve çok daha fazlası gibi şeyleri uygulamak için nasıl kullandıklarını açıklayacağım. Tüm bu bilgiler, kendi ürün yazılımınızı oluşturmak ve çeşitli hack'leri ve değişiklikleri uygulamak için kullanılabilir.

Birinci adım. ABOOT ve bölüm tablosu

Her şey birincil önyükleyiciyle başlar. Gücü açtıktan sonra sistem, cihazın kalıcı belleğinde saklanan önyükleyici kodunu çalıştırır. Daha sonra, fastboot protokolü için yerleşik destek ile kontrolü yeniden başlatılan önyükleyiciye aktarır, ancak mobil çipin veya akıllı telefon/tablet üreticisinin kendi tercih ettiği başka bir önyükleyiciyi seçme hakkı vardır. Örneğin Rockchip, fastboot uyumlu olmayan kendi önyükleyicisini kullanıyor ve flaşlama ve yönetim için özel araçlar gerektiriyor.

Fastboot protokolü ise, önyükleyiciyi bir PC'den yönetmek için kullanılan bir sistemdir; bu, önyükleyicinin kilidini açmak, yeni bir çekirdeğin yanıp sönmesi ve kurtarma, ürün yazılımı yükleme ve diğerleri gibi eylemleri gerçekleştirmenize olanak tanır. Fastboot'un varoluş nedeni, diğer tüm yöntemlerin başarısız olduğu bir durumda akıllı telefonu orijinal durumuna geri döndürebilmektir. Deneyler sonucunda Android içeren tüm NAND bellek bölümlerini ve akıllı telefonunuzdan kurtarma işlemini silseniz bile fastboot yerinde kalacaktır.

Kontrolü aldıktan sonra aboot, bölüm tablosunu kontrol eder ve kontrolü boot adlı bölüme aktarılan çekirdeğe aktarır, ardından çekirdek aynı bölümden RAM görüntüsünü belleğe çıkarır ve Android'i veya kurtarma konsolunu yüklemeye başlar. Android cihazlardaki NAND belleği, koşullu olarak gerekli altı bölüme ayrılmıştır:

  • önyükleme - genellikle yaklaşık 16 MB boyutunda çekirdek ve RAM diskini içerir;
  • kurtarma - kurtarma konsolu, bir çekirdek, bir dizi konsol uygulaması ve 16 MB boyutunda bir ayar dosyasından oluşur;
  • sistem - Android'i içerir, modern cihazlarda boyut en az 1 GB'dir;
  • önbellek - önbelleğe alınmış verileri depolamak için tasarlanmıştır, aynı zamanda bir OTA güncellemesi sırasında ürün yazılımını kaydetmek için de kullanılır ve bu nedenle sistem bölümünün boyutuna benzer bir boyuta sahiptir;
  • kullanıcı verileri - ayarları, uygulamaları ve kullanıcı verilerini içerir; kalan tüm NAND bellek alanı ona tahsis edilmiştir;
  • misc - sistemin hangi modda önyükleme yapması gerektiğini belirleyen bir bayrak içerir: Android veya kurtarma.

Bunlara ek olarak başka bölümler de olabilir, ancak genel işaretleme akıllı telefonun tasarım aşamasında belirlenir ve yeniden başlatma durumunda önyükleyici koduna dikilir. Bu şu anlama gelir: 1) fastboot oem format komutu kullanılarak her zaman geri yüklenebileceği için bölüm tablosu sonlandırılamaz; 2) bölüm tablosunu değiştirmek için, önyükleyicinin kilidini açmanız ve yeni parametrelerle yeniden başlatmanız gerekecektir. Ancak bu kuralın istisnaları da vardır. Örneğin, aynı Rockchip'in önyükleyicisi, bölümler hakkındaki bilgileri NAND belleğinin ilk bloğunda saklar, bu nedenle, onu değiştirmek için önyükleyicinin yanıp sönmesine gerek yoktur.

Çeşitli bölüm özellikle ilgi çekicidir. Başlangıçta çeşitli ayarları ana sistemden bağımsız olarak depolamak için yaratıldığına dair bir varsayım var, ancak şu anda yalnızca tek bir amaç için kullanılır: önyükleyiciye sistemin hangi bölümden yüklenmesi gerektiğini - önyükleme veya kurtarma - belirtmek için. Bu özellik özellikle ROM Manager uygulaması tarafından, bellenimin otomatik kurulumuyla sistemi kurtarma işlemine otomatik olarak yeniden başlatmak için kullanılır. Temel olarak, Ubuntu önyükleyicisini kurtarma işlemine geçiren ve bir dahaki sefere hangi sistemin önyükleneceğini kontrol etmenize olanak tanıyan Ubuntu Touch çift önyükleme mekanizması oluşturulmuştur. Çeşitli bölümleri sildim - Android yükleniyor, verilerle dolduruluyor - kurtarma yükleri... yani Ubuntu Touch.

İkinci adım. Önyükleme bölümü

Misc bölümünde kurtarma önyükleme bayrağı yoksa aboot, denetimi önyükleme bölümünde bulunan koda aktarır. Bu Linux çekirdeğinden başka bir şey değil; bölümün başında bulunur ve hemen ardından cpio ve gzip arşivleyicileri kullanılarak paketlenmiş, Android'in çalışması için gerekli dizinleri, init başlatma sistemini ve diğer araçları içeren bir RAM disk görüntüsü gelir. Önyükleme bölümünde dosya sistemi yoktur; çekirdek ve RAM diski birbirini takip eder. RAM diskinin içeriği şunlardır:

  • veri - aynı adı taşıyan bölümün montajı için dizin;
  • dev - cihaz dosyaları;
  • proc - procfs buraya monte edilir;
  • res - şarj cihazı için bir dizi resim (aşağıya bakın);
  • sbin - bir dizi yardımcı program ve arka plan programı (örneğin adbd);
  • sys - sysfs buraya monte edilir;
  • sistem - sistem bölümünü monte etmek için dizin;
  • şarj cihazı - şarj işlemini görüntülemek için uygulama;
  • build.prop - sistem ayarları;
  • init - başlatma sistemi;
  • init.rc - başlatma sistemi ayarları;
  • ueventd.rc - init'te bulunan uventd arka plan programının ayarları.

Bu, tabiri caizse sistemin iskeletidir: NAND bellek bölümlerinden dosya sistemlerini bağlamak için bir dizi dizin ve sistemi başlatma işinin geri kalanını halledecek bir başlatma sistemi. Buradaki merkezi unsur, daha sonra detaylı olarak bahsedeceğim init uygulaması ve onun init.rc yapılandırmasıdır. Bu arada sbin, proc ve sys dizinlerinin yanı sıra, Charger ve ueventd.rc dosyalarının da dikkatinize sunulmasını isterim.

Şarj cihazı dosyası, tek görevi ekranda pil simgesini görüntülemek olan küçük bir uygulamadır. Android ile alakası yoktur ve cihaz kapalı durumda şarj cihazına bağlandığında kullanılır. Bu durumda Android yüklenmez ve sistem yalnızca çekirdeği yükler, RAM diskini bağlar ve şarj cihazını başlatır. İkincisi, resmi tüm olası durumlarda res dizini içindeki sıradan PNG dosyalarında saklanan bir pil simgesi görüntüler.

Ueventd.rc dosyası, sistem önyüklemesi sırasında sys dizininde hangi aygıt dosyalarının oluşturulması gerektiğini belirleyen bir yapılandırmadır. Çekirdek tabanlı Linux sistemleri Donanıma erişim dev dizini içindeki özel dosyalar aracılığıyla gerçekleştirilir ve bunların Android'de oluşturulmasından init'in bir parçası olan ueventd arka plan programı sorumludur. Normal bir durumda çalışır otomatik mod, çekirdekten dosya oluşturmaya yönelik komutları kabul eder, ancak bazı dosyaların bağımsız olarak oluşturulması gerekir. Ueventd.rc'de listelenirler.

Stok Android'deki sbin dizini genellikle adbd, yani sistemin bilgisayardan hata ayıklamasından sorumlu olan ADB arka plan programı dışında hiçbir şey içermez. İşletim sistemi önyüklemesinin erken saatlerinde çalışır ve algılamanıza olanak tanır olası sorunlarİşletim sistemi başlatma aşamasında. İÇİNDE özel ürün yazılımı bu dizinde, bölümlerin ext3/4 olarak yeniden biçimlendirilmesi gerekiyorsa gerekli olabilecek mke2fs gibi bir dizi başka dosya bulabilirsiniz. Ayrıca, mod geliştiricileri buraya genellikle yüzlerce Linux komutunu çağırabileceğiniz bir BusyBox yerleştirir.

Proc dizini Linux için standarttır; init, sistemdeki tüm işlemlerle ilgili bilgilere erişim sağlayan sanal bir dosya sistemi olan procfs'e bağlanacaktır. Sistem, sysfs'i, donanım ve ayarları hakkındaki bilgilere erişimi açan sys dizinine bağlayacaktır. Sysfs'yi kullanarak örneğin cihazı uyku moduna geçirebilir veya kullanılan güç tasarrufu algoritmasını değiştirebilirsiniz.

Build.prop dosyası, düşük seviyeli Android ayarlarını depolamak için tasarlanmıştır. Daha sonra sistem bu ayarları sıfırlayacak ve şu anda erişilemeyen system/build.prop dosyasındaki değerleri bunların üzerine yazacaktır.


Metinden çıkarımlar

  • Deneyler sonucunda tüm NAND bellek bölümlerinin içeriğini akıllı telefonunuzdan silseniz bile Fastboot yerinde kalacaktır.
  • Kurtarma bölümü tamamen kendi kendine yeterlidir ve Android ile hiçbir ilgisi olmayan minyatür bir işletim sistemi içerir.
  • Fstab dosyasını biraz değiştirerek, init'i sistemi hafıza kartından başlatmaya zorlayabiliriz.

İkinci adım, alternatif. Kurtarma bölümü

Çeşitli bölümde kurtarma önyükleme bayrağı ayarlandıysa veya kullanıcı ses kısma tuşunu basılı tutarak akıllı telefonu açarsa aboot, kontrolü kurtarma bölümünün başında bulunan koda aktaracaktır. Önyükleme bölümü gibi, belleğe açılan ve dosya sisteminin kökü haline gelen çekirdeği ve bir RAM diskini içerir. Ancak RAM diskinin içeriği burada biraz farklıdır.

İşletim sistemini yüklemenin farklı aşamaları arasında geçiş bağlantısı görevi gören önyükleme bölümünün aksine, kurtarma bölümü tamamen kendi kendine yeterlidir ve hiçbir şekilde Android ile bağlantısı olmayan minyatür bir işletim sistemi içerir. Kurtarmanın kendi çekirdeği, kendi uygulama seti (komutları) ve kullanıcının hizmet işlevlerini etkinleştirmesine olanak tanıyan kendi arayüzü vardır.

Standart (stok) kurtarma işleminde, genellikle bu tür yalnızca üç işlev vardır: akıllı telefon üreticisinin anahtarıyla imzalanan ürün yazılımının kurulumu, silme ve yeniden başlatma. ClockworkMod ve TWRP gibi değiştirilmiş üçüncü taraf kurtarmaların çok daha fazla işlevi vardır. Dosya sistemlerini formatlayabilir, herhangi bir anahtarla imzalanmış ürün yazılımını yükleyebilir (okuma: özel), dosya sistemlerini diğer bölümlere bağlayabilir (işletim sistemi hata ayıklama amacıyla) ve ürün yazılımı işlemini ve diğer birçok işlevi otomatikleştirmenize olanak tanıyan komut dosyası desteğini içerebilirler.

Örneğin komut dosyalarını kullanarak, önyüklemeden sonra kurtarma işleminin hafıza kartında gerekli ürün yazılımını otomatik olarak bulmasını, bunları yüklemesini ve Android'de yeniden başlatılmasını sağlayabilirsiniz. Bu özellik ROM Yöneticisi, otomatik flaşör ve otomatik güncelleme CyanogenMod ve diğer donanım yazılımı.

Özel kurtarma ayrıca /system/addon.d/ dizininde bulunan yedekleme komut dosyalarını da destekler. Kurtarma, flashlamadan önce komut dosyalarını kontrol eder ve bellenimi flashlamadan önce bunları yürütür. Bu tür komut dosyaları sayesinde, yeni bir ürün yazılımı sürümü yüklendikten sonra boşluklar kaybolmaz.

hızlı başlatma komutları

Fastboot'a erişmek için Android SDK'yı yüklemeniz, akıllı telefonunuzu bir kablo kullanarak PC'nize bağlamanız ve her iki ses düğmesini de basılı tutarak açmanız gerekir. Bundan sonra SDK içindeki platform-tools alt dizinine gitmeli ve komutu çalıştırmalısınız.

Hızlı önyükleme cihazları

Cihaz adı ekranda görüntülenecektir. Mevcut diğer komutlar:

  • fatsboot oem kilidini aç- bağlantı noktalarında önyükleyicinin kilidini açmak;
  • file.zip dosyasını güncelle- ürün yazılımının kurulumu;
  • flash önyükleme boot.img- önyükleme bölümü görüntüsünün yanıp sönmesi;
  • flash kurtarma Recovery.img- kurtarma bölümü görüntüsünün yanıp sönmesi;
  • flash sistem system.img- sistem görüntüsünün yanıp sönmesi;
  • oem formatı- tahrip edilmiş bir bölme tablosunun restorasyonu;

Üçüncü adım. Başlatma

Böylece, kontrolü aldıktan sonra çekirdek, RAM diskini bağlar ve tüm alt sistemlerini ve sürücülerini başlattıktan sonra, Android'in başlatılmasını başlatan başlatma işlemini başlatır. Daha önce de söylediğim gibi, init'in init.rc yapılandırma dosyası vardır; bu dosyadan süreç, sistemi çalışır hale getirmek için tam olarak ne yapması gerektiğini öğrenir. Modern akıllı telefonlarda, bu yapılandırma birkaç yüz satırlık etkileyici bir uzunluğa sahiptir ve aynı zamanda içe aktarma yönergesini kullanarak ana yapılandırmaya bağlanan birkaç alt yapılandırmadan oluşan bir fragmanla donatılmıştır. Ancak formatı oldukça basittir ve aslında bloklara bölünmüş bir dizi komuttan oluşur.

Her blok bir yükleme aşamasını veya Android geliştiricisinin tabiriyle bir eylemi tanımlar. Bloklar, erken başlatma veya post-fs gibi bir on yönergesi ve ardından eylem adı ile birbirlerinden ayrılır. Komut bloğu yalnızca aynı adı taşıyan tetikleyici etkinleştiğinde yürütülür. Önyükleme sırasında init, sırasıyla erken-init, init, erken-fs, fs, post-fs, erken-önyükleme ve önyükleme tetikleyicilerini etkinleştirecek ve böylece ilgili komut bloklarını başlatacaktır.


Yapılandırma dosyası, başlangıçta listelenen birkaç yapılandırmayı daha beraberinde getirirse (ve bu neredeyse her zaman böyledir), o zaman içlerindeki aynı adı taşıyan komut blokları, ana yapılandırmayla birleştirilecektir, böylece tetikleyici etkinleştirildiğinde init, tüm dosyaların karşılık gelen bloklarından komutları yürütün. Bu, ana yapılandırma tüm aygıtlar için ortak komutlar içerdiğinde ve her aygıta özgü olanlar ayrı dosyalara yazıldığında, birkaç aygıt için yapılandırma dosyaları oluşturmanın rahatlığı için yapılır.

Ek yapılandırmalardan en dikkate değer olanı initrc.device_name.rc olarak adlandırılmıştır; burada aygıt adı, ro.hardware sistem değişkeninin içeriğine göre otomatik olarak belirlenir. Bu, belirli komut bloklarını içeren platforma özgü bir yapılandırma dosyasıdır. özel cihaz. Çekirdeğin ayarlanmasından sorumlu komutlara ek olarak şunun gibi bir şey de içerir:

Mount_all ./fstab.device_name

Bu, init'in artık aşağıdaki yapıya sahip ./fstab.device_name dosyasında listelenen tüm dosya sistemlerini bağlaması gerektiği anlamına gelir:

Device_name (bölüm) mount_point dosya_sistemi fs_options diğer seçenekler

Genellikle dosya sistemlerini dahili NAND bölümlerinden /system (OS), /data (uygulama ayarları) ve /cache (önbelleğe alınmış veriler) dizinlerine bağlamak için talimatlar içerir. Ancak bu dosyayı biraz değiştirerek init'i sistemi hafıza kartından başlatmaya zorlayabiliriz. Bunu yapmak için hafıza kartını üç 4 bölüme ayırmanız yeterlidir: 1 GB / ext4, 2 GB / ext4, 1 GB / ext4 ve kalan fat32 alanı. Daha sonra, /dev dizinindeki hafıza kartı bölümlerinin adlarını belirlemeniz gerekir (örneğin farklı cihazlar farklıdırlar) ve bunları fstab dosyasındaki orijinal cihaz adlarıyla değiştirin.


Önyükleme başlatma bloğunun sonunda, büyük olasılıkla class_start varsayılan komutuyla karşılaşacaktır; bu komut, daha sonra varsayılan sınıfla ilgili yapılandırmada listelenen tüm hizmetleri başlatmanız gerektiğini size bildirecektir. Hizmetlerin açıklaması hizmet direktifiyle başlar, ardından hizmetin adı ve onu başlatmak için yürütülmesi gereken komut gelir. Bloklarda listelenen komutların aksine, hizmetlerin her zaman çalışıyor olması gerekir, bu nedenle akıllı telefonun ömrü boyunca init arka planda kalacak ve bunu izleyecektir.

Modern Android düzinelerce hizmet içerir, ancak bunlardan ikisinin özel bir statüsü vardır ve tüm hizmeti tanımlar. yaşam döngüsü sistemler.

init.rc Komutları

Başlatma işlemi, çoğu standart olan yerleşik bir komut kümesine sahiptir. Linux komutları. Bunlardan en dikkat çekenleri:

  • exec /yol/giden/komut- harici bir komut çalıştırın;
  • ifup arayüzü- ağ arayüzünü yükseltin;
  • class_start sınıf_adı- belirtilen sınıfa ait hizmetleri başlatmak;
  • class_stop sınıf_adı- hizmetleri durdurun;
  • insmod /yol/giden/modül- çekirdek modülünü yükleyin;
  • FS aygıt dizinini bağla- dosya sistemini bağlayın;
  • setprop adı değeri- bir sistem değişkeni ayarlayın;
  • hizmet_adı'nı başlat- belirtilen hizmeti başlatın;
  • tetikleyici adı- tetiği etkinleştirin (belirtilen komut bloğunu yürütün);
  • /yol/to/dosya satırı yaz- bir dosyaya bir satır yazın.

Dördüncü adım. Zigot ve app_process

Yüklemenin belirli bir aşamasında init, yapılandırmanın sonunda şu bloğa benzer bir şeyle karşılaşacaktır:

Hizmet zigote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server sınıfı varsayılan soket zygote akışı 660 kök sistem açıkyeniden başlat yazma /sys/android_power/request_state uyandırma açıkyeniden başlat yazma /sys/power/state açık yeniden başlatma medyayı yeniden başlatma yeniden başlatma netd'yi yeniden başlatma

Bu, herhangi bir Android sisteminin başlatılmasından, başlatılmasından sorumlu önemli bir bileşeni olan Zygote hizmetinin bir açıklamasıdır. sistem hizmetleri, kullanıcı uygulamalarını ve diğer birçok görevi başlatma ve durdurma. Zygote, yapılandırmanın yukarıdaki bölümünde açıkça görülebilen küçük bir uygulama /system/bin/app_process kullanılarak başlatılır. App_proccess görevi, kodu /system/lib/libandroid_runtime.so paylaşılan kütüphanesinde bulunan Dalvik sanal makinesini başlatmak ve ardından Zygote'u onun üzerinde çalıştırmaktır.

Bütün bunlar yapıldıktan ve Zygote kontrolü ele aldıktan sonra, çerçevenin tüm Java sınıflarını (şu anda 2000'den fazla) yükleyerek Java uygulaması çalışma zamanını oluşturmaya başlar. Daha sonra, Window Manager da dahil olmak üzere üst düzey (Java ile yazılmış) sistem hizmetlerinin çoğunu içeren system_server'ı başlatır. Durum Çubuğu, Paket Yöneticisi ve en önemlisi, gelecekte uygulamaların başlangıcı ve bitişiyle ilgili sinyallerin alınmasından sorumlu olacak Etkinlik Yöneticisi.

Bundan sonra Zygote /dev/socket/zygote soketini açar ve veriyi bekleyerek uyku moduna geçer. Bu sırada daha önce başlatılan Activity Manager, masaüstünü oluşturmaktan sorumlu uygulamayı bulmak için bir yayın amacı Intent.CATEGORY_HOME gönderir ve adını soket aracılığıyla Zygote'a verir. İkincisi, uygulamayı sanal makinenin üstünde çatallar ve çalıştırır. Voila, ekranımızda Activity Manager tarafından bulunan ve Zygote tarafından başlatılan bir masaüstü ve Durum Çubuğu hizmetinin bir parçası olarak system_server tarafından başlatılan bir durum çubuğumuz var. Simgeye dokunduktan sonra masaüstü bu uygulamanın adını içeren bir niyet gönderecek, Etkinlik Yöneticisi bunu alacak ve uygulamayı başlatma komutunu Zygote arka plan programına iletecek

BİLGİ

Linux terminolojisinde RAM diski bir tür sanal disktir. sabit disk, yalnızca RAM'de bulunur. Önyükleme işleminin başlarında çekirdek, disk içeriğini görüntüden çıkarır ve onu kök dosya sistemi (rootfs) olarak bağlar.

Önyükleme işlemi sırasında, Android üç farklı önyükleme ekranı görüntüler: ilki güç düğmesine bastıktan hemen sonra görünür ve Linux çekirdeğine aktarılır, ikincisi başlatmanın ilk aşamalarında gösterilir ve /initlogo.rle dosyasına kaydedilir (neredeyse Bugün kullanılan) sonuncusu, bootanimation uygulaması kullanılarak başlatılır ve /system/media/bootanimation.zip dosyasında bulunur.

Standart tetikleyicilere ek olarak init, çeşitli olaylarla tetiklenebilecek kendi tetikleyicilerinizi tanımlamanıza olanak tanır: bir cihazı USB'ye bağlamak, akıllı telefonun durumunu değiştirmek veya sistem değişkenlerinin durumunu değiştirmek.

Etkinlik Yöneticisi, diğer şeylerin yanı sıra, yetersiz bellek olduğunda arka plan uygulamalarını da kapatır. Boş hafıza eşik değerleri /sys/module/lowmemorykiller/parameters/minfree dosyasında bulunur.

Bütün bunlar biraz kafa karıştırıcı görünebilir ancak en önemli şey üç basit şeyi hatırlamaktır:

Android birçok açıdan diğer işletim sistemlerinden çok farklıdır ve bunu hemen anlamak zordur. Ancak her şeyin nasıl çalıştığını anlarsanız olasılıklar sonsuzdur. iOS'tan farklı olarak ve Windows Telefonu Google'ın işletim sistemi, kod yazmaya gerek kalmadan davranışını ciddi şekilde değiştirmenize olanak tanıyan çok esnek bir mimariye sahiptir. Çoğu durumda gerekli yapılandırmaları ve komut dosyalarını düzeltmek yeterlidir.

Google'dan Android işletim sistemi

Android geliştirmenin tarihi, Android güncellemeleri, Android Market

Bölüm 1. Android işletim sisteminin özellikleri.

Android iletişimciler için taşınabilir (ağ) işletim sistemi, tablet bilgisayarlar Linux çekirdeğini temel alan elektronik kitaplar, dijital oynatıcılar, saatler, netbook'lar ve akıllı dizüstü bilgisayarlar.

AndroidÇok çeşitli mobil cihazlarda kullanılan nispeten genç bir işletim sistemi.

Android işletim sisteminin özellikleri

Başlangıçta Android Inc. tarafından geliştirildi ve daha sonra Google tarafından satın alındı. Daha sonra Google, şu anda platformu desteklemek ve daha da geliştirmekle ilgilenen Open Handset Alliance'ın (OHA) oluşturulmasını başlattı. Android, Google tarafından geliştirilen kitaplıklar aracılığıyla cihazı kontrol eden Java uygulamaları oluşturmanıza olanak tanır. Android Native Development Kit, C ve diğer dillerde yazılmış uygulamalar oluşturur.

2012'nin üçüncü çeyreğinde satılan akıllı telefonların %75'inde işletim sistemi yüklüydü Android sistemi.

Android'i kullanarak hem iletişim cihazlarını (en yaygın sınıf) hem de tablet PC'leri (tabletler), netbook'ları veya akıllı kitapları bulabilirsiniz. Ayrıca üreticiler işletim sistemini çeşitli ekipmanlara entegre ederek denemelerden vazgeçmiyorlar. Bir Android saat veya TV set üstü kutusu artık kimseyi şaşırtmayacak.

İşletim sistemi Android Inc. tarafından geliştirildi ve daha sonra Google tarafından satın alındı ​​ve açık mobil standartların geliştirilmesi ve uygulanmasına adanmış bir dernek olan OHA - Open Handset Alliance'a devredildi. OHA'da Google'ın yanı sıra HTC, Intel, Motorola, Qualcomm, Samsung, LG, T-Mobile ve Nvidia gibi devler de yer alıyor.

Video:

İşletim sistemi Linux çekirdeğini temel almasına rağmen bu işletim sisteminin tüm yeteneklerini kullanmaz. Bunun nedeni ise her şeyin çalıştığı Dalvik sanal makinesinin kullanılmasıdır. yazılım. Ancak Native Development Kit'in piyasaya sürülmesiyle geliştiriciler, C ve diğer programlama dillerinde yerel uygulamalar oluşturma fırsatına sahip oluyor.


Geçmişi güncelleAndroid

Android'in ilk sürümü Eylül 2008'de yalnızca T-Mobile G1 (HTC Dream) iletişim cihazı için sunuldu. Ayrıca altı ay sonra duyurulan 1.1 sürümüne yönelik bir güncelleme de aldı.

İşletim sisteminin hızlı gelişimi Cupcake (1.5) ve Donut (1.6) versiyonlarıyla başladı. Sürüm 2.0 Eclair bir ara sürüm haline geldi ve sürüm 2.1 tamamen aynı adı taşıyordu. En popüler cihazlardan bazıları - Nexus One ve "kardeşi" HTC Desire - ikincisinin kontrolü altında sunuldu.

Daha sonra kullanıcılara HTML5 ve Flash 10.1 web teknolojileri desteği sağlayan Android 2.2 Froyo piyasaya sürüldü ve bu da rakiplerine göre önemli bir avantaj elde etmelerini sağladı.

Daha sonra şirket, güncellenmiş bir kullanıcı arayüzü, NFC standardı desteği, çoklu kameralar ve yüksek çözünürlüklü ekranlara sahip Android 2.3 Gingerbread'i tanıttı.


Ancak en küresel değişiklikleri tabletlere özel bir sürüm olan Android 3.0 Honeycomb'da görüyoruz. Tamamen farklı bir kullanıcı arayüzü, 3D efektler, kullanıcı dostu bir tarayıcı ve diğer birçok iyileştirmeye sahiptir.

Ne yazık ki Android 3.0 Honeycomb yalnızca tabletlerde mevcut olacak. İletişim cihazlarında yalnızca taşınan sürümleri görebileceğiz veya...

Şu anda Android 2.4 sürümü yalnızca söylentilerden biliniyor. Ancak belki de akıllı telefonlar ve iletişim cihazları için uyarlanmış tablet versiyonunun bir benzeri haline gelecektir.

Video:

İlk sürümün Eylül 2008'de piyasaya sürülmesinden bu yana birçok sistem güncellemesi gerçekleşti. Bu güncellemeler genellikle tespit edilen hataların düzeltilmesi ve sisteme yeni işlevsellik eklenmesiyle ilgilidir. Sistemin her versiyonu kendi tatlı temalı kod adını alır. Kod adları alfabetik sıraya göre atanır.


Kasım 2012 itibarıyla sistemin 14 versiyonu piyasaya sürüldü. En son sürüm- 4.2 Jelly Bean (“Çiğneme dolgulu lolipop”).

Android donanım yazılımının tamamen açık sürümlerini (CyanogenMod, MIUI, Virtious Quattro, VillainROM, Open Kang Project, Replicant gibi) geliştiren meraklılardan oluşan bir topluluk var.

Android'in değiştirilmiş sürümleri ("ürün yazılımı" veya "özel donanım yazılımı" olarak da adlandırılır) aşağıdakiler için oluşturulmuştur:

Google hizmetlerini Android cihazdan kaldırmak (örneğin veri senkronizasyonu gibi) - kullanıcı verilerinin yalnızca Android cihazda yerelleştirilmesini sağlamak - kimlik bilgilerinin (IMEI, telefon numarası, GPS koordinatları vb.) sunuculara aktarılma olasılığını ortadan kaldırmak Google;

Android işletim sisteminin yeni sürümlerinin daha hızlı ve daha sık (cihazların üreticileriyle karşılaştırıldığında) sağlanması. Bir üreticinin eski veya kârsız bulduğu bir modeli desteklemeyi bırakması nadir görülen bir durum değildir ve sistemik olarak güncelliğini kaybetmiş birçok telefonun daha da güncellenme fırsatı olmasına rağmen yeni özellikler görmek isteyen kullanıcıların meraklıların çalışmalarına yönelmesi alışılmadık bir durum değildir (Nexus One) bunun başlıca örneğidir).

Video:

Android ürün yazılımına yeni ayarlar ve işlevler içeren eklemeler. FLAC Kayıpsız Ses desteği, indirilen uygulamaları bir MicroSD kartta saklama yeteneği (Android 2.2 sürümüne kadar) vb.


Bir Android cihazını flaşlamak için, sistem ve varsayılan olarak yüklenen uygulamalar üzerinde daha fazla kontrol sağlayan root erişimi gereklidir (buna rootlama denir). Kök erişimi için, önyükleyicinin kilidinin açılması gerekli değildir (kilitlenmemiş bir önyükleyici, cihazda iki veya daha fazla işletim sistemini önyüklemenize olanak tanır). Değiştirilmiş ürün yazılımı, eski telefon kullanıcılarının yalnızca daha yeni sürümler için mevcut olan uygulamaları kullanmasına olanak tanır, kararlılığı ve hızı artırır ve çoğu zaman üretici hatalarından kurtulur.

Tüm Android cihaz üreticileri, kullanıcıyı kötü amaçlı yazılım yüklemekten koruma ve cihazı hasardan koruma arzusuyla başlangıçta donanımla kök erişimini (ve yanıp sönme olasılığını) engeller. Ancak bu korumayı atlatmak için karmaşık hacker tekniklerinin yaygın kullanımı nedeniyle üreticiler yarı yolda buluşmak ve telefonların kilidini resmi olarak açma olanağını yaratmak zorunda kaldılar (Sony Ericsson - Önyükleyicinin kilidini açma hizmeti, HTC - Önyükleyicinizin Kilidini Açma hizmeti). Kilit açma işlemi sırasında telefonun olası arızalanmasıyla ilgili risk, önyükleyicinin kilidinin açılması durumunda telefonun garantisinin erken kaybına işaret eden koşulları kabul eden kullanıcıya aktarılır. Ve bazı üreticiler daha da ileri gitti ve ileri düzey bir kullanıcının yalnızca diğer aygıt yazılımını yüklemekle kalmayıp aynı zamanda kendi aygıt yazılımını da oluşturabilmesi için her şeyi yaptı (aygıt yazılımını, yazılımı değiştirmek için ayrıntılı talimatlar, yazılım platformunun mimarisine ilişkin belgeler, orijinal aygıt yazılımı kodu vb.) sağlanır) ve alternatif aygıt yazılımının geliştirilmesini destekler (Sony Ericsson, CyanogenMod'un sponsorudur). Ek olarak, bu (bir Sony Ericsson girişimi), flaşlama işlemi için (örneğin, HTC için) test edilmemiş bilgisayar korsanlığı araçlarının kullanılması ihtiyacını ortadan kaldırır.

İki tarafın (telefon üreticilerinin yanı sıra Google ve kullanıcılar) çıkar çatışmasında aşağıdaki motivasyon izlenebilir:

üreticiler telefonlara root atılmadan kaldırılamayan “reklam” uygulamaları kurmak istiyor;

Video:

Google, yalnızca adresler gibi kişisel verileri değil, kullanıcı hakkında mümkün olduğunca fazla bilgi toplamak istiyor e-posta veya ziyaret edilen sitelerin geçmişinin yanı sıra, kullanıcının hareketi hakkındaki bilgiler (GPS koordinatları veya GPS alıcısı kapatıldığında, baz istasyonu sinyallerine göre cihazın konumu) gerçek zamanlı olarak, bu da yasal işlemlere yol açtı.

Üreticiler işletim sistemini hızlı bir şekilde güncellemeye çalışmıyor ve yaklaşık altı ay sonra ürünü desteklemeyi bırakıyorlar, bu da alıcıları yeni telefon modellerine geçmeye zorluyor.

24 Eylül 2009'da Google, CyanogenMod geliştiricilerine, sistem parçalarının ve kapalı kaynaklı uygulamaların (Market, GPS navigasyonu, Haritalar vb.) alternatif donanım yazılımından kaldırılmasını talep eden bir mektup gönderdi. Sonuç olarak, CyanogenMod'un Android sürümünden "kapalı" uygulamalar kaldırıldı ve CyanogenMod'un kurulum işlemi sırasında kullanıcı ek olarak Google'dan bir yazılım paketi yükleme veya ek olarak "kapalı" programların alternatif sürümlerini (bir Anlaşmazlığa izin veren ve kullanıcılara Google uygulamalarından muaf olma ya da olmama fırsatı sağlayan “Haritalar”ın alternatif versiyonu vb.


Android gelişiminin tarihi

Temmuz - Google, Android Inc.'i satın aldı.

5 Eylül - Amacı mobil cihazlar için açık standartlar geliştirmek olan Open Handset Alliance (OHA) şirketler grubunun oluşturulduğu resmen duyuruldu. Şu anda OHA, en büyük mobil operatörler T-Mobile ve cep telefonu üreticileri de dahil olmak üzere 34 şirketi birleştiriyor HTC cihazları, Intel, Sprint Nextel, KDDI, NTT DoCoMo, China Mobile, çip geliştiricileri Broadcom, Marvell, NVIDIA, Qualcomm, SiRF, Texas Instruments, LG, Motorola, Samsung Electronics'in yanı sıra küresel bir BT endüstrisi devi ve ana ilham kaynaklarından biri ittifakın Google şirketi. OHA'nın tanıtımıyla eş zamanlı olarak Linux çekirdeğini temel alan açık mobil platform Android de duyuruldu.

12 Kasım - Android geliştirici paketi “Early Look” SDK'nın ilk sürümü sunuldu ve indirilmeye sunuldu.


23 Eylül - Google şirketi ile birlikte mobil operatör T-Mobile ve Tayvanlı üretici HTC, Android 1.0 platformunu temel alan ilk cihazı - T-Mobile G1 akıllı telefonunu (HTC Dream) duyurdu.

İlk tam donanımlı SDK 1.0 Sürüm 1 yayınlandı.

12 Ocak - Android 2.1 yayınlandı. Bazı kaynaklar bu sürüme "Flan" diyor, ancak bu "Eclair" sürümünün bir parçası.

Mayıs - Android 2.2 (FroYo) yayınlandı

Aralık - Android 2.3 (Zencefilli Kurabiye) yayınlandı

15 Ağustos - Google, Motorola Mobility'nin yönetim kuruluyla telekomünikasyon şirketini 12,5 milyar dolara satın almak için anlaşmaya vardı.

Droid ve Roboto yazı tipi aileleri özellikle Android platformu için oluşturuldu.

Android işletim sisteminin 1.5 sürümünden itibaren her sürümün adı bir tatlının adıdır. Versiyon sırasına göre isimlerin ilk harfleri Latin alfabesindeki harflere karşılık geliyor: 1,5 Cupcake, 1,6 Donut, 2,0/2,1 Eclair, 2,2 Froyo (dondurulmuş yoğurdun kısaltması), 2,3 Gingerbread, 3,0 Honeycomb, 4,0 Ice Cream Sandwich, 4.1/4.2 Jelly Bean, 5.0 Limonlu Turta ("limonlu turta"), Lolipop ("lolipop"), Pekmez ("melas") ve Nuga ("nugat") (italikler gelecekteki ve/veya onaylanmamış versiyonları gösterir).

İlk ikisi ünlü robotların isimleriydi: 1.0 Astro (“Astro Boy”) ve 1.1 Bender (“Futurama”), ancak telif hakları nedeniyle tatlı olarak değiştirildiler.

Şubat 2011 itibarıyla, Android işletim sistemine sahip cihazlar, iOS'lu iPhone 4'ü geride bırakarak Birleşik Krallık'taki en popüler akıllı telefonlar listesinin başında güvenle yer aldı. Uzmanlara göre bu, Android işletim sisteminin mobil pazarda küresel liderliğe doğru attığı ilk adım işletim sistemleri.

Resmi Android web siteleri hala işletim sistemini çalıştırmak için gereken minimum donanım gereksinimlerini belirtmiyor (yalnızca Android geliştirme kiti için donanım gereksinimleri var).

Sol alttaki resmi Android sitesinde robotun üzerine geldiğinizde farklı hareketler yapıyor ve tıklandığında elini sallıyor.

Android 1.6 sürümünde geliştiriciler, standart Linux kitaplıklarına dayanarak sistem için kendi düşük seviyeli modüllerinizi C/C++ dilinde yazmanıza olanak tanıyan Yerel Geliştirme Kitini ekledi. Her ne kadar örneğin Android platformunda Bionic olarak bilinen standart C kütüphanesi standart olmasa da libc ile tamamen uyumludur.

Video:

Erişmek için Google Play ve Google'ın diğer hizmetleri, telefon üreticisinin yalnızca Google ile bir sözleşme imzaladıktan sonra telefona yükleme hakkına sahip olduğu özel uygulamaları kullanmalıdır.

Android'in rakipleri platformu aşırı parçalanmış olmakla ve geliştiricilere engel olmakla suçlayarak eleştirdiler. Google, bu tür sorunların olmadığını söyleyerek tüm iddiaları yalanladı ancak yine de parçalanma sorunlarını aşacak bir araç yayınladı.

Google'ın, yalnızca Open Handset Alliance üyelerine veya anlaşma imzalandıktan sonra bireysel talep üzerine kullanılabilen Android 3.0 Honeycomb kodunu kamuya açıklamama kararı eleştirildi. Google bunu, platformun kullanılamaması ve dikkatsiz uygulanmasını önleyecek bir önlemle motive ediyor.

Richard Stallman "açık ve basit: Linux çekirdeği hariç, Android 3 özel bir yazılımdır" ve "günümüz Android telefonları Apple veya Windows akıllı telefonlar kadar kötü olmasa da özgürlüğünüze saygı duydukları söylenemez" dedi. " Google'a göre Android 3.0'ın kapalı kodu geçici bir önlem ancak 4. sürümün yayınlanmasından sonra bile 3.0'ın kaynakları açık değildi.

Lookout Security Mobile'a göre yalnızca 2011 yılında Android akıllı telefon kullanıcılarından yaklaşık bir milyon ABD doları çalındı.

21 Ekim 2008'de OHA Alliance, Android platformunun kaynak kodunu yayınladı. Sürüm, Android yığınının tamamını içeriyordu: işletim sistemi, ara katman yazılımı ve Java ile yazılmış ana uç uygulamalar. Android kaynak kodunun toplam boyutu 2,1 GB idi. Android kaynak kodu için "tercih edilen lisans" Apache Lisansı 2.0'dır. Android 3.0 Honeycomb'un piyasaya sürülmesinin ardından Google'ın mobil bölümü başkanı Andy Rubin, sistemin iletişim cihazlarında çalışmaya hazır olmaması ve gerekli olması nedeniyle sistemin yeni sürümünün açık kaynak kodunun erteleneceğini duyurdu. önemli optimizasyonlar. Bu karar analistlerin eleştirilerine yol açtı: örneğin ZDNet köşe yazarı Christopher Dawson, Google'ın hamlesini hayal kırıklığı olarak nitelendirdi. Ancak şirketin verdiği sözlere göre Google, sistemin bir sonraki sürümünün (Android 4.0 Ice Cream Sandwich) kaynak kodlarını 2011 sonbaharında açtı.


Android cihazlar

Android çalıştıran ilk cihaz, HTC tarafından geliştirilen HTC Dream akıllı telefondu (resmi olarak piyasaya sürüldü) mobil operatör Sunumu 23 Eylül 2008'de gerçekleşen T-Mobile, T-Mobile G1 olarak adlandırıldı. Kısa süre sonra diğer akıllı telefon üreticilerinin Android tabanlı cihazlar piyasaya sürme niyetleri hakkında çok sayıda açıklama geldi. Android'in tabletlere yönelik üçüncü sürümünün (Honeycomb) piyasaya sürülmesiyle birlikte, giderek daha fazla üretici tabletlerin bu platformda yayınlanacağını duyurmaya başladı. Google ayrıca mobil sektörünün çeşitli devleriyle iş birliği yaparak “Google Nexus” serisinde kendi cihazlarını da üretiyor. Bu cihazlar yeni sürümlere yönelik güncellemeleri ilk alan cihazlardır.

Akıllı telefon ve tabletlerin yanı sıra diğer cihazlara da Android işletim sistemi kuruludur. Böylece 2009 yılı sonunda Android üzerinde çalışan ilk fotoğraf çerçevesi satışa sunuldu. Haziran 2011'de İtalyan Blue Sky şirketi, Android işletim sistemi çalıştıran i'mWatch akıllı kol saatinin piyasaya sürüldüğünü duyurdu. Ağustos 2012'de Nikon, aynı zamanda Google platformunda da çalışan dünyanın ilk fotoğraf makinesini tanıttı. Daha önce bahsettiğimiz “Google Nexus” serisi sadece akıllı telefonları ve tabletleri değil aynı zamanda Android üzerinde çalışan Nexus Q medya oynatıcısını da içeriyor.


Buna ek olarak meraklılar, Android'i, örneğin Android'in emülasyon modunda çalıştırıldığı Windows Mobile akıllı telefonları HTC Touch Dual ve HTC TyTN II dahil olmak üzere çok sayıda tanınmış cihaza taşıdılar. Maemo - Nokia N810 ve Nokia N900 (Nitdroid adı verilen bir bağlantı noktası) üzerinde çalışan İnternet tabletleri gibi cihazlarda ve MeeGo platformunda çalışan Nokia N9 ve işletim platformunda çalışan HTC HD2 akıllı telefonlarda da tam taşıma gerçekleştirildi. Windows sistemi Android işletim sisteminin hem microSD karttan hem de dahili NAND belleğinden çalıştırılabildiği mobil. Aynı zamanda kurulu sistem tam, sınırsız işlevselliğe sahiptir. Ek olarak, bazı Apple cihazlarına (iPhone) Android yükleme konusunda başarılı bir deneyim var. iPod Touch ve iPad kullanarak özel program Openiboot adı verilen bu cihaz, Android de dahil olmak üzere bu cihazlarda çeşitli işletim sistemlerini çalıştırmak üzere tasarlanmıştır. Bada işletim sistemini çalıştıran cihazlarda sınırlı işlevselliğe sahip ön sürüm ürün yazılımı görünür. Koolu, yalnızca Android'i Neo FreeRunner'a taşımakla kalmadı, aynı zamanda işini bu akıllı telefonları Google'ın mobil platformu önceden yüklenmiş olarak satma üzerine kurdu. Koolu'nun Neo FreeRunner'ının Android portunun ilk resmi ve halka açık beta sürümü Aralık 2008'de gerçekleşti. Android aynı zamanda x86 mimarisine de taşınmıştır.


Kaynaklar

Vikipedi – Özgür Ansiklopedi, WikiPedia

android.com – Android web sitesi

proandroid.net – Android Uygulamaları

youhtc.ru – NTS telefonları için her şey

Fastboot veya ADB'nin nasıl çalıştığını hiç merak ettiniz mi? Veya Android çalıştıran bir akıllı telefonu tuğlaya dönüştürmek neden neredeyse imkansızdır? Ya da belki uzun zamandır Xposed çerçevesinin büyüsünün nerede yattığını ve /system/etc/init.d önyükleme komut dosyalarına neden ihtiyaç duyulduğunu bilmek istiyorsunuz? Kurtarma konsolu ne olacak? Bu Android'in bir parçası mı yoksa başlı başına bir şey mi ve düzenli kurtarma neden üçüncü taraf ürün yazılımını yüklemek için uygun değil? Tüm bunların ve daha birçok sorunun cevabını bu yazıda bulacaksınız.

Android nasıl çalışır?

Yazılım sistemlerinin gizli yeteneklerini, çalışma prensibini anlayarak öğrenebilirsiniz. Bazı durumlarda sistem kodu kapalı olabileceğinden bunu yapmak zordur, ancak Android söz konusu olduğunda tüm sistemi içeriden ve dışarıdan inceleyebiliriz. Bu yazıda Android'in tüm nüanslarından bahsetmeyeceğim ve yalnızca işletim sisteminin nasıl başladığına ve güç düğmesine basılması ile masaüstünün görünümü arasındaki aralıkta hangi olayların gerçekleştiğine odaklanacağım.

Yol boyunca, bu olaylar zincirinde neyi değiştirebileceğimizi ve özel ürün yazılımı geliştiricilerinin bu yetenekleri, işletim sistemi parametrelerini ayarlama, uygulama depolama alanını genişletme, takas bağlama, çeşitli özelleştirmeler ve çok daha fazlası gibi şeyleri uygulamak için nasıl kullandıklarını açıklayacağım. Tüm bu bilgiler, kendi ürün yazılımınızı oluşturmak ve çeşitli hack'leri ve değişiklikleri uygulamak için kullanılabilir.

Birinci adım. ABOOT ve bölüm tablosu

Her şey birincil önyükleyiciyle başlar. Gücü açtıktan sonra sistem, cihazın kalıcı belleğinde saklanan önyükleyici kodunu çalıştırır. Daha sonra, fastboot protokolü için yerleşik destek ile kontrolü yeniden başlatılan önyükleyiciye aktarır, ancak mobil çipin veya akıllı telefon/tablet üreticisinin kendi tercih ettiği başka bir önyükleyiciyi seçme hakkı vardır. Örneğin Rockchip, fastboot uyumlu olmayan kendi önyükleyicisini kullanıyor ve flaşlama ve yönetim için özel araçlar gerektiriyor.

Fastboot protokolü ise, önyükleyiciyi bir PC'den yönetmek için kullanılan bir sistemdir; bu, önyükleyicinin kilidini açmak, yeni bir çekirdeğin yanıp sönmesi ve kurtarma, ürün yazılımı yükleme ve diğerleri gibi eylemleri gerçekleştirmenize olanak tanır. Fastboot'un varoluş nedeni, diğer tüm yöntemlerin başarısız olduğu bir durumda akıllı telefonu orijinal durumuna geri döndürebilmektir. Deneyler sonucunda Android içeren tüm NAND bellek bölümlerini ve akıllı telefonunuzdan kurtarma işlemini silseniz bile fastboot yerinde kalacaktır.

Kontrolü aldıktan sonra aboot, bölüm tablosunu kontrol eder ve kontrolü boot adlı bölüme aktarılan çekirdeğe aktarır, ardından çekirdek aynı bölümden RAM görüntüsünü belleğe çıkarır ve Android'i veya kurtarma konsolunu yüklemeye başlar. Android cihazlardaki NAND belleği, koşullu olarak gerekli altı bölüme ayrılmıştır:

  • önyükleme - genellikle yaklaşık 16 MB boyutunda çekirdek ve RAM diskini içerir;
  • kurtarma - kurtarma konsolu, bir çekirdek, bir dizi konsol uygulaması ve 16 MB boyutunda bir ayar dosyasından oluşur;
  • sistem - Android'i içerir, modern cihazlarda boyut en az 1 GB'dir;
  • önbellek - önbelleğe alınmış verileri depolamak için tasarlanmıştır, aynı zamanda bir OTA güncellemesi sırasında ürün yazılımını kaydetmek için de kullanılır ve bu nedenle sistem bölümünün boyutuna benzer bir boyuta sahiptir;
  • kullanıcı verileri - ayarları, uygulamaları ve kullanıcı verilerini içerir; kalan tüm NAND bellek alanı ona tahsis edilmiştir;
  • misc - sistemin hangi modda önyükleme yapması gerektiğini belirleyen bir bayrak içerir: Android veya kurtarma.
Bunlara ek olarak başka bölümler de olabilir, ancak genel işaretleme akıllı telefonun tasarım aşamasında belirlenir ve yeniden başlatma durumunda önyükleyici koduna dikilir. Bu şu anlama gelir: 1) fastboot oem format komutu kullanılarak her zaman geri yüklenebileceği için bölüm tablosu sonlandırılamaz; 2) bölüm tablosunu değiştirmek için, önyükleyicinin kilidini açmanız ve yeni parametrelerle yeniden başlatmanız gerekecektir. Ancak bu kuralın istisnaları da vardır. Örneğin, aynı Rockchip'in önyükleyicisi, bölümler hakkındaki bilgileri NAND belleğinin ilk bloğunda saklar, bu nedenle, onu değiştirmek için önyükleyicinin yanıp sönmesine gerek yoktur.

Bölüm tablosunu tanımlayan önyükleme yükleyici kodunun bir kısmı


Çeşitli bölüm özellikle ilgi çekicidir. Başlangıçta çeşitli ayarları ana sistemden bağımsız olarak depolamak için oluşturulduğuna dair bir varsayım var, ancak şu anda yalnızca tek bir amaç için kullanılıyor: önyükleyiciye sistemin hangi bölümden yüklenmesi gerektiğini - önyükleme veya kurtarma - belirtmek için. Bu özellik özellikle ROM Manager uygulaması tarafından, bellenimin otomatik kurulumuyla sistemi kurtarma işlemine otomatik olarak yeniden başlatmak için kullanılır. Temel olarak, Ubuntu önyükleyicisini kurtarma işlemine geçiren ve bir dahaki sefere hangi sistemin önyükleneceğini kontrol etmenize olanak tanıyan Ubuntu Touch çift önyükleme mekanizması oluşturulmuştur. Çeşitli bölümleri sildim - Android yükleniyor, verilerle dolduruluyor - kurtarma yükleri... yani Ubuntu Touch.

İkinci adım. Önyükleme bölümü

Misc bölümünde kurtarma önyükleme bayrağı yoksa aboot, denetimi önyükleme bölümünde bulunan koda aktarır. Bu Linux çekirdeğinden başka bir şey değil; bölümün başında bulunur ve hemen ardından cpio ve gzip arşivleyicileri kullanılarak paketlenmiş, Android'in çalışması için gerekli dizinleri, init başlatma sistemini ve diğer araçları içeren bir RAM disk görüntüsü gelir. Önyükleme bölümünde dosya sistemi yoktur; çekirdek ve RAM diski birbirini takip eder. RAM diskinin içeriği şunlardır:

  • veri - aynı adı taşıyan bölümün montajı için dizin;
  • dev - cihaz dosyaları;
  • proc - procfs buraya monte edilir;
  • res - şarj cihazı için bir dizi resim (aşağıya bakın);
  • sbin - bir dizi yardımcı program ve arka plan programı (örneğin adbd);
  • sys - sysfs buraya monte edilir;
  • sistem - sistem bölümünü monte etmek için dizin;
  • şarj cihazı - şarj işlemini görüntülemek için uygulama;
  • build.prop - sistem ayarları;
  • init - başlatma sistemi;
  • init.rc - başlatma sistemi ayarları;
  • ueventd.rc - init'te bulunan uventd arka plan programının ayarları.
Bu, tabiri caizse sistemin iskeletidir: NAND bellek bölümlerinden dosya sistemlerini bağlamak için bir dizi dizin ve sistemi başlatma işinin geri kalanını halledecek bir başlatma sistemi. Buradaki merkezi unsur, daha sonra detaylı olarak bahsedeceğim init uygulaması ve onun init.rc yapılandırmasıdır. Bu arada sbin, proc ve sys dizinlerinin yanı sıra, Charger ve ueventd.rc dosyalarının da dikkatinize sunulmasını isterim.

Şarj cihazı dosyası, tek görevi ekranda pil simgesini görüntülemek olan küçük bir uygulamadır. Android ile alakası yoktur ve cihaz kapalı durumda şarj cihazına bağlandığında kullanılır. Bu durumda Android yüklenmez ve sistem yalnızca çekirdeği yükler, RAM diskini bağlar ve şarj cihazını başlatır. İkincisi, resmi tüm olası durumlarda res dizini içindeki sıradan PNG dosyalarında saklanan bir pil simgesi görüntüler.

Ueventd.rc dosyası, sistem önyüklemesi sırasında sys dizininde hangi aygıt dosyalarının oluşturulması gerektiğini belirleyen bir yapılandırmadır. Linux çekirdeğini temel alan sistemlerde, donanıma erişim dev dizini içindeki özel dosyalar aracılığıyla gerçekleştirilir ve bunların Android'de oluşturulmasından init'in bir parçası olan ueventd arka plan programı sorumludur. Normal durumda, çekirdekten dosya oluşturmak için komutları kabul ederek otomatik modda çalışır, ancak bazı dosyaların bağımsız olarak oluşturulması gerekir. Ueventd.rc'de listelenirler.

Stok Android'deki sbin dizini genellikle adbd, yani sistemin bilgisayardan hata ayıklamasından sorumlu olan ADB arka plan programı dışında hiçbir şey içermez. İşletim sistemi önyüklemesinin erken bir aşamasında çalışır ve işletim sistemi başlatma aşamasında olası sorunları tanımlamanıza olanak tanır. Özel donanım yazılımlarında, bu dizinde, bölümlerin ext3/4 olarak yeniden biçimlendirilmesi gerekiyorsa gerekli olabilecek mke2fs gibi bir dizi başka dosya bulabilirsiniz. Ayrıca, mod geliştiricileri buraya genellikle yüzlerce Linux komutunu çağırabileceğiniz bir BusyBox yerleştirir.

Proc dizini Linux için standarttır; init, sistemdeki tüm işlemlerle ilgili bilgilere erişim sağlayan sanal bir dosya sistemi olan procfs'e bağlanacaktır. Sistem, sysfs'i, donanım ve ayarları hakkındaki bilgilere erişimi açan sys dizinine bağlayacaktır. Sysfs'yi kullanarak örneğin cihazı uyku moduna geçirebilir veya kullanılan güç tasarrufu algoritmasını değiştirebilirsiniz.

Build.prop dosyası, düşük seviyeli Android ayarlarını depolamak için tasarlanmıştır. Daha sonra sistem bu ayarları sıfırlayacak ve şu anda erişilemeyen system/build.prop dosyasındaki değerleri bunların üzerine yazacaktır.


OUYA TV set üstü kutusunun kök bölümü


İkinci adım, alternatif. Kurtarma bölümü

Çeşitli bölümde kurtarma önyükleme bayrağı ayarlandıysa veya kullanıcı ses kısma tuşunu basılı tutarak akıllı telefonu açarsa aboot, kontrolü kurtarma bölümünün başında bulunan koda aktaracaktır. Önyükleme bölümü gibi, belleğe açılan ve dosya sisteminin kökü haline gelen çekirdeği ve bir RAM diskini içerir. Ancak RAM diskinin içeriği burada biraz farklıdır.

İşletim sistemini yüklemenin farklı aşamaları arasında geçiş bağlantısı görevi gören önyükleme bölümünün aksine, kurtarma bölümü tamamen kendi kendine yeterlidir ve hiçbir şekilde Android ile bağlantısı olmayan minyatür bir işletim sistemi içerir. Kurtarmanın kendi çekirdeği, kendi uygulama seti (komutları) ve kullanıcının hizmet işlevlerini etkinleştirmesine olanak tanıyan kendi arayüzü vardır.

Standart (stok) kurtarma işleminde, genellikle bu tür yalnızca üç işlev vardır: akıllı telefon üreticisinin anahtarıyla imzalanan ürün yazılımının kurulumu, silme ve yeniden başlatma. ClockworkMod ve TWRP gibi değiştirilmiş üçüncü taraf kurtarmaların çok daha fazla işlevi vardır. Dosya sistemlerini formatlayabilir, herhangi bir anahtarla imzalanmış ürün yazılımını yükleyebilir (okuma: özel), dosya sistemlerini diğer bölümlere bağlayabilir (işletim sistemi hata ayıklama amacıyla) ve ürün yazılımı işlemini ve diğer birçok işlevi otomatikleştirmenize olanak tanıyan komut dosyası desteğini içerebilirler.

Örneğin komut dosyalarını kullanarak, önyüklemeden sonra kurtarma işleminin hafıza kartında gerekli ürün yazılımını otomatik olarak bulmasını, bunları yüklemesini ve Android'de yeniden başlatılmasını sağlayabilirsiniz. Bu özellik, ROM Yöneticisi, otomatik flaşör araçları ve ayrıca CyanogenMod ve diğer aygıt yazılımları için otomatik güncelleme mekanizması tarafından kullanılır.

Özel kurtarma ayrıca /system/addon.d/ dizininde bulunan yedekleme komut dosyalarını da destekler. Kurtarma, flashlamadan önce komut dosyalarını kontrol eder ve bellenimi flashlamadan önce bunları yürütür. Bu tür komut dosyaları sayesinde, yeni bir ürün yazılımı sürümü yüklendikten sonra boşluklar kaybolmaz.

Üçüncü adım. Başlatma

Böylece, kontrolü aldıktan sonra çekirdek, RAM diskini bağlar ve tüm alt sistemlerini ve sürücülerini başlattıktan sonra, Android'in başlatılmasını başlatan başlatma işlemini başlatır. Daha önce de söylediğim gibi, init'in init.rc yapılandırma dosyası vardır; bu dosyadan süreç, sistemi çalışır hale getirmek için tam olarak ne yapması gerektiğini öğrenir. Modern akıllı telefonlarda, bu yapılandırma birkaç yüz satırlık etkileyici bir uzunluğa sahiptir ve aynı zamanda içe aktarma yönergesini kullanarak ana yapılandırmaya bağlanan birkaç alt yapılandırmadan oluşan bir fragmanla donatılmıştır. Ancak formatı oldukça basittir ve aslında bloklara bölünmüş bir dizi komuttan oluşur.

Her blok bir yükleme aşamasını veya Android geliştiricisinin tabiriyle bir eylemi tanımlar. Bloklar, erken başlatma veya post-fs gibi bir on yönergesi ve ardından eylem adı ile birbirlerinden ayrılır. Komut bloğu yalnızca aynı adı taşıyan tetikleyici etkinleştiğinde yürütülür. Önyükleme sırasında init, sırasıyla erken-init, init, erken-fs, fs, post-fs, erken-önyükleme ve önyükleme tetikleyicilerini etkinleştirecek ve böylece ilgili komut bloklarını başlatacaktır.


CyanogenMod'dan init.rc yapılandırmasının bir parçası


Yapılandırma dosyası, başlangıçta listelenen birkaç yapılandırmayı daha beraberinde getirirse (ve bu neredeyse her zaman böyledir), o zaman içlerindeki aynı adı taşıyan komut blokları, ana yapılandırmayla birleştirilecektir, böylece tetikleyici etkinleştirildiğinde init, tüm dosyaların karşılık gelen bloklarından komutları yürütün. Bu, ana yapılandırma tüm aygıtlar için ortak komutlar içerdiğinde ve her aygıta özgü olanlar ayrı dosyalara yazıldığında, birkaç aygıt için yapılandırma dosyaları oluşturmanın rahatlığı için yapılır.

Ek yapılandırmalardan en dikkate değer olanı initrc.device_name.rc olarak adlandırılmıştır; burada aygıt adı, ro.hardware sistem değişkeninin içeriğine göre otomatik olarak belirlenir. Bu, cihaza özgü komut bloklarını içeren platforma özgü bir yapılandırma dosyasıdır. Çekirdeğin ayarlanmasından sorumlu komutlara ek olarak şunun gibi bir şey de içerir:

Kod:

Mount_all ./fstab.device_name

Bu, init'in artık aşağıdaki yapıya sahip ./fstab.device_name dosyasında listelenen tüm dosya sistemlerini bağlaması gerektiği anlamına gelir:

Kod:

Device_name (bölüm) mount_point dosya_sistemi fs_options diğer seçenekler

Genellikle dosya sistemlerini dahili NAND bölümlerinden /system (OS), /data (uygulama ayarları) ve /cache (önbelleğe alınmış veriler) dizinlerine bağlamak için talimatlar içerir. Ancak bu dosyayı biraz değiştirerek init'i sistemi hafıza kartından başlatmaya zorlayabiliriz. Bunu yapmak için hafıza kartını üç 4 bölüme ayırmanız yeterlidir: 1 GB / ext4, 2 GB / ext4, 1 GB / ext4 ve kalan fat32 alanı. Daha sonra, /dev dizinindeki hafıza kartı bölümlerinin adlarını belirlemeniz (farklı cihazlar için farklılık gösterir) ve bunları fstab dosyasındaki orijinal cihaz adlarıyla değiştirmeniz gerekir.


Tipik fstab dosya içerikleri


Önyükleme başlatma bloğunun sonunda, büyük olasılıkla class_start varsayılan komutuyla karşılaşacaktır; bu komut, daha sonra varsayılan sınıfla ilgili yapılandırmada listelenen tüm hizmetleri başlatmanız gerektiğini size bildirecektir. Hizmetlerin açıklaması hizmet direktifiyle başlar, ardından hizmetin adı ve onu başlatmak için yürütülmesi gereken komut gelir. Bloklarda listelenen komutların aksine, hizmetlerin her zaman çalışıyor olması gerekir, bu nedenle akıllı telefonun ömrü boyunca init arka planda kalacak ve bunu izleyecektir.

Modern Android düzinelerce hizmet içerir, ancak bunlardan ikisinin özel bir durumu vardır ve sistemin tüm yaşam döngüsünü belirler.

Dördüncü adım. Zigot ve app_process

Yüklemenin belirli bir aşamasında init, yapılandırmanın sonunda şu bloğa benzer bir şeyle karşılaşacaktır:

Kod:

Hizmet zigote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server sınıfı varsayılan soket zygote akışı 660 kök sistem açıkyeniden başlat yazma /sys/android_power/request_state uyandırma açıkyeniden başlat yazma /sys/power/state açık yeniden başlatma medyayı yeniden başlatma yeniden başlatma netd'yi yeniden başlatma

Bu, herhangi bir Android sisteminin temel bileşeni olan ve başlatma, sistem hizmetlerini başlatma, kullanıcı uygulamalarını başlatma ve durdurma ve diğer birçok görevden sorumlu olan Zygote hizmetinin açıklamasıdır. Zygote, yapılandırmanın yukarıdaki bölümünde açıkça görülebilen küçük bir uygulama /system/bin/app_process kullanılarak başlatılır. App_proccess görevi, kodu /system/lib/libandroid_runtime.so paylaşılan kütüphanesinde bulunan Dalvik sanal makinesini başlatmak ve ardından Zygote'u onun üzerinde çalıştırmaktır.

Bütün bunlar yapıldıktan ve Zygote kontrolü ele aldıktan sonra, çerçevenin tüm Java sınıflarını (şu anda 2000'den fazla) yükleyerek Java uygulaması çalışma zamanını oluşturmaya başlar. Daha sonra, Windows Yöneticisi, Durum Çubuğu, Paket Yöneticisi ve en önemlisi, gelecekte başlangıç ​​ve bitişin alınmasından sorumlu olacak Etkinlik Yöneticisi dahil olmak üzere üst düzey (Java ile yazılmış) sistem hizmetlerinin çoğunu içeren system_server'ı başlatır. uygulamalara sinyal verir.

Bundan sonra Zygote /dev/socket/zygote soketini açar ve veriyi bekleyerek uyku moduna geçer. Bu sırada daha önce başlatılan Activity Manager, masaüstünü oluşturmaktan sorumlu uygulamayı bulmak için bir yayın amacı Intent.CATEGORY_HOME gönderir ve adını soket aracılığıyla Zygote'a verir. İkincisi, uygulamayı sanal makinenin üstünde çatallar ve çalıştırır. Voila, ekranımızda Activity Manager tarafından bulunan ve Zygote tarafından başlatılan bir masaüstü ve Durum Çubuğu hizmetinin bir parçası olarak system_server tarafından başlatılan bir durum çubuğumuz var. Simgeye dokunduktan sonra masaüstü bu uygulamanın adını içeren bir niyet gönderecek, Etkinlik Yöneticisi bunu alacak ve uygulamayı başlatma komutunu Zygote arka plan programına iletecek

Bütün bunlar biraz kafa karıştırıcı görünebilir ancak en önemli şey üç basit şeyi hatırlamaktır:

  • Android başlatma süreci iki temel aşamaya ayrılmıştır: Zygote'tan önce ve sonra. Zygote'u başlatmadan önce sistem düşük seviyeli işletim sistemi bileşenlerini başlatır. Bunlar, dosya sistemlerini bağlamak (bağlamak), düşük seviyeli hizmetleri başlatmak (örneğin, GSM modemiyle çalışmaktan sorumlu olan rild, ekranda gösterilenleri kontrol eden SurfaceFlinger, bağlı olanı kontrol eden vold) gibi işlemlerdir. dosya sistemleri). Zygote başlatıldığında, başlatma yalnızca işletim sisteminin %80'ini oluşturan Java bileşenlerinde başlar. Bu, özellikle, kurulduğunda app_process'i, herhangi bir Java sınıfının çağrılarını yakalayabilen ve bunları başkalarıyla değiştirebilen kendi değiştirilmiş sürümüyle değiştiren iyi bilinen Xposed çerçevesi tarafından kullanılır. Xposed modüllerinin bu kadar geniş modifikasyon yeteneklerine sahip olmasının nedeni budur. dış görünüş ve Android davranışı. Aslında sistemdeki hiçbir şeyi değiştirmezler, sadece sistemi kendi bileşenleri yerine üçüncü taraf bileşenleri kullanmaya zorlarlar.
  • Java uygulamaları hiçbir zaman sıfırdan başlatılmaz. Zygote, Activity Manager'dan bir uygulamayı başlatma isteği aldığında, yeni bir sanal makine başlatmaz, yalnızca fork yapar, yani kendisini kopyalar ve ardından onu sanal makinenin alınan kopyasının üzerinde başlatır. doğru uygulama. Bu çalışma prensibi, ilk olarak, Linux, bir çatal sırasında belleği yazma üzerine kopyala modunda kopyaladığından (yeni işlem eskisinin belleğini ifade eder) ve ikinci olarak, önemli ölçüde hızlanmayı sağladığından, ilk olarak bellek tüketimini en aza indirmeye olanak tanır. uygulamanın başlatılmasını hızlandırmak: süreci çatallamak, yeni bir sanal makine başlatmaktan ve uygulamanın ihtiyaç duyduğu Java sınıflarını yüklemekten çok daha hızlıdır.
  • Android, her yerde niyetleri kullanır. Android bileşenleri birbirleriyle iletişim kurmak için hiçbir zaman prosedürlere ve sınıflara doğrudan çağrılar kullanmaz. Bunun yerine, yüksek düzeyde güvenliğe ek olarak, örneğin bir uygulamayı onun hakkında hiçbir şey bilmeden çağırma yeteneği gibi birçok başka avantaj da sağlayan bir mesaj sistemi (niyetler) kullanılır. Yukarıda, masaüstünü başlatmak için sistemin yalnızca başlatıcı işlevini gerçekleştirebilen herhangi bir uygulamanın yanıt vereceği Intent.CATEGORY_HOME amacını göndermesi gerektiğini yazmıştım. “Paylaş” butonu sistemin diğer birçok bileşeniyle aynı şekilde çalışır.

Android nedir ve neden gereklidir? Yeni başlayanların çoğu, ister tablet ister akıllı telefon olsun, modern bir gadget satın alırken benzer bir soru sorar. Durumu açıklığa kavuşturmak ve bu platformun bazı avantajlarını vurgulamakta fayda var.

Görünüm tarihi

Günümüzde Android platformunda çalışan birçok cihaz bulunmaktadır. Bu işletim sistemi akıllı telefonlar ve tabletler, saatler ve e-okuyucular, oyun konsolları ve hatta Google gözlükleri için tasarlanmıştır. Belki yakında Android destekli TV'ler ve arabalar ortaya çıkacak.

İşletim sisteminin yaratılış tarihi 2003 yılında başladı. O dönemde Android Inc adında küçük bir kuruluş kuruldu. Kurucuları Rich Miner, Chris White, Andy Rubin ve Nick Sears'dı. O zaman bile yeni işletim sisteminde uygulanması planlanan bazı geliştirmeler sürüyordu. Şirket faaliyetlerini büyük bir gizlilik içerisinde yürütüyordu.

Kuruluşun kısa sürede parası bitti ve işletim sistemi geliştirmede önemli bir başarı elde edilemedi. Sonuç alınamaması nedeniyle yatırımcıların ilgisini çekemedi. Bir süre sonra Google bu gelişmeyle ilgilenmeye başladı. 2005 yılında şirket arama devinin mülkiyetine geçti.

Bundan sonra Open Handset Alliance Corporation kuruldu. Önde gelen mobil cihaz üreticilerini içerir. Android platformu ilk olarak 2007 yılında tanıtıldı. Bildiğiniz gibi Linux çekirdeği üzerine kurulu. Bu işletim sisteminin ilk sürümü 2008 yılında piyasaya sürüldü.

Nedir

Android, akıllı telefonlara, tabletlere ve diğer birçok cihaza güç sağlayan işletim sistemidir. Bu işletim sistemi sayesinde en ucuz telefon bile yeni yetenekler kazanabilecek. Sistem çeşitli kurulumlar yapmanıza izin verecektir. faydalı programlar Bu, cihazın tüm işlevlerinden tam olarak yararlanmanıza yardımcı olacaktır.

Gerekli tüm yazılımlar şuradan indirilebilir: Oyun Pazarı. Bu sitede 700 binden fazla program bulunmaktadır. Geniş ürün yelpazesi ihtiyacınız olan herhangi bir uygulamayı bulmanızı sağlayacaktır. İşletim sistemini kullanarak internete kolayca erişebilir, video dosyalarını izleyebilir, sosyal ağlar, müzik dinleyin, fotoğraf çekin ve bunları hemen hesabınıza gönderin veya e-kitap okuyun.

İşletim sisteminin tamamen ücretsiz olduğunu belirtmekte fayda var. Üstelik kullanımı oldukça kolaydır. Arayüzü anlamak fazla zaman almayacaktır. Tüm avantajları sayesinde dünyada en yaygın olanı haline gelmiştir. 2014 yılında bu platformda çalışan cihazların %86'sından fazlası satıldı.

Video: Android telefon

İşletim sistemi uygulaması

Android işletim sisteminin günümüze gelişinden bu yana geliştiriciler boş boş oturmuyorlar. Platform sürekli geliştirilmektedir. Aynı zamanda yeni özellikler getirilerek işlevselliği genişletildi.

Fotoğraf: Android 4.0 en son mobil sürümdür

Platform o kadar popüler ve kullanımı rahat hale geldi ki, modern gadget'lar geliştiren birçok şirket, cihazlarını bu işletim sistemini temel alarak piyasaya sürmeye karar verdi.

Android'i kullanmak göründüğü kadar zor değil. Onun yardımıyla, cihazınızda bilgisayarınızdakiyle hemen hemen aynı işlemleri gerçekleştirebilirsiniz.

Sistem birkaç tane sağlar standart uygulamalar. Bunlar arasında:

  • tarayıcı;
  • e-posta;
  • takvim;
  • sesli arama;
  • sosyal ağlar;
  • gezgin;
  • hava durumu;
  • haberler.

Tüm uygulamalar Google'dan.

Bir başka güzel artı da masaüstünüzü kendiniz özelleştirebilme yeteneğidir. Cihazınıza kısayol veya widget yerleştirebileceğiniz ek bir ekran ekleyebilirsiniz. Ayrıca istediğiniz herhangi bir temayı veya duvar kağıdını yükleyebilir, böylece arayüzü değiştirebilirsiniz.

Neden iyi

Bu işletim sisteminin birçok avantajı vardır. Başlıcaları şunlardır:


Android geliştirmenin aşamaları

Platformun ilk versiyonunun sunumunun ardından gelecek yıl iyileştirildi ve bunun sonucunda bazı sistem hataları düzeltildi.

2009'da beş güncellenmiş sürüm piyasaya sürüldü:


2010, iki versiyonun daha piyasaya sürülmesiyle kutlandı. Şunlar oldu:


Üreticilerin bir sonraki gelişmesi 2011 yılında sunulan platform 3.0 oldu. Yeni işletim sistemi özellikle tabletler için tasarlandı.


Bu sistem öncekilerden farklıdır:
  • geliştirilmiş arayüz;
  • bağlantıları Google Chrome ile senkronize etme yeteneği;
  • harici klavye desteği;
  • artık ekrandaki widget'ların boyutunu değiştirmek mümkün;
  • çok çekirdekli bir işlemci üzerinde çalışın.

Geliştiriciler bununla yetinmediler ve "Dondurmalı Sandviç" adı verilen Android 4.0'ı yarattılar. Bu platform daha evrensel hale geldi. Hem telefonda hem de tablette kullanılabilir.

Fotoğraf: Android 4.0 “Dondurmalı Sandviç”

İşletim sistemi birçok yeni özelliğe ve iyileştirmeye sahiptir:

  • Bildirim paneli değiştirildi;
  • İnternet trafiğini kontrol etmenin bir yolu eklendi;
  • bir ses dikte işlevi ortaya çıktı;
  • yazım denetimi sistemi;
  • Kamera uygulaması iyileştirildi - panoramik çekim modu, çeşitli efektler ve görüntü sabitleyici ortaya çıktı;
  • tarayıcı güncellendi;
  • ekran görüntüleri desteği;
  • güncellenmiş güvenlik ve gadget koruma sistemi.

2012 ve 2013 boyunca üreticiler Jelly Bean işletim sistemini geliştirmek için çalıştı..

Sonraki sürümler 4.1, 4.2, 4.3 idi. Yeni değişiklikler esas olarak arayüzün hızını etkiledi. Yeni gelişmeler sayesinde verimlilik artırıldı. Artık GPU ve merkezi işlemci paralel çalışıyor.

Platformun güncellenmiş sürümü şunları içeriyor:


2013'ün sonunda bir tane daha duyuruldu Android sürümü 4.4 "Kitkat". Yeni platform, daha ucuz cihazlarda çalışacak şekilde optimize edildi. Veri deposu 512MB.

Burada da bazı değişiklikler var:

  • Artık akıllı telefonlarda kullanıcının daha sık iletişim kurduğu kişiler listenin başında yer alıyor;
  • sesli asistan her zaman etkindir;
  • otomatik arayan kimliği;
  • altyazılar artık video oynatıcıda görüntüleniyor;
  • dosya indiricinin güncellenmiş bir tasarımı vardır;
  • pedometre uygulamaları için destek;
  • Çok sayıda hata ve eksiklik giderildi.

Şirketin en son geliştirmesi sürüm 5'tir. Yeni işletim sisteminin adı "Lollipop"tur. Ana vurgu, çok yönlülüğüyle öne çıkan Materyal tasarımıydı.

Rakipler

Android platformunun avuç içi için mücadele etmesi gereken ana rakipler:

  • Apple iPhoneOS;
  • Microsoft Windows Mobil;
  • RIM BlackBerry İşletim Sistemi;
  • Maemo/MeeGo;
  • Samsung Bada İşletim Sistemi;
  • Palm web işletim sistemi;
  • Symbian işletim sistemi.

Günümüzde Android, iOS'tan sonra dünyada en yaygın mobil platform haline gelmiştir. Ancak yakın zamanda yeni Ubuntu Telefon İşletim Sisteminin sunumunun yapılması planlanıyor. Belki de Android'in bir başka ciddi rakibi haline gelecektir.

Android cihazlar

2008 yılında Android'de çalışan ilk cihaz piyasaya sürüldü. Cihaz HTC tarafından geliştirildi. HTC Dream adında bir akıllı telefondu. Bundan sonra birkaç telefon üreticisi daha üretim yapma arzusunu dile getirdi. mobil cihazlar Bu işletim sistemi desteğiyle.

Yakında Android platformunu temel alan bir tablet duyuruldu. 2009 yılında bu işletim sistemi üzerinde çalışan bir fotoğraf çerçevesi piyasaya çıktı. Ayrıca Blue Sky organizasyonu 2 yıl sonra i'm Watch adını verdiği yeni bir kol saati geliştirdi. Onlar da bu sistemi destekliyorlar.

Kamera üreticileri de buna ayak uydurmaya karar verdi ve dünyanın Android'de çalışan ilk kamerasını tanıttı.

Yeni ürün Nikon tarafından piyasaya sürüldü. Ayrıca oyun konsolları, e-kitaplar ve medya oynatıcılar da bu platform üzerinde çalışmaktadır. Yakında daha fazla cihazın ortaya çıkması bekleniyor.

Bu gelişme hızıyla Android platformu, tüm rakiplerini geride bırakarak diğer işletim sistemleri arasında mutlak lider haline gelecektir.