Android için Launcher Yazmak

Android sistemi için launcher yazmak, Android launcher uygulaması geliştirmek

Android için launcher yazmak teorik olarak klasik bir Android uygulaması yazmaktan çok ta farklı değildir.Uygulama içerisinde manifest üzerinden belirteceğimiz bir kaç küçük ayarlamalar yaptığınızda uygulamanız android sistemi tarafından bir launcher olarak görünecektir.

İlk olarak temel bir launcher için gereken özelliklere bakalım

  • Uygulamaları listelemek.
  • Listelenen uygulamaları açmak.
  • Bir masa üstü görünümü oluşturmak,duvar kağıdı vb. ayarlamak.
  • Widget eklemeye olanak sağlamak.
  • Masa üstüne kısa yollar oluşturabilmek.
  • Uygulamaları kategoriye ayırma imkanı vermek.

Bizim yapacağımız launcher ise basit bir şey olacak. Ek bir hatırlatma android sistemi tarafından AYARLAR/ANA EKRAN/ANA EKRANI SEÇ menüsünden varsayılan launcher (Ana ekran başlatıcı olarak da geçebilir) değiştirilmeli .Üreticiye göre farklılık gösterse de genelde bu kategori altından seçilebilir.

Yapacağımız launcher aşağıdaki gibi bir görünüme sahip olacak google play üzerinde yüksek fiyata satılan bir launcher var (BIG Launcher) yaşlıların telefon kullanmasını kolaylaştırmak amacıyla ondan esinlenerek oluşturdum. Menüler yazılar büyütülerek okuması ve en çok kullanılan özelliklere kolay erişilebilmesini amaçladım.

QuickMemo+_2015-07-14-14-19-27

Şimdi manifest dosyamıza bir bakalım.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mesutpiskin"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="21" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="Launcher"
        >
        
        <activity
            android:name="com.mesutpiskin.HomeActivity"
            android:label="Launcher"
            android:theme="@android:style/Theme.Wallpaper.NoTitleBar"
            android:launchMode="singleTask"
            android:stateNotNeeded="true"
            >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.HOME" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>         
        </activity>
        
        <activity
            android:name="com.mesutpiskin.AppsListActivity"
            android:theme="@android:style/Theme.NoTitleBar"
            >            
        </activity>
        
    </application>

</manifest>

Manifest dosyamız haricinde ise 2 sınıf ekleyeceğiz bir tanesi main Activity’miz olacak menülerin bulunacağı sınıf,bir diğeri ise sistemde çalışan uygulamaları çekeceğimiz sınıf olacak. Menü benzeri bir yapı oluşturacağız ve sistemde kurulu uygulamaları listeleyeceğiz, ekstra olarak bir custom listview ile uygulamanın resmini çekeceğiz. Paket ismini de aldık, fakat görüntülenmesine ihtiyaç olmayacağı için gizledim listitem.xml üzerinden görünecek alanları düzenleyebilir visible edebilirsiniz.

Launcher oldukça basit,temel mantığını kavramak üzerine iyi bir örnek teşkil edeceğini düşünüyorum,fakat en çok kullanılan launcher gibi görsel efektler sürükle bırak efektleri oluşturmak için Unity benzeri geliştirme ortamları tercih edilebilir, fakat temel mantıkta bir launcher ise örneğimizdeki gibi geliştiriliyor.

Uygulamanın kaynak kodlarına GitHub üzerinden erişebilirsiniz.