デフォルトの「ランチャー」アプリケーションを再構築する方法は?
質問
私の目標は、ランチャーアプリケーションを変更し、テーマを動的に変更して変更することです。
私はいくつかの「ホーム」アプリを見ました http://www.cyrket.com/p/android/com.stain46.taghome/. 。彼らはデフォルトの家(ランチャー)を持ち、それを変更したようです。彼らはどうやってそれをしたのですか?同じことを達成するために変更する必要がありますか?
解決
ICSランチャーでこれを行いました。また、多くのプライベート内部APIを使用しているため、通常のアプリとしてコンパイルするためにかなりの数のコード変更を行う必要があります(Googleが暗示している可能性があるにもかかわらず)。また、パッケージ名を変更する必要があります。私が見つけた2つの制限があります:
通常のアプリでは利用できないTablemAskFilterというフィルターがあります。これにより、アプリの引き出しが半透明であることができると思いますが、私はそれの使用を削除しました、そしてそれは私が思うにはうまく見えます。
さらに重要なことは、システムアプリのみが持つことができる許可が必要なため、ウィジェットアドディングエクスペリエンスを再現する方法はないようです。 この質問を参照してください。
とにかく、私は自分の情報源を置きました ここ. 。公式のGalaxy S2 4.0.3でコンパイルして動作しますが、ウィジェットを追加しようとするとクラッシュします。
パッケージ名を変更するとき、Eclipseのリファクタルが気付かない場所があります(XMLレイアウトなど)。代わりにグローバルテキスト検索/交換を行うことをお勧めします。
他のヒント
ここで、1つの安定したバージョンランチャー2を見つけました
そのgithubリポジトリを共有しています。 ここ
このプロジェクトのwiki:
このプロジェクトには、Android Jelly Bean(API 16)が出荷されるランチャーアプリのコードが含まれています。
プライベートAPIの使用を削除するには、このソースコードからいくつかの小さな変更が必要でした。これらの変更は、「// AOSP変更」によってマークされています