ようへい

2012年1月31日火曜日

[Android アプリレビュー][要root] Market Unlocker

情報
一時的に、端末が持っている地域情報を偽装し、日本向けのAndroid Marketで表示されないGoogle Music等をインストールできるようにするアプリ。
Amazon Appstoreでアプリをダウンロードする際にも必要。
似たアプリで、MarketEnablerがありますが、MarketEnabler単体では、Amazon Appstoreのアプリをダウンロードすることは出来ません。
ただし、プロバイダ情報のバックアップ/リストアが正常に行えないようです。
プロバイダ情報のバックアップ/リストアにはMarketEnabler等を使用する必要があります。

2/7 追記
バージョンアップに伴い、Market Unlockerでバックアップ/リストアが正常に出来るようになりました。
使い方
アプリを起動後、Home画面にて「Enable Unlocker」をタップし、ONにします。
Market画面にて、偽装する地域、キャリアを選択することも可能です。
「Enable Unlocker」を再度タップし「OFF」にすることで、元に戻すことが可能です。
Market Unlocker
動作
アプリケーションの安定性
価格
コストパフォーマンスが良いかどうか
関連記事

2012年1月30日月曜日

1/30 Android ニュースひとまとめ

Symantecによると、1月28日現在で「iApps7 Inc」「Ogre Games」「redmicapps」という名称のパブリッシャーから提供されているアプリケーションに、「Counterclank」(別名Apperhand)という名称のトロイの木馬が組み込まれているという。
Android Marketにまた不正アプリ? マルウェアの解釈めぐり異論も - ITmedia ニュース
http://www.itmedia.co.jp/news/articles/1201/30/news017.html
Android Marketにも厳しい審査を設けて欲しいですね。
ただ、Android Marketへの登録料金が上がるのも嫌ですが・・・
【キャンペーン第1.弾】 1月30日~2月13日
「バーガータイム」・・・あの名作をスマホでも♪レトロなキャラ達にキュン死寸前!
「恋愛無双」・・・100人の男を制覇せよ!?異色の恋愛ミニゲーム集!
「天使のソリティアDX」・・・シリーズ累計470万DLを突破した大人気ソリティア!(※2012年1月時点 弊社調べ)
「スケボーマンJET」・・・超爽快!大人気の横スクロール型スケボーアクション!
「恋愛アプリメント」・・・甘く、苦く、優しく、切ない・・・そんな恋愛ノベルアプリ。

【キャンペーン第2.弾】 2月13日~2月27日
「つっこみドリル」・・・怒涛のボケに対応できるか!?人気のつっこみ力診断ゲーム!
「サルバナナ☆☆シンクロアクションパズル」・・・ハンターたちの動きを読み、バナナを素早くGetせよ!
「おっちょ」・・・ひたすら上へ、上へ――!お手軽・お気軽なジャンプアクション!
「千羽鶴」・・・とある病院を舞台に展開する戦慄のホラーアドベンチャーノベル!
「感情アプリメント」・・・心に足りない感情を補うサプリメントのようなアプリ。

【キャンペーン第3.弾】 2月27日~3月12日
「脱出ゲーム RooooM-ワガママ女子高生編-(前編)」・・・謎だらけの不気味な屋敷からアナタは無事脱出できるか!?
「いれかえIQクロスワードDX」・・・文字をクルッと入れ替える新感覚のクロスワード!
「スノボーマン」・・・華麗にトリックを決めろ!人気のスノボーアクション!
「大宴会部長」・・・宴会をモチーフにした異色のミニゲーム集!
「サーフィンスピリット」・・・リアルな波の動きと爽快感!お手軽サーフィンゲーム!

【キャンペーン第4.弾】 3月12日~3月26日
「犬ホスト」・・・歌舞伎町No.1ホスト「愛流」と共に優雅なパズルを堪能♪
「雪合戦。」・・クセになる爽快感!山の動物たちとガチンコ雪合戦を楽しもう!
「Ride on Beat」・・・様々なアクションを駆使せよ!新感覚の3Dアクション音ゲー!
「脱出ゲーム RooooM-ワガママ女子高生編-(後編)」
「だって女の子だもの。」・・・これ1本で婚活完了!?モテ度全開、女子力UPツール!
iモードで人気の20タイトルがAndroid Marketで期間限定無料配信 - ファミ通App
http://app.famitsu.com/20120130_26937/
auなので関係ありませんが、ちょっとうらやましいですね~
各アプリ、スマフォに最適化されてるんでしょうか?
操作性がフューチャーフォンと同じとなると、ダメダメですね。

フューチャーフォンでリリースしていたアプリをスマートフォンでリリースするメーカーありますけど、スマフォでリリースするなら、インタフェースもスマートフォンに最適化してほしいですね。
シュミレーション系好きなので、カイロソフトのアプリは好きなのですが、体験版やった限りだと操作性が悪くて(スマフォに最適化されていない)やる気しませんね。
カイロソフトに限ったことではないですけど。
関連記事

2012年1月29日日曜日

Hello, Views (LinerLayout編)

前回に続き、Android Developersのチュートリアルを学習していきます。
Linear Layout | Android Developers
http://developer.android.com/resources/tutorials/views/hello-linearlayout.html
どうやらレイアウトについてのチュートリアルのようです。

それでは始めましょう。

プロジェクトを作成します。
HelloLinearLayoutとします。

res/layout/main.xmlを開きます。
<?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" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

</LinearLayout>
以下のように変更します。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

  <LinearLayout
      android:orientation="horizontal"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:layout_weight="1">
      <TextView
          android:text="red"
          android:gravity="center_horizontal"
          android:background="#aa0000"
          android:layout_width="wrap_content"
          android:layout_height="fill_parent"
          android:layout_weight="1"/>
      <TextView
          android:text="green"
          android:gravity="center_horizontal"
          android:background="#00aa00"
          android:layout_width="wrap_content"
          android:layout_height="fill_parent"
          android:layout_weight="1"/>
      <TextView
          android:text="blue"
          android:gravity="center_horizontal"
          android:background="#0000aa"
          android:layout_width="wrap_content"
          android:layout_height="fill_parent"
          android:layout_weight="1"/>
      <TextView
          android:text="yellow"
          android:gravity="center_horizontal"
          android:background="#aaaa00"
          android:layout_width="wrap_content"
          android:layout_height="fill_parent"
          android:layout_weight="1"/>
  </LinearLayout>
        
  <LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1">
    <TextView
        android:text="row one"
        android:textSize="15pt"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"/>
    <TextView
        android:text="row two"
        android:textSize="15pt"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"/>
    <TextView
        android:text="row three"
        android:textSize="15pt"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"/>
    <TextView
        android:text="row four"
        android:textSize="15pt"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"/>
  </LinearLayout>

</LinearLayout>
実行します。

今回出てきた用語について解説。
LinearLayout
縦横に、配置するレイアウト
android:orientation
配置する向き
android:layout_width
レイアウトの幅
android:layout_height
レイアウトの高さ
android:layout_weight
オブジェクトの占有比率
android:gravity
オブジェクトの配置方法
fill_parent
画面サイズにピッタリ合わせる
現在は match_parent が推奨となっているようです
wrap_content
文字列の長さに合わせる
こんな感じでしょうか。
間違いがあれば指摘ください。
関連記事

2012年1月28日土曜日

1/27 Android ニュースひとまとめ

Android OS、タブレット市場でもシェアを拡大 - インターネットコム
http://japan.internet.com/allnet/20120127/2.html
Strategy Analytics が2012年1月26日に公表した調査によれば、2011年第4四半期のタブレット端末の出荷台数は前年同期からは1,610万台増加して2,680万台に到達していたことがわかった。この急激な伸びを牽引したのは、Google の Android OS を搭載したタブレット端末。同 OS を搭載したデバイスは、前年同期の29.0%から39.1%へと大幅にシェアを伸ばした。一方、Apple iPad も引き続き好調。Android タブレットの猛追によりシェアは前年同期の68.2%から57.6%に低下したが、出荷台数は前年同期の730万台から1,540万台へと倍増。人気の高さを示す結果となった。
おー

タブレットはまだ持っていないのですが、 Eee Pad Transformer Prime(TF201) が欲しいです。
といっても嫁の説得が先ですが・・・。

家で使うならやっぱりタブレットだよな~。

iPadも良いけど、やっぱり開発環境がWindowsで整ってないとね。
Android OS、iOS に代わりアプリ開発者にとって最も重要なプラットフォームに - インターネットコム
http://japan.internet.com/webtech/20120127/2.html
同調査は、同社がモバイルアプリ開発者を対象に実施したもの。2010年にも同じ調査を実施し、その時は2011年には iOS が最も重要なプラットフォームになると予測していた。この予測の根拠となったのは、iOS 向けアプリの収益性の高さだった。iOS デバイス利用者は、Android デバイス利用者よりも、有料アプリを多く購入する。このため、多くのアプリ開発者は、iOS 向けアプリを最初に開発し、その後その他のプラットフォームに取り組む傾向があった。

だが、最新の調査ではその傾向に変化が見られるようだ。Android デバイスが増加し、アプリ開発者がこのプラットフォームを無視できなくなったことがその理由のひとつ。また、アプリ内課金で収益をあげるなど、Android アプリの販売で新しいビジネスモデルが浸透してきたことも理由としてあげられている。

また、調査では、開発者の利用する開発ツールにも変化が見られることが報告されている。Java、Flash、WAP などのツールの利用者は減少傾向にある。かわりにマルチプラットフォームのアプリ開発に適した HTML5 などの利用が増加しているとしている。
今リリースされているゲームアプリなんて、ほとんどがiOSでリリース後、Androidに移植って感じですよね。
今は、iOSよりもAndroidのほうがスマートフォンのOS比率は高いですからね。

前から思っていたのですが、やはり、iOSユーザのほうが有料アプリ購入率が高いんですね。
Androidで売れているのはごく一部のアプリで、一番売れているのが天気予報アプリというのを見たことがあります。
その分Androidには無料アプリの比率が多いんでしょうけど。

無料アプリありがたいですね。
関連記事

2012年1月26日木曜日

au one Market 更新による通知バーの広告表示への対策

[KDDI、Android の通知バーまで広告に活用開始 -- Engadget Japanese]
http://japanese.engadget.com/2012/01/24/kddi-android/
さて、KDDI の Android 向け独自アプリストア au one Market が、最近のアップデート以降、通知バーに広告を表示する機能を搭載し、各所で話題になっています。広告配信については利用開始時に停止の方法が案内されますが、なにも考えずOKを押していると、とつぜん自分のスマートフォンの、よりによって通知バーに広告が表示されるという仕組み。なかなか穏やかではありません。Twitter での報告によれば、広告のターゲティングには au の顧客情報を利用しているとのこと。
auを使っている身としては、改悪以外の何者でもない。

au one Marketは元々、常駐アプリであるため、私は好きではない。
ごく稀にしか使用しないアプリであるため、常にリソースを食われるというのは気に食わない。

なので、私はTitanium Backupを使用し、必要なときだけ「復元」し使用している。
用が済んだらTitanium Backupで「バックアップ」→「アンインストール」している。
関連記事

[Android アプリレビュー][要root] Titanium Backup ★ root

情報
Titanium Backup ★ root
Titanium Backup ★ root
Titanium Backup ★ root
Titanium Backup ★ root
アプリケーション、アプリケーションのデータをバックアップすることが出来るアプリ。
Androidのアプリケーションの管理からはアンインストールできないシステムアプリもアンインストール可能。
不要なプリインストールアプリもアンインストール可能。

また、バッチで特定のアプリ(すべてのアプリも可)のバックアップを定期的に取ることも可能。

機能はシンプルだが、強力。
バックアップアプリでは一番のお勧め。
最近、無料版での制限が増えてきたのが残念。
使い方
起動すると、端末に入っているアプリケーションの読み込みが始まります。
読み込みが完了したら、「バックアップ/リストア」をタップします。
今端末に入っているアプリが一覧で表示されるので、バックアップ/アンインストール/復元したいアプリを選びます。
有料版では、凍結を行うことも可能です。
Titanium Backup ★ root
動作
アプリケーションの安定性
価格
コストパフォーマンスが良いかどうか
関連記事

[Android アプリレビュー] Tasker

情報
Tasker
Tasker
Tasker
Tasker
ある動作をトリガーとして、Androidを制御することが可能なアプリ。
理解するまでは難しく感じるが、これを入れると、ほかのユーティリティ系アプリが不要になるくらい便利なアプリ。
バッテリーの節約にも役立ちます。
ぶっちゃけ、もっと早くAndroidアプリの開発に着手しようとしていたのですが、このアプリのおかげで、やりたい事が大概できてしまったので開発意欲が落ちてしまったほど便利なアプリ。
root端末であれば、ワンランク上の設定が可能です。

私がTaskerで設定している一部のプロファイル
※設定内容や、設定方法は後日記載したいと思います。
家モード設定
家のWifiポイントの範囲内の場合、家フラグを1にする
条件を満たさなくなった場合、家フラグをクリア
家モード
家フラグが1の場合、WifiスリープをOff、画面ロックを利用しない
条件を満たさなくなた場合、WifiスリープをOn、画面ロックを利用する

家にいる間は、画面ロックが行われなくなります。
また、WifiスリープがOffになるため、スムーズにブラウズできるようになります。
マナーモード設定
曜日が月~金かつ、時間帯が8時~20時かつ、家のWifiアクセスポイントの範囲外の場合、マナーモードフラグを1にする
条件を満たさなくなた場合、マナーモードフラグをクリア

主な用途は、職場での自動マナーモード切替。
GPSで場所を判定させ、職場についた場合、マナーモードフラグを1にすることも可能だが、場所判定にGPSを頻繁に使用することになるため、バッテリーの消費が激しくなります。
マナーモード
マナーモードフラグが1かつ、イヤホンが接続されていない場合、サイレントモードをOn、メディアボリュームを0にする
条件を満たさなくなた場合、サイレントモードをOff、メディアボリュームを5にする

サイレントモードをOnにしてもメディアボリュームが制御されていなかったので、メディアボリュームを併せて制御
イヤホンを接続した場合はマナーモードが解除されるようになっています。
画面OFF
画面を下に向けて5秒経過した場合、ディスプレイをOff、CPUのクロック数を落とす

私は充電時など、画面を下にして置きます。
その際に画面が点いていても無駄なので。
画面ON
ディスプレイOffから復帰した場合、CPUのクロック数を戻す
夜間バックアップ
1:00~1:30の場合、DropsyncにてDropboxのフォルダと同期
条件を満たさなくなた場合、Dropsyncをkill

Dropsyncで予め同期プロファイルを作成しておきます。
DropsyncはTasker用のプラグインがあるため、これを使用します。
Dropsyncには常時バックグラウンドで動いていてもらう必要はないので、killしちゃいます。
夜中
1:30~6:00の場合、CPUのクロック数を落とし、機内モードをOn
条件を満たさなくなた場合、CPUのクロック数を戻し、機内モードをOff

夜間のバッテリー消費節約用
この動作を行うアプリを入れていましたが、Taskerを入れてから不要になりました。
電源接続
電源に接続されている場合、画面の明るさをアップ
条件を満たさなくなた場合、画面の明るさを戻す
ローテーションOff
特定のアプリが実行された場合、画面ローテーションをOff
アプリが終了した場合、画面ローテーションをOn

ローテーション(画面の回転)がアプリ内で設定できない(強制的にローテーションされてしまう)場合などに使用します。
寝ながらネットサーフィンする場合などに利用
輝度ダウン
特定のアプリが実行された場合、画面の輝度を下げる
アプリが終了した場合、画面の輝度を戻す

画面の明るさをアプリごとに制御するために作成。
コミックビュワー等で文字を読む際には、画面輝度が高いと目が疲れるので。
通話終了時バイブ
通話が終了したらバイブ

Androidは通話終了が分かりにくいので。
通話終了時にバイブするアプリを別途入れていたのですが、Taskerを入れてから不要になりました。
他にも便利な使い方があります。 「Tasker やりたい事」でググると情報があるので参考に。
使い方
Tasker 設定 ① - ログろいど
Tasker
動作
アプリケーションの安定性
価格
コストパフォーマンスが良いかどうか
関連記事

2012年1月25日水曜日

Androidのシェア

「Android」の勢いは止められそうにない。

英国の調査会社Ovumが現地時間1月23日に発表した調査結果によると、GoogleのAndroidは今後1年で開発者にとって最も重要なプラットフォームとなり、Appleの「iOS」を徐々に引き離すという。ただし、ほとんどの開発者が両方のプラットフォームをサポートすると同社は予測している。
開発者も「Android」を重視--年内に「iOS」と立場逆転か - CNET Japan
http://japan.cnet.com/news/service/35013375/
AndroidユーザとしてはAndroidのシェアがグングン伸びて欲しいです。
iOSも、開発環境がWindowsでも整っていれば良いのですが・・・。

今後のAndroidに期待ですね。
関連記事

2012年1月24日火曜日

[Android アプリレビュー][要root] Adaway

情報
  • カテゴリ:ツール
  • 価格:無料
  • バージョン:1.24
  • 最終更新日:2012/01/23
  • 必要容量:662k
  • デベロッパー:Dominik Schürmann
  • URL:https://market.android.com/details?id=org.adaway
  • 動作環境:Xperia acro (IS11S) - Android OS 2.3.4
Adaway
Adaway
Adaway
自動でダウンロード
Adaway
自動で適用されます
このアプリでは広告を非表示にすることが可能です。

中で行っていることは、hostsを書き換え、広告サイトへの経路の変更を行っています。
hostsを書き換えるため、端末全体に影響が出ますので、hostsについて理解している人のみ使用してください。

hostsに記載するドメインは、URLから取得することが可能で、標準でいくつかのURLが登録されています。
しかし、標準では海外のドメインばかりが対象で、国内の広告はブロックすることができません。

国内のドメインは自分で追加する必要があります。

有志がhostsをまとめてくれているので、それを利用するという手もあります。
また、2chでは、「Android hostsスレ」が存在するので、スレッド内の情報をまとめてhostsに記載するという手もあります。

管理面で一番簡単なのは、PC上でhosts.txt等を作成し、Sugarsync等にアップロード、そのURLをAdawayに指定する方法です。

hostsを書き換えて不具合が出た場合は、Adawayにて書き換えたhostsを無効にすることも可能です。
また、ホワイトリスト機能もあるため、特定のサイトのみ許可するといった使い方も可能です。
使い方
更新があると、「Update available」と表示されます。
更新が無い場合は、「Enabled」と表示されます。
更新があった場合は、「Download files and apply ad blocking」をタップします。
Adawayがhostsファイルをダウンロードし、端末に適用を行います。
Adaway
動作
アプリケーションの安定性
価格
コストパフォーマンスが良いかどうか
関連記事
関連記事

2012年1月23日月曜日

Hello World 3

Android Developersにいくつかチュートリアルがありましたので、今回からチュートリアルに沿って、開発を行っていきたいと思います。
Hello, World | Android Developers
http://developer.android.com/intl/ja/resources/tutorials/hello-world.html AVDは既に作成済みとなるため、「新規 Android プロジェクトを作成する」から行います。
プロジェクト名
HelloAndroid
パッケージ名
jp.blogspot.logroid.helloAndroid
アクティビティを作成
HelloAndroidActivity
SDK の最小バージョン
7
でプロジェクトを作成しました。
ここで改めて各項目について確認しましょう。
プロジェクト名
プロジェクトを格納するディレクトリ名
パッケージ名
ネームスペース。パッケージ固有である必要があるため、ドメインスタイルのパッケージを使用する事が多いみたい。
アクティビティを作成
画面を作成するかどうか。任意でチェックをつける。後で追加することも可能。
SDK の最小バージョン
Android アプリが動作可能な最小APIレベル。
プロジェクトの作成が完了したら、次はプログラムの改修です。
「パッケージエクスプローラ」にて、src/パッケージ名/HelloAndroidActivity.java を開きます。 以下のようになっていることを確認します。
package jp.blogspot.logroid.helloAndroid;

import android.app.Activity;
import android.os.Bundle;

public class HelloAndroid extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}
画面にテキストを表示するため、以下のように修正を行います。
package jp.blogspot.logroid.helloAndroid;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HelloAndroidActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        TextView tv = new TextView(this);
        tv.setText("Hello, Android");
        setContentView(tv);
    }
}
実行します。 画面に「Hello Android」と表示されました。
今回の場合は、前回で実装した方法と異なり、XMLに手を入れず、直接オブジェクトを作成し、描画する方法でした。
ここから、既存のアプリケーションを変更して、XMLレイアウトが、使用されるようにする方法を実践します。
res/layout/main.xml を開きます。
<?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" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

</LinearLayout>
以下のように書き換えます。
後々のチュートリアルHello, Testingでのコードを動作させるため、TextViewにidを指定しています。
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:text="@string/hello"
    android:id="@+id/textview" />
res/value/strings.xml を開きます。
このファイルは、UIに使用するデフォルトのテキスト文字列を保存するファイルとのことです。
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="hello">Hello World, HelloAndroid!</string>
    <string name="app_name">HelloAndroid</string>

</resources>
以下のように書き換えます。
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="hello">Hello Android! I am a string resource!</string>
    <string name="app_name">HelloAndroid</string>

</resources>
src/パッケージ名/HelloAndroidActivity.java を開き、以下のように変更します。
package jp.blogspot.logroid.helloAndroid;

import android.app.Activity;
import android.os.Bundle;

public class HelloAndroidActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}
実行します。
「Hello Android! I am a string resource!」が表示されます。
プロジェクトのデバッグを行います。
src/パッケージ名/HelloAndroidActivity.java を開き、以下のように変更します。
package jp.blogspot.logroid.helloAndroid;

import android.app.Activity;
import android.os.Bundle;

public class HelloAndroidActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Object o = null;
        o.toString();
        setContentView(R.layout.main);
    }
}
実行します。
アラートが表示されることを確認します。
eclipseのメニューから実行->ヒストリーのデバッグ->HelloAndroidActivityを選択します。
その後、デバッグパースペクティブへ画面が切り替わり、エラーが発生した箇所でブレイクします。
o.toString();でエラーが発生し、ブレイクします。
また、LogCatで、java.lang.NullPointerExceptionが発生していることを確認します。
パースペクティブをJavaに切り替え、以下のように修正します。
package jp.blogspot.logroid.helloAndroid;

import android.app.Activity;
import android.os.Bundle;

public class HelloAndroidActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}
以上で、Hello, Worldチュートリアルは終了です。
デバッグツールについて触れることが出来ました。
なかなかデバッグし易そうな印象。
次回はHello, Viewsを実践してみたいと思います。
関連記事

2012年1月22日日曜日

[Android アプリレビュー] Tower Raiders 2 GOLD

情報
あらかじめ用意された通路を通る敵を出口に行くまでに倒し、クリスタルを守るゲーム。
敵を倒す度に資金が入る。
資金を使ってユニット毎に、レベルアップが可能。
ユニットを配置できる場所はある程度限定されている。
Heroという特殊なユニットを配置することが可能で、Heroを利用することで、資金を貯めたり、敵を攻撃したり、ユニットの特性を変えたりすることが可能。
クリア時のポイントを使って、ユニットの基礎能力の向上が可能。
難易度は高め。(いくつかのマップで挫折)
飛行ユニットは序盤には登場しないが、中盤以降に登場。
対空対策を怠っていると、あっという間にGame Overになる。
一部のHeroを利用しない限り対空ミサイル以外では飛行ユニットにダメージを与えることができない。
攻略
ある程度置く場所が限られるが、その中でより遠回りさせるようにユニットを配置する。
可能であれば、一度通過したポイントを再度通過させるような順路を作る。
Robo Defenceのように、出口へいけないようにする抑止機能がついていないため、置き場所をミスしたりして、敵ユニットが出口へいけなくなった場合、敵が配置したユニットを突っ切って通ります。
出入り口が1つのマップの場合、クリスタルを持った敵が再度、来た道を引き返すので、比較的簡単に攻略が可能。
現在、最終面(シークレット)が攻略できず・・・。
ポイントを使用することでユニットの強化が可能だが、ある程度の条件を満たすことができないと、強化できないものもある。
出口近くになっても倒せる場合があるので、キャノン等の一発のダメージが大きいユニットを置いておく。
飛行ユニットはHeroを使用することで一時的に乗り切ることが可能だが、飛行ユニットの連戦になった場合対処できなくなるため、Heroに頼らず、対空ミサイルを置いて対策する方が良いと思われる。
動作
アプリケーションの安定性
価格
コストパフォーマンスが良いかどうか
関連記事

2012年1月21日土曜日

Hello World 2

前回作成したプロジェクトにHello Worldを表示できるよう手を加えます。

まずはレイアウトの修正を行います。

eclipseの「パッケージエクスプローラ」にて、「res」→「layout」を選択し、右クリック→「新規」→「Android XML ファイル」をクリックします。

「リソース・タイプ」で「Layout」
「ファイル」に「helloworld.xml」
「ルート要素」で「LinearLayout」

を選択し「完了」をクリックします。

グラフィカルレイアウトエディタが立ち上がりますが、基礎を学ぶため、今回はXMLファイルを直接編集する方法をとります。

画面下にある「helloworld.xml」をクリックし、XMLエディタを開きます。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    

</LinearLayout>
これを以下のように変更します。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    
    <TextView 
        android:text="Hello World!"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>
次に、プログラムの修正を行います。
eclipseの「パッケージエクスプローラ」にて、「src」→「パッケージ名」→「HelloWorldActivity.java」をダブルクリックします。
ソースエディタが立ち上がり、以下のように入力されていることを確認します。
package com.blogspot.logroid.helloworld;

import android.app.Activity;
import android.os.Bundle;

public class HelloWorldActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}
extendsというのは、Java でのクラス継承を指します。 今回の場合、Activity クラスを継承しています。 onCreateメソッドはインスタンス化される際に呼び出されるメソッド(コンストラクタ)です。 このメソッドの中にsuperとありますが、これは継承元の Activity クラスのonCreateを呼び出しています。 その後、setContentViewメソッドで、レイアウトとビューの設定ファイルを指定しています。 先ほど作成したhelloworld.xmlを指定してみましょう。
package com.blogspot.logroid.helloworld;

import android.app.Activity;
import android.os.Bundle;

public class HelloWorldActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.helloworld);
    }
}
以上で今回の作業は終わりです。 実行してみましょう。
helloworld.xmlの内容が表示されました。
関連記事

[Android アプリレビュー] Myth Defense LF

情報
Myth Defense LF
Myth Defense LF
Myth Defense LF
Myth Defense LF
城塞ではユニットの強化やルーンの生成が可能
フィールド上にユニットを配置し、入り口から来る敵を出口に行くまでに倒していくゲーム。
敵を倒す度に資金が入る。
資金を使ってユニット毎に、レベルアップが可能。
Robo Defenceと同じように、クリアした際のポイントを使用し、ユニットの基礎能力の向上、種族との契約による新規ユニットの追加、開始時の資金の増加、ユニットの強化アイテム「ルーン」の生成等が可能。
難易度は中くらい。
レベルによって、AIのレベルも上がるため、ダメージの少ない経路を見つけて、そこを通るようになる。
また、敵にも特性があり、レーザーが有効なユニットや、実弾が有効なユニットがいる。
やりこみ要素は、ポイントによるユニット強化、ユニット追加、ルーンの開発等。
地形効果があり、進行速度が遅くなる地形等がある。
また、世界ランキング機能がついている。
不定期だが、更新され、敵の種類が増えたりしている。
また、追加マップもMarketで販売されている。
攻略
基本はRobo Defenceと同じように、遠回りさせ、より多くのダメージを与えることが重要。
ドワーフ族との契約以降は、レーザータワー、ルビータワーを建てることが出来ればクリアしたようなもの。
レーザータワーを建てる場所は、ゴールに近く、飛行ユニットも通過する場所。
スロータワーの効果は飛行ユニットにも有効なので効果的に設置する。
動作
アプリケーションの安定性
価格
コストパフォーマンスが良いかどうか
関連記事

2012年1月20日金曜日

[Android アプリレビュー] ロボ防衛

情報
ロボ防衛
ロボ防衛
貯めたポイントで、ユニットの強化が可能
ロボ防衛
フィールド上にユニットを配置し、入り口から来る敵を出口に行くまでに倒していくゲーム。
敵を倒す度に資金が入る。
資金を使ってユニット毎に、レベルアップが可能。
また、クリアした際のポイントを使用し、ユニットの基礎能力の向上、新規ユニットの追加、開始時の資金の増加等が可能。
難易度は低め。
レベルによって、AIのレベルも上がるため、ダメージの少ない経路を見つけて、そこを通るようになる。
やりこみ要素は、ポイントによるユニット強化等。
地形効果があり、進行速度が遅くなる地形等がある。
攻略
ユニット配置の自由度が高いため、ユニットを配置して遠回りさせる通路を作り、確実にダメージを与えていく。
この時、進行速度を遅くする地形を通らせると効率がいい。
飛行ユニットが通る通路には、対空キャノン(Antiair Cannon)、対空ミサイル(Surface to Air Missile)、スロー(Slow Tower)を配置し、効率的にダメージを与えることができるようにする。
動作
アプリケーションの安定性
価格
コストパフォーマンスが良いかどうか
関連記事

Hello World 1

をクリックし、プロジェクト作成ウィザードを立ち上げます。
「プロジェクト名」に「Hello World」とでも入力します。
その他の設定はデフォルトのままで良いです。
「次へ」をクリックします。
「ビルド・ターゲット」から、「Android 2.3.3」を選択します。
「パッケージ名」は、ホスト名を逆から並べた文字列+パッケージ名とします。
ex.
com.blogspot.logroid.helloworld
「完了」をクリックします。
このプロジェクトを実行するだけでHello Worldという文字列がAVDの画面上には出力されるのですが、ウィザードまかせになってしまうので、次回ちょっと手を入れようと思います。

関連記事

Eclipse 設定編

Eclipseのダウンロード/インストールが済んでいない場合は以下を参照し、済ませておく。
Android 開発環境準備編 - ログろいど

EclipseにAndroidアプリ開発に必要なプラグインをインストールします。

ウィンドウ->設定->インストール/更新->使用可能なソフトウェア・サイトを開き、追加をクリック。
以下のURLを追加する。

名前:なんでも(Android とでも)
ロケーション:https://dl-ssl.google.com/android/eclipse/

追加が完了したら、ヘルプ->新規ソフトウェアのインストールを開き、作業対象で、先ほど追加したURLを選択。
ツリーをたどり、「Android 開発ツール」にチェックを入れ、「次へ」をクリック。
その後、ウィザードに従い、インストールを完了させ、Eclipseを再起動します。

再起動後、Android SDKに関する設定を行います。
ウィンドウ->設定->Androidを開き、SDK ロケーションを設定します。
Android SDKのインストールパスを参照させてください。
ウィンドウ->Android SDK Managerを開き、開発対象のバージョンのSDK Platformをインストールします。
私は、Android 2.1以降を対象にしようと思うので、とりあえずAndroid 2.1、2.2、2.3.3のSDK Platform、Android SDK Platform-tools、Documentation for Android SDK、Google APIsをインストールしました。

SDKのインストール後、ウィンドウ->AVD Managerを開き、テストで使用する仮想デバイスを設定します。
私が所有するスマフォが2.3.4という事もあり、メインターゲットを2.3.3にしようと思うので2.3.3用のデバイスを作成します。
「新規」をクリックします。
「名前」に適当な名前を入力します。(ex. 2.3.3)
「ターゲット」から「Android 2.3.3」を選択します。
その他の設定は後々見直すこととし、「Create AVD」をクリックします。
これでAndroidアプリ開発に必要な最低限の設定は終わりです。

必要になってくるプラグイン等あると思いますが、必要になった際に順次追記します。
1/29追記
C:\Program Files\Android\android-sdk\platform-toolsを環境変数 PATH へ追加しておいてください。
5/9追記
ウィンドウ -> 設定 -> 一般 -> ワークスペース -> テキスト・ファイルのエンコードUTF-8 に変更しておいてください。
関連記事

Android 開発環境準備編

何はともあれ、開発環境の準備。
開発にあたっては、環境の整ったIDEを利用することにした。
今回は Eclipse
Eclipseに日本語化プラグインをビルドインした物が配布されているので、それを利用する。
Pleiades - Eclipse プラグイン日本語化プラグイン | MergeDoc Project
http://mergedoc.sourceforge.jp/ 2012/1/20時点での最新、3.7を利用する。 また、UltimateやJavaを落としてしまうと、不要なプラグインのロードに時間がかかったりするため、私はPlatform(JREなし)を落とした。
この辺は好みで。
また、JDK、Android SDKもインストールしておく。
Java SE Downloads
http://www.oracle.com/technetwork/jp/java/javase/downloads/index.html
Android SDK | Android Developers
http://developer.android.com/sdk/index.html 続いてAndroid開発用に各種設定を行う必要がある。
Eclipseの設定は以下を参照。
Eclipse 設定編 - ログろいど
関連記事

はじめに

Androidに関する情報を発信していきます。
また、Androidアプリケーション技術者の合格を目標に、Androidの開発について1から勉強していきたいと思います。
まぁ、合格しても業務で使用したりすることは無いんですけどね。

これまでの技術経歴など。
C++にて業務システム構築
C#にて業務アプリ開発
Ruby/jQuery/jQuery UIにてWebアプリ開発

Java、Android SDKは触ったこと無いです。
# Javaはソースを読む程度。C#と似てるかな。

なので、ほぼ1からのスタートになります。
関連記事