Android 5.0 Lollipop入れてみました。

持っている機種はNexus 5

気がついたらOSアップデートのお知らせが来ていたので

早速入れてしまいました。

DSC_2077

DSC_2078

 

DSC_2079

今日はここまで。

インストール完了後、少しいじってみた感じでは、なんか反応が良い気はします。

あと、クイック設定の所にライトって付いたのが地味に便利かもしれない。

あとは、自動回転の制御がここから出来るようになったのもありがたい。

キャリアから出ているAndroidには、自動回転の設定がここに入っているのが多いと思うけど

Nexus 5(というか、Android4.4の標準の状態)は入ってなかった。

互換性の話

ファイナルファンタジーレコードキーパーを入れていたのですが

武器の強化のところで強化直後操作を受け付けなくなるという不具合にあたりました。

これはもうバージョンアップを待つしか無いです。

新しい物に飛びつくと、こんな感じで未対応なのがあったりするのでつらいのだけど

新しいのを試したいという気持ちの方が強い今日この頃でした。

 

F-05Dのソフトウェアアップデートで失敗する方のために

先日、2014年4月8日にARROWS X LTE F-05Dのソフトウェアアップデートが公開されました。

このアップデートで、ビルド番号が

最新ビルド番号:V13R42C

に変わるようです。

これまで、V13R40Aでしたが、Xperia Zのテザリングで、F-05Dからだと繋がらない、という症状が出ており、今回のアップデートがどんぴしゃか!と思ったのですが

想像通り、富士通ということで、アップデートが出来ないという症状に悩まされておりました。

更新ファイルに問題があるため処理を中止します

という表示が出て更新が出来ないという症状が。

同様な方が少なからずいるかと思います。

これについて、特に富士通からもDoCoMoからも何も改善が出ていないですが

一つ、解決に繋がりそうな方法がありましたので、書いてみます。

http://spf.fmworld.net/fujitsu/c/update/nttdocomo/f-05d/update1/top/index.html#heading02

このページは、以前、2.3から4.0にあげるために使用したアップグレード方法のページです。

このページの手順通り、再度アップグレードをかけます。

その後、再度V13R42Cへのアップデートを実行してみましょう。

おそらく、問題なく更新されたのではないでしょうか?

ADTでAndroidのエミュレータを高速化する(WIndows & Intel)

ADTでデバッグするときなどにAndroidのエミュレータを起動すると思いますが

もしかしたら、エミュレータが重すぎて実機を繋いでデバッグしてしまうかもしれません。

でも、エミュレータでやりたい場合もあったりするので

出来ればエミュレータが高速に動いてほしい。。

これがWindowsでIntelのCPUだと、高速化出来たりします。

Intelのページに

http://software.intel.com/en-us/android

Hardware Accelerated Execution Manager

というものが置いてあります。TOOLS % DOWNLOADの所ですね。

これをインストールします。

haxm1

これがインストール出来る環境であれば、Androidエミュレータが高速化されます。

インストール出来ない場合は、あきらめるか新しいPCを購入しましょう。

で、BIOS設定でもインストール出来ない場合があるので

Virtualization Technologyという項目がONになっていることを確認してください。

インストール出来たら、次はADT側ですが

Android SDK Managerを起動します。

デバッグで使いたいバージョンを選択して、

Intel x86 Atom System Imageというのをインストールします。

Android_SDK_Manager1

このイメージがない場合、そのバージョンでのデバッグは高速化されません。

続いてAVDで、デバイスを作成(編集)します。

AVD01

Targetには、先ほどIntel x86 Atom System Imageをインストールしたバージョンのものを設定します。

CPU/ABIに、Intel Atom(x86)を指定します。

Emulation OptionsでUse Host GPUを選択します。

これで、ADTの設定は完了です。

あとはエミュレータを起動すれば、超高速になっていると思います。

 

ARROWS X LTE(F-05D)が電池浪費する理由が分かった!

ARROWS X LTE(F-05D)を使っているのですが

買った当初から電池の消費が激しかった。

contents headlineが悪いとか、そもそもXiは電池を消費するとか

色々ありますが

先日Android4.0へのアップグレードがあり、そのアップグレードのおかげか

どのアプリがどの程度バッテリーを消費しているのかを見える化されました。

設定の中の「電池」という項目ですね。

以前はAndroidシステム?に統合されて表示されてたような気がします。

なので、細かく、どのアプリ(サービス)が浪費しているのか一目では分からなかった。

アップグレードしてからこの電池の項目で確認すると、「電話帳サービス」というのが

恐ろしく浪費していることが分かりました!

これはDoCoMoの作ったクソアプリですね。

無駄な処理、無駄な通信をずっとやってる訳です。

で、Android4.0にアップグレードしたことで、このクソアプリを無効化出来るという嬉しい話があります。

設定のアプリケーションから、すべてというタブを選び、出てきた一覧から「電話帳サービス」を選びます。

ここで、「無効にする」というボタンがあるので、押しちゃいます。

ついでに、今起動しているサービスを停止しておきます。

これで、電話帳サービスは起動しなくなりました。

DoCoMo標準の電話帳を、ただ電話帳として使うだけなら、ほとんど影響が無いと思われます。

電話帳を起動する時に、電話帳サービス.apkを起動してください。みたいなメッセージは一瞬表示されますが

まぁ問題ないでしょう。

ARROWS X LTEのバッテリーを持たせるために、手っ取り早く出来ること

ARROWS X LTEを買って1ヶ月、やはり電池の持ちが気になるので

いらない物をウィジェットから外したりしてみる。

まずは、パーソナルエリア

ホーム画面のオプションから、パーソナルエリアを非表示に設定

ARROWS X LTEに関する記事を見ていると、Contents headlineというのがやばいらしいので

とりあえず、ウィジェットとして置いてないことを確認し(置いてあったら削除)
アプリケーション管理からContents Headlineを探しだしてデータクリア

ARROWS X LTEにはホームアプリが3つ入っている
普段は2つは起動していないが、なんとなく、そこに入っているウィジェットが悪さをしそうな気がするので
ホームアプリを順に起動していき、ウィジェットをすべて削除

歩数計は

健康のため、歩数を確認したいのでOFFにはしない。

縦横自動も、良く横表示にしたりするので、OFFにはしない。

あとは、先日、ホームアプリがバージョンアップしたらしく、それを入れたら

ホームのモッサリ感がなくなった。

横スライドもスッと行って直後にアイコンタップして反応するし

改善されてます。

あとは、バッテリー。。。

これも少しは改善されているんでしょうか、若干持ちが良くなった気がしますが、真相は分かりません。

 

[Android]DNSを設定する2

前回の[Android]DNSを設定するでは、Androidエミュレータを起動した後に設定する内容だったのですが、

今回は、エミュレータ起動時のパラメータで指定する方法を紹介します。
[shell]emulator -avd [emu名前] -dns-server 192.168.1.1[/shell]

[Android]エミュレータのhostsファイルを書き換える

エミュレータのhostsファイルを書き換えます。

まずは、エミュレータを起動します。
[shell]emulator -no-snapshot-load -avd ARROWS-X-LTE -partition-size 256[/shell]
起動したら、リマウント
[shell]adb remount[/shell]
続いて、/systemに書き込み権限を与えます。
[shell]adb shell mount[/shell]
mountコマンドを実行すると、マウントポイントの一覧が表示されます。
[shell]rootfs / rootfs ro 0 0
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
none /acct cgroup rw,cpuacct 0 0
tmpfs /mnt/asec tmpfs rw,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,cpu 0 0
/dev/block/mtdblock0 /system yaffs2 rw 0 0
/dev/block/mtdblock1 /data yaffs2 rw,nosuid,nodev 0 0
/dev/block/mtdblock2 /cache yaffs2 rw,nosuid,nodev 0 0
/dev/block/vold/179:0 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/block/vold/179:0 /mnt/secure/asec vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
tmpfs /mnt/sdcard/.android_secure tmpfs ro,size=0k,mode=000 0 0[/shell]
マウントポイントの一覧から、/systemを見つけます。

そうしたら、/systemを書き込み権限付きでマウントし直す。
[shell]adb shell mount -o rw,remount /dev/block/mtdblock0 /system[/shell]
次に、hostsファイルの書き込み権限を変更します。
[shell]adb shell chmod 666 /system/etc/hosts[/shell]
hostsファイルを取得します。
[shell]adb pull /system/etc/hosts[/shell]
hostsファイルを編集

hostsファイルをアップします。
[shell]adb push hosts /system/etc[/shell]
 

[Android]ARROWS X LTEをadbで接続する

先日、携帯をARROWS X LTE(F-05D)に買い換えたので、その携帯でAndroid開発をすべく、adb接続させた時のログ

まず、買ってきた当日、データ移行のために何も設定をいじらずにPCに繋いでみた。

すると、何もエラーもなく繋がった。

MicroSDをマウントするときは、
ARROWSの方で通知エリアにUSB接続という項目が出るので、ここを押してマウントする。

が、今回はadb接続なので、ARROWSの方で、USBデバッグをONに設定する。

手順は、まず、

  • ドライバをダウンロード
  • ドライバは、http://developer.android.com/ の中のSDKページで、「OEM USB Drivers」をクリック
  • Fujitsu のところのURLをクリック
  • F-05Dのドライバをダウンロード
  • 適当な場所にドライバを展開しておく
  • ARROWSをUSBから外す
  • メニューの「本体設定」-「アプリケーション」-「開発」-「USBデバッグ」をONにする
  • USB接続する
  • PCにドライバのインストールをするメッセージと、それに続いて(おそらく)ドライバが見つからないというメッセージが出る
  • デバイスマネージャからARROWSのデバイスを探し、ドライバの更新を行う
  • ドライバは、先ほどダウンロードした物を選択
  • adb_usb.iniの編集
    C:\Documents and Settings\<ユーザー>\.android\adb_usb.ini
    を開き
    0x04C5
    という行を追加。
  • adb再起動
    adb kill-server
    adb start-server

場合によっては、ドライバのインストールメッセージと、ドライバが見つからないというメッセージが出ない場合がある。

このような場合、ARROWSが大容量記憶装置として認識されてしまっている。
確認方法は、USBの外部メモリ類はすべて外しておく
ARROWSを繋ぐ
すると、デバイスマネージャのユニバーサルシリアルバスコントローラのところに
USB大容量記憶装置というのがある

このような場合、このUSB大容量記憶装置をデバイスマネージャから削除してARROWSをつなぎ直すと、正常に(?)ドライバが見つからないというメッセージが出る

その後、上の手順でドライバを更新することでadb接続ができるようになる。

「ママでちゅよ~」使用記

Androidアプリ「ままでちゅよ~」ですが、

ここだけの話、作った本人が使っていなかったと言う事も含めて

ちょっと冷え気味だったのですが

ここ1週間、やっと使う機会が訪れました。

我が子は、6ヶ月目で、そろそろミルクではなく夜泣きで起きるような時期になり

実際夜起きるようになってきました。

妻も寝かせるのが大変だと言う事で、とりあえず「ままでちゅよ~」をセットしてみました。

一応、マイクモジュールをアクティブにするアプリなので、バッテリーを心配して、配線をしつつ

絡まってしまわないように柵に結びました。

Android本体も間違えて変なボタンを押さないように柵と布団の間に挟みました。

2時、5時付近に起きてた我が子ですが、セットしてからは何故か朝まで寝てくれてます。

ままでちゅよ~」には、発動した時間が記録されているので、それを確認すると

2時と5時(日によってちょっと違いますが)に起きて、「ままでちゅよ~」が発動したことが記録されていました。

ままでちゅよ~」は、一応w効果があるというのが、1週間の使用ですが証明されました。

ですが、これですべてのお子様に効果があるという保証ではございません。

関連リンク

Adnroid SDKを再インストール後、実行環境を起動できない

Android SDKで、新しいバージョンにアップした場合などに、以下のようなメッセージが出て実行環境を起動できなくなった。

Windows環境でProgram Filesフォルダにインストールした場合に出るようだ。

昔からある障害であるが、実行コマンドのパスにスペースが含まれていたりすると

実行できないというもの。

Android SDKのインストールパスをC:\android-sdkあたりに明示的に指定してインストールすると

正常になる。

[AndEngine]Physics Box2D Extensionを使った画面で、物体同士の衝突力を算出する

AndEngineの拡張で、「Physics Box2D Extension」というのがあるが、この拡張を使うと

物理演算された動きを簡単に再現できる。

で、再現ついでに、色々遊んでいたのだが

物体同士が衝突したら、アクションを起こしたい場合、

たとえば、衝突した物体が壊れるとか

音を鳴らすとか。

そんな場合、単純に衝突した時にアクションを起こすと、ほんの少し触れただけでも

衝突アクションが発生しまくってしまう。

ある程度強い強さで衝突した場合のみ、アクションを発生させたい場合

物体同士の衝突力を算出して制御する必要がある。

おおよその簡単な制御だと以下のようになる

シークバーの背景の色を変える

シークバーの背景色を変えたい時には

まず、res/drawble-nodpiに適当な名前(今回はseekbar.xml)でファイルを作成

中身はlayer-listで、itemは以下を定義

  • android:id=”@android:id/background”
  • android:id=”@android:id/secondaryProgress”
  • android:id=”@android:id/progress”

SeekBarオブジェクトでは、以下を指定

javaのプリミティブ型

javaの型について深く認識していなかったので、備忘録として

種別 説明
論理値 boolean 真偽値。true または false
文字 char 2バイトUNICODE文字。’\u0000’~’\uffff’
整数 byte 1バイト符号付整数。-128~127
short 2バイト符号付整数。-32768~32767
int 4バイト符号付整数。-2147483648~2147483647
long 8バイト符号付整数。約-922京~約922京
浮動小数 float 4バイト浮動小数点数
double 8バイト浮動小数点数。

背景をグラデーションにする

MediaPlayerのsetVolumeにセットするボリュームの値

MediaPlayerのメソッドにsetVolumeというメソッドがある。

対して、getVolumeというのは、なぜか無い。

それは何故かはあとで調べるとして、

setVolumeの引数は(float leftVolume, float rightVolume)となっている。

左右の音のバランスを設定するためのメソッドのようだ。

が、ハード上のメディアのボリュームをアプリで変更したくない場合

このsetVolumeをいじると良いかもしれない。

だが、このsetVolume、リファレンスを見ても、数値の上限などが書いてない。

サンプルアプリで試してみた所、0~1の浮動小数点数らしい。