2009/11/16

IPhoneとHT03A

私はIPod Touchと、HT03A(android)を所有していますが、
やはり現時点では
・3.5インチワイドスクリーンマルチタッチディスプレイ
・CPU:600Mhz(第2世代IPodTouch:532Mhz)
・メモリ:256MB(RAM)
を搭載するIPhoneに軍配が挙がります。(これは、個人的な観点ですのであしからず。)
自宅に帰ると、メール、Twitter等はIPodTouchから実際やることが多い状況。

HT03Aは、すかさずPCに接続してアプリ開発用実機。
androidの自由度はやはり魅力的であるし、楽しい端末であることには変わりなく、
「えせエンジニア」の私でも本当に楽しい端末であると思えます。

しかし、毎日触る端末として見ると(トータル的な操作感)、どうしても「もっさり感」が残るのはHT03A。
端末としては悪くないんだけどね。
・3.2インチハーフVGAディスプレイ
・CPU:528Mhz(最大時:オーバークロック)※通常:384MHz
・メモリ:ROM:512MB(Flashメモリ)/RAM:192MB(SRAM)

そんなこんなですが、来年に向けてandroid搭載のスマートフォンはかなりの数が世の中に出回るようですね。
注目はやはりSony EricssonのAndroid端末「Xperia X10」。
・4インチディスプレイ(タッチパネル対応液晶)
・CPU:1GHz
・メモリ:1GB
を搭載する、すごか端末!(ちょっとでかいけど)
非常に興味深い端末です。期待してます。

2009/11/15

BenchMarkアプリを使ってHT03Aの性能を計測(その3)

約一ヶ月遅れですが、HT03AのOSがバージョンアップ(1.6)されましたので、
ベンチマークを取り直してみました。
オーバークロックはできなくなりました(Root権限になれない)ので購入時の計測結果と
比較してみようと思います。

Graphics
  Total graphics score;97.73895
  Draw opacity bitmap;43.667377;MPixels per sec
  Draw transparent bitmap;16.113297;MPixels per sec

CPU Whetstone
  Total CPU score;118.619255
  MWIPS DP;8.553588;MWIPS(DP)
  MWIPS SP;8.944544;MWIPS(SP)
  MFLOPS DP;1.6016557;MFLOPS(DP)
  MFLOPS SP;2.1124725;MFLOPS(SP)
  VAX MIPS DP;5.8731337;VAX MIPS(DP)
  VAX MIPS SP;5.8731413;VAX MIPS(SP)

Memory
  Total memory score;102.88893
  Copy memory;93.4929;Mb/sec

Filesystem
  Total file system score;14.825422
  Creating 1000 empty files;36.182;sec
  Deleting 1000 empty files;11.574;sec
  Write 1M into file;0.8410429;M/sec
  Read 1M from file;28.985508;sM/sec;

SD card perfomance
  Creating 250 empty files;17.536;sec
  Deleting 250 empty files;14.656;sec
  Write 1M into file;14.880953;M/sec
  Read 1M from file;53.76344;sM/sec;

オーバークロック時とは、さすがに下がっていますが購入時と比べると、
微妙に下がっているようにも思える。

2009/10/14

HT03A搭載のセンサー

「今さらかよ」という声も聞こえそうですが、HT03Aの搭載センサーを調べてみました。

「eclipseからサンプルプログラムを実機(HT03A)で動かしてログを見てみるという方法。」
実は、この動画を見てから、「ジャイロスコープ」というセンサーに興味が向いてしまって。
(※動画の説明はしませんが、「だまし絵」と、ジャイロスコープセンサーで面白いことができているようです)

あ、今回はサンプルプログラムは載せていませんが、興味がある方は「逆引きAndroid入門」をどうぞ。
「android.hardware.SensorManager」クラスから、受け取られたセンサーリスト(HT03A)を見てみると、
以下の4つの値(List)が入っていました。

・1:加速度センサー
・2:地磁気センサー
・3:傾きセンサー
・7:温度センサー




”4:ジャイロセンサー”ないじゃん・・・。




今日はこの辺で終わりにします。

2009/10/10

androidアプリ 実機(HT03A)上でのテストメモ

(※Ubuntu 9.04で実施。eclipse上でのデバックを想定。インストール手順等は割愛してます。)
参考サイトはこちら

1.実機上の設定 - アプリケーション - 開発 - USBデバックを”ON”に設定する。

2.PCと実機をUSBより接続する設定を施して置きます。

3.eclipseを起動し、android projectを普通に作成する。

4.作成されたファイルから「AndroidManifest.xml」の
   「Defines the attributes specific to the application.」のdebuggableを”true”に設定する。

5.準備完了。

6.Run - Run Configlations - Android Applicationを新しく作成しAndroidタブ内のProjectに
   実行するProjectを選択。
   Targetタブ内の「Deployment Target Selection Modeを”Manual”を選択。

7.Run(実行)。

これで、実機上でアプリが起動されれば成功です。

<余談>
   TargetをAVDにしていた為、ずっと失敗。(エミュレータが起動する…当然っちゃ、当然の話)
   ターゲットビルドをAndroid1.5(Standerd Android platform 1.5)に変更したら、なんか動いたけど、
   これは間違いと気づき、結局Deployment Target Selection Mode -> ManualでOKと理解。
   こんな話に付き合ってくれた後輩に感謝。

2009/09/29

mtdblock

先日、途中で終わってしまっていた「mtdblock」について会社の同僚から情報提供がありましたので、
少し追記をしたいと思います。

mtdblockとは


細かい話は、リンク先のBLOG管理者のAEROCATS氏が情報開示をしていますが、
デバイスファイルという輩で、「mtdblock」は”ブロック・デバイス”という代物のようです。
(デバイスファイルには、ブロック・デバイスの他、キャラクタ・デバイスというものもあるようです)

ファイル情報の先頭が”b”で始まっていることで判別がつきます。
では、ちょっとlsコマンドで。

   brw------- root     root      31,   5 2009-09-28 21:35 mtdblock5
   brw------- root     root      31,   4 2009-09-28 21:35 mtdblock4
   brw------- root     root      31,   3 2009-09-28 21:35 mtdblock3
   brw------- root     root      31,   2 2009-09-28 21:35 mtdblock2
   brw------- root     root      31,   1 2009-09-28 21:35 mtdblock1
   brw------- root     root      31,   0 2009-09-28 21:35 mtdblock0

確かに”b”で始まっていますので、「mtdblock」は”ブロック・デバイス”ということになります。

ということで、先日mountしていた「mtdblock3」はブロック・デバイスということがわかりました。
では、ちょっとここで、今現在HT03Aのandroid OS内にmountされているデバイスを見てみようと思います。(一部抜粋)

         :
   tmpfs /dev tmpfs rw,mode=755 0 0
   devpts /dev/pts devpts rw,mode=600 0 0
   proc /proc proc rw 0 0
   sysfs /sys sysfs rw 0 0
   tmpfs /sqlite_stmt_journals tmpfs rw,size=4096k 0 0
   /dev/block/mtdblock3 /system yaffs2 ro 0 0
   /dev/block/mtdblock5 /data yaffs2 rw,nosuid,nodev 0 0
   /dev/block/mtdblock4 /cache yaffs2 rw,nosuid,nodev 0 0
         :

/dev/block/mtdblock3が、/systemにmountされていますね。
mtdblock3~5がそれぞれmountされていますが、その後ろに記載されている「yaffs2」が、
気になりました。

・yaffs2(Yet Another Flash File System)
   フラッシュファイルシステムだそうです。
   他のフラッシュファイルシステムに比べて、mount時のパフォーマンスが良いそうです。

あ、冒頭からの流れに戻れない…。
これもまた、勉強しなきゃ。
いつか理解できる時が来ることを自分自身でも祈ってやみません(笑)

分からないものは分からないのでメモ

頭に残しておく為のメモ書き作業です。

HT03Aに対する「root権限奪取」、「オーバークロック」などの情報で、良く出てくる、
「/system を読み書き可能で再マウント」という一文。

   mount -o rw,remount /dev/block/mtdblock3 /system

Linuxをご存知の方は周知の事実でありますが、私は初心者ですので敢えてメモです…。

「mount」の後ろはオプションで、"rw(read & write)”で、再マウントという意味。
「/dev/block/mtdblock3 /system」で”読み書き可能で再マウント”とい事になる訳ですが、
ここが微妙にわかりません。

mountコマンドの構文はこんな感じ。

   mount [ オプション ] デバイス名 マウントポイント

オプションは上記の通りですが、後はこんなイメージでいいのでしょうか。

・デバイス名:/dev/block/mtdblock3
・マウントポイント:/system

ということは、「/dev/block/mtdblock3デバイスを、/systemuに読み書き可能状態で再マウント」
という意味になるのでしょうね。きっと。
じゃ、「/dev/block/mtdblock3」ってなんだろう。
lsコマンドで見るとこんな感じです。

   brw------- root     root      31,   3 2009-09-28 21:35 mtdblock3

mtdblockは、0~5までありました。

「mtdblock」って何?

というように、興味は尽きない訳で。
何も解決していない感じですが、近道したいけど、遠回りしながら、少しずつ進んでいくのも良いかなと思う今日この頃です。

2009/09/27

BenchMarkアプリを使ってHT03Aの性能を計測(その2)

時代の流れに沿って?HT03Aのオーバークロック(384MHz→528MHz)を実施しました。
(オーバークロック方法は巷に溢れている「setupsu」であったり、「OverclockWidget」であったり)
※Root権限取得
  setupsuは、「SU」コマンドでRootになれるようにしてくれます。
  これって、元に戻すには/system/xbin以下に設定した"SU"コマンドとかを削除すればいいのかな?
  adb shell su であっさりRootに慣れるのはちょっと怖いかもです。

さてオーバークロックしたからには、実施前、実施後で性能比較をしたいものです。
以下が、オーバークロック後のBenchMarkです。

Graphics
   Total graphics score;118.11405
   Draw opacity bitmap;59.362316;MPixels per sec
   Draw transparent bitmap;12.880503;MPixels per sec

CPU Whetstone
   Total CPU score;172.719
   MWIPS DP;12.436265;MWIPS(DP)
   MWIPS SP;13.336889;MWIPS(SP)
   MFLOPS DP;2.1065438;MFLOPS(DP)
   MFLOPS SP;3.0651696;MFLOPS(SP)
   VAX MIPS DP;8.457877;VAX MIPS(DP)
   VAX MIPS SP;8.587478;VAX MIPS(SP)

Memory
   Total memory score;123.3606
   Copy memory;112.095055;Mb/sec

Filesystem
   Total file system score;18.5795
   Creating 1000 empty files;11.04;sec
   Deleting 1000 empty files;5.034;sec
   Write 1M into file;1.1473153;M/sec
   Read 1M from file;36.231884;sM/sec;

SD card perfomance
   Creating 250 empty files;11.764;sec
   Deleting 250 empty files;8.86;sec
   Write 1M into file;20.491804;M/sec
   Read 1M from file;54.347828;sM/sec;

良し悪しがわかりませんが、実施前よりかは全体的に性能が上がっていますね。

BenchMarkアプリを使ってHT03Aの性能を計測

Android Marketより、「BENCHMARK」という名称のアプリをDL(当然無料です)。
”Run benchmark"ボタン押下で計測開始。
結果は以下の通りです。(結果データは /sdcard/softweg/*****.csvに入ります)

※参考(My HT03A)
・SD Card:KINGMAXのmicroSDHC(class6)8Gに変更。
・Over Clock:してません。(384MHz)

Graphics

   Total graphics score;92.61556
   Draw opacity bitmap;46.334843;MPixels per sec
   Draw transparent bitmap;10.312185;MPixels per sec

CPU Whetstone

   Total CPU score;128.88004
   MWIPS DP;9.1633835;MWIPS(DP)
   MWIPS SP;9.975062;MWIPS(SP)
   MFLOPS DP;1.6303071;MFLOPS(DP)
   MFLOPS SP;2.2126603;MFLOPS(SP)
   VAX MIPS DP;6.3231297;VAX MIPS(DP)
   VAX MIPS SP;6.504967;VAX MIPS(SP)

Memory

   Total memory score;123.94414
   Copy memory;112.6253;Mb/sec

Filesystem

   Total file system score;26.299753
   Creating 1000 empty files;13.423;sec
   Deleting 1000 empty files;4.577;sec
   Write 1M into file;1.3648151;M/sec
   Read 1M from file;51.54639;sM/sec;

SD card perfomance

   Creating 250 empty files;13.564;sec
   Deleting 250 empty files;10.956;sec
   Write 1M into file;18.315018;M/sec
   Read 1M from file;61.349693;sM/sec;

良し悪しがわかりません…。

2009/09/25

今更ながらのAndroid Virtual Device(AVD)コマンドメモ

順番がいつもながら、おかしいわけですが、AVDコマンドのメモです。
開発時に各種環境に応じたエミュレータを容易する訳で、その時のエミュレータ作成方法です。

> android create avd --name デバイス名 --target バージョン --sdcard SDカード容量(K/M)

・デバイス名:任意
   この名称でエミュレータを起動します。

   > emulator @デバイス名

   こんな感じ。

・バージョン:1~4(SDK1.6が出たので4までかな)
   1:Android SDK 1.1
   2:Android SDK 1.5
   3:Android SDK 1.5(Google Map)
   4:Android SDK 1.6

・SDカード容量
   単位はK(キロ) or M(メガ)を指定します。

登録済みのエミュレータをリスト表示する場合は、

   > android list avds

登録済みのエミュレータを削除する場合は、

   > android delete avd -n デバイス名

Ubuntu 9.04でandroid携帯USB接続メモ

メモしておきます。
Android Developers の「開発ガイド」から、開発:On a Device 項目を見てみる。

以下関係本文のみ抜粋です。

Developing on a Device

  Setting up a Device for Development

    3.Setup your system to detect your device.
      ※以下作業はROOT権限を必要とします。sudoなどを使用して下さい。

      If you're developing on Ubuntu Linux, you need to add a rules file:
        1.Login as root and create this file: /etc/udev/rules.d/51-android.rules.
          (/etc/udev/rules.d/以下に"51-android.rules"という名前のファイルを作成します。)
          "51-android.rules"の中身はこんな感じで記述して下さい。
            SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"
            SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0bb4", MODE="0666"

        2.Now execute:
          作成したファイルの権限変更を行います。
          全てのユーザーに対して、既存ファイルビットモードに
            ・読み取り:r
            ・実行ファイル(検索ディレクトリ):x
          を追加します。

          chmod a+rx /etc/udev/rules.d/51-android.rules

こんな感じです。
あとはターミナルからadbコマンドなんかをやってみて、うまく反応すればOKかと思います。

これで、Ubuntu上でandoridアプリが開発できる環境がだんだん揃ってきました。

2009/09/23

HT03A microSDカード取り替え

得に今のところ必要ないかとは思いましたが、現在使用している携帯(HT03A)の
SDカードを2Gから8Gに変更しました。

購入はイオンです。安いっす。

・KINGMAX
・microSDHC(Class6)
・8GB
・1,980円

Class6のカードなので、6MB/sec(48Mbps)以上の速度が保証されます。
(定められた単位の未使用領域(=汚れ率0%のAU)に定められた記録方法で書き込みを行った場合)
とりあえず、書き込みが早くなるのはうれしい限りです。
データの移行はPC上で普通にコピペしました。
得に問題なく動いています。

で、ちょっとビックリしたのが元々購入時に刺さっていたmicroSDカード。
上記同じメーカーの2GBタイプ。
しかも普通のmicroSD。
へー。

2009/09/21

android (センサー)メモ

忘れないようにメモです。(Android Reference)

Package:android.hardware
Interface:SensorEventListener、SensorListener(SDK1.5からは廃止(推奨されていない?)っぽい)
Class:Sensor、SensorEvent、SensorManager
※InterfaceはSensorEventListenerを使うということだね。

使用可能なセンサーはSenserクラス内に定義されています。

・TYPE_ORIENTATION(方位センサー)
・TYPE_ACCELEROMETER(加速度センサー)
・TYPE_TEMPERATURE(温度センサー)
・TYPE_MAGNETIC_FIELD(磁場センサー)
・TYPE_LIGHT(光センサー)
・TYPE_PROXIMITY(近接センサー)
・TYPE_GYROSCOPE(ジャイロスコープ)
・TYPE_PRESSURE圧力(センサー)

私の最近の流行は「TYPE_GYROSCOPE(ジャイロスコープ)」です。

implements SensorEventListener
onCreateメソッド
  SensorManager経由でセンサーサービスをゲット。
    getSystemService(SENSOR_SERVICE)から、センサーサービスを取得します。
  (戻り値:SensorManagerにCast)
  ※getSystemServiceはandroid.content.Contextクラス内のメソッド。
androidアプリはActivityを継承するんですが、android.content.Context派生なんですねActivityって。
API Reference辿ると面白いけど、時間かかるね・・・。

onSensorChangedメソッドの実装
  Sensorイベントから、センタータイプを判断する。

  if(event.sensor.getType() == Sensor.TYPE_GYROSCOPE) {
        ジャイロスコープとしての処理
  }

onAccuracyChangedメソッドの実装
  とりあえず使わないので未実装。


実装イメージはこんな感じだと思われます。(試してませんが)

2009/09/16

Eclipse 3.4(Ganymede) インストールメモ

とりあえず、メモっときます。

1.Android 1.5 SDK Release3をDL。(android-sdk-linux_x86-1.5_r3.zip)
→適当な場所で解凍。(Homeでいいんじゃないかな)
※この辺が微妙にわからない・・・。

2.アプリケーション-追加と削除から"Sun Java"で検索。
→Sun Java 6 Runtime 、プラグインをインストール。

3.Eclipse 3.4(Ganymede)をDL。(Eclipse IDE for Java EE Develop(Linux)

→これも適当な場所で解凍。(Homeでいいんじゃないかな)

4.android SDKへのパスを設定。
→.bashrcファイルにexport文(android SDKを解凍したフォルダ配下のtoolsまでのパス)

5.ADT(Android Development Tools)のインストール。
→Eclipseの[Help]-[SoftwareUpdate]から「Available Software」タブから「Add Site」
https://dll-ssl.google.com/android/eclipse/
→「Developer Tools」をチェックして「Install」

6.Eclipseとandroid SDKの指定

android(ふせんRoid)

自宅のUbuntuに、苦労しつつもeclipse3.4(Ganymede)をインストールしまして、
パスなんやらも、設定しましてandroid SDKとかも突っ込みまして、とりあえず開発環境が
できあがりました。
Linuxを使い慣れていない上の、各種作業はわからない事だらけですが、ゆっくり楽しみながら
進めていく事にします。

2009/09/07

Ubuntu 8.04LTS

会社のPCにVMWareをインストールして、Ubuntuを入れてみました。

・VMWarePlayer2.5.3
・Ubuntu 8.04LTS

インストールPCは、こんな感じ。
・OS:WindowsXP SP3
・CPU:Celeron 2.6GHz
・Mem:1G



仮想環境での割り当てMemoryは512Mです。
インストール後のUpdate(sudo apt-get update)は、すぐにおわりましたが、
Update後のUpgrade(sudo apt-get upgrade)は、めちゃんこ時間かかりました。

んで。
すべて完了したら「GNOMEでエラー」とか、いろいろ言われましたが、
とりあえず再起動。


おせー。

まじ、おせー。

ま、もともと遅いマシンだったので仕方ないですが、常にCPU100%って感じで。
ということで、もうちっといいPCじゃないと厳しいかな。

2009/09/04

Adobe Flash Player

Ubuntu君。
インストールは難なく終わったが、実際つかうとなると難しい。
Windows慣れの弊害だな。
今日、同僚から仕入れたネタを試すべくそのサイトへ行くが、FlashPlayerの最新版が
ないと見れなかった為、インストールを試みる。
Windowsの様にはうまくいかんね。
とりあえずダウンロードできるファイルが複数あるっす。
RPMやら、YUMやら、他多数。
一通りダウンロードしてみるが、導入がよくわかりません。

「アプリケーションの追加と削除」というものを見つけ ”Flash”という文字列で
検索してみると、Macromedia Flash プラグインというカテゴリを見つけたので、
チェック ボックスを入れて、「変更の適用」。
ここまでくるのに、実は1時間くらいかかっているわけで…。

まだまだわからないことばかりで。
困った、困った。

2009/09/02

Ubuntu

SUSEはよくよく考えるとEnterpise版でした。(試用期間有)
ということで、OSC2009名古屋で講義を聴いた、Ubuntuをインストールすることにしました。
さらばVista。
もう会うことはないと思うが。

2009/08/31

2009/08/26

ls -l

最近覚えたroot権限で、ls -l 実行
















あ、sbinだ。
こんな感じでした。

2009/08/21

androidメモ(Root権限奪取 再チャレンジ)

・Root権限奪取(再チャレンジです)


1."Recovery Flasher"をインストール。
2."Revocery Flasher"を起動。(起動するだけでなにもしない)
3.debugをオンにしてPCにUSBで接続。(SDカードはPC側にマウントしません。)
4.PCから adb shell
5."/data/data/org.zenthought.flashrec/cache/asroot /sdcard/droidsploidXXXXXX /system/bin/sh" を実行。
6."SUCCESS: Got root!"と表示されてコンソールが $ → #



前と違うのは、2番。
この辺が、良く分かっていないのが、初心者たる所以。

以上。




Dalvik Debug Monitor

android SDKを入れると、DDMS(
Dalvik Debug Monitor Service)というGUIツールが使えます。
HT03AをUSB接続して、Dalvik Debug Monitorを起動してみた。
ログが意外と興味を惹いた。


Garbage Collectionすごいっすね。
すごい間隔で走ってます。
何でですかね。

あと、Gmal同期とかも動いてますね。
へ~

<Dalvik>
Dalvik 仮想マシンはレジスタベースの仮想マシン。Androidプラットフォームのために設計・開発されたもの。
Dalvik は低メモリ環境に対して最適化されており、オペレーティングシステムによるプロセス間の
分離、メモリ管理、スレッドのサポートを用いて複数の VM インスタンスが同時に動作できるよう設計されている。
DalvikはJava仮想マシンとされることもあるが、動作するバイトコードがJavaバイトコードではないため、
厳密にはこれは正確ではない。
実際には、Android SDKに含まれる 「dx」 と呼ばれるツールが正規のJavaコンパイラでコンパイルされた
Java クラスファイルを異なるファイル形式('.dex'形式)に変換する。


Google Analytics

こうゆーのあんまり知りませんでした。
今更ながら、同僚から教授頂くことになりました。
ありがたや、ありがたや。

しかし、Googleの各種サービスはすごいね。無料だしね。

2009/08/20

androidメモ(SDカード)

DOS窓から(C:\android\android-sdk-1.5_r3\tools)
adb push コピー元ファイル(フルパス) /sdcard

→failed to copy ’コピー元ファイル(フルパス) ’ to ’ /sdcard/コピー元ファイル’ : Permission denied

涙。

とりあえず、明日。

androidメモ(PC接続)

ドライバは、ここにあるす。

C:インストールフォルダ\usb_driver
・amd64
・x86

お好きなのを選んでちょ。

PCとUSBストレージを共有すると、SDカード(microSD)の中身が見れますね。
「simeji」フォルダ発見。
中身にsqliteらしきファイルがあった。
なるほど。

androidメモ(Root権限奪取)

・Root権限奪取

1."Recovery Flasher"をインストール。
2."Revocery Flasher"を起動。(起動するだけでなにもしない)
3.debugをオンにしてPCにUSBで接続。
4.PCから adb shell
5."/data/data/org.zenthought.flashrec/cache/asroot /sdcard/droidsploidXXXXXX /system/bin/sh" を実行。
6."SUCCESS: Got root!"と表示されてコンソールが $ → #

ネタ元:

とりあえずは試してみないとね。

android(Hello android)

Docomo HT03-Aを購入した。
長年使ってきたiモードも卒業。

これからよろしくandroid。