SHARP Androidアプリ開発テクニカルセッションに参加報告

https://sh-dev.sharp.co.jp/release/20120227_b.html


3月16日(金)に開催されたSHARP Androidアプリ開発テクニカルセッションに参加してきました。

セミナー対象は「Androidアプリ開発者」と「アプリ開発に興味のある方」


私は「アプリ開発に興味のある方」枠(?)で参加

無料のセミナーにもかかわらずドリンクのサービスにボールペンとノートを頂きました。


なので開発初心者の目線でレポートしたいと思います。


本テクニカルセッションは今回で第四回目、モデル発表に合わせて行われているとの事。


以前の様子も公開されているので3/21の大阪開催が終わったらアップされるのではないかと思われます。


SHARP_Android_2011 夏モデルの商品紹介と公開APIなど技術情報の紹介

※当日配布のPDFも公開されているようです。→ SHARPテクニカルセッション2011S



メインはSoftBankのICS端末 104SHのこだわった点の紹介


大きく分けて2つ

  • バッテリーの見えない消費を抑えるバックグラウンドの動作を強制的に抑える「エコ技」モード
  • タッチ操作の感触を「ぬるぬる」と「さくさく」のいいとこ取りを目指した「ダイレクトトラッキング」技術

SHARPとしてはここが目玉だったようですが、昨日(3/15)のセミナーのTwitterのTLを見ていると不評っぽい?


開発者としては「ハードの限界を突き詰めて後は自分らが勝手に調理するから」というスタンス

SHARPとしては「多くのアプリで体感を良くする」という不一致が問題だったようにも感じるし参加していない人の断片的情報が憶測を呼んだようにも思われる。


細かな挙動や動作速度なども報告が上がっていますが、自分はさくさく・ぬるぬるしていて良いなと思いました。



個人的収穫点

Android 4.0 (ICS) にtwiccaを入れてそのぬるぬる・さくさく感を味わえたこと

SoftBank104SHにtwiccaを入れさせていただき自分のdocomo SH12Cと比べてどの程度画面の綺麗さがアップしているか、滑らかにトラッキングできるかを並べて検証。

SH12C 104SH
解像度 qHD(540x960) HD(720x1280)
CPU Snapdragon Qualcom MSM 8255 1.4GH OMAP4460 1.5GHz

104SH本当に指に吸い付くようにホーム画面もtwiccaのTimeLineもスムーズに動きました。

描画面積が1.7倍になっているわけですがDualCoreCPUとタッチパネルの精度向上、タッチパネルドライバの高速化の恩恵は大きいと感じました。

資料を見てみると(横軸が時間、縦軸が移動量?)従来モデルに比べてレスポンスが上がっているのが分ります。

画面が反応するまでの時間が約1/2、指と画面のズレ約1/2 移動量の差はほぼ一致しています。


エコバックライトも効果が高そうです。


省エネ待受の「エコ技」も裏技みたいなもので、警告がダイアログが出まくるので分かって居る人が使うでいい気もします。

開発者にはやっかいな挙動が増えたのかもしれません。


質疑応答の時間に「エコ技で画面がONになった場合どうなるのか?」という質問に「SCREN_ONが送られるが、SCREN_ONのトリガが届かない場合がある」との事でした。


このあたり自分の予習不足で突っ込んだ質問が出来なかったので残念です。


この機能がAndroid標準APIに取り込まれて判定が出来てとかのワークフローが出来ていれば便利なのかな?今後に期待です。


実機を触ってみましたがとりあえず警告ダイアログが多いのと設定の階層が深いので混乱は必至だとは思います。

リテラシーの高い人で無いとエコ技モードは使いこなせないかも


アストロを入れて階層を見た感じ内蔵メモリが純粋に大きく(13GB?14GB?)

SDカードも/mnt/sdcardと標準な形式っぽいので羨ましかったです。


サイドバイサイドの3D映像には未対応だったのを忘れYouTubeで「yt3d」を見たら2画面出てきてションボリ。

あとシャッターボタンも無いのですよね。


ICS自体がメニューやホーム、バックボタンもタッチパネルなのでそのほうが統一感があってよいのかな?


10キーのついたモデルの方がフィーチャーフォンに慣れている人には向いているかも。

WillcomのHYBRID WZERO3を使っていたときも電車で立ちながら片手をつり革状態になると10キーの方が使いやすかったですし。


ただqwertのフルキーボードの端末もラインナップしてほしいところではあります。


メディアタブレットEB-A71GJ(3.2)に触れたこと

お店でも少し触りましたがあまり弄れなかったので触れて楽しかったです。


解像度もそこそこ(1024x600)有りますしサイズもこなれている感じ

個人的にはカメラの設定などへのアクセスが私の2.3端末とは雲泥

これはICSでも感じました。直感的に使いやすいUIになっていると思います。

手振れ補正機能なども追加されているようですし羨ましく思いました。


こちらは書籍ビューアでもあるので書籍を見たかったのですがアカウントが無いので辞書をひいてみて感触を確かめてみました。

なかなか綺麗に見えます。


RetinaiPadとは比べたら荒れて見えるかもしれませんが高精細かつ低消費電力なIGZO液晶だったかと。

タブレットとしては欲しくなるサイズでした。


SHARPの中の人にJIS X 213:2004 の印刷字体やグリフの欠けの問題を直接話せたこと

知っているかと思ったのですが、あまり意識は無かった様子。

電子書籍ビューワを出して居るので知っているかな?と思っていたのですが、字形の変更や追加の事実を知らなかった様子。

ピンポイントの方では無いのですがとりあえず2004対応どうなっているの?という話が出来たので個人的には自己満足


スマートフォンにおける厄介な漢字の表示実験


写真はSH12Cのものですが104SHでも同じだったのを確認しました。




JIS X 0213 - Wikipedia

本来ならば次のように見えることになります。

Windows7(JIS X 213:2004対応フォント)


非対応の場合次のように見えます

WindowsXP


開発支援サイトを知った事

ググれと言われそうですが、SHARPが用意しているサイトがあるのを知ったのは収穫でした。

NetBeansでアプリを作ると全画面にならないなと思って居たのですがSHARPのサイトに対応方法があり、それを教えて頂きました。


QHD(960x540)240LogicalDensity対応方法

設定前

設定後


Eclipseではこの辺り設定がされているみたいでNetBenasと挙動が違って勉強になりました。

今回も話に上がりましたがWVGA→QHD→HDと画面がどんどん大きくなっていくわけで
このような画面対応を考えてデザインをしないといけないのが分って見識が広まって良い刺激になりました。

とりあえずなにか野良でも良いのでアプリを公開出来るくらいにはなりたいです。



配付資料抜粋

セミナーは2部構成

  • 商品紹介(2012年 冬春モデル) 01
  • 技術情報 02


商品紹介(2012年 冬春モデル) 01

NTT docomo 4機種
 AQUOS PHONE SH-01D [Android 2,3][4.5インチ] [HD][防水][3D]
 AQUOS PHONE SH-02D [Android 2,3][3.7インチ][qHD][防水][10キー]
 AQUOS PHONE SH-04D [Android 2,3][3.7インチ][qHD][防水][コラボモデル]
 AQUOS PHONE SH-06D [Android 2,3][4.5インチ] [HD][防水][NOTTV][3D]

Softbank 4機種
 AQUOS PHONE 101SH [Android 2,3][3.7インチ][qHD][防水][10キー]
 AQUOS PHONE 102SH [Android 2,3][4.5インチ] [HD][防水][3D]
 AQUOS PHONE 103SH [Android 2,3][4.5インチ] [HD][防水]
 AQUOS PHONE 104SH [Android 4.0][4.5インチ] [HD][防水]

su 3機種
 AQUOS PHONE IS13SH [Android 2,3][4.3インチ][qHD][防水][メモリ液晶]
 AQUOS PHONE IS14SH [Android 2,3][3.7インチ][qHD][防水][10キー]
 INFOBAR C01 [Android 2,3][3.2インチ][FWVGA][10キー]

Disney Mobile
 DM011SH [Android 2,3][3.4インチ][FWVGA][防水][10キー]
 DM012SH [Android 2,3][4.0インチ][qHD][防水]

Tablet
 EMOBILE A01SH [Android 3.2][7インチ][1024x600]
 メディアタブレット EB-A71GJ [Android 3.2][7インチ][WiMAX]


2012年 冬春モデル主な特長

かしこく自動でバッテリーの消費を抑える「エコ技」機能

高画質を保ちながらディスプレイの消費電力化を実現するバックライト制御、複数アプリの起動時などの思わぬ電力消費を自動的に抑制するなど、複合的な制御で消費電力の削減を実現する省エネ独自技術です。


ダイレクトトラッキング技術

シャープ独自のタッチ操作チューニング技術により、画面の指への追従性となめらかなスクロールを高次元で両立。まるで画面が指に吸い付くような操作感と流れるような動きで、今までに無い使い心地を実現しました。


Android4.0(ICS)にいち早く対応

最新のプラットフォームをいち早く搭載しただけで無く、使い勝手を向上させる独自のカスタマイズを多数実施


3D対応

メガね不要で3D表示(視差バリア方式

画面に視差バリアと呼ばれる縦縞の液晶を重ねる。右目に右目用画像、左目に左目用画像が見える

多才な3D映像に対応。3D画像は自動で判別

YouTube 3Dやフォトビューア

YouTubeで「yt3d]で検索


その他の特長

  • 光学手ブレ補正対応カメラ
  • 独自の液晶技術と号画質エンジン
  • 野外で見やすい。アウトドアビュー
  • のぞき見防止カラーベールビュー
  • バックライトの消費電力を抑えるエコバックライトコントロール
  • 手軽にホームネットワーク。スマートファミリンク
  • 簡易留守録機能 伝言メモ


技術情報 02

エコ技

シャープの省エネ技術「エコ技」

1.エコバックライトコントロール

  • ハードウェアによるバックライト制御技術と画像処理技術によりる省電力化機能

2.省エネ待受

  • ソフトウェアによるバックグラウンドアプリケーションの動作を抑止することによる省電力化機能


省エネ待受とは?

一言で言うと

  • 「BroadcastIntentの送信をユーザが制御できる機能」

送信を抑止する条件は以下の通り

  • 端末の状態
    • ユーザ設定(省エネ待受)がオンになっている
    • 画面表示が消えている
  • 対象外アプリ
    • ユーザから見える状態で動作する(フォアグラウンド)アプリ
    • ユーザ設定(省エネ待受対象外リスト)でチェックされているアプリ

なんでこんなものを作ったのか?

Android端末の電池はアプリケーションの設計に依存する

  • Androidは表面に見えていないアプリケーションでも動作が可能
  • 表面に見えていないアプリケーションが動作する(=電池の消耗する)という事実はユーザには理解が難しい(=電池餅が悪い印象を与える)

アプリケーションの動作をユーザが制御出来るようにしたい

  • 省エネ待受を音にする事で表面に見えていないアプリケーションの動作を制御出来るようにする
  • 省エネ待受の適用対象をアプリ単位で制御するUIは儲けているがこれは省エネ待受の仕組みを理解した人が利用出来るようにするためのもの


どのくらいの効果?

機種 実使用連続待受時間(通常モード) (技ありモード) 省エネ効果
SH-01D 117h 288h 2.5倍
SH-02D 160h 320h 2.0倍
101SH 108h 141h 1.3倍
102SH 105h 171h 1.6倍
IS13SH 170h 250h 1.5倍
IS14SH 100h 160h 1.6倍


使い方

1.エコ設定を「技ありモード」に設定する

  • 「設定」→「省エネ設定」→「技ありモード」をタッチする

2.もしも正常に動作しないアプリケーションがある場合

  • 省エネ待受対象外リストにて外灯アプリをチェックする


省エネ待受対象外リストの設定方法

1.設定を選択
2.省エネ設定を選択
3.技ありモードの編集を選択
4.省エネ待受の?を選択
5.詳細を選択
6.対象外アプリにチェック


省エネ末受けが影響を受けたアプリ

アラームのように予定時刻に動作するアプリ

  • アラーム
    • 本来の動作を阻害するので省エネ待受対象外とすべき
  • 予約録画
    • 本来の動作を阻害するので省エネ待受対象外とすべき

定期的に動作するアプリ

  • 歩数計
    • 履歴データの蓄積のため省エネ待受の対象外とすべき
  • それ以外のアプリ
    • 設計を見直すことで改善できる可能性がある


省エネ末受機能はアプリの品質を上げた

省エネ待受をオンにしても正しく動作するように、各アプリはバックグラウンドで動作しないように設計変更された
 ↓
おかげで省エネ待受をオンにしなくても電池が持つようになった

  • れが本来有るべき姿
  • でも…省エネ待受機能をアピールできない!

 ↓
ダウンロードアプリの中には省エネ待受によって電池持ちが改善できるものもあるかもしれない
-この設計見直しの内容を是非アプリ開発者にお伝えしたい
-ユーザの方でも特定のアプリケーションをインストールしてから電池持ちが悪いという体験をお持ちの場合は、省エネ待受をオンにして違いが出るか確認して欲しい


どうすれば電池持ちが改善できるかの提案

どっちの方が電池に優しいか?

トータルで100の処理
 1.10の処理に分けて10回で実行する
 2.100の処理をまとめて1回で実行する

正解は2.

  • CPUは起きてくるときにその前後にオーバーヘッドがある
  • 起きてくる頻度が多いと回数分だけオーバーヘッドがある
  • このオーバーヘッドは電池持ちに関して言うと無視できない

 →単にreturnするだけの処理であってもオーバーヘッドはかかる!

「処理は出来るだけ小分けにせず1回にまとめてしまう!」


処理のまとめ方の例

・TIME_TICKなどのIntentを使って定期的に行う処理
 →AlarmManagerを使って1度にまとめてしまう
 →ユーザ操作をきっかけに全部処理してしまう

・画面表示関係なく行っている定期的な描画の処理
 →SCREEN_OFFで描画の停止
 →SCREEN_ONで描画の再開

・AndroidManifest.xmlでBroadcastReceiverを登録
 →必要なタイミングだけregisterReceiverで登録


省エネ待受自体の反省点

・現状では例外処理が「アプリ指定」だけしかない
 -同じアプリでも特定のIntentだけを省エネ待受対象にしたい
 -SCREEN_OFFなども一律無効化しているので省電力に配慮しているアプリであっても対象外リストに登録する必要がある

・省エネ待受対象外リスト設定画面が使いにくい
-単純にUIの問題


 「次のシーズンのモデルでは改善します!」


ダイレクトトラッキング

LCD画面が高解像度化

LCD画面サイズの拡大

2010年冬 WVGA[480x800]
 │
(描画面積1.4倍)
 ↓
2011年春 QHD[540x960]
 │
(描画面積1.7倍)
 ↓
2011年秋 HD(720x1280)

CPUの性能が上がらないと、描画パフォーマンスが厳しい


αブレンドを使った描画が多い

・奥行きのある見た目を作り出すための半透過(αブレンド)を多様
・αブレンド処理は重くてパフォーマンス悪化の一因
・αブレンド処理を速くしなければ…


滑らかな操作性

・タッチパネルドライバからのイベントがアプリに一定間隔で通知されない
 ↓
・意図的に指から遅らせて滑らかに表示するように調整(ホームアプリ)
 ↓
・社内ではこの滑らかさの評判がいい


操作性の改良

・リストビューやブラウザにもこの技術を応用
・描画性能が向上し、タッチパネルイベントも細かいピッチで処理できるようになってきた
・滑らかな操作は社内では「ぬるぬる」と呼ぶ
-他社端末の指に追従する操作性は「さくさく」など
・若い人は「ぬるぬる」より「さくさく」が好みの人が多いので両方を追いかけたい
・試行錯誤の日々が続いた…


グラフによる評価がいい!

・品質部門から出てきたグラフがわかり易いと社内で大評判!


グラフ書きつつ追従性アップ!

・追従性アップのため
 -DualCore高性能CPU
 -タッチパネルの精度向上
 -タッチパネルドライバの高速化
 -描画性能の向上
 -アプリの高速化

・グラフを描いて、結果を確認
 -ビデオ撮影、座標解析、グラフプロット


名前がつきました!

・104SH発表会で名前もお披露目
 (開発担当者もWebのニュースで知りました)


開発支援取り組みのご紹介


アプリ開発イベント ハッカソン
SHARP Android ハッカソン@東広島

Hackathon = Hack + Marathon

半年に一度、日本全国の有名な開発者がSHARP東広島工場に集まりそれぞれチームを作って2日間でアプリを作成!

3/10-11 第4回SHARPハッカソン開催!!

Android開発者に加え、デザイナーや一般女子を加えた総勢25名が参加。
わずか2日間の日程で、アイデア、デザイン、コーディング共に非常にレベルの高いアプリをすべてのチームが完成させていました。

第4回シャープハッカソン」で検索!


開発支援サイト SH Developers Square

  • 情報提供
    • サンプルコードや拡張APIの情報
    • イベントの開催情報
  • フォーラム
    • 開発者同士の議論の場
    • メーカーへの質問は可能な限り回答

Follow me on twitter: @SH_DEV