2012年3月31日土曜日

[Android] Android-SDKでやってはいけないこと

Do not use a reserved word in the resource name

先日、new.pngという画像ファイルをAndroidプロジェクトに追加したらプロジェクトが壊れてしまいました。
原因は「new」という単語がJavaの予約語だったためです。

予約語 (Java) - Wikipedia
http://ja.wikipedia.org/wiki/%E4%BA%88%E7%B4%84%E8%AA%9E_%28Java%29

プロジェクトが壊れてしまった場合の直し方です。
  1. ファイル名やIDを予約語以外の単語に変更する
  2. (new.png → new_image.png)
  3. genフォルダー - (パッケージ名) - R.javaファイルを削除してプロジェクトをリフレッシュする
  4. (Eclipseのパッケージ・エクスプローラーで右クリックしてRefreshをクリック)
    ※削除する前に念のためR.javaをバックアップしてください。
ファイル名を直してもR.javaが壊れたままなのでご注意ください。

画像ファイルに限らずオーディオファイルやレイアウトXMLのウィジットIDなどに予約語を使った場合もプロジェクトが壊れます。
リソース名を変数名として扱うAndroid-SDKならではの特徴です。

以上、参考になれば幸いです。

2012年3月24日土曜日

VOCALOID3 Editor

VOCALOID3 Editorを買いました。
VOCALOID3のライブラリーは無いのでライブラリーインポートツールを使ってVOCALOID2のライブラリーをインポートしてVOCALOID2とVOCALOID3を比較してみました。

VOCALOID3のメリット
  1. VOCALOID3のライブラリー(メグッポイドV3、結月ゆかり、IA、Bruno、SeeUなど)が使える
  2. ミュージカルエディター(ピアノロール)とは別にトラックエディターが追加された
  3. オーディオファイルを伴奏に使える
  4. VSTエフェクトが使える、ただし1チャンネル2スロット
  5. ミキサーに「入力ゲイントリム」が追加されて音量調整が簡単になった
  6. マスタートラックへのリターンチャンネルが追加された(CubaseのFXチャンネルのような機能)
  7. Jobプラグインにより拡張性が上がった
    ※ランダマイズ機能はコマンドからJobプラグインに変更されました
この中で一番ありがたいのはトラックエディターの追加です。
VOCALOID2はノートを動かしてもコントロールパラメーター(DYNやGENなど)は元の位置のままでした。
MtkはそれがイヤでVOCALOID2を使っていた頃はパートやフレーズごとにファイルを分けていました。
VOCALOID3 Editorのトラックエディターはパートごとにノートとコントロールパラメーターをまとめて移動できます
ピアノロールを使えば今まで通りノートだけの移動もできます。


VOCALOID3でできないこと
  1. Rewire(スレーブ)が無くなってDAWと連携できなくなった
  2. VSTプラグインとしての機能(VOCALOID2_Realtime.dll)が無くなってMIDIキーボードで音を出すことができなくなった
  3. VSTエフェクトのパラ-メーターやリターンチャンネルへのSend量をオートメーションで操作できない

VOCALOID2と変わらない点は次の通りです。
  1. ノートの入力方法はSMF(midファイル)をインポートするか、PCのマウスとキーボードで入力する
  2. ASIOドライバー対応
  3. 初代VOCALOID(MEIKO、KAITO)のライブラリーはインポートできない
  4. 32bitのみ
VOCALOID2のライブラリーをVOCALOID3で歌わせてみましたが、鏡音レンの鼻声や、巡音ルカの一部の発音が前のめりな癖などはまったく変化ありませんでした。
VOCALOID3 EditorのライブラリーインポートツールはVOCALOID2のライブラリーをVOCALOID3 Editorで操作できるだけのもので、表現は変わりません。
歌手の表現の変化を求めるなら、VOCALOID3 Editorではなく初音ミクAppendや鏡音リンレンAppendを買い足した方がいいと思います。

DAWとの連携機能が完全に削除された一方、スタンドアローンでの使い勝手が向上しました。
VOCALOID3のライブラリーを買う予定がなければ不要だけど、あったら便利といった具合です。

以上、参考になれば幸いです。

2012年3月22日木曜日

[Application] Calcu100 v1.00公開

Androidアプリケーション Calcu100 を公開しました。
Playストアから無料でダウンロードできます。

https://play.google.com/store/apps/details?id=jp.fujiu.calcu100


Calcu100 は計算の速解きゲームです。
足し算・引き算の問題を100問・50問・25問から選択できます。
全問正解と解答時間の新記録を目指してがんばりましょう。
声の出演:巡音ルカ(VOCALOID)
Android1.6以上、QVGA以上の解像度必須。
全パターンを制限時間内に全問正解すると難易度の高いハードモードが解禁されます。

【遊び方】
1. 最初の画面で足し算・引き算と問題数を選びます。
2. Startボタンでゲームが開始します。
3. 解答方法は4択です。
4. 制限時間以内に全問解答すると結果発表です。
5. 全問正解と解答時間の新記録を目指してがんばりましょう。
6. 音声は左上のチェックボックスでミュートできます。
7. [記録ボタン]で全問正解のベストタイムの記録が見られます。
8. [ヘルプボタン]で説明が見られます。

Calcu100 is the quick Calculation game. Let's strengthen your count ability.
Casting voice: Megurine Luka (VOCALOID)
If you answer all question matchings correctly , you will be able to play Hard mode.

[How to play]
1. Selectthe symbol of formula and quantitity,
2. Tap the start buttun and the game will start.
3. Choose the answer from the four candidates.
4. Answer all questions within time limit.
5. Try your best to answer correctly.
6. You can mute sounds with the checkbox.
7. [Record Button] will show best records when you answered all correctly.
8. [Help Button] will show how to play.

2012年3月17日土曜日

[Android] エコ技・技ありモードについて

先日、Sharp Androidアプリ開発テクニカルセッションに参加させていただきました。
シャープ製2012年秋冬モデルの端末はエコ技・技ありモードというバッテリーの消耗を軽減する機能が追加されました。
端末の画面が消灯中なら「技ありモード」はアプリケーションの特定の動作を一時的に止めます。sendBroadCastを無効にします)
アプリケーションを一時停止させることで、バッテリーが最大2.5倍長持ちするとのことです。

その副作用として正常なアプリケーションが動かなくなる可能性があります。
バックグラウンドでBroadCastを送信・受信するアプリケーションは確実に影響を受けます
2012年3月時点で「技ありモード」を搭載する端末は次の通りです。
docomo SH-01D
SH-02D
SH-04D
SH-06D
Softbank 101SH
102SH
103SH
104SH
DM011SH
DM012SH
au IS13SH
IS14SH
INFOBAR C10
EMOBILE A01SH
WiMAXモデル EB-A71GJ

画面消灯中の動作が必要なアプリケーションは「省エネ待受対象外リスト」に設定することで動作するようになるとのことです。
セキュリティ保護のためのアプリケーションは省エネ待受対象外リストに設定するべきだと思います。

最近、QuickPicというアプリケーションが日本のPlayストア(旧Androidマーケット)での公開を停止するということがありました。
理由は日本だけ「ファイルが消えた」というクレームがが多いとの理由でした。
日本で販売されているAndroid端末はそれぞれに個性的な独自仕様が盛り込まれているため、クレームの原因は独自仕様によるものではないかと思います。

「技ありモード」はユーザーの不満の一つであるバッテリーの持ち時間を改善するすばらしい機能です。
しかし、Ansroid-SDKの仕様を逸脱した機能でもあります。
将来「技ありモード」がどう影響するか不明ですが、QuickPicのように日本のユーザーによるクレームが炎上する可能性は十分にあり得ます。

以上、参考になれば幸いです。

2012年3月10日土曜日

[Android] Toastに画像やボタンを表示するには

How to draw images or buttons on Toast

ToastにはViewを表示する機能があります。
Android-SDKに添付されているアイコンの画像(ic_launcher.png)を表示するサンプルを作ってみました。

Activity(Main.java)

Toastで表示した文字や画像は一定時間後に自動で消えます。
自分で「一定時間後に消す」という処理を書くと複雑なプログラムになりがちです。
Toastを使えば表示した文字や画像が一定時間後に自動で消えます。アクセス許可が無くても使えるのでとても重宝します。

ちなみにViewなら何でも表示できるようです。
たとえばボタンの表示も可能です。

ただしToastでボタンを表示してあまり意味がありません。すぐに消えてしまうのでクリックする暇がありません。

関連ブログ
[Android] Toastをcancelするには
[Android] SurfaceviewにToastを表示するには

以上、参考になれば幸いです。

2012年3月3日土曜日

[Android] セキュリティ対策

how to maintain Android security

最近、政府のサーバーがサイバー攻撃を受けたと何度も報道されてます。
PCがコンピューターウィルスに感染しパスワードが流出したケースもあるようです。

Androidスマートフォンの利用者も他人事ではありません。
Androidがサイバー攻撃されると次のようなことが考えられます。
  • 端末に保存されているファイル(電話帳、メール、カメラで撮影した動画など)が流出したり、消されたりする
  • 端末が乗っ取られてサイバー攻撃に利用される
こんなことは簡単に起こりませんが、絶対無いとは言い切れないので用心が必要です。
Android Marketは「Bouncer」によりマルウェアを排除していますし、ウィルス対策アプリをインストールする方法もあります。
しかしそれだけでは万能とはいえません。
自分でできるサイバー攻撃対策をいくつか考えてみました。
  • Android Market以外で配布されているアプリケーションはインストールしない
  • アプリケーションのインストール前に「アクセス許可」を見て安全性を判断する
  • 定期的にバックアップする

「アクセス許可」とは何か
Androidアプリケーションは必ずマニフェストを持っていて、そこに特定の動作をするために必要なアクセス許可が書かれています。
Android Marketにはすべてのアプリケーションごとにアクセス許可が掲載されていて、ユーザーはインストールする前に確認することができます。

どんな「アクセス許可」が危険なのか
結論を言うとアクセス許可だけで危険性を判断できません
アクセス許可がなければアプリケーションでできることは限られてしまいます。
ただし、アクセス許可の組み合わせによってはユーザーの意図しない動作ができてしまいます。

【完全なインターネット アクセス】
ホームページの表示、動画のダウンロード、掲示板への書き込みなどに必要なアクセス許可です。

【端末のステータスと ID の読み取り】
このアクセス許可は「端末の電話番号やシリアル番号、通話中かどうか、通話相手の電話番号」を抜き取ることができます。
「完全なインターネット アクセス」と同時に許可すると端末や通話相手の電話番号をインターネットのサーバーに送信することができてしまいます。

【連絡先データの読み取り】
アドレス帳などの読み取りに必要なアクセス許可です。
「完全なインターネット アクセス」と同時に許可すると連作先データをインターネットのサーバーに送信することができてしまいます。

【USB ストレージのコンテンツの変更/削除、SD カードのコンテンツの変更/削除】
SDカードに保存した音楽や動画のファイルの読み書きや削除したり、隠したりできます。
「完全なインターネット アクセス」と同時に許可するとファイルをインターネットに送信することができてしまいます。

この画像はAndroid Marketで公開されている無料ゲームのアクセス許可です。
Mtkはこのゲームが好きなのですが、ゲームのアクセス許可としてはあまりにも過剰だと思いました。
たとえば「ゲームのスコアランキングをインターネットで競える」という機能があるならIDの読取りとインターネットアクセスは必要です。
しかしそのような説明はありません。
このアプリが悪い見本というわけではありません。ユーザーレビューでは高く評価されています。
自分の端末をどう使うかは自己責任です。よく考えた結果、ダウンロードを断念しました。

アクセス許可が少ないアプリケーションが他のアクセス許可を持つアプリケーションと連係してサイバー攻撃することもあり得ます。

以上、参考になれば幸いです。