2013年8月28日水曜日

公開中のAndroidアプリをバージョンアップする

目次へ



公開しているAndroidアプリをバージョンアップしたいときには、
  • プログラムを変更し、AndroidManifest.xmlでバージョンを指定
  • 新しい署名入りAPKを作成しアップロード
あとは、自動で知らせがいくのでユーザが自分でアップロードすることになります。


■■■■バージョンを指定する■■■■

AndroidManifest.xmlでバージョンを指定します。
android:versionCode で指定するのは以前のバージョンより大きい整数です。
android:versionNameに指定するのがインストールする時などに表示されるバージョンになります。

     :
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="xx.xx"
    android:versionCode="2"
    android:versionName="1.1" ?>
     :

■■■■APKファイルを作成しアップロード■■■■

この後このページの「署名入りAPKファイルを作成」の方法で新しいAPKファイルを作成します。

その後、同じページの「APKファイルをアップロード」の方法で今作成したAPKファイルをアップロードします。

これだけでインストールしているユーザには新しいバージョンがあるとのしらせがあるため、必要な人はバージョンアップしてくれるはずです。


にほんブログ村 IT技術ブログ IT技術メモへ
にほんブログ村

2013年8月23日金曜日

AndroidアプリにAdMobを使ってバナーを表示する

目次へ



Google AdMob Ads SDKを使ってAndroidアプリにバナーを表示するには次のことが必要です
また、これについては Google AdMob Ads Android(初級)のページを参照してください

  • Google Mobile Ads SDKをダウンロードし、Eclipse に組み込む
  • AdMobと契約
  • AdMobにアプリを登録
  • アプリにAdView(バナーを表示するためのビュー)を表示
    1. AndroidManifest.xmlでINTERNETとACCESS_NETWORK_STATE権限を設定
    2. AndroidManifest.xmlでAdMob SDKを使うためにactivityの宣言
    3. 方法①layoutのxmlファイルでAdViewを表示する
    4. 方法②プログラムでAdViewを表示する


■■■■Google Mobile Ads SDKをダウンロードし、Eclipse に組み込む■■■■

  • https://developers.google.com/mobile-ads-sdk/download?hl=jaのページで GoogleAdMobAdsSdkAndroid.zipをダウンロードし展開
  • Eclipseを開き、その中のjarファイルをアプリのプロジェクトのlibsフォルダにコピー
  • 今コピーしたjarファイルをビルドパスに追加
    Eclipseのパッケージエックスプローラでプロジェクトをクリックした後、メニューの[プロジェクト]-[プロパティ]-[左のメニューからjavaのビルドパス]をクリック
    [ライブラリタブ]をクリックし[外部jar追加ボタン]を押し、jarファイルを追加
これで、com.google.ads.AdView(これがバナーを表示するためのビュー)が使えるようになります

■■■■AdMobと契約■■■■

AdMobへの申し込みページで申し込みを行います。 支払いを受け取るために、銀行口座などが必要です

■■■■AdMobにアプリを登録■■■■

AdMobのページでログインします。
サイト/アプリケーションの追加ボタンを押し、アプリを登録します。


■■■■AndroidManifest.xmlの設定■■■■

AndroidManifest.xmlで
  • com.google.ads.AdActivityの宣言
  • 権限
が必要です
次の例はGoogle AdMob Ads Android(初級) に記載されていたxmlの例です
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.company"
          android:versionCode="1" android:versionName="1.0">
  <application android:icon="@drawable/icon" android:label="@string/app_name"
               android:debuggable="true">
    <activity android:label="@string/app_name" android:name="BannerExample">
      <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
      </intent-filter>
    </activity>
    <activity android:name="com.google.ads.AdActivity"
          android:configChanges=
          "keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
  </application>
  <uses-permission android:name="android.permission.INTERNET"/>
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
</manifest>
2つ目のactivityとuses-permissionが必要です

■■■■layoutのxmlファイルでAdViewを表示■■■■

Adviewをlayoutのxmlファイルに書くか、プログラムの中でAdViewを作成すればそこに、バナーが表示されます。
まず、layoutのxmlファイルで設定する方法

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"  これがads:を使うために必要
 以下省略>    




    <com.google.ads.AdView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"  1番下に表示したいなら
        ads:adSize="BANNER"
        ads:adUnitId="パブリッシャID"         パブリッシャIDを知る方法は下で
        ads:loadAdOnCreate="true"
        ads:testDevices="TEST_EMULATOR, TEST_DEVICE_ID" />



バナーを入れたい場所にcom.google.ads.AdViewを作成します。
ここで使っているads:は1番最初のタグで設定しておきます。

パブリッシュIDを知る方法
AdMobのページにログインします。
下の方に登録されているアプリの名前が出ています。
その名前にマウスのポインタを乗せるとレポートボタンと設定を管理ボタンが表示されますので、設定を管理ボタンを押します。
すると、次のページでアプリの名前の下にサイトURLとパブリッシャーIDが表示されています。
それをマニフェストファイルの ads:adUnitIdに設定します

■■■■プログラムでAdViewを表示■■■■

次はプログラムでAdViewを作成する方法です。

private AdView adView;
protected void onCreate(Bundle savedInstanceState) {
    
            省略
    adView = new AdView(this, AdSize.BANNER, "パブリッシャーID");
    RelativeLayout layout = (RelativeLayout)findViewById(R.id.xx);
    layout.addView(adView);
}
@Override
public void onDestroy() {
    adView.destroy();
    super.onDestroy();
}






にほんブログ村 IT技術ブログ IT技術メモへ
にほんブログ村

2013年8月22日木曜日

Androidアプリを公開する

目次へ



Androidアプリを公開するまでの流れ
  1. Googleアカウントを作成する
  2. デベロッパーアカウントを作成する(登録料 $25)
  3. アプリを作成し、公開用にデジタル署名したAPKファイルを作成する
  4. APKファイル作成時のMissingTranslationエラー解決方法 追加
  5. 公開用にアプリのキャプチャー画像、アイコン、説明文を作成する
  6. APKファイルをアップロードする


■■■■Googleアカウントを作成■■■■

Googleアカウントを作成のページでアカウントを作成します。
すでにアカウントを持っている場合は必要ありません。

■■■■デベロッパーアカウントを作成■■■■

  • https://play.google.com/apps/publish/signup/のページでGoogleアカウントを使ってログインします
  • デベロッパー契約に同意します
  • 支払いに進むボタンをクリックします
  • 氏名、クレジットカード番号、デベロッパー名、メールアドレス、電話番号などを入力し、クレジットカードから$25支払います
    電話番号は03-1111-1111なら、+81-3-1111-1111などと入力します。+81が日本。市外局番の先頭の0は省略


■■■■署名入りAPKファイルを作成(Eclipseで作成)■■■■

ここでは証明書の設定をしています。証明書は、公開鍵が本人のものであることを証明します。 一般的には認証局によって発行されますが、Androidアプリで使用する証明書は自分で作成した(自己認証局)証明書を使います。

  • Eclipseでプロジェクトを右クリックし[Androidツール]-[署名アプリケーションパッケージのエクスポート]
  • 最初のページでプロジェクト名を確認
  • Keystore selectionのページで create new keystoreにチェックを入れ
    ロケーション 自分で決めたフォルダ\wings.keystore
    パスワード  自分で決める

    いったんキーを作成してしまえば、次からバージョンアップなどの時には、use existing keystoreにチェックを入れ、ロケーション、パスワードは今決めたものを指定します
  • KeyCreationのページで
    エイリアス  任意のキーの別名
    パスワード  さっきのパスワードと違ってもいいようですが、とりあえず同じにしました
    確認     パスワードをもう1回
    Validity   鍵の有効期限として 25を入力 25以上が推奨されている
    First and Last Name  任意の作者名
    その下すべて省略
    First and Last NameからCountry Codeまでは省略可能ですが、少なくともどれか一つの項目を入力する必要があります
  • Destination and key/certificate checksページで
    Destination APK file  任意のフォルダ\xxx.apk


■■■■APKファイル作成時MissingTranslationエラー解決方法 ■■■■

2014年6月30日追記

久しぶりにAPKファイルを作成しようとしたところ、string.xmlファイルでエラーが起き、APKファイルが作成できなくなってしまいました。
APKを作成しようとする前までは、全く文句を言われなかったのに、署名アプリケーションパッケージのエクスポートをクリックすると、string.xmlにエラーが表示されてしまいます。

MissingTranslationというLintエラーのようです。
これは、よくわからないのですが、いろいろな言語に対応するstring.xmlが必要だけどないよ というエラーのようです。
その対策は、MissingTranslationをエラーとしなければよいとのことで次の方法で、MissingTranslationをワーニングエラーとすることで解決しました。

ECLIPSEのメニューから[ウィンドウ]-[設定]-[Android]-[Lintエラー検査]-[Idの中のMissingTranslationをクリック]-[Severityと書いてあるコンボボックスからWarningを選択]

これで、APKファイルを作成できました。

これについてはここで教えていただきました


■■■■APKファイルをアップロード■■■■

https://play.google.com/apps/publishのページでまだログインしてなければGoogleアカウントでログインします
タイトルなど必要な情報を入力し、アップロードします

もし、パッケージ名をcom.example.xxの名前にしていると、APKファイルをアップロードできません。
その時はパッケージ名を変更して、APKファイルを作成しなおしてから、もう1度アップロードをしてください。
パッケージ名を変更する方法はこちら(Androidアプリのパッケージ名を変更する)です。


にほんブログ村 IT技術ブログ IT技術メモへ
にほんブログ村

2013年8月21日水曜日

Google Analytics にbloggerで作成したブログを追加

目次へ



すでにGoogle Analyticsを使っており、別のブログなどの解析も追加したい場合、新しくそのページを追加することができます。
Google Analyticsでは、解析したいページをプロパティと呼びます。


■■■■トラッキングIDを取得■■■■

  • Google Analyticsにログインします。
  • 右上にあるAnalytics設定をクリックします。
  • プロパティの列のコンボボックスをクリックし新しいプロパティを作成を選択します
  • ウェブサイトを選択し、サイトの名前(好きに決める)、サイトのURLを入力します
  • 業種を選択しタイムゾーンを日本にします
  • トラッキングIDを取得ボタンを押すと、トラッキングIDとトラッキングコードが表示されますので、トラッキングIDをコピーしておきます。

■■■■ブログ(blogger)にトラッキングIDを設定■■■■

  • bloggerにログインし解析をしたいブログを表示します。
  • 左のメニューの「設定」-「その他」をクリックします。
  • 1番下にGoogle AnalyticsのウェブプロパティIDを入力する場所があるので、さきほどコピーしたトラッキングIDを入力します。
  • 右上の設定を保存ボタンを押し終了。
  • Google Analyticsのホームのボタンを押すと、新しく追加したサイトが表示されています



にほんブログ村 IT技術ブログ IT技術メモへ
にほんブログ村

目次

Androidについて

Swingについて

Google App Engineについて

その他



にほんブログ村 IT技術ブログ IT技術メモへ
にほんブログ村

2013年8月19日月曜日

AndroidManifest.xml で meta-data を使う

目次へ



AndroidManifest.xmlの中にデータに名前をつけて登録しておくと、そのデータを登録した名前で使うことができます。


■■■■AndroidManifest.xmlに登録■■■■

<br/>
たとえば、AndroidManifest.xmlでnamaeという名前でdataというデータを登録しておきます( ① )。

<pre>
    <application ...>
        <activity...>
            :
        </activity>
        <meta-data android:name="namae"  android:value="data" >         ①
    </application>
</pre>

<br/><br/>

■■■■プログラムで取り出す■■■■

<br/>
プログラムの中で使うには
・ApplicationInfoのインスタンスを取り出し、<br/>
・metaData.getStringメソッドに名前を渡し、データをとりだします<br/><br/>


<pr>
ApplicationInfo  info = null;
try {
    info = getPackageManager().getApplicationInfo(
                                          getPackageName(), PackageManager.GET_META_DATA);
}   catch (NameNotFoundException e) {
}
String s = info.metaData.getString("namae")       //sの内容は"data"
</pre>





にほんブログ村 IT技術ブログ IT技術メモへ
にほんブログ村

Android LinearLayout weight

目次へ



LinearLayoutのweightを使うと全体の大きさに合わせて重みづけを指定することができます


■■■■layoutのxmlでweightを指定する■■■■


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <LinearLayout                                   ①
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/back" />

        <EditText
            android:id="@+id/editText1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1" >             ②
            <requestFocus />
        </EditText>

        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="★" />
        
    </LinearLayout>

    <WebView
        android:id="@+id/webView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>



①で、orientationを指定していないのでこのLinearLayoutはhorizontalが指定されていることになり、ボタンとエディットテキストとボタンの3つのViewが横に並びます。
weightを指定しているのはエディットテキストだけなので( ② )、ボタンを2つ作った残りのサイズはすべてエディットテキストとなります。

もし、3つともweightを1,1,1と指定すれば、同じ大きさになり、
また、weightを1,2,1と指定すれば、2と指定されたものだけが2倍の大きさになります。




にほんブログ村 IT技術ブログ IT技術メモへ
にほんブログ村