androbook改造計画
Androbookが、報告してもQVGA端末に対応できるようAndroidManifest.xmlに「<supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:anyDensity="true" />」というエントリを追加してくれないので、自分でどうにかしてみた。
また作成ついでに[next][prev]ボタンを[次ページ][前ページ]に変えてみた。あと、アプリがアップデートした際のバージョンアップも対応できるように細工も加えてみた。
超適当に作成しているため、誤動作等があるかもしれない。
というか、考えてみればAndroidManifest.xmlのバージョン部分を書き換える処理をスクリプトに入れるのを忘れていた。(自分で使う時は手動でやってる)
なお、これで作成したAndrobookのサンプルは、「osakanataro」で検索すると出てくるはず。
これを使うことによる効能
- × すでに該当のandrobookをmmarketで公開している場合、そのバージョンアップには使えない
- java署名が別のものになると、バージョンアップと認めてくれないため
- × すでに該当のandrobookをmarketで公開している場合、そのパッケージ名と別のものにしなければならない
- java署名の件と関連して、同じパッケージ名で違うjava署名、というのは認められないため
- ○ QVGA端末のAndroid Marketに表示される
- ○ バージョンアップができる
- Java署名ファイルが手元にあるため、バージョンアップが行える
- ただ、ここで提供しているスクリプトに修正が必要
用意するもの
まぁ、ここまで用意できるんだったら、使う必要はないんじゃ?という説もあるけど。
使用方法
- keytoolでjava署名用のキーを作成
- keytool -genkey -v -keystore 署名キーのファイル -alias 署名ストアの名前 -keyalg RSA -keysize 2048 -validity 10000
- androbook.shをダウンロード
- エディッタで以下の項目を変更
- filename: 元となる作成したandrobookのファイル名
- newpackagename: パッケージングし直した後のパッケージ名
- outputfilename: 出力先ファイル名
- tmpdir: 作業用ディレクトリ名。ここで指定したディレクトリは削除されます
- outdir: "出力先ファイル名"を保存する先
- keystorefile: java署名するときの署名キーのファイル
- keystorename: 署名するときのストアの名前
- keypass: 上記のパスワード
- androbook.shを実行する
中でやってること
- apktoolで展開
- AndroidManifest.xmlにパッケージ名変更とスクリーン設定(supports-screens)追加
- res/layout/main.xmlのnext/prev定義にある埋め込み文字列をstrings.xml参照に変更
- res/values-jpの作成と、strings.xmlの変更
- パッケージ名の変更に関連する各種記述の変更
- apktoolで再パッケージ
- java署名
- zipalign
changelog
テスト公開しているandrobookのchangelog覚え書き
- ver 1.0: androbookオフィシャルそのまま
- ver 1.1~1.2: QVGAのマーケットで表示できるよう改変
- ver 1.3: インストールが成功するように変更(署名、内部的なパッケージ名変更)
- ver 1.7: アプリケーション名変更とバージョンアップテスト
- ver 1.8: アプリの英語/日本語両対応
- ver 1.9: Android2.2用にSDカードインストール機能をつけてみた?
改造計画 ver 2
2010/11/07版をベースに改造
- smali内の*.smaliファイル内にあるnet/androbook/をnet/osakana/androbook/book001/へ変更
- res/layout内のActivity定義などのnet.androbook.をnet.osakana.androbook.book001へ変更
- smali内のいくつかのファイルにあるdropboxを指し示しているdownload urlの変更
- smali内のutil/Path.smali内にキャッシュ用ディレクトリ定義として「net.androbook」があるので変更
[osakana.net]