Mein Ziel ist es, die Launcher-Anwendung zu ändern und das Thema dynamisch zu ändern und zu ändern.
Ich habe mehrere
Ich habe das mit dem ICS-Launcher gemacht. Sie müssen auch eine ganze Reihe von Codeänderungen vornehmen, um es als normale App zu kompilieren, da es viele private interne APIs verwendet (ungeachtet dessen, was Google möglicherweise angedeutet hat). Sie müssen auch den Paketnamen ändern. Es gibt zwei Einschränkungen, die ich gefunden habe:
Es gibt einen Filter namens TableMaskFilter, der für normale Apps nicht verfügbar ist. Ich denke, das erlaubt der App-Schublade, halbtransparent zu sein, aber ich habe den Gebrauch davon entfernt und es sieht gut aus, denke ich.
Kritischer scheint es, dass es keine Möglichkeit gibt, die Erfahrung beim Hinzufügen von Widgets zu replizieren, da es eine Berechtigung erfordert, die nur System-Apps haben können. Siehe diese Frage.
Wie auch immer, ich stelle meine Quelle hier . Es kompiliert und arbeitet auf dem offiziellen Galaxy S2 4.0.3, aber wenn Sie versuchen, Widgets hinzuzufügen, wird es abstürzen.
Beachten Sie, wenn Sie den Paketnamen ändern, gibt es Orte, die der Refactor von Eclipse nicht bemerkt (z. B. XML-Layouts). Ich empfehle Ihnen, stattdessen eine globale Textsuche / -ersetzung durchzuführen.
Der standardmäßige Launcher ist eine Open-Source-Anwendung, damit Sie ihn auf die Art und Weise nutzen können, wie Sie ihn haben wollen. Damit Ihre App als Startbildschirm verwendet werden kann, müssen Sie den richtigen Intent-Filter in Ihrer AndroidManifest.xml und der Benutzer muss Ihre App auswählen, wenn sie die Home-Taste drücken. Warum nimmst du nicht diesen Code, spielst mit ihm und kommst zurück, wenn du mehr Fragen hast und mehr über eine Idee hast, was du ändern willst.
Hier fand ich eine stabile Version Launcher2
Ich habe dieses GitHub Repo geteilt. HIER
WIKI dieses Projekts:
Dieses Projekt enthält den Code für die Launcher-App, die mit Android Jelly Bean (API 16) ausgeliefert wird.
Einige geringfügige Änderungen an diesem Quellcode waren erforderlich, um die Verwendung privater APIs zu entfernen. Diese Änderungen wurden durch "// AOSP Change"
markiert