Saját Cyanogenmod téma készítése
Miután a legelterjedtebb Android modot használjuk, nem árt, ha előkerítjük a kreativitásunkat is néha. – írta: Keeperv85, 10 éve
Az én első saját témám
Megelőzöm a kérdést: igen, megvan még és igen, működne, ha lenne CM7-es romom, de az már történelem. Érdekesebb gondolat, hogy hogyan is készült el. Lássuk hát sorban mi is kell egy CM téma forráskódjába! Mi a baj?! Elhangzott az a szó, amitől a legtöbb modder fél, ugye? "Forráskód". Nos, igen. Linux és Android. Jó barátok. Így most elsőre Linux alá költözünk! Ne aggódjatok, mutatok Windows-ra kitalált megoldást is!
Hozzunk létre egy AndroidManifest.xml fájlt elsőre. Ez a fájlunk a legfontosabb, ugyanis ő adja át a témánk adatait a fordítás után a DVM (Dalvik Virtual Machine) felé feldolgozásra. Minden apk fájlnak szerves résztét képzi.
Ezt írjuk bele:
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:pluto="http://www.w3.org/2001/pluto.html"
<!-- Ez egy komment, nem fog lefordulni. Az alatta lévő sor a csomag belső nevét a rögzíti, ezt látja a rendszer -->
package="com.tmobile.theme.MyTheme"
android:hasCode="false">
<!-- Mivel ez egy téma, szüksége van erre az egyedi kulcsa a, hogy kezelje a téma motor. -->
<uses-feature android:name="com.tmobile.software.themes" />
<theme
pluto:themeId="MyTheme"
pluto:styleId="@style/MyTheme"
pluto:name="@string/theme_name"
pluto:preview="@drawable/preview"
pluto:author="@string/author"
pluto:copyright="@string/copyright"
pluto:wallpaperImage="@drawable/wallpaper"
pluto:styleName="@string/style_appearance_name"
pluto:ringtoneName="Shocking"
pluto:ringtoneFileName="media/audio/ringtones/Shocking.mp3"
pluto:notificationRingtoneName="Teleport"
pluto:notificationRingtoneFileName="media/audio/notifications/Teleport.mp3">
<!-- Ez egy kényszerített átirányítás, ami némely alkalmazásnak szükséges, erről később -->
<meta-data android:name="com.tmobile.theme.redirections"
android:resource="@xml/redirections" />
</theme>
</manifest>
A fenti @-el kezdődő sorok némi magyarázatra szorulnak. Ezek a C-ből már ismerős (már akinek ugye...) pointerek megfelelői. Ami előtt szerepelnek, azokra átmutat a "link". Ezekben az a jó, hogy a @drawable pl. az összes drawable-xxxx mappát végignézi az erőforrása után, így nekünk nem kell tudni éppen melyikben van a kívánt erőforrás, csak azt hogy létezik. (Egy kivétel van: a preview.png, de erről később....).
Most, hogy a téma "gerince" kész, valamivel majd le is kell fordítani. Az Android fordító egy elég "egyedi" make formátumot kapott, ami kicsit C, kicsit nem, de ne bonyolódjunk ebbe bele szerintem első körben.
Készítsük el az Android.mk fájlunk, a következőképp:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_PACKAGE_NAME := MyTheme
LOCAL_AAPT_FLAGS := -c mdpi,hdpi -x 10
include $(BUILD_PACKAGE)
Azt hiszem nincs különösebb magyarázatra szükség. Az include nem tölt be semmi külső headert, le is nullázzuk a változót rögtön a biztonság és a formalitás kedvéért, nem kötelező modult hozunk létre, megadjuk a nevét, majd az aapt-nek megmondjuk, hogy a témában mdpi és hdpi erőforrás mappák vannak. Végül pedig az include-unk megkapja az erőforrásait.
A Steel Blue is így készült anno. Igazán nagy népszerűségnek örvendett!
A cikk még nem ért véget, kérlek, lapozz!
Azóta történt
-
Custom ROM-ok világa
Növekedhet a sebesség, jobb lehet a multitasking, de lehet, hogy ezekért a kamera minőségével fizetünk.
-
OnePlus One – nagyon egyben One
Bár tavalyi a készülék, azóta sok dolog történt, ami miatt érdemes kicsit körülnézni a OnePlus háza táján.
-
Prohardver-topikfigyelő Android alkalmazás
Bemutatom a Prohardver-topikfigyelő Android alkalmazást, melyet egy ideje már hobbiprojektként fejlesztek.
Előzmények
-
Saját Cyanogenmod ROM felépítése
Nem leszel modder attól, hogy ki tudod cserélni a kész romban a háttérképet, a forráskód a lényeg!
-
Cyanogenmod 9 (ICS) telepítése
Útmutató a méltán híres Cyanogenmod 9 telepítéséhez Sony/ Sony Ericsson készülékekre.