アプリの画面向きの固定

Android アプリを作成し、実行するときに
端末の画面を横にしたり、縦にしたりすると、画面が回転します
しかし、この回転が原因で
描画内容が消えることがあります
そんなときには、画面固定をおこなうと便利です
この設定は AndroidManifest.xml で設定できます
AndroidManifest.xml の中にある
Application タグで
固定したい Activity を選択し
Config changes の select ボタンを押し
Screenshot-14.png
keyboardHidden と orientation にチェックをいれます
Screenshot-15.png
これで、描画内容は保持されます
さらに、アプリの画面を固定します
Screen orientation で固定する向きを指定します
横向きなら landscape
縦向きなら portrait
今回は、縦向き固定で portrait にしました
Screenshot-Ubuntu Android - VMware Player-1
あとは保存して実行します
画面の変更するには
Android エミュレータでは
Ctrl + F12 で向きを変えられます
以下は、実行結果です
Screenshot-Ubuntu Android - VMware Player-4
Screenshot-Ubuntu Android - VMware Player-3

アプリ開発に参考になりそうな情報源を求めて

最近は、書籍で情報収集することが増えました
今回は、Android アプリ開発関連の本ではありません
iPhone アプリの開発に関しての情報が載った本です

この中にあった無料動画サイトを利用すること
そして
スタンフォード大学の授業が
iTunes U で無償で公開されていること
また、過去の講義も字幕つきで見れるらしいということが
参考になりました
また、twitter や Facebook 、はてなブックマークなども
活用するとよいとのことです
これに書いてあることは
iPhone アプリ開発者向けですが
Android アプリ開発に関しても、
この本に書いてあることを応用すれば、
かなり効率的な情報収集ができるのではないのでしょうか

Android アプリでバイブ機能

android アプリの開発勉強にてバイブを使えるそうなので
メモです
アプリでバイブ機能を使用するには、AndroidManifest.xml
の許可タブで
User persmission を追加し
Name に android.permission.VIBRATE を指定する
Screenshot-Ubuntu Android - VMware Player-2
さらに、
import android.os.Viblator;

インポートしておく
ただし、エミュレータでは確認できないので、
実機に行う必要性があります
バイブ機能を使うという、参考サイトを探してみました
バイブを動かしてドキドキするAndroidアプリをつくる
にサンプルが載っていました
また、この記事により
[Ctrl]+[Shift]+[o]で必要なimport文が追加される
というものも参考になりました
もうひとう、気になったことがあり、調べてみたのですが
よくソースコードが載っているサイトがあります
この部分をどう書いているのかが知りたかったので
firefox で
表示 > ページのソース
で見た結果
pre タグ というものがあり、これが関係しているようです
HTMLタグリファレンス
にそのあたりの解説が載っていました

自作アプリの削除

自作アプリをインストールできたので、
次に、アンインストールの方法を載せてみました
今回は自作アプリ ブラウザからのインストール実験
の方法でインストールしたアプリを削除します
今回の実験環境は、VirtualBox へインストールした
android 2.2 です
まず、削除の方法ですが
すべてのアプリを表示して、設定アイコンを押します
Screenshot-android-x86-22-generic [実行中] - Oracle VM VirtualBox
次に
アプリケーションを開き
Screenshot-android-x86-22-generic [実行中] - Oracle VM VirtualBox-1
アプリケーションの管理を選択
Screenshot-android-x86-22-generic [実行中] - Oracle VM VirtualBox-2
ダウンロード済みのアプリの中から削除したいアプリをクリック
Screenshot-android-x86-22-generic [実行中] - Oracle VM VirtualBox-3
アンインストールをクリックすれば完了です
Screenshot-android-x86-22-generic [実行中] - Oracle VM VirtualBox-4
また、他の方法もあります
開発環境に使っているマシンから
adb コマンドを使い、インストール、アンインストールを
することもできます
adb shell pm uninstall -k パッケージ名
でアンインストール
adb install apkファイル名
でインストールになります
adb コマンドで接続するには
最新のAndroid SDKと adb その2
を参考にしてください
Snowpool投稿日: カテゴリー android自作アプリの削除にコメント

microSD のマウント状態

microSD のマウント状態は
Environment_getExternalStorageState() の
実行結果でわかる
実行結果の String値が
Environment_MEDIA_MOUNTED 定数と等しいなら
読み書き可能
これを利用してマウント状態を確認し
マウントされていないなら、Activity を終了する処理をメソッドに記述すればOK
Android 2.2 以降は、アプリを microSD カードに移せるので
開発するときに役立つかも

Android関連の書籍

これまでにいくつか勉強のために
Android の本を買いましたので、紹介してみます
まず、わかりやすさからなら

がおすすめです
http://www.shoeisha.com/book/hp/10days/down/index.html#android
から必要なファイル、そして
この本で作成するアプリがダウンロードできます
最近の書籍は、昔とは違い、サンプルやソースコードが
ダウンロードできるため、うまくいかないときには
完成版のコードと比べて、修正したり、
実際に先にアプリを動かすことができるので、
理解がしやすくなっていると思います
この本で参考になったのが、Eclipse を使って電子証明書を
つくったり、Android 開発者の登録のしかたやバージョンアップの
方法です
次に、

こちらは、少し難しくなります
ただ、コードの解説が載っていますので
アプリ作成の勉強をするにあたり、参考になると思います
ただし、間違っているところがありますので、
http://www.sbcr.jp/support/9833.html
に正誤表が載っていますので
こちらを参考にする必要があります

IS04 の予備バッテリー購入

3月に機種変してから、IS04 を使っています
来月、ようやく android 2.2 にできるようになるようです
また、近々、アップデートで
Eメールの削除機能が使えるようになるようです
ただ、私の場合、省エネのような使い方はしないため
ほぼ10時間程度で電池がなくなります
このため、どこかにでかけるときのために
予備のバッテリーを購入しました
今回、購入したのは、充電機つきのものです

充電には4~5時間はかかりますが
出先で充電することや、電池の残量を気にするよりは
効率的です
あらかじめ、充電しておいたものと交換すれば
充電完了の状態で使えますので
電池切れの心配はなくなります
とくに、しらない場所にいったときに
ナビが使えなくなったり、乗り換え案内ができないと
とても不便です
android 携帯そのものが電池がもたないので
できれば2つほど購入しておいたほうが
対処できます

Android 開発メモ

Eclipse を使って開発するときに、ディレクトリごとの
解説になりそうなものをまとめてみました
ブログなどでまとめておくと
自分の知識の復習やまとめに役立ちます
Screenshot-12.png
src ディレクトリには ソースコードが格納される
res ディレクトリには アプリに関連する各種ソースが格納される
drawable-*dpi 関連には
アプリのアイコン、アプリで使用する画像を入れる
layout ディレクトリには
アプリ画面のレイアウトを記述したXML コードが格納される
values ディレクトリには
文字列、数値などのリソースが格納される
ちなみに、drawable-*dpi は
画面の大きさごとに応じて画像を表示するためにわけてある
大きめの画像を使うなら
hdpi
中ぐらいなら
mdpi
小さいなら
ldpi
h=high m=middle l=low
みたいな意味だとおもいます
プロジェクトを作ると、root に AndroidManifest.xml
が作成されます
ここには、アプリの基本情報が記述されています
また、権限を変更するときにも、ここの設定を変更します

自作アプリ ブラウザからのインストール実験

署名付きAPKファイルの作成
を公開するまえに、まずは自分の環境でインストールなどに
問題がないかを調べます
まず、手持ちの Webサーバにアップロードします
とはいっても、レンタルサーバーなどはつかいません
XAMPP を使えば、簡単に簡易Webサーバを準備できます
もしくは、ubuntu や fedora ,CentOS なら
apache をインストールすることでも対応可能です
今回は、ubuntu でAPK ファイルを
作成したので
sudo apt-get install httpd
でWeb サーバー機能をいれます
このままだと、権限の問題で読み書きに支障がでるので
sudo chown -R snowpool www/
で所有者をユーザへ変更します
次に、android アプリのインストールファイルを
ダウンロードできるページへ移動します
cp /home/snowpool/デスクトップ/Test2.apk .
続いて、HTMLファイルを編集し、ダウンロードできるようにします
vi /var/www/index.html
内容は
<html><body><h1>It works!

<p>This is the default web page for this server.

<p>The web server software is running but no content has been added, yet.

アプリ配布テスト<br>
<a href=”Test2.apk”>アプリ配布実験</a>
</body>
とします
これで、Android エミュレータを起動し
エミュレータのブラウザで
http://サーバーのIPアドレス
で接続して、
ファイルをダウンロードします
(残念ながら、日本語部分が文字化けしました)
Screenshot-9.png
Screenshot-10.png
ダウンロードが無事に成功したら
インストールします
Screenshot-11.png
このときに
このアプリが行える権限などが
AndroidManifest.xml にしたがって表示されます
エミュレータ以外にも
VirtualBox で起動した Android OS も同様の方法でインストールの
実験が可能です
このVirtualBox の環境作成には
Android-X86-2.2をVirtualBoxで動かした。
を参考にさせていただきました

署名付きAPKファイルの作成

Android Market にアプリを登録するには
デジタル署名されたアプリケーションファイル
通称APKファイルを作成する必要があります
以下が Eclipse での APK ファイル作成になります
作成したいプロジェクトを右クリックし
Android Tools > Export Signed Application Package
すると、プロジェクト名を聞かれるので
Browse ボタンから探す
もしくは プロジェクト名を入力します
今回は、test プロジェクトを入力します
次に、電子証明書を作成します
まだ作成していないので、
Create new keystore
を選択し、
Location の項目へファイル名と置くディレクトリを
入力します
ちなみに、ファイルの拡張子は
.keystore になります
Screenshot-6.png
続いて、電子証明書の作成画面です
Screenshot-7.png
Alias
ファイルの別名
Password
パスワード
Confirm
確認のため、もう一回パスワード入力
Validity(years)
電子証明書の有効期限
First and Last Name
開発者の名前
Organization Unit
会社の部署
Organization
会社名
City or Locality
都市または地域名
State or Province
州名または地方名
Contry Code
国コード(日本なら jp)
これらを記入します
これらを入力して、次は署名付きAPKファイルの保存先を
指定します
Screenshot-8.png
この画面で Browse ボタンを押すと
保存先を聞かれるので、任意の場所に保存します
今回は、デスクトップに置きました
最後に Finish ボタンを押して、作成完了です
今回の参考サイトとして
eclipse上で署名されたandroidアプリ(.apk)を作成する
apkファイルに署名する簡単な方法
Androidアプリケーションを公開するために:署名と配置の方法
を参考にさせていただきました
今回は、Eclipse で行いましたが
不具合がでたときの対策としてコマンドから
証明書を作成する、ということに挑戦しようと思います
ubuntu で行っているため
Android アプリに署名をする
を参考に、端末から作成してみます