2013Androidアプリ開発!!Androidアプリを作成したい人必見!!Androidアプリの基本動作はもちろんのこと、本には載っていない、調べても見つからない、ソースを修正するだけでは解決できない、アプリ開発者が直面する問題の解決方法についても記載していきます。*基本的にはレイアウトファイル(xml)を使わないソースを載せております。IabException)IInAppBillingServiceのライブラリを実装しました。前回までのIMarketBillingService.aidlを使っていたのですが、version3にアップデートしろと言われ仕方なくアップデート。全体的に便利になっています。前回は自分で準備した処理も既に入っていたりと。IInAppBillingServiceを使っている人は今すぐにでもアップデートしていいレベルだど思います。新機能として、consumeという機能が付きました。購入した商品を消費するという処理です。この消費が正常に行われないと、ユーザーは商品を購入できません。購入した商品はちゃんと、consumeの処理を走らせて、商品を消費させてください。課金機能を新規追加の人のためにも実装方法を説明します。他のサイトでも書かれていると思いますが、サンプルソースを見ながら、自分のアプリに必要なソースをコピって、貼り付けてね。そんな感じになるんですが。SDKマネージャーを立ち上げ。◇商品タイプGoogleのアプリ内課金で購入できるアイテムには3つのタイプがあります。管理対象外のアイテムは何度も購入できる商品の事です。RPGで言うと、回復アイテムは管理対象外のアイテムで鍵は管理対象のアイテムです。何となくわかりますかね??今回のgoogleのサンプルソースで言うと、gasが管理対象外の商品premiumが管理対象の商品infinite_gasが定期購読になります。◇商品購入テストの仕方パッケージ名がcom.exampleから、始まると購入テストはできません。googleplayに実際にアプリを上げないとテストはできません。(アプリは非公開で)また、googleplayにあげるので、本番で使う証明書でBuildするのがお勧めです。consoleのアカウントの詳細でテスト用のアクセス権を設定すれば、テスト購入ができます。そのテスト用のアクセス権を設定する際にテスト用に使いたい端末の初期設定時のGmailアドレスを設定しないといけないので注意して下さい。下手すると、端末を初期化しないといけなくなります。■サンプルソースをよく読むMainActivityがメイン処理です。↓アイテムの消費という風になっております。■サンプルを見ても自分のアプリに必要なソースがわからない人のためにちょっと、コメントアウトを噛みくだいて、MainActivitywを記述して見ました。return;//購入が成功しているかの判定。Androidリアクション:2013年11月12日火曜日メニューの表示(onCreateOptionsMenu())Androidの特徴の一つであるメニューボタン。iPhoneにはないAndroid特有のボタンです。iPhoneだと、画面のどこかに設定ボタンとか作らないとダメですが、Androidだと、このメニューボタンを実装すればいいので、わりと楽です。{}Acticvityを継承していれば使えます。このメソッドの中でメニューを作っていきます。ボタン名addした数だけ、メニューにボタンが配置されます。レイアウトは勝手に作ってくれるので、わりと簡単で便利です。{super.onPrepareOptionsMenu(menu);Log.d("メニュー","閉じられた");}}■実行結果メニュー画面が開くタイミングや閉じるタイミングのOverrideが既にあるのが、とても便利です。サンプルソースで使っている定数ですが、Menu.NONEが0Menu.FIRSTが1です。getParent())ファイルを扱う場合によく使うオブジェクトです。フォルダを作ったり、存在しているかの確認等してくれます。"C:\\test\\test.txt");ファイルのパスはurlでも、ローカルでもどちらでも大丈夫です。false仮にFileオブジェクトで指定したファイルの場合には、ファイルが実在しないと、trueになりません。■ファイルが存在するのかの判定fFile.exists();基本的なところはこんな感じです。Fileオブジェクト生成時に指定するパスをディレクトリーにした場合のサンプルです。false1つ上の階層のディレクトリが作成されていないとfalseになります。falseマジ神レベル!!上の階層がなくても作ってくれます。Fileオブジェクト作成時にファイルを指定すると、その名前のディレクトリが作成されます。Fileオブジェクトは上の方で書いたようにサーバー上のファイルも使えるので、サーバー上のファイルをローカルに保存する際に、ファイルがあるか?ディレクトリがあるか?の判定で便利です。■ディレクトリ内のファイルを取得fParent.listFiles()→File配列ディレクトリ内のファイルが配列になって、返ってきます。falseファイル名の変更します。コピーではないので、元ファイルは消えます。Linuxで言うmvみたいなものです。ファイルを移動させるメソッドとして利用できます。指定するファイルはフルパスで。JAVAリアクション:2013年11月1日金曜日AndroidManifest.xml-01(Manifest.xml書き方)ソースに関してはある程度はググれば調べられるけど、マニフェストファイルについては、全然調べられない!!っていう人を対象に、(自分もそうですが、)AndroidManifest.xmlについて激基本的なところを説明したいと思います。android:name="android.intent.category.LAUNCHER"></category></action></intent-filter></activity></application></manifest>上記はAndroid4.2のSDKで新規プロジェクトを立ち上げたときの初期のAndroidManifest.xmlです。これについて説明していきます。encoding="utf-8"?><manifestxmlns:android="http://schemas.android.com/apk/res/android"この部分は決まった形です。無心で毎回何も考えずに記述しましょうpackage="com.example.manifest"ここで指定したパッケージ名がGoglePlayのURLになります。ここで指定するパッケージに初期起動時のActivityクラスを配置するのが個人的にはオススメです。android:versionCode="1"android:versionName="1.0"android:versionCodeは整数が必須!!GooglePlayにアプリを上げる際の管理番号になります。GooglePlayにあげる場合には必ず、最後にあげた番号よりも多い数字にしないといけません。/>minSdkVersionはアプリをインストールするのに必要なAndroidAPIレベルの最低値です。2.2未満の端末だと、インストールできないことを示しています。android:targetSdkVersion="17"はそのアプリをどのAndroidに合わせるかを示しています。Build時に指定するバージョンと違い、ザックリ言うと見え方をどのバージョンにするかの指定です。ついでに言うと、このSdkVersionはなくても全然ビルドできます。>applicationタグ内の説明になります。この中にアクテビティの設定を記述したりします。android:allowBackup="true"クラウドにバックアップすることを許可します。Googleアカウントに紐づいているアプリを管理するあの機能を使えるっていうとです。設定しなくてもアプリは動きます。android:icon="@drawable/ic_launcher"どの画像ファイルをアイコンにするかの設定です。ここでいうアイコンとは、端末内で確認できるアプリのiPhoneと違い画像サイズについてはサイズの規定とかとくにありません。(推奨サイズとかはあるかもしれませんが。)android:label="@string/app_name"タイトルラベルに記述されるアプリのタイトルです。ホーム画面で表示されるタイトルにもなります。文字列を直書きでも大丈夫です。android:theme="@style/AppTheme"targetSdkVersionが14以上から、使えます。簡単に言うとWebのCSS見たいなもので、styleに文字色とか背景とかを設定できます。android:allowBackup、icon、label、themeの4つも特に記述しなくても、動くっちゃ動きます。アイコンやタイトルぐらいは設定しておいた方がいいとは自分は思います。/></intent-filter></activity>android:name="com.example.manifest.MainActivity"でActivityファイルのパスを指定します。上で指定したパッケージ内なら".MainActivity"こんな書き方でも大丈夫です。android:label="@string/app_name"アクティビティ内でのタイトルに表示されます。/></intent-filter><intent-filter>のこの部分は結構大事で、これがわかると本当にいろいろなことができるようになります。これがiPhoneアプリとは違うAndroidの醍醐味的なところです。他のアプリとの連携や他のアプリからの起動などを記述します。カメラアプリから写真加工アプリを呼び出すみたいな。/>"android.intent.action.MAIN"でデータの受け渡しなしの初期起動アクティビティになります。/>こちらを記述することで、初期起動が可能なアクティビティとカテゴライズされます。すんごい基本的なAndroidManifest.xmlについての説明は以上になります。AndroidManifest.xmlについてよくわからずにいろいろな機能や広告SDKを組み込むとmanifestファイルが混沌して、わけわかめーなファイルになってしまうので気を付けてください。findViewById)レイアウトの隠し方。消したいけど、消せないこと。消したくないけど、消えてしまったこと。LinearLayoutのパーツを消すことはとても簡単です。使い方は上記な感じで。現在のActivityが終了となります。startActivity)今回は今いるActivityから、他のActivityを呼ぶ方法を紹介します。