私の目標は、Launcherアプリケーションを変更し、テーマを動的に変更および変更することです。
http://www.cyrket.com/p/android/com.stain46.taghome/でいくつかの「ホーム」アプリを見ました。デフォルトのHome(Launcher)を使用して変更したようです。彼らはどうやってそれをしましたか?同じことを実現するには、何を変更する必要がありますか?
私の目標は、Launcherアプリケーションを変更し、テーマを動的に変更および変更することです。
http://www.cyrket.com/p/android/com.stain46.taghome/でいくつかの「ホーム」アプリを見ました。デフォルトのHome(Launcher)を使用して変更したようです。彼らはどうやってそれをしましたか?同じことを実現するには、何を変更する必要がありますか?
私はICSランチャーでこれを行いました。また、多くのプライベート内部APIを使用しているため(Googleが示唆している場合でも)、通常のアプリとしてコンパイルするには、かなりの数のコード変更を行う必要があります。パッケージ名も変更する必要があります。私が見つけた2つの制限があります:
TableMaskFilterと呼ばれるフィルターがありますが、これは通常のアプリでは使用できません。これにより、アプリドロワーを半透明にできると思いますが、使用を削除したので、見た目は問題ないと思います。
さらに重要なことに、ウィジェットを追加するエクスペリエンスを複製する方法はないようです。これは、システムアプリのみが持つことができるアクセス許可が必要なためです。この質問を参照してください。
とにかく、私は私のソースをここに置きました。公式のGalaxyS24.0.3でコンパイルおよび動作しますが、ウィジェットを追加しようとするとクラッシュします。
パッケージ名を変更する場合、Eclipseのリファクタリングが気付かない場所があることに注意してください(XMLレイアウトなど)。代わりに、グローバルテキスト検索/置換を行うことをお勧めします。
標準のランチャーはオープンソースであるため、確実に入手して、必要に応じて変更できます。アプリをホーム画面として使用するには、AndroidManifest.xmlで正しいインテントフィルターを指定する必要があり、ユーザーはホームボタンを押したときにアプリを選択する必要があります。そのコードを入手して遊んでみて、さらに質問があり、何を変更したいかについてのアイデアが増えたら、戻ってきてみませんか。
ここで私は1つの安定バージョンLauncher2を見つけました
そのGitHubリポジトリを共有しています。ここ
このプロジェクトのWIKI:
このプロジェクトには、Android Jelly Bean(API 16)に付属するLauncherアプリのコードが含まれています。
プライベートAPIの使用を削除するには、このソースコードからいくつかの小さな変更が必要でした。これらの変更は「//AOSP変更」でマークされています