Androidアプリ開発 リリース時にレイアウトを自動選択する adbによるapkのリモートインストール [Androidアプリ開発]
ご存じのように、MapViewを使用するときは、APIキーを取得して、レイアウトファイルで指定しなければならい。
APIキーは、署名時に使用する証明書を使って取得する必要がある。デバッグ時に使用する証明書とリリース時に使用する証明書が異なるため、APKをエクスポートする際に、いちいち切り替えないといけない。
これが、めんどうなので、自動化することにした。
まず、デバッグモードで実行しているのかどうなのかは、BuildConfig.DEBUGをみればわかる。
BuildConfigクラスは、ADTが自動生成する。BuildConfig.javaに存在しているクラス。
レイアウトとして、main_release.xmlとmain_debug.xmlのふたつを用意しておいて、それぞれにデバッグ用と本番用のAPIキーを設定しておく。
アクティビティのsetContentViewでレイアウトを指定する際に、BuildConfig.DEBUGをみて、main_release/main_debugのどちらか選択する。コードにすると以下のような感じ。
もちろん、BuildConfig.DEBUGがtrueなら、main_debug.xmlのレイアウトを使う。
で、まずは普通にデバッグモードで実行。
地図が表示された。OK。OK。
次に、APKをエクスポートして、インストールして実行。
ありゃ、だめじゃん。
BuildConfig.DEBUGはWindows環境だとバグがあるらしい。Eclipseの「プロジェクト」メニューの「自動的にビルド」を外すと正しくAPKを作成できるようになる。
えー、自動的にビルドを外したら、ソース変更したときに、自動でビルドされないんだよね...
うぉー、これじゃあ、便利になったのかどうかわからん。
普段の開発時は、「自動的にビルド」を有効にしておいて、ガンガン実行をかける。
よし、リリースするAPKを作るぞ、といったときに、「自動的にビルドをはずして」、クリーンしてエクスポートすればOK?
クリーンはかけなくてもいいかも?
やっぱり、めんどくさいというか、「自動的にビルドをはずして」というところを忘れそう。
しかし、main.xmlをいちいち編集するよりかはいいか。
adbによるapkファイルのインストール
PCに接続して、デバッグ用アプリを実行させる場合は、Eclipseから操作できる。ボタンひとつでインストールができるので便利である。
署名付きのAPKファイルを作成して、動作確認をしようと思うと、まず、Android端末側で、デバッグ用のアプリを一度アンインストールしないと署名付きのAPKがインストールできない。
次に、PCからAPKをダウンロードする必要がある。
これらの操作もめんどくさいのよねぇ。後ダウンロードとか特に。
Eclipseから操作できないのかなぁ...
専用のアプリを作ってしまうか。
と調べてみると、adbでインストールできることが判明。PC側の操作になる。
まずは、adb.exeにパスを通す。
次に、以下の内容でバッチファイルをAPKファイルのあるフォルダに作成。
パッケージ名、APKのファイル名は適宜変更して欲しい。
コマンドプロンプトから上記のバッチファイルを実行。
おっ、なんかできた。
ついでなので、Pro用のインストールバッチも作成。
こっちもできた。
では、Xperiaにも入れてみよう。A100とXperiaのふたつの端末を同時にUSBで接続。
だめだ。エラーになった。
A100の方にはインストール済なので、A100を外してみる。
おお、できた。ふたつの端末をつなげているとだめなのね。
関連記事
サイト内を検索
APIキーは、署名時に使用する証明書を使って取得する必要がある。デバッグ時に使用する証明書とリリース時に使用する証明書が異なるため、APKをエクスポートする際に、いちいち切り替えないといけない。
これが、めんどうなので、自動化することにした。
まず、デバッグモードで実行しているのかどうなのかは、BuildConfig.DEBUGをみればわかる。
BuildConfigクラスは、ADTが自動生成する。BuildConfig.javaに存在しているクラス。
レイアウトとして、main_release.xmlとmain_debug.xmlのふたつを用意しておいて、それぞれにデバッグ用と本番用のAPIキーを設定しておく。
アクティビティのsetContentViewでレイアウトを指定する際に、BuildConfig.DEBUGをみて、main_release/main_debugのどちらか選択する。コードにすると以下のような感じ。
setContentView((BuildConfig.DEBUG) ? R.layout.main_debug : R.layout.main_release);
もちろん、BuildConfig.DEBUGがtrueなら、main_debug.xmlのレイアウトを使う。
で、まずは普通にデバッグモードで実行。
地図が表示された。OK。OK。
次に、APKをエクスポートして、インストールして実行。
ありゃ、だめじゃん。
BuildConfig.DEBUGはWindows環境だとバグがあるらしい。Eclipseの「プロジェクト」メニューの「自動的にビルド」を外すと正しくAPKを作成できるようになる。
えー、自動的にビルドを外したら、ソース変更したときに、自動でビルドされないんだよね...
うぉー、これじゃあ、便利になったのかどうかわからん。
普段の開発時は、「自動的にビルド」を有効にしておいて、ガンガン実行をかける。
よし、リリースするAPKを作るぞ、といったときに、「自動的にビルドをはずして」、クリーンしてエクスポートすればOK?
クリーンはかけなくてもいいかも?
やっぱり、めんどくさいというか、「自動的にビルドをはずして」というところを忘れそう。
しかし、main.xmlをいちいち編集するよりかはいいか。
adbによるapkファイルのインストール
PCに接続して、デバッグ用アプリを実行させる場合は、Eclipseから操作できる。ボタンひとつでインストールができるので便利である。
署名付きのAPKファイルを作成して、動作確認をしようと思うと、まず、Android端末側で、デバッグ用のアプリを一度アンインストールしないと署名付きのAPKがインストールできない。
次に、PCからAPKをダウンロードする必要がある。
これらの操作もめんどくさいのよねぇ。後ダウンロードとか特に。
Eclipseから操作できないのかなぁ...
専用のアプリを作ってしまうか。
と調べてみると、adbでインストールできることが判明。PC側の操作になる。
まずは、adb.exeにパスを通す。
次に、以下の内容でバッチファイルをAPKファイルのあるフォルダに作成。
adb uninstall cx.fam.asai.AREarthroid adb install AREarthroid.apk
パッケージ名、APKのファイル名は適宜変更して欲しい。
コマンドプロンプトから上記のバッチファイルを実行。
おっ、なんかできた。
ついでなので、Pro用のインストールバッチも作成。
adb uninstall cx.fam.asai.AREarthroidPro adb install AREarthroidPro.apk
こっちもできた。
では、Xperiaにも入れてみよう。A100とXperiaのふたつの端末を同時にUSBで接続。
だめだ。エラーになった。
A100の方にはインストール済なので、A100を外してみる。
おお、できた。ふたつの端末をつなげているとだめなのね。
関連記事
サイト内を検索
2012-06-04 09:07
nice!(0)
コメント(0)
Copyright Atsushi Asai Google+朝井淳
[データベースの気持ちがわかる]SQLはじめの一歩 (WEB+DB PRESS plus)
- 作者: 朝井 淳
- 出版社/メーカー: 技術評論社
- 発売日: 2015/03/03
- メディア: 単行本(ソフトカバー)
Access クエリ 徹底活用ガイド ~仕事の現場で即使える
- 作者: 朝井 淳
- 出版社/メーカー: 技術評論社
- 発売日: 2018/05/25
- メディア: 大型本
コメント 0