errand softのブログ

Androidのアプリ開発に関する記事を書いていきます。

Androidの音声認識アプリ「虚無ログ」 V1.4.2 更新しました

 拙作のAndroid音声認識アプリ「虚無ログ」を更新した。内容は以下である。

【V1.4.2】
・認識する音声の最適化
・作業用BGMの更新

 うん、まあ、微細な更新である。もっとこう、なんというか、人々を唸らせるようなものを作りたいのは山々だが、元々、自分のためだけに作ったアプリなので劇的なものを望むのはおこがましい気がしなくもない(歯切れが悪い

 もちろん、修正や改善の要望はいつでも待っているので、このブログのコメントでも、Google Play上のメールからでも出してくれれば読むと約束しよう。……実現できるか等は別問題だけど。

 

 もっとも、アプリ開発に時間を割いていないのではなく、新アプリの開発に時間を割いている。

 朝の忙しい時間を想定して、スクロールするだけでカレンダー、天気、ニュースを閲覧でき、しかもその間に心が落ち着くようなBGMまで流せてしまうのだ! ……と景気の良いことを書いてみたが、またも自分のためだけに作ったアプリなので、やはり劇的なものを望むのは無理があるなあ(苦笑

 まともなものは仕事でつくっているので、個人で作るものは毎日5分使う程度で便利なものができればいいと考えているので致し方なしか。

f:id:errandsoft:20131104221604p:plain

※開発中のスクリーンショット

 話が逸れたが、今後とも虚無ログをよろしくお願いします。

WebP形式ではなく、png形式の画像が欲しい場合の方法

 最近、少しずつだがWebP形式の画像が増え始めている。

 WebPとはGoogleが開発した静止画フォーマットで、jpgやらpngやらgifの仲間である。WebPの特徴としてはサイズが小さくできる上に、可逆/非可逆やアルファチャンネルなどの色々なオプションが選択できるそうな。(参考:WebP - Wikipedia

 

 上記でスペシャルなフォーマットであることは何となく分かってくれたと思うが、新しい技術の常で、表示や変換に難がある。

 一言でいえば使いにくい。

 特にアプリ開発をしていて、使えそうな画像を保存する際にWebPフォーマットであることがわかるとげんなりする。そりゃ、表示するほうはそれでいいけど、加工されるかもしれない画像はまだまだwebpで表示してほしいと思うものだ。

 

 じゃあ、どうするか。

 対策は簡単で、WebP形式に対応していないIEなどのブラウザで同ページを開けばよい。あるいはユーザエージェントをいじればChromeOperaでもいけると思うが、好きな方を選んでくれ。

 WebPにわざわざ対応しているようなサイトならば、WebPが表示できなければpngやjpgで同等の画像を表示してくれるはずなので、それを利用すれば問題ない。

 

 書いていて気付いたが、Chromeユーザにしか役に立たない記事だなあ(苦笑

実機よりも高速なAndroidエミュレータ「Genymotion」

 先日、職場の人伝で聞いた話である。

「実機よりも高速なエミュレータがある……」

 x86版のエミュレータのことかと訊くが、そうではないらしい。でもねえ、実機よりも高速なエミュレータなんてあるはずが、あった!(驚愕

            f:id:errandsoft:20131019101705p:plain

 その名もGenymotion

 原理的にはAndroid OSを仮想マシン上で動かすため、Java上で動く純正のx86エミュレータよりも早く、さらには実機のARM CPUよりも高速な母艦PCのIntel様の力を使って動作するので、明らかに分かるほど早い。Genymotionの開発チームがすごいのか、Intelがすごいのかわからないが、笑ってしまうほど早い。

 

 個人的に感じた利点を箇条書きすると以下のようになる。

・実行速度は体感でも分かるくらい変わる【参考】Genymotion速かった

・セットアップも簡単【参考】Androidを仮想マシンで使う-Genymotionの使い方

仮想マシンなのでメモリ、ネットワーク等の調整もできる【参考】genymotion 1.2.1メモ

 

 一つ難点があるとすれば、安定性が若干低いことか。メモリの多寡も関係あると思うが、長く使っていると落ちやすい気がする。

 ただ、それを補ってなお余りある速度は魅力的である。個人的には実行速度もさることながら、アプリ開発時のAPKの転送時間を省けるのが大きい。Eclipseと連携して試験をする時には重宝しそうだ。体感的には実機を用いる際の1/3以下の時間でビルドから実行まで持っていくことができる。

 また、人によってはGoogle Play対応というところも嬉しいのではないかな? 音も出るし、普通に使えるというのは素晴らしい。タッチパネル式の液晶で使ってみたいほどだ。

【送料無料】ASUSASUS VivoBook X200CA X200CA-CTBLUE (2013...

【送料無料】ASUSASUS VivoBook X200CA X200CA-CTBLUE (2013...
価格:54,800円(税込、送料込)

Surface RT レビュー(3/5点)

 Microsoft製のタブレット「Surface RT」を1ヶ月ほど使用したのでレビューしよう。

 ……って、いまさらSurface RTかよ! つぶしの効くProじゃなくてRTwww と草を生やしたくなる気持ちは所有者である私にもあるが、Surface RTは用途を絞って使う分には良い端末である。決して万人向けではない、選ばれた人のためのガジェットである(震え声

■評価
3 (5点満点中)

Good
・まさにWindowsライクな操作性
・タブレットなのにスタンド付きで自立する

Bad
・Windows Store……

f:id:errandsoft:20131013130153j:plain

図.USBキーボードを利用するSurface RT


 当たり前だが、Windowsライクな操作性が好ましい。旧来のWindowsソフトとの互換性こそないが、Flashも動くフルブラウザのIEとOfficeがマルチタスクで動くので、現代版のネットブックとして使うこともできる。iPadではこうした使い方はできないし、Androidでも難しい。
 また、オリジナルのWindows同様にマルチアカウントに対応しているのも個人的には好印象だ。たとえば、趣味のアカウントと仕事系のアカウントで分けておけばメールや環境がごちゃごちゃにならずに済む。

 またSurfaceの特徴であるスタンドが想像以上に便利だった。常に手に持っている必要がなくなるので動画視聴時に楽だし、片手で使えるようになるのでパソコンやスマートフォンと併用しやすい。なおスタンドの角度は固定だが、Surfaceの液晶はIPS方式で視野角が広いので困らない。
 ちなみに、私はSurfaceのもう一つの特徴である純正キーボードはつけておらず、タブレット本体だけの使用である。純正キーボードはきちんとした土台がないと使えないため、ならば外付けのBluetoothキーボードで十分だと考えたからだ。たしかに純正キーボードはデザインも実用性も悪くないし、別途バッテリを使わないという利点があるが、その手のキーボードはタブレットとして使うときに邪魔になるので諦めた。実際になくても問題ないことを記しておく。Officeで資料を作成するような時だけ、上図写真のようにキーボードを付けるので十分である。


 しかし、Surface RTは意外といいんじゃないかという結論は急ぎすぎだ。私の評価が高いのは他のiOS/Androidタブレットも併用しているからで、タブレットをSurface RTしか持っていなかったら悲惨だろうとも思う。
 iOSAndroidならばアプリが十分にある。誰もがインストールしたくなるような定番アプリもあれば、ハードの進化やトレンドに応じたソフトも次々と出ている。一方、Surface RTのWindows Storeアプリは定番もなければ新着もろくにないEvernoteTwitterなど有名サービスのアプリはあるが、デザインや使い勝手がModern UIに準拠していて、独特な使い勝手はまだしも一覧性に劣る点でどうにも使いにくい。もしスナップ機能(2つのアプリを分割表示できる機能)のために一覧性を削っているとしたらスナップ機能なんていらないと思うほどiOSやAndoridと比べて情報量が少ない。
 このような状況だから、1ヶ月間使ってもプリインストールのアプリ以外はほとんど起動しないし、インストールしたアプリもほとんどない。


 個人的な感想をまとめると、タブレットに汎用性を求めるならSurface RTは買ってはいけないが、タブレットでもPC寄りの使い方をしたいならば、Surfaceは買いかもしれない。ゲームやアプリを使わない人、かつブラウザとOfficeがきちんと動けば良いと考える人に対しては、Surface RTはiPadやNexusよりも優れた選択肢になる。タブレットで公式にFlashをサポートするフルブラウザやOfficeを備えているのはWindows RTのみだからだ。これはiOSにもAndroidにもない大きな付与点だろう。

 あとはOfficeソフトが欲しい人にも選択肢となりうるか。Officeソフト一式が3万円近くする中、Surface RTは約3.5万円なので、とりあえずOfficeが欲しくて処理速度を気にしない人なら、ワープロ専用機ならぬOffce専用機として買うのもありかもしれない。そう考えると、私が大学生の頃にSurface RTがあれば欲しかったなあと思う。当時、レポートを書くためだけに3kgもある弁当箱のように重厚なThinkPadを持ち運んでいたのは割りと信じがたい過去の話である。バッテリー駆動時間が10分程度なので非常電源にしか使えなかったのも懐かしい orz

 後継機のSurface2を待ったほうが良いかという意見に対しては、私の場合はそこまで待つ気はなかったし、そもそもWindows RTはハードが進化したところでそれを活かせるソフトがないと思っているので適当なところで買ってしまった。

 MicrosoftがOSシェア奪取のためにSurface RTを最初から2万円くらいでばらまいていれば、今のWindows Storeの惨状もなかったのだろうか、と滅多にアクセスしないStoreアイコンを見ながら思う。Xboxも360から強くなったし、Windows8も8.1から強くなればいいなあと思うが、今のMicrosoftではあまり期待できないのが本音か。


※追記。第2弾のレビューを書きました。

Surface RTの使い道は残っているか たぶん少しくらいは

Feedlyで記事のタイトルが表示されなくなった時の対処

私はGoogle Readerを懐かしみながら、Feedlyを使っている。

記事の閲覧には十分だが、記事の検索が有料版でないと役に立たないので、記事の保存にはほとんど役立たない。

でも、他に良いサービスもないのでとりあえず使っている状態だ。

Evernoteと連携させればいいのかな?

 

それはさておき、FeedlyAndroidアプリで記事のタイトルが表示されなくなった。

発端は「Auto Mark As Read」のチェックを入れたことで、このオプションにチェックを入れると記事のリストをスワイプしただけで既読にしてくれるという設定必須のオプションである。

そもそもこのオプションを設定して文字の見栄えまで変わったのがおかしいと思い、フォント周りをいじってみると直った。ISW11Fの場合はフォントに「Sol」を設定すると元通りになるが、他の端末も一緒かは知らん。

「Setting」→「Advanced Setting」→「Font」を適当に設定

 

「Advanced Setting」内にバグが潜んでそうだが、再設定で直るなら構わん。

Xperiaである種の音声が著しく小さかったり大きい場合の対処

先週、聖地アキハーバラで投げ売りされていたXperia VLを購入した。

未使用品で¥.19,800である。

iPod TouchAndroid搭載Walkmanよりも安い。

もちろん、音楽を聴く分には上記の2端末を買ったほうが再生音質や管理ソフト的に良いだろうが、主にアプリやゲームを使いたいという人には、私のように秋葉原で売られている携帯電話端末を購入するのも手だろう。

 

私の場合はもっぱらアプリ開発用途だ。

Android 2.3と4.Xの壁は非常に大きく、2.3から4.0にアップグレードした端末は持っているのだが、私は純粋なAndroid 4.Xは持っていなかった。

4,X以降の端末はソフトウェアの進化もさることながら、NFCに対応しているなどハード設計から違うので新鮮だった。あまり使わないけど(おぃ

最近のAndroidは防水機能やバッテリ容量など必要な機能に応じて端末を選べるし、Google MapやChromeなどのGoogleのサービスとの連携もばっちりだし、ハード/ソフトともに成熟した感があるなあ、としみじみ。

 

しかし、問題もないわけではなかった。

個人的に重宝しているGoogle謹製の音声認識がどうにも使いにくい。

音声認識の開始時と終了時に効果音を出してくれるのは良いのだけれども、この効果音がやたらと大きいくせに音量がいじれない。

途方に暮れていたら、下記の設定にすることで回避できた。

・「設定」→「音設定」→「xLOUD」のチェックを外す

【参考】Androidのバージョンを4.1.2にバージョンアップしたらパズドラの効果音だけ異常に

Androidの問題ではなく、Sonyお得意の「仕様」なのだろう。

チェックを外すだけで影響を回避できるならまあいいか。

WebViewFragmentならYoutubeの再生を簡単に止められる

 Androidのアプリで簡単にコンテンツ表示するにはWebViewが手っ取り早い。

でも、WebViewには色々と罠がある。表示が重かったり、Androidのversionによって差異があったりする。

だが、その中でも一番重い罠は、WebView上で動画や音楽再生した際にアプリがバックグラウンドに回っても止まってくれないことだろう。

バックグラウンドで走り続けることがなぜ困るかというと、たとえば電話が掛ってきた際にも鳴り続けるからだ。

上司から掛ってきた電話の裏できゃりーぱみゅぱみゅが流れ続けている。そしてそれが上司にも聞かれているという状況は企業戦士として勘弁願いたい。

 

 それは下記の手順で解決できると思うが、もっと簡単に対処する方法もある。

【参考】webviewなAndroidアプリでFlashを使っている時に、backgroundに回った時にFlashを中断(音や動画の停止)する方法

 

 その方法とはWebViewでなく、WebViewFragmentを使うことである。

【参考】Android WebViewFragmentでFlash

 

 WebViewFragmentはAndroid 3.0以降でないと使用できないが、WebViewの代わりに使用することで、アプリの状態を考慮せずに気軽に使うことができるようになる。

なお、参照先ではコードからFrameLayoutにWebViewFragmentを詰めているが、activityのxml上にfragmentを書く形でも実装できるので、以下のように書くのもあり。

<fragment android:layout_height="match_parent" android:layout_width="match_parent" android:name="com.example.hogehoge.YoutubeFragment" />

android:nameは対象のソースを指定する