top-image

DAHA ESKİ YAZILAR

Android programlama geliştirmede en zor kısmı belki de arayüz tasarımıdır. Tasarım da bir programa ihtiyaç duyduğumuzda bugüne kadar Eclipse üzerindeki “basit” tasarım aracından yardım alarak ya da DroidDraw aracılığı ile bazı şeyleri yapmaya çalıştık. Fakat artık güzel bir projemiz daha var, ismi Android UI Utilities.

Android UI Utilities tasarımcı ve uygulama geliştiricilerin karşısına 3 farklı araç ile çıkıyor;

  • UI Prototyping Stencils
  • Android Asset Studio
  • Android Icon Templates

Proje sayfasına buradan ulaşarak kullanmaya başlayabilirsiniz. Projenin henüz BETA aşamasında olduğunu hatırlatmakta fayda var.

7 kişi bu yazıyı beğendi.

Layout’lar içerisinde, kendi custom componentlerimizi; uygulamalarımızın birden fazla yerinde veya herhangi bir UI componenti kullanacağımız zaman, kod hamallığı yapmamak için başvuracağımız bir yöntem.

Yani, mesela main.xml içerisinde;

<WebView android:id="@+id/webView"
android:layout_width="fill_parent" android:layout_height="fill_parent" />

kullanımı işimizi görmeye yetmiyorsa, burada yapmamız gereken WebView classını kendimize ait bir class’a extend ederek, layout xml’ilmizin içerisinde de bu classımızı çağırmamız gerekiyor. Şimdi aşağıda bu yapıya bakalım;

public class AndroidProgramlamaActivity extends Activity {
       
        MyWebView webView;
       
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       
        setContentView(R.layout.main);
       
        webView = (MyWebView) findViewById(R.id.webView);
   
        webView.loadUrl("http://www.AndroidProgramlama.com");
               
    }
}

Yukarıdaki kodlara yakından bakacak olursak, MyWebView isminde WebView’i extend eden bir classımız var. MyWebView, kendi yazdığımız main.xml içerisinde yer alıyor ve bunu AndroidProgramlamaActivity içerisinde çağırıyoruz.

public class MyWebView extends WebView{

         private Rect mRect;
         private Paint mPaint;
       
        public MyWebView(Context context, AttributeSet attrs) {
                super(context, attrs);
               
            mRect = new Rect();
            mPaint = new Paint();
            mPaint.setStyle(Paint.Style.STROKE);
            mPaint.setColor(0×800000FF);
               
            getSettings().setRenderPriority(RenderPriority.HIGH);
            getSettings().setJavaScriptEnabled(true);
            getSettings().setPluginsEnabled(true);
               
        }
       
        @Override
        protected void onDraw(Canvas canvas) {
               
                int count = getHeight();
                       
                Rect r = mRect;
                Paint paint = mPaint;

                for (int i = 0; i < count; i++) {
                      int baseline = getBaseline();

                      canvas.drawLine(r.left, baseline + 1, r.right, baseline + 1, paint);
               }
       
        super.onDraw(canvas);
        }
}

MyWebView içerisinde, 2 metodu tanımlamak zorundayız. Default constructor ve onDraw(). Burada dikkat edilmesi gereken Default constructor’ün super() metodunu mutlaka çağırmamız gerekiyor. onDraw() içerisinde de, webView’imize ait spec’leri giriyoruz.

(Not: MyWebView contructoründe tanımladığımız

getSettings().setRenderPriority(RenderPriority.HIGH);
getSettings().setJavaScriptEnabled(true);
getSettings().setPluginsEnabled(true);

kodları tamamen benim tercihlerimdir. Siz kendinize göre ayarlayabilirsiniz.)

Son olarak Main.xml’de kendimize göre ayarladığımız componentimizi nasıl tanımlayacağımza bakalım;

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent" android:layout_height="fill_parent">

        <com.android.programlama.MyWebView
                android:id="@+id/webView" android:layout_width="fill_parent"
                android:layout_height="fill_parent" />
               
</LinearLayout>

Sonuç olarak, bu işlemlerin sonunda artık istediğimiz XML dosyamızın içerisinde, ayarlarını sadece 1 kere yaptığımız MyWebView’i componentini kullanabiliriz. Yazıda custom component kullanımı WebView üzerinden anlatılmıştır, fakat hemen hemen tüm User Interface componentlerinde bu yöntemi kullanabiliriz.

Kaynaklar;
Declaring Layout
WebView class reference
Building Custom Components
Hello, WebView
Creating The Custom View Class

2 kişi bu yazıyı beğendi.

Bir süredir sitemizde yaşanan “yazılara yorum yazamama” sorunu dün itibariyle giderilmiştir.  Anlayışınız için teşekkürler.

2 kişi bu yazıyı beğendi.

Aslında, çözümü oldukça basit olan bir problemden bahsedeceğim. Mac üzerine Android SDK’yı indirip, Eclipse aracılığıyla kurduğunuzda, ilk yapacağımız iş elbetteki heyecanla “new project” seçeneğini seçmek oluyor. Fakat burada bizi kötü bir süpriz bekliyor, çünkü yeni proje başlatmak istediğimizde, aşağıdaki resimde görülen “Build Target” alanı “patlamış” bir şekilde karşımızda duruyor. Herhangi bir şekilde SDK versiyonunu seçemiyoruz.

Merak etmeyin, tekrardan AVD manager’a gidip, tool’u update etmenize gerek yok. Zaten bu yöntem işe de yaramıyor. Build target’ların gelmesi için çözüm olarak tek yapmanız gereken, AVD manager menüsünden (Window -> Android SDK and AVD Manager), yeni bir virtual device oluşturmanız. Sonra tekrardan “new project” dediğinizde build targetlar karşınıza düzgün bir şekilde geleceğini göreceksiniz.

3 kişi bu yazıyı beğendi.

Google’ın bazı servislerinin kapanmasından ötürü developer.android.com sitesinden Android SDK’sının indrilmesi ya da güncellenmesi işlemlerinin yapılmasında güçlüklerle karşılaşılmaktadır. Bunun giderilmesi için aşağıdaki yöntemi sırasıla izleyiniz.

  1. DNS adresinizi: 4.2.2.5 ve 4.2.2.6 olarak değiştirin.
  2. Hosts dosyanızı ayarlayın,
    • Windows için, windows/system32/drivers/etc/hosts dosyasına;
    • unix/linux için, etc/hosts dosyasına
      bu satırı ekleyin;
       209.85.229.99 dl.google.com

        kaydederek kapatın.

  3. DNS cache’inizi boşaltın

Bu işlemleri yaptıktan sonra web tarayıcınızı yeniden başlatın ve tekrardan Android sitesine girin. Adımları başarılı bir şekilde tamamladıysanız artık SDK indirilmesi ile ilgili bir sorun yaşamıyor olmalısınız.

13 kişi bu yazıyı beğendi.

Mobil dünyanın en gelişmiş 2 işletim sistemi; IPhone ve Android’in birbirlerine olan üstünlükleri konu edinen yazılarıma zaman zaman yer vereceğim. Bu yazımda, bu iki platformda uygulama geliştirme konusundaki bazı kısıtlamalardan ve üstünlüklerden bahsettim. Bu bilgileri bilmek; uygulama geliştirme öncesinde, hangi platformla hangi yetkinliklerde uygulamalar geliştirebileceğimizi bilmemiz açısından ciddi bir yarar sağlayacaktır.


Uygulama geliştirme öncesinde, özellikle IPhone için kısıtlamaları dile getiren bir yazı yazacaktım fakat google’dan aradığımda hazır yazılmış bir yazı buldum:) Aşağıda IPhone için yazılanların büyük çoğunluğu bu makaleden alıntıdır. Bende iphone için olanların altına Android için olanları ekledim.


(siyah font IPhone, kırmızı yazılı olanlar Android için geçerlidir).

* SIM Kart’a Erişim.

Apple hiç bir şekilde geliştiricilerin cihaza takılı SIM karta erişimine izin vermiyor. Dolayısıyla hiç bir uygulama, bırakın kullanıcının telefon numarasını hangi operatörü kullandığını bile anlayamıyor. Benzer şekilde uygulamalar cihazın IMEI numarasına da erişemiyor. Apple bir tek SDK’da, UDID (Unique Data Item Description) şeklinde adlandırılan ve her cihaz için eşsiz (unique) olan numarayı almamıza izin veriyor.

Android’de böyle bir durum söz konusu değildir. SIM karta, operatöre, operatörün hangi ülkede olduğuna, sim karta ait uniqe numaraya, telefon numarasına ve IMEI numarasına erişebilirsiniz.


* Telefon, SMS ve Mail Uygulamalarına Erişim.

Apple geliştiricilerin Telefon, SMS ve Mail uygulamalarına erişime de izin vermiyor. Dolayısıyla geliştiriciler daha yetenekli bir SMS uygulaması yazamıyor. Eminim bir çok geliştiricinin aklından “Çalarken Reklam Dinlet” konseptinde olduğu gibi “iPhone’da Ararken Reklam İzlet” şeklinde bir telefon uygulaması geliştirmek geçmiştir. Maalesef SDK’nın kısıtlarından dolayı bu mümkün değildir.

Android’de böyle bir durum söz konusu değildir. SMS’lerin ve MMS’lerin tamamına, mail kutusuna ulaşabilir hatta backgrounda SMS gönderebilir, gelen/giden SMS’lerin içeriğine göre process başlatabilir ve dahasını yapabilirsiniz.

* Diğer Uygulamaların Verilerine Erişim.

Apple bir kaç istisna hariç uygulamanın kendisine ayrılan veri alanın haricindeki yerlere ulaşımına, özellikle diğer uygulamaların verilerine ve uygulamaların kendisine erişim izni veriyor. Sadece Fotoğraf Albumü (Photo Album), Rehber (Contact List) gibi kısıtlı sayıdaki noktalara erişim izni veriyor.

Photo Album, Contact List vs gibi core uygulamalara, uygulamalarımızla erişebiliriz. Android’de diğer uygulamaların verilene erişim, diğer uygulamanın kendi verilerine eşiminin kendisi tarafından izin verilip, verilmemesine bağlıdır. Yani bardağın öbür tarafından bakacak olursak; kendi uygulamamızı kullanarak elde ettiğimiz verileri, public hale getirip başka uygulamaların bu verilerden yararlanmasını sağlayabiliriz.


* Üçüncü Parti API Kullanımı.

Apple geliştiricilerin, başklarının geliştirdiği ve önceden derlediği API’leri, uygulamaları kullanmalarına veya çalıştırmalarına izin vermiyor. Üçüncü partilerin geliştirdiği uygulamaları kullanmanın tek yolu, ilgili uygulamanın kodunu kendi uygulamamız içine gömerek ve Apple’ın API’si ile derleyerek paketlemeden geçiyor.

Android tarafında böyle bir kısıt söz konusu değil. Java’da kullanılmak üzere hazırlanmış open source bir API’yi uygulamamda kullanmıştım. Herhangi bir “red” yemedim.

* Uygulamalarda Açık Kaynak API Kullanımı.

Apple, iPhone uygulamaları içerisinde yukarıdaki maddeye uygun olacak şekilde Açık Kaynak kütüphanelerine kullanımına bir yasak getirmiyor. Fakat kullanılan kütüphanenin kullanım sözleşmesi, iPhone SDK anlaşması ile çelişiyorsa bu durumda ilgili kütüphanenin kullanımını yasaklıyor.

Android tarafında, bir üst madde ile aynı durum söz konusu.

* Sistem Dosyalarına ve Ayarlarına Erişim.

Apple’ın iPhone uygulamalarının sistem dosyalarına ve ayarlarına erişime izin vermiyor. Örneğin uygulama içerisinden Wi-Fi kapatılıp açılamıyor ya da uygulamanın internete çıkış noktası (Wi-Fi veya EDGE) değiştirilemiyor.

Bir uygulamada Wi-fi gerekli ise, kullanıcı wi-fi settings menüsüne yönlendirilip, erişim sağlanması isteniyor. Yeni çıkan API’de (Android 2.1) kullanıcı onayı ile wifi direk kontrol edilebiliyor sanırım.

* Cellular Network (GPRS/EDGE/3G) Kullanımı.

Apple, VOIP uygulamalarının Operatör Ağları (EDGE/3G) üzerinden veri transferine izin vermiyor. Ayrıca uygulamaların sadece EDGE/3G üzerinden internete çıkmasını da kabul etmiyor. Bu yüzden geliştireceğiniz iPhone uygulamasının mutlaka Wi-Fi üzerinden de internete çıkabilir olması gerekiyor.

Android’de böyle bir saçmalık yok. Yukarıda IPhone için sayılan durumun da düzeltildiğine inanıyorum.

* APN Tanımı.

Apple, iPhone’da baz istasyonları üzerinden internete çıkış imkanı veren APN tanımının sadece bir tane olmasına izin veriyor. Ayrıca bu apn tanımı üzerinde detaylı bir konfigürasyon yapılamıyor. Bu tanımı da sadece kullanıcının değiştirmesine izin veriyor. Zaten kullanıcılar da bunu internet APN’i olarak kullanıyorlar. Dolayısıyla MMS gibi farklı APN tanımı isteyen uygulamalar çalışamıyor.

Benzer durum Android içinde geçerlidir.

* Video Streaming.

Apple’ın bu konuda kesin bir yasağı olmamasına rağmen SDK’sında video streaming ile ilgili bir API’nin bulunmamasından dolayı, geliştiricilerin video streaming uygulamaları geliştirmesi çok zor oluyor. Apple gayri resmi açıklamalarında bunun nedenini streaming’in cihazın pil ömrünü çok kısa sürede bitirmesi olarak açıklıyor. Fakat buna rağmen App Store’da sayılı firma tarafından geliştirilmiş “Live Video Streaming” uygulamaları da bulunuyor.

Android’de çok verimli olmasa da, video stream uygulaması yapılabiliyor.

* Human Interfance Guidelines ile Uyumluluk.

Apple, iPhone için geliştirilmiş uygulamalarınHuman Interface Guidelines ismini verdiği dokümana göre geliştirilmesini istiyor. Apple’ın burdaki amacı, iPhone kullanıcı alışkanlığını ve tecrübesini bir seviyeye kadar standart tutup, uygulamayı ilk defa kullanacak birinin zorlanmadan uygulamaya alışması. Uygulamalara App Store’a çıkmadan evvel Apple çalışanları tarafından bizzat test edilip kullanıldığı için Human Interface Guidelines’a aykırı uygulamalar her zaman olmasa da çoğunlukla yakalanıyor.

Android tarafından programlar, Android Markete yüklenirken bizzat test edilmiyorlar. Bu yüzden markete gönderdiğiniz uygulamanız, 10-15 içerisinde yayınlanabiliyor. Android tarafından sunulan benzer bir interface tavsiyeleri bulunuyor fakat bunlar kurallar bütünü şeklinde işlemiyor. Eğer kullanıcılar rahatsız olurlarsa, programınızı şikayet ediyorlar.

* Limited Utility. Apple, SDK sözleşmesinde yer almasa da bazı uygulamaları gereksiz ya da saçma bularak “Limited Utility” başlağı altında kabul etmeyebiliyor. Bu yüzden geliştiricilerin “ama SDK sözleşmesinde böyle bir yasak yoktu” diyerekten Apple’a itiraz etme imkanları bulunmuyor.

Androidde karşılığı bulunmamaktadır.

* Duplicate Functionality.

Apple yine SDK anlaşmasında yer almamasına rağmen bazı uygulamaları, sırf kendi uygulamaları ile rekabet ediyor bahanesiyle “Duplicate Functionality” başlığı altında reddediyor.

Yukarıda bir geliştiricinin iPhone uygulaması geliştirirken karşısına çıkabilecek, SDK anlaşmasında yazılı olan veya olmayan kısıtlamaları tecrübelerimiz ışığında paylaşmaya çalıştım. Bu kısıtlamalara takılmak istemeyen geliştiriciler jailbreak’li cihazlar için istedikleri gibi uygulama geliştirebiliyorlar. Fakat bu uygulamalar App Store’da yer almıyor doğal olarak.

Karşılığı bulunmamaktadır.

* Thread Kullanımı

IPhone OS’da third party uygulamalar, thread kullanamıyor. (pil ömrü ve güvenlik sebeplerinden ötürü).

Android’de, thread kullanılabilir. Bildiğim kadarı ile, kullanılacak thread sayısında da bizi sınırlayan tek şey, kullanıcının hardware özellikleri:)

* Background işlemler

IPhone’da hiç bir şekilde background process yapamazsınız. (yine pil ömrü ve güvenlik sebeplerinden ötürü)

Android’de Background işlemleri yapabiliriz. Mesela kullanıcıya sormadan dolar fiyatındaki ciddi bir değişim durumunda kullanıcıyı uyarabiliriz. (aslında bu örneği borsa için vermek isterdim ama doviz sitemiz var:) )

* Uygulamaya Reklam almak

IPhone’da belli kısıtlamalar göz önünde bulundurularak reklam alınabiliyor. Mesela kullanıcılara, belli süre zorunlu olarak reklam izletmek ve reklamların herhangi bir ses sese sahip olmaları kesinlikle yasak. Bunların dışında, uygulamanın amacının reklam olduğunun anlaşılması durumunda da programımız büyük ihtimalle App store’da kabul edilmiyor.

Android’de bu mekanizmayı ilk etapta denetleyecek herhangi bir merci ve bu bahsi konu edinen herhangi bir döküman da bulunmuyor. Fakat daha sonra, kullanıcılardan herhangi bir şikayet gelmesi durumunda uygulama Android Marketten çıkartılabiliyor.

Hem Android hem de IPhone uygulamalarında, reklamlar genellikle üst tarafta banner şeklinde yada uygulamaların belli menülerinde text şeklinde, kullanıcıları sınırlamayacak şekilde yer alıyor.

Yukarıda yazılanlarda yakın zaman içerisinde özellikle IPhone tarafında API gelişmeleri olacak. Fakat şuan için bunlar geçerli olduğundan bunlar üzerinden yorum yaptım.

*Not: Androidde yazdığımız programların, yukarıda anlatılan özellikleri kullanacağını kullanıcıya bildiriliyor     ve program install edilmeden önce telefon kullanıcısından 1 kereye mahsus izin alınıyor.

* Not 2: Android’in SDK’sı yapı olarak IPhone’dan daha geniş olduğundan yukarıdaki maddelerin sonucunda hep Android baskın geldi. Fakat uygulamaların geliştirilmesinden, kullanıcıların kullanımına varıncaya kadar, SDK’nın mimarilerinin dışında, arada çok daha fazla süreç yer almaktadır. Bunların bazılarında da elbetteki IPhone baskındır. Bu tarz dengelere ilerleyen yazılarda yer vereceğim.

16 kişi bu yazıyı beğendi.

IMEI numaralarının kolaylıkla değiştirilmeye başlanmasının ardından, cep telefonu hırsızlığının tekrardan patlak vermesine çare olarak düşünülmüş bir cep telefonu yazılımıdır.

Cep telefonu ile PhoneSecurity programını birbiriyle yalnızca bir kere eşleştirme yapıyoruz . Eşleştirme yapılırken, bilgi mesajının gönderilmesini istediğimiz bir veya iki tane telefon numarasını da programa kaydediyoruz. Bu işlemler gerçekleştirildikten sonra, PhoneSecurity programı arkaplanda kendiliğinden çalışıyor, programla eşleştirilmiş sim kartı ile o an telefonun içerisindeki sim kartının aynı olup olmadığını kontrol ediyor. Sim kartı aynı değilse, telefonumuz yeni kullanıcıdan habersiz, kayıtlı telefon numaralarına bilgi mesajı gönderiyor.

Bilgi mesajını alan kişi, hırsızın telefon numarasını, IMEI numarasını, Sim serail numarasını, Operator ismini öğrenerek, bu bilgiler ışığında savcılığa başvurusunu yapıyor.
Ayrıca Türkçe ve İngilizce olmak üzere, iki dil desteği bulunmaktadır. Android’in Türkçe kurulu olduğu sistemler program otomatik olarak Türkçe diğerlerinde ise otomatik olarak İngilizce olarak karşımıza çıkmaktadır. Program içerisinde BG Derneği hakkında kısa bir tanıtım yazısı ve online olarak yardım alınabilecek menü bulunmaktadır.
Ekran Görüntüleri:
  
 
İndir:
Programı Android Market üzerinden indirebilirsiniz.

9 kişi bu yazıyı beğendi.

27 Mayıs itibariyle facebook’un resmi SDKsı yayınlandı. Bir süredir “facebook Android’e göz kırptı” ve “facebook Android’i önemsiyor” haberleri internette dolaşmaktaydı. Mobil uygulamalarımızın popülerliği açısından, sosyal ağlarla etkileşiminin önemi ortada olduğunu düşünerek bu konuda çok fazla yorum yazma ihtiyacı hissetmiyorum.

Facebook developer blogundan konu ile ilgili resmi girdiye buradan ulaşabilirisiniz.
Facebook Android SDKsına ulaşmak için buraya tıklayınız.

4 kişi bu yazıyı beğendi.

20 Mayısda Android 2.2 sürümü yayınlandı (API Level 8′e yükseldi) 
Bu sürümde eklenen yeni özellikleri;

  • Hız. Bu sürümde en gelen en güzel haber bu. Bir önceki sürüme göre (2.1)  işlemleri 2-5 kat daha performanslı çalıştıran bir sistem bizi bekliyor.
  • İnternette Google serverlarından bulduğumuz bir bilgiyi, direk mobil telefonumuza gönderebileceğiz. Mesela, masaüstü bilgisayarımızdan google mapsde bulduğumuz bir yol tarifini tek tık ile mobil telefonumuza gönderip, cep telefonunu direk GPS cihazı olarak kullanabileceğiz.
  • Backup API’leri konulmuş.
  • Browser’ında iyileştirmelere gidilmiş. Özellikle JS motoru 2-3 kat daha performanslı çalışıyormuş.
  • Android Markette iyileştirilmelere gidilmiş. 
    • User tarafında: cihaza daha önce yüklenen programları updateleri olması durumunda, otomatik update seçeneği konulmuş (tehlikeli bir seçenek olabilir)
    • Programcılar tarafında: userlar tarafından bildirilen hata raporlarını görüntüleyebileceğimiz bir sistem geliştirilmiş. Androidde cihaz bağımlılığı olmadığından, yazdığımız programın her cihazda çalışıp çalışmadığını kontrol edemeyebiliriz. Bu bakımdan faydalı bir uygulama olmuş.
3 kişi bu yazıyı beğendi.

Daha önce aynı kitabın ilk versiyonu olan Professional Android Application Development ile Android programcılığına ilk adımımı atmıştım. Gerçekten çok istifade ettiğim bir kitaptı. Android SDK’nın zaman içerisinde kodlarında bir çok revizyona gidip level atladığından ötürü kitap kısa zamanda eskidi. Kitabın yazarı Reto Meier’de Android SDK 2.1 r1′e göre kitabında güncelleme yaparak tekrardan kaleme almış ve Professional Android 2 Application Development kitabını çıkartmış. Henüz Türkiye’de herhangi bir kitapçıda bulamadığımız kitaba, amazon.com gibi siteler aracılığı ile sahip olabiliyoruz.

Bu kitabın şuan piyasada olan tüm Android kitapları içerisinde en iyi olduğunu düşünüyorum çünkü bir programcının kolay anlayabileceği dilden yazılmış. Yani; yazarımız okuyucularını basit ayrıntılar ile sıkmamış ve uzun uzun herşeyi anlatarak da kitabın gereksiz uzun olmasını engellemiş. Yeri geldiğinde temel konuyu örnekle açıklamış ve geri kalan bir çok konuyu özet olarak geçmiş. (tabii özet konuyu ayrıntılı araştırmak isteyenler için de, referans vermeyi ihmal etmemiş). Kısacası komple başvuru kılavuzu diyorum ben bu kitaba:)

Kitabın 1. versiyonu ile 2. versiyonu arasında dikkatimi çeken bazı farklılıklar;

  • Eski kitapta, files, prefences, database ve content provider gibi bilgi depolayabileceğimiz konular bir aradaydı. Yenisinde ise db ile content provider’ı farklı bir bölümde incelemiş. Gereksiz buldum.
  • live folders, quick search box, live wallpaper gibi Android’in yeni versiyonu ile gelen özelliklere, kitapta oldukça güzel bir anlatımla işlenmiş.
  • SDK 1.5 ile gelen speech recognition özelliğine daha önceki kitapta değinilmemişti. Bu kitapta bununla beraber, audio,video ve kamera kullanımı ile ilgili bilgiler genişletilerek anlatılmış.
  • SDK 1.6 ile  gelen Text-to-speech’e yer verilmiş.
  • SMS, MMS, Bluetooth, Wi-fi konuları daha detaylı işlenmiş ve GTalk ile ilgili konular kitabın yeni versiyonundan kaldırılmış.
  • Daha önceki SDK’larda kullanılan ama şuan için kullanılması tavsiye edilmeyen (deprecated) API’ler kitabın örnek kodlarında güncellenmiş.
7 kişi bu yazıyı beğendi.
Page 2 of 3:« 1 2 3 »
bottom-img