2010-08-07 17 views

cevap

9

Bu soruyu sorduğunuzda şaşırmadım. Android programlama paradigması, kişisel olarak deneyimlediğim her şeyden oldukça farklı ve API'deki ilk bakışınız biraz göz korkutucu olabilir. Hiç başka bir mobil cihazda hiç geliştirmedim, ancak Android'in mevcut işletim sisteminin en katı mimarisine sahip olduğunu ve birçok tasarım toplantısının sonucu olduğunu düşünüyorum.

kafamın üst kapalı aklınıza gelebilecek bazı karşılaştırılabilir desenler

  • bir Activity bir masaüstü sisteminde bir pencereye esasen eşdeğerdir ancak birçok yönden de bir uygulamaya denk olabilir bir bütün olarak. Bir Android uygulaması genellikle birden fazla Activity'dan oluşmasına rağmen, her bir etkinliğin kendi iyi tanımlanmış yaşam döngüsü ve kendini hazırda bekleme/geri yükleme yöntemleri vardır (ör. onSaveInstanceState() yöntemi). Bununla birlikte, bir Activity kesinlikle bir işleme eşdeğer değildir. Android işlem yaşam döngüsünün sıkıntılarını gerçekten anlamak istiyorsanız, Etkinlik javadoc'unu okuyun ve this other SO question'a bakın.
  • ActivityGroup sadece android.widget.TabHost ile birlikte kullanılır. ActivityGroup'u tek bir Activity gibi ele almalısınız.
  • Yukarıda bahsedilen bir kişi Activity bir kapsayıcıdır ve öyle, ancak düzen veya çizimden sorumlu çocuklara sahip değildir. Daha iyi bir benzetmenin "Etkinlik: window :: ViewGroup: layout/container" olduğunu söyleyebilirim.
  • android.app.Service == cin
  • en UI çerçeveler olduğu gibi, tüm UI işlemleri tek bir iş parçacığı ("UI iş parçacığı") üzerinde gerçekleşmesi ve üzerinde yürütülecek bir kod belli bir yığın sıraya izin yarar yöntem vardır UI iş parçacığı eşzamansız olarak.Bu, WPF'nin DispatcherObject veya SWT'nin Display numarasına benzer.
  • Android, kullanıcı alanı fikrini, çekirdek alan fikrini dosya sistemine genişletir; diğer uygulamaların sanal belleğine erişemezsiniz, ancak uygulamanızın başka bir kullanıcı veya uygulamanın okuma/yazma izinleri bulunmadığı kendi dosya sistemi de vardır.
  • Uygulamanızın özel veri deposuna erişimi olan başka uygulamalar sağlamak isterseniz, bunu ContentProvider kullanarak gerçekleştirebilirsiniz. ContentProviders, sorgu tabanlı bir sözdizimi sunar ve geleneksel bir işletim sisteminde bulabileceğiniz herhangi bir ODBC uygulamasına çok benzer.
  • Düşünebildiğim Intents için en yakın benzetim aslında AppleScript. OS X uygulamalarının komut dosyası altyapısına belirli yöntemler göstermesi gibi, Android uygulamaları da yüksek düzeyde IPC'nin "niyetleri" ni işleyebilir. Buradaki en büyük fark, Apple-scriptable uygulamalarının betik elemanlarını bir "betikleme sözlüğü" aracılığıyla açığa çıkarmasıdır, buna karşılık bir Android uygulamasının bu uygulama için AndroidManifest.xml'a bakmadığınız sürece hangi amaçların ele alınabileceğini bulmak zor olmaktadır.

için Sonuç: Android iyi ya da kötü, karşılaştığım başka ve her şeyden daha çok çok farklıdır, zaman içinde keşfetmeye devam edecektir platformu hakkında çok sayıda nüanslar olacak. Yapabileceğiniz en iyi şey, Geliştirici Kılavuzu'nu doğrudan yukarıdan aşağıya doğru okuyarak başlamaktır. Tam zamanlı bir Android geliştiricisi olmak için 7 ayım var ve hala her gün yeni şeyler öğreniyorum. :-)

0
  • Olaylar: Artık iki tane var, Olaylar ve Amaçlar. Amaçlarla, herkes kayıt olmaktan ziyade davranışlara abone olabilir.
  • Masaüstü widget

Hem, kitaplığı (değil kullanıcı arabirimi kavanozları) alır (birçok kısıtlamalarla) android Widget aynıdır ve J2SE kesilmiş olan J2ME aksine minimal değişikliklerle birlikte çalışır. Android'in JVM'si temel Java kütüphanelerine neredeyse eşdeğerdir. Lucene'yi denedim ve Android'de çok az kesinti ile çalıştı.

0

Masaüstü geliştirme sayesinde bu, mobil olduğu için anlayamıyorsunuz. Sonunda (niyet sistemi daha halledeceğim

  • Etkinlik = Formu/Konteyner
  • ActivityGroup az sıklıkta veya kullanılan tüm
  • Intents yazılım işlemlerini çıkarmaya API ağ geçidi bir çeşit olay bir kod tarafından ele alınır)

Olaylar, olayların yönteminize eklenme biçimindeki Olaylardan farklıdır. Amaçlar önce SDK'da derinlere iner ve ele alındığında (yayınlanmaya, yayınlanmaya, bildirilmeye), bir etkinlik olarak geri dönecek ve böylece harekete geçebilirsiniz.

İlgili konular