« 久々のandroid-4.0.3.r1のビルド | トップページ | JavaScriptの考え方 »

2013年7月 2日 (火)

Launcher2のコピーをビルド

Launcher2の動きが見てみたい。
でも、端末にはすでに、
Launcher2が入ってる・・。

ってことで、
パッケージ名を変更してビルドしてみた。


準備に時間がかかったので、
動き見るよりも、他で満足した感がある。

基本的には、Launcher2をコピーして、
パッケージ名を変える作業である。

src配下のフォルダ名を
新しいパッケージ名に合わせて、
スクリプトで、
com.android.launcher->jp.melodie.launcher
com.android.launcher2->jp.melodie.launcher
で一括変換。
あとは、Android.mkのLOCAL_PACKAGE_NAMEを
MyLauncherとかに変えるだけ。

srcは、importとpackage名だけでいいのかな。

「[Android]Android標準ホームアプリ(Launcher2)の
パッケージを変更してビルドしてみた」

参考にしてみたが、
やったことは同じっぽい。


そして、ビルド。
もちろん、一つだけなので、

$. /build/envsetup.sh
$mmm packages/apps/MyLauncher
で、パッケージだけビルド。

あとは、

out/target/product/generic/system/app/MyLauncher.apk
を取り出して、adb install。


が・・・。
何か怒られる。。
「INSTALL_FAILED_DEXOPT」なるエラー。
MyLauncher.obexから生成されていたので、
もしやと思って調べると、
やっぱり、obexありきの生成に問題があるみたい。

「mmmでビルドしたapkを
インストールしようとすると
INSTALL_FAILED_DEXOPTと怒られる問題」

にあったが、

$ mm WITH_DEXPREOPT=false
でいいらしいが、
ビルドコマンドにオプションつけたくないので、
ちょっと調べてみた。


「WITH_DEXPREOPT」を検索すると、
ひっかかるものは少ないので、
/build/core/package.mk が候補。
で、条件を見ると、
WITH_DEXPREOPT=falseの場合、
LOCAL_DEX_PREOPT := と空になってる。


Android.mkで、

LOCAL_DEX_PREOPT :=
を追加すると良さそうだが、うまくいかない。。
LOCAL_DEX_PREOPT := false
を追加すると、obexが生成されずに成功。

ちょっと疑惑が残るが、
Makefileをがっくり見れないので、
仕方ないかな・・。


そして無事インストール・・
だけども、最後の罠か立ち上がらない。。

SQLiteのエラーで、起動時エラー。
androidアプリでバージョンをあげたらSQLでエラー
とかあるので、もしや直せないと思ったが、
Providerの処理で、
com.android.launcherが残ってる場所が・・。
packageとimportだけと、
思い込んだのがだめだったのだが、
他の漏れが怖い。。

結構苦戦して立ち上げただけに、
満足してしまった・・。


これをベースにして、
少し触ってみるのもおもしろいかなぁ

リンク
Androidソースコード検索サービス

|

« 久々のandroid-4.0.3.r1のビルド | トップページ | JavaScriptの考え方 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/97274/52284059

この記事へのトラックバック一覧です: Launcher2のコピーをビルド:

« 久々のandroid-4.0.3.r1のビルド | トップページ | JavaScriptの考え方 »