tag:blogger.com,1999:blog-30088688610989684282024-02-20T21:48:13.168+09:00mizukindevelopAnonymoushttp://www.blogger.com/profile/09858036699878356997noreply@blogger.comBlogger6125tag:blogger.com,1999:blog-3008868861098968428.post-9642487865472848382014-12-16T22:14:00.000+09:002014-12-16T22:19:11.030+09:00Android Wearが初期状態でどの程度の言葉に反応するのか検証してみた。こんにちは。<br />
<h2>
<span style="font-size: x-large;">1.template</span></h2>
<div>
==============================</div>
この投稿は <a href="http://qiita.com/advent-calendar/2014/android">Android Advent Calendar 2014</a>の[16]日目の記事です。<br />
次の人<br />
sakebook<br />
前の人<br />
konifar<br />
<div>
<a href="http://qiita.com/konifar/items/3c75f1fab0e0a10ebb14">Viewのネストはどのくらい遅いのか ー 12階層のレイアウトを5階層にして検証してみた</a><br />
<div>
==============================<br />
<br />
<h2>
<span style="font-size: x-large;">2.最初に</span></h2>
</div>
</div>
なので今回はまだ誰も書いていないwearのボイスアクション(日本語)のまとめがなさそうだったので、書きます。<br />
<h2>
<span style="font-weight: normal;">対象者は一般ユーザー向けです。</span></h2>
<h2>
<span style="font-weight: normal;">開発についての事ではないです。</span></h2>
<div>
<span style="font-weight: normal;"><br /></span></div>
<h2>
<span style="font-size: x-large;">3.対象OSと検証方法</span></h2>
<div>
<h3>
対象OS</h3>
Nexus5</div>
Android 5.0 Lollipop<br />
Android Wear 4.4W2<br />
インストール初期の状態<br />
<h3>
</h3>
<h3>
検証方法</h3>
OK Google, ○○○○と端末から5cmはなれたところで言う<br />
明らかな誤字は無視。<br />
検索でない画面が出たらOKとする<br />
<br />
<span style="font-size: x-large;">4.検証</span><br />
公式サイトによると<br />
<br />
<table style="background-color: #f7f7f7; border-collapse: collapse; border-spacing: 0px; border: 0px; color: #222222; font-family: Roboto, sans-serif; font-size: 14px; line-height: 19px; margin: 0.5em 1em 1em 0px; width: 699px;"><tbody>
<tr><th style="background-color: #999999; border: 1px solid rgb(221, 221, 221); color: white; font-weight: normal; padding: 4px 12px; vertical-align: top;">Name</th><th style="background-color: #999999; border: 1px solid rgb(221, 221, 221); color: white; font-weight: normal; padding: 4px 12px; vertical-align: top;">Example Phrases</th><th style="background-color: #999999; border: 1px solid rgb(221, 221, 221); color: white; font-weight: normal; padding: 4px 12px; vertical-align: top;">Intent</th></tr>
<tr><td style="background-color: inherit; border: 1px solid rgb(221, 221, 221); padding: 4px 12px; vertical-align: top;">Call a car/taxi</td><td style="background-color: inherit; border: 1px solid rgb(221, 221, 221); padding: 4px 12px; vertical-align: top;">"OK Google, get me a taxi"<br />
<br style="margin-bottom: 0px;" />
"OK Google, call me a car"</td><td style="background-color: inherit; border: 1px solid rgb(221, 221, 221); padding: 4px 12px; vertical-align: top;">
<dl style="margin-bottom: 0px;">
<dt>Action</dt>
<dd style="margin: 0px 0px 0px 30px;"><code style="color: #006600; font-size: 13px; font-stretch: normal; line-height: 14px; margin-bottom: 0px;">com.google.android.gms.actions.RESERVE_TAXI_RESERVATION</code></dd><dd style="margin: 0px 0px 0px 30px;"><code style="color: #006600; font-size: 13px; font-stretch: normal; line-height: 14px; margin-bottom: 0px;"><br /></code></dd></dl>
</td></tr>
<tr><td style="background-color: inherit; border: 1px solid rgb(221, 221, 221); padding: 4px 12px; vertical-align: top;">Take a note</td><td style="background-color: inherit; border: 1px solid rgb(221, 221, 221); padding: 4px 12px; vertical-align: top;">"OK Google, take a note"<br />
<br style="margin-bottom: 0px;" />
"OK Google, note to self"</td><td style="background-color: inherit; border: 1px solid rgb(221, 221, 221); padding: 4px 12px; vertical-align: top;">
<dl style="margin-bottom: 0px;">
<dt>Action</dt>
<dd style="margin: 0px 0px 10px 30px;"><code style="color: #006600; font-size: 13px; font-stretch: normal; line-height: 14px; margin-bottom: 0px;">android.intent.action.SEND</code></dd>
<dt>Category</dt>
<dd style="margin: 0px 0px 10px 30px;"><code style="color: #006600; font-size: 13px; font-stretch: normal; line-height: 14px; margin-bottom: 0px;">com.google.android.voicesearch.SELF_NOTE</code></dd>
<dt>Extras</dt>
<dd style="margin: 0px 0px 0px 30px;"><code style="color: #006600; font-size: 13px; font-stretch: normal; line-height: 14px; margin-bottom: 0px;">android.content.Intent.EXTRA_TEXT</code> - a string with note body</dd></dl>
</td></tr>
<tr><td style="background-color: inherit; border: 1px solid rgb(221, 221, 221); padding: 4px 12px; vertical-align: top;">Set alarm</td><td style="background-color: inherit; border: 1px solid rgb(221, 221, 221); padding: 4px 12px; vertical-align: top;">"OK Google, set an alarm for 8 AM"<br />
<br style="margin-bottom: 0px;" />
"OK Google, wake me up at 6 tomorrow"</td><td style="background-color: inherit; border: 1px solid rgb(221, 221, 221); padding: 4px 12px; vertical-align: top;">
<dl style="margin-bottom: 0px;">
<dt>Action</dt>
<dd style="margin: 0px 0px 10px 30px;"><code style="color: #006600; font-size: 13px; font-stretch: normal; line-height: 14px; margin-bottom: 0px;">android.intent.action.SET_ALARM</code></dd>
<dt>Extras</dt>
<dd style="margin: 0px 0px 0px 30px;"><code style="color: #006600; font-size: 13px; font-stretch: normal; line-height: 14px;">android.provider.AlarmClock.EXTRA_HOUR</code> - an integer with the hour of the alarm.<br />
<div style="margin-bottom: 15px; margin-top: 10px;">
<code style="color: #006600; font-size: 13px; font-stretch: normal; line-height: 14px; margin-bottom: 0px;">android.provider.AlarmClock.EXTRA_MINUTES</code> - an integer with the minute of the alarm</div>
<div style="margin-top: 10px;">
(these 2 extras are optional, either none or both are provided)</div>
</dd></dl>
</td></tr>
<tr><td style="background-color: inherit; border: 1px solid rgb(221, 221, 221); padding: 4px 12px; vertical-align: top;">Set timer</td><td style="background-color: inherit; border: 1px solid rgb(221, 221, 221); padding: 4px 12px; vertical-align: top;">"Ok Google, set a timer for 10 minutes"</td><td style="background-color: inherit; border: 1px solid rgb(221, 221, 221); padding: 4px 12px; vertical-align: top;">
<dl style="margin-bottom: 0px;">
<dt>Action</dt>
<dd style="margin: 0px 0px 10px 30px;"><code style="color: #006600; font-size: 13px; font-stretch: normal; line-height: 14px; margin-bottom: 0px;">android.intent.action.SET_TIMER</code></dd>
<dt>Extras</dt>
<dd style="margin: 0px 0px 0px 30px;"><code style="color: #006600; font-size: 13px; font-stretch: normal; line-height: 14px; margin-bottom: 0px;">android.provider.AlarmClock.EXTRA_LENGTH</code> - an integer in the range of 1 to 86400 (number of seconds in 24 hours) representing the length of the timer</dd></dl>
</td></tr>
<tr><td style="background-color: inherit; border: 1px solid rgb(221, 221, 221); padding: 4px 12px; vertical-align: top;">Start/Stop a bike ride</td><td style="background-color: inherit; border: 1px solid rgb(221, 221, 221); padding: 4px 12px; vertical-align: top;">"OK Google, start cycling"<br />
<br />
"OK Google, start my bike ride"<br />
<br style="margin-bottom: 0px;" />
"OK Google, stop cycling"</td><td style="background-color: inherit; border: 1px solid rgb(221, 221, 221); padding: 4px 12px; vertical-align: top;">
<dl style="margin-bottom: 0px;">
<dt>Action</dt>
<dd style="margin: 0px 0px 10px 30px;"><code style="color: #006600; font-size: 13px; font-stretch: normal; line-height: 14px; margin-bottom: 0px;">vnd.google.fitness.TRACK</code></dd>
<dt>Mime Type</dt>
<dd style="margin: 0px 0px 10px 30px;"><code style="color: #006600; font-size: 13px; font-stretch: normal; line-height: 14px; margin-bottom: 0px;">vnd.google.fitness.activity/biking</code></dd>
<dt>Extras</dt>
<dd style="margin: 0px 0px 0px 30px;"><code style="color: #006600; font-size: 13px; font-stretch: normal; line-height: 14px;">actionStatus</code> - a string with the value <code style="color: #006600; font-size: 13px; font-stretch: normal; line-height: 14px;">ActiveActionStatus</code> when starting and <code style="color: #006600; font-size: 13px; font-stretch: normal; line-height: 14px; margin-bottom: 0px;">CompletedActionStatus</code> when stopping.</dd></dl>
</td></tr>
<tr><td style="background-color: inherit; border: 1px solid rgb(221, 221, 221); padding: 4px 12px; vertical-align: top;">Start/Stop a run</td><td style="background-color: inherit; border: 1px solid rgb(221, 221, 221); padding: 4px 12px; vertical-align: top;">"OK Google, track my run"<br />
<br />
"OK Google, start running"<br />
<br style="margin-bottom: 0px;" />
"OK Google, stop running"</td><td style="background-color: inherit; border: 1px solid rgb(221, 221, 221); padding: 4px 12px; vertical-align: top;">
<dl style="margin-bottom: 0px;">
<dt>Action</dt>
<dd style="margin: 0px 0px 10px 30px;"><code style="color: #006600; font-size: 13px; font-stretch: normal; line-height: 14px; margin-bottom: 0px;">vnd.google.fitness.TRACK</code></dd>
<dt>MimeType</dt>
<dd style="margin: 0px 0px 10px 30px;"><code style="color: #006600; font-size: 13px; font-stretch: normal; line-height: 14px; margin-bottom: 0px;">vnd.google.fitness.activity/running</code></dd>
<dt>Extras</dt>
<dd style="margin: 0px 0px 0px 30px;"><code style="color: #006600; font-size: 13px; font-stretch: normal; line-height: 14px;">actionStatus</code> - a string with the value <code style="color: #006600; font-size: 13px; font-stretch: normal; line-height: 14px;">ActiveActionStatus</code> when starting and <code style="color: #006600; font-size: 13px; font-stretch: normal; line-height: 14px; margin-bottom: 0px;">CompletedActionStatus</code> when stopping</dd></dl>
</td></tr>
<tr><td style="background-color: inherit; border: 1px solid rgb(221, 221, 221); padding: 4px 12px; vertical-align: top;">Start/Stop a workout</td><td style="background-color: inherit; border: 1px solid rgb(221, 221, 221); padding: 4px 12px; vertical-align: top;">"OK Google, start a workout"<br />
<br />
"OK Google, track my workout"<br />
<br style="margin-bottom: 0px;" />
"OK Google, stop workout"</td><td style="background-color: inherit; border: 1px solid rgb(221, 221, 221); padding: 4px 12px; vertical-align: top;">
<dl style="margin-bottom: 0px;">
<dt>Action</dt>
<dd style="margin: 0px 0px 10px 30px;"><code style="color: #006600; font-size: 13px; font-stretch: normal; line-height: 14px; margin-bottom: 0px;">vnd.google.fitness.TRACK</code></dd>
<dt>MimeType</dt>
<dd style="margin: 0px 0px 10px 30px;"><code style="color: #006600; font-size: 13px; font-stretch: normal; line-height: 14px; margin-bottom: 0px;">vnd.google.fitness.activity/other</code></dd>
<dt>Extras</dt>
<dd style="margin: 0px 0px 0px 30px;"><code style="color: #006600; font-size: 13px; font-stretch: normal; line-height: 14px;">actionStatus</code> - a string with the value <code style="color: #006600; font-size: 13px; font-stretch: normal; line-height: 14px;">ActiveActionStatus</code> when starting and <code style="color: #006600; font-size: 13px; font-stretch: normal; line-height: 14px; margin-bottom: 0px;">CompletedActionStatus</code> when stopping</dd></dl>
</td></tr>
<tr><td style="background-color: inherit; border: 1px solid rgb(221, 221, 221); padding: 4px 12px; vertical-align: top;">Show heart rate</td><td style="background-color: inherit; border: 1px solid rgb(221, 221, 221); padding: 4px 12px; vertical-align: top;">"OK Google, what’s my heart rate?"<br />
<br style="margin-bottom: 0px;" />
"OK Google, what’s my bpm?"</td><td style="background-color: inherit; border: 1px solid rgb(221, 221, 221); padding: 4px 12px; vertical-align: top;">
<dl style="margin-bottom: 0px;">
<dt>Action</dt>
<dd style="margin: 0px 0px 10px 30px;"><code style="color: #006600; font-size: 13px; font-stretch: normal; line-height: 14px; margin-bottom: 0px;">vnd.google.fitness.VIEW</code></dd>
<dt>Mime Type</dt>
<dd style="margin: 0px 0px 0px 30px;"><code style="color: #006600; font-size: 13px; font-stretch: normal; line-height: 14px; margin-bottom: 0px;">vnd.google.fitness.data_type/com.google.heart_rate.bpm</code></dd></dl>
</td></tr>
<tr><td style="background-color: inherit; border: 1px solid rgb(221, 221, 221); padding: 4px 12px; vertical-align: top;">Show step count</td><td style="background-color: inherit; border: 1px solid rgb(221, 221, 221); padding: 4px 12px; vertical-align: top;">"OK Google, how many steps have I taken?"<br />
<br style="margin-bottom: 0px;" />
"OK Google, what’s my step count?"</td><td style="background-color: inherit; border: 1px solid rgb(221, 221, 221); padding: 4px 12px; vertical-align: top;">
<dl style="margin-bottom: 0px;">
<dt>Action</dt>
<dd style="margin: 0px 0px 10px 30px;"><code style="color: #006600; font-size: 13px; font-stretch: normal; line-height: 14px; margin-bottom: 0px;">vnd.google.fitness.VIEW</code></dd>
<dt>Mime Type</dt>
<dd style="margin: 0px 0px 0px 30px;"><code style="color: #006600; font-size: 13px; font-stretch: normal; line-height: 14px; margin-bottom: 0px;">vnd.google.fitness.data_type/com.google.step_count.cumulative</code></dd></dl>
</td></tr>
</tbody></table>
の9種類があるそうです。<br />
<br />
<h2>
<span style="font-size: x-large;">5.検証結果</span></h2>
<h3>
<span style="font-size: large;">1.Call a car/taxi</span></h3>
<div>
これはタクシーを呼ぶコマンドです。</div>
<div>
これは実装されていないのか</div>
<div>
「タクシー読んで」</div>
<div>
「車呼んで」</div>
<div>
と言うコメントにも反応がありませんでした。</div>
<h3>
<span style="font-size: large;">
2.Take a note</span></h3>
<div>
<span style="font-size: large;"><br /></span></div>
<div>
これはメモを取るコマンドです。</div>
・いけた物<br />
「ノートを取って」<br />
「記録して」<br />
「メモとって」<br />
「書いて」<br />
「書いといて」<br />
・ダメだった物<br />
「メモ」<br />
「書物にまとめておいて」<br />
「ログとっておいて」<br />
<br />
書くに関係する単語はいけたが記録をするに重点をおいたものはダメだった。<br />
<br />
<br />
<h3>
<span style="font-size: large;">
3.Set alarm</span></h3>
これはアラームをセットするコマンドです。<br />
<div>
・いけたもの<br />
「アラームをセットして」</div>
<div>
「アラームを○○分後/○○時にセットして」</div>
<div>
・ダメだったもの</div>
<div>
「アラーム」</div>
<div>
「○分後に教えて」</div>
<div>
「○分後に知らせて」</div>
<div>
「○分後に報告して」</div>
<div>
<br />
アラームという単語が出ないと反応しない<br />
<br /></div>
<div>
<h3>
<span style="background-color: white; font-size: large; font-weight: normal;">4.<span style="font-family: Roboto, sans-serif; line-height: 19px;">Set timer</span></span></h3>
これはタイマーをセットするコマンドです。<br />
・いけたもの<br />
<div>
「タイマーをセットして」<br />
「タイマーを10分後にセットして」<br />
<span style="background-color: white; color: #222222; font-family: Roboto, sans-serif; font-size: 14px; line-height: 19px;">・ダメだったもの</span><br />
<div>
「10秒待って」</div>
「10数えて」<br />
<br />
<div style="-webkit-text-stroke-width: 0px; color: black; font-family: 'Hiragino Kaku Gothic Pro'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
</div>
<br />
<div style="-webkit-text-stroke-width: 0px; color: black; font-family: 'Hiragino Kaku Gothic Pro'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<div style="margin: 0px;">
<br class="Apple-interchange-newline" />
タイマーという単語が出ないと反応しない<br />
<br />
<br /></div>
</div>
<h3>
<span style="background-color: white; color: red; font-size: large;">5.<span style="font-family: Roboto, sans-serif; line-height: 19px;">Start/Stop a bike ride</span></span></h3>
</div>
<div>
<span style="background-color: white;">これは自転車に乗った、乗り<span style="color: #222222; font-family: Roboto, sans-serif; line-height: 19px;">終わった時に知らせるコマンドです。</span></span><br />
<span style="background-color: white; color: #222222; font-family: Roboto, sans-serif; font-size: 14px; line-height: 19px;">・ダメだったもの</span><span style="background-color: white;">「自転車乗った」</span><br />
<span style="background-color: white;">「自転車乗る」</span><br />
<span style="background-color: white;">「自転車降りる」</span><br />
<span style="background-color: white;">「ちゃり降りる」</span><br />
<span style="background-color: white;">「ちゃり」</span>
<br />
<span style="background-color: white;"><br /></span>
<span style="background-color: white;">残念ながらどうも日本語対応はしていない模様。</span><br />
<span style="background-color: white;"><br /></span>
<span style="background-color: white;"><br /></span>
<h3>
<span style="background-color: white; color: red; font-size: large;">6.Start/Stop a run</span></h3>
<span style="background-color: white;">これは走ったとき、走り<span style="color: #222222; font-family: Roboto, sans-serif; line-height: 19px;">終わった時に知らせるコマンドです。</span></span></div>
<div>
<span style="background-color: white;"><span style="color: #222222; font-family: Roboto, sans-serif; font-size: 14px; line-height: 19px;">ダメだったもの</span></span><br />
<div>
<span style="background-color: white;">「走る」</span></div>
<span style="background-color: white;">「走ってる」</span><br />
<span style="background-color: white;">「早歩き」</span><br />
<span style="background-color: white;">「歩く」</span><br />
<span style="background-color: white;">「歩いてる」</span><br />
<span style="background-color: white;"><br /></span></div>
<div>
<span style="background-color: white;"></span><br />
<span style="background-color: white;">これも、残念ながらどうも日本語対応はしていない模様。</span></div>
</div>
<div>
<span style="background-color: white;"><br /></span>
<span style="background-color: white;"><br /></span></div>
<h3>
<span style="background-color: white; color: red; font-size: large;">7.<span style="font-family: Roboto, sans-serif; line-height: 19px;">Start/Stop a workout</span></span></h3>
<div>
<span style="background-color: white; color: #222222; font-family: Roboto, sans-serif; line-height: 19px;">仕事を始めた時、終わった時に知らせるコマンドです。</span></div>
<div>
<span style="background-color: white;"><span style="color: #222222; font-family: Roboto, sans-serif; font-size: 14px; line-height: 19px;">ダメだったもの</span></span><br />
<div>
<span style="background-color: white;">「仕事始める</span><span style="background-color: white;">」</span></div>
<span style="background-color: white;">「仕事開始」</span><br />
<span style="background-color: white;">「仕事始め」</span><br />
<span style="background-color: white;">「タスクする」</span><br />
<span style="background-color: white;">「業務開始」</span><br />
<div>
<span style="background-color: white;"><br /></span></div>
<div>
<span style="background-color: white;"></span><br />
<span style="background-color: white;">これも、残念ながらどうも日本語対応はしていない模様。</span></div>
<span style="background-color: white;"><br /></span>
<br /></div>
<h3>
<span style="background-color: white; color: #222222; font-family: Roboto, sans-serif; font-size: large; line-height: 19px;">8.Show heart rate</span></h3>
<div>
<span style="background-color: white; color: #222222; font-family: Roboto, sans-serif; line-height: 19px;"><span style="font-size: small;">心拍数を表示するコマンドです。</span></span></div>
<div>
<span style="background-color: white; color: #222222; font-family: Roboto, sans-serif; font-size: 14px; line-height: 19px;">・いけたもの</span><br />
<span style="background-color: white; color: #222222; font-family: Roboto, sans-serif; font-size: 14px; line-height: 19px;">「心拍数を表示して」</span><br />
<span style="background-color: white; color: #222222; font-family: Roboto, sans-serif; font-size: 14px; line-height: 19px;">「心拍数」</span><br />
<span style="background-color: white; color: #222222; font-family: Roboto, sans-serif; font-size: 14px; line-height: 19px;"><br /></span>
<span style="background-color: white; color: #222222; font-family: Roboto, sans-serif; font-size: 14px; line-height: 19px;">・ダメだったもの<br class="Apple-interchange-newline" />「心拍数が見たい」</span><br />
<span style="background-color: white; color: #222222; font-family: Roboto, sans-serif; font-size: 14px; line-height: 19px;">「心拍数が気になる」</span><br />
<br class="Apple-interchange-newline" />
<span style="background-color: white;">微妙に対応している模様</span><br />
<span style="background-color: white;">Fitが入っているからなのか</span><br />
<span style="background-color: white;"><br /></span></div>
<h3>
<span style="background-color: white; color: #222222; font-family: Roboto, sans-serif; font-size: large; line-height: 19px;">9.Show step count</span></h3>
<div>
<span style="color: #222222; font-family: Roboto, sans-serif;"><span style="background-color: white; line-height: 19px;">万歩計の歩数を表示するコマンドです。</span></span></div>
<div>
<br />
<span style="background-color: white; color: #222222; font-family: Roboto, sans-serif; line-height: 19px;">・いけたもの</span><br />
<div style="-webkit-text-stroke-width: 0px; color: black; font-family: 'Hiragino Kaku Gothic Pro'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<div>
<div style="-webkit-text-stroke-width: 0px; color: black; font-family: 'Hiragino Kaku Gothic Pro'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<div style="margin: 0px;">
<span style="background-color: white; color: #222222; font-family: Roboto, sans-serif; line-height: 19px;">「万歩計を表示して」</span></div>
</div>
<span style="background-color: white; color: #222222; font-family: Roboto, sans-serif; line-height: 19px;"><br /></span>
<span style="background-color: white; color: #222222; font-family: Roboto, sans-serif; line-height: 19px;">・ダメだったもの</span><br />
<span style="background-color: white; color: #222222; font-family: Roboto, sans-serif; line-height: 19px;">「万歩計」</span></div>
<div>
</div>
<div>
<span style="background-color: white; color: #222222; font-family: Roboto, sans-serif; line-height: 19px;">「万歩計のデータみたい」</span></div>
<div>
</div>
<div style="margin: 0px;">
<span style="background-color: white; color: #222222; font-family: Roboto, sans-serif; line-height: 19px;">「万歩計が気になる」</span></div>
</div>
</div>
<div>
<span style="background-color: white; color: #222222; font-family: Roboto, sans-serif; line-height: 19px;"><br /></span>
<span style="background-color: white; color: #222222; font-family: Roboto, sans-serif; line-height: 19px;">なぜか表示してだと認識しました。</span><br />
<span style="background-color: white; color: #222222; font-family: Roboto, sans-serif; line-height: 19px;"><br /></span></div>
<h2>
<span style="background-color: white; color: #222222; font-family: Roboto, sans-serif; line-height: 19px;"><span style="font-size: x-large;">6.まとめ</span></span></h2>
<div>
今回の内容的にも進捗がないのが見て取れますね……。正直申し訳なさあります。</div>
<div>
技術的な内容でなくAndroid Advent Calendarの水準を下げてしまった感があるので</div>
<div>
来年はがんばりたい。</div>
<div>
<br /></div>
<div>
デフォルトだと赤い内容のアプリが入っていない模様なので<br />
そこら辺のIntent受け取るアプリを開発すれば市場開拓できると思います。</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<span style="background-color: white; color: #222222; font-family: Roboto, sans-serif; line-height: 19px;"><br /></span></div>
Anonymoushttp://www.blogger.com/profile/09858036699878356997noreply@blogger.com0tag:blogger.com,1999:blog-3008868861098968428.post-85639982661012257872014-12-08T15:27:00.004+09:002014-12-08T15:30:01.471+09:00Hackathonに参加しよう {Aizu Advent Calendar 2014 [8]日目}こんにちは。<br />
<h2>
<span style="font-size: x-large;">
1.template</span></h2>
<div>
==============================</div>
この投稿は <a href="http://www.adventar.org/calendars/533">Aizu Advent Calendar 2014</a>の[8]日目の記事です。<br />
次の人<br />
@C_C_panchiga<br />
前の人<br />
@Mopp_jp<br />
<div>
<a href="http://ac-mopp.blogspot.jp/2014/12/os-2.html">もぷろぐ: 自作OSでのプロセス実装について (2) ~初めてのユーザプロセス~</a><br />
<div>
==============================<br />
<br />
<br />
<h2>
<span style="font-size: x-large;">
2.内容</span></h2>
</div>
</div>
<div>
今回、2回目のAizu Advent Calendar参加となるが今回は今まで参加してきたHackathonについて書こうと思う。</div>
<div>
この記事を見てくれた人が一人でも多くHackathonに参加する事がこの記事の目的である。<br />
<br />
<br />
<br /></div>
<h2>
<span style="font-size: x-large;">
3.Hackathonとは</span></h2>
<blockquote class="tr_bq">
<b style="background-color: white; color: #252525; font-family: sans-serif; font-size: 15px; line-height: 24.1664009094238px;">ハッカソン</b><span style="background-color: white; color: #252525; font-family: sans-serif; font-size: 15px; line-height: 24.1664009094238px;">(</span><a href="http://ja.wikipedia.org/wiki/%E8%8B%B1%E8%AA%9E" style="background: none rgb(255, 255, 255); color: #0b0080; font-family: sans-serif; font-size: 15px; line-height: 24.1664009094238px; text-decoration: none;" title="英語">英語</a><span style="background-color: white; color: #252525; font-family: sans-serif; font-size: 15px; line-height: 24.1664009094238px;">: </span><span lang="en" style="background-color: white; color: #252525; font-family: sans-serif; font-size: 15px; line-height: 24.1664009094238px;" xml:lang="en">hackathon</span><span style="background-color: white; color: #252525; font-family: sans-serif; font-size: 15px; line-height: 24.1664009094238px;">、別名:</span><span lang="en" style="background-color: white; color: #252525; font-family: sans-serif; font-size: 15px; line-height: 24.1664009094238px;" xml:lang="en">hack day</span><span style="background-color: white; color: #252525; font-family: sans-serif; font-size: 15px; line-height: 24.1664009094238px;">,</span><span lang="en" style="background-color: white; color: #252525; font-family: sans-serif; font-size: 15px; line-height: 24.1664009094238px;" xml:lang="en">hackfest</span><span style="background-color: white; color: #252525; font-family: sans-serif; font-size: 15px; line-height: 24.1664009094238px;">,</span><span lang="en" style="background-color: white; color: #252525; font-family: sans-serif; font-size: 15px; line-height: 24.1664009094238px;" xml:lang="en">codefest</span><span style="background-color: white; color: #252525; font-family: sans-serif; font-size: 15px; line-height: 24.1664009094238px;">)とは</span><a href="http://ja.wikipedia.org/wiki/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E9%96%8B%E7%99%BA" style="background: none rgb(255, 255, 255); color: #0b0080; font-family: sans-serif; font-size: 15px; line-height: 24.1664009094238px; text-decoration: none;" title="ソフトウェア開発">ソフトウェア開発</a><span style="background-color: white; color: #252525; font-family: sans-serif; font-size: 15px; line-height: 24.1664009094238px;">分野の</span><a href="http://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E" style="background: none rgb(255, 255, 255); color: #0b0080; font-family: sans-serif; font-size: 15px; line-height: 24.1664009094238px; text-decoration: none;" title="プログラマ">プログラマ</a><span style="background-color: white; color: #252525; font-family: sans-serif; font-size: 15px; line-height: 24.1664009094238px;">や</span><a href="http://ja.wikipedia.org/wiki/%E3%82%B0%E3%83%A9%E3%83%95%E3%82%A3%E3%83%83%E3%82%AF%E3%83%87%E3%82%B6%E3%82%A4%E3%83%8A%E3%83%BC" style="background: none rgb(255, 255, 255); color: #0b0080; font-family: sans-serif; font-size: 15px; line-height: 24.1664009094238px; text-decoration: none;" title="グラフィックデザイナー">グラフィックデザイナー</a><span style="background-color: white; color: #252525; font-family: sans-serif; font-size: 15px; line-height: 24.1664009094238px;">、</span><a href="http://ja.wikipedia.org/wiki/%E3%83%A6%E3%83%BC%E3%82%B6%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%95%E3%82%A7%E3%83%BC%E3%82%B9%E8%A8%AD%E8%A8%88" style="background: none rgb(255, 255, 255); color: #0b0080; font-family: sans-serif; font-size: 15px; line-height: 24.1664009094238px; text-decoration: none;" title="ユーザインタフェース設計">ユーザインタフェース設計者</a><span style="background-color: white; color: #252525; font-family: sans-serif; font-size: 15px; line-height: 24.1664009094238px;">、</span><a href="http://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%83%9E%E3%83%8D%E3%83%BC%E3%82%B8%E3%83%A3" style="background: none rgb(255, 255, 255); color: #0b0080; font-family: sans-serif; font-size: 15px; line-height: 24.1664009094238px; text-decoration: none;" title="プロジェクトマネージャ">プロジェクトマネージャ</a><span style="background-color: white; color: #252525; font-family: sans-serif; font-size: 15px; line-height: 24.1664009094238px;">らが集中的に共同作業をする</span><a href="http://ja.wikipedia.org/wiki/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2" style="background: none rgb(255, 255, 255); color: #0b0080; font-family: sans-serif; font-size: 15px; line-height: 24.1664009094238px; text-decoration: none;" title="ソフトウェア">ソフトウェア</a><span style="background-color: white; color: #252525; font-family: sans-serif; font-size: 15px; line-height: 24.1664009094238px;">関連プロジェクトのイベントである</span><sup class="reference" id="cite_ref-the_hackathon_is_on_1-0" style="background-color: white; color: #252525; font-family: sans-serif; line-height: 1em; unicode-bidi: -webkit-isolate;"><a href="http://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%83%E3%82%AB%E3%82%BD%E3%83%B3#cite_note-the_hackathon_is_on-1" style="background: none; color: #0b0080; text-decoration: none; white-space: nowrap;">[1]</a></sup><span style="background-color: white; color: #252525; font-family: sans-serif; font-size: 15px; line-height: 24.1664009094238px;">。</span><span style="background-color: white; font-family: Arial; font-size: 14px; line-height: 16.7999992370605px;">quote from </span><span style="background-color: white; color: #252525; font-family: sans-serif; font-size: 15px; line-height: 24.1664009094238px;">Wikipedia</span><span style="background-color: white; color: #252525; font-family: sans-serif; font-size: 15px; line-height: 24.1664009094238px;"><br /></span></blockquote>
<div>
とあるが、簡単にいえばIT系が集う<span style="color: red;">お祭り</span>である。様々な分野の人が一カ所に集い、</div>
<div>
アイディアを出して実装、プレゼンをする祭りである。</div>
<h2>
</h2>
<h2>
<span style="font-size: x-large;">
4.Hackathonの主な流れ</span></h2>
<div>
実際に参加してきたHackathonの流れを紹介する。</div>
<div>
基本的に48時間の物が大半。</div>
<div>
<br /></div>
<div>
<ol>
<li>集合</li>
<div>
大体のものは午前中に受付をする。遠い場所で開催する場合は交通費が出る場合もあるので前泊も辞さないスタイルで行こう。</div>
<div>
<br />
<br />
<br />
<li>情報の共有</li>
</div>
<div>
ここでお題が発表される。下にまとめるが様々な規模、種類なので運営からアイディア出しの手助けとして講演がある場合がある。</div>
<br />
<li>アイディアソン</li>
<div>
基本的にHackathonは新しいプロダクトの創生や課題解決を目的にしているのでアイディアを出す事が重要となっている。ココでアイディアを出し、共有する事で素晴らしいコンテンツが生まれる。</div>
<div>
<br /></div>
<li>チームBuild</li>
<div>
事前にチームで登録し、参加する形が多いが、新しい視点を入れる為&弱い部分を補強する為、同じアイディアを持つ物で集まる等あるのでチーム編成を行う。</div>
<div>
個人的な意見だがHackathon終了後も継続して開発を続けていく場合、遠距離の人とチームになると苦しむと思う。</div>
<div>
<br /></div>
<li>開発</li>
<div>
開発 寝るな、書け 17時間ほど</div>
<div>
<br />
<br />
<br />
<li>プレゼン</li>
</div>
</ol>
<div>
Hackathonまとめのプレゼンである。<br />
ここで自分達の作ってきた物を紹介しなければならない。<br />
基本的に5分である。5分なので要点をしぼって、発表しなければならない。<br />
<br />
<br />
<h2>
<span style="font-size: x-large;">
5.Hackathonに参加して</span></h2>
</div>
</div>
<div>
上の方で基本的な流れを書いたが”5.開発”がとても混沌とする場合が多い。</div>
<div>
アイディアがうまくまとまらなくモチベーションが上がらないまま開発に入ると、仕様変更の波が押し寄せるし自分も仕様に疑問を持ち仕様を変更する。</div>
<div>
アイディアは面白いが技術力的にとてもつらい場合は死にそうになりながら実装する、その場合2:00~3:00頃確実におかしくなる。以下一例</div>
<div>
<ul>
<li>PCたたきながら歌を歌い始める奴</li>
<li>ゴロゴロといきなり寝転ぶ奴</li>
<li>レットブルとアイスクリームを混ぜてレットブルフロート作り出す奴</li>
<li>謎の言葉を残して倒れる奴</li>
<li>唐突にアニメ鑑賞会を始める奴</li>
</ul>
</div>
<div>
それに加えて PC抱いて床に寝てる人などがいるのでとても地獄な感極まる。大抵自分もおかしくなっているので気にしていない。<br />
<br />
<br /></div>
<div>
<h2>
<span style="font-size: x-large;">6.今まで参加してきたHackathon</span></h2>
</div>
<div>
<ul>
<li><a href="https://atnd.org/events/15434">Hack For Japan (2011/5/21) </a> </li>
初のHackathonだったが課題解決を目標に行われた。Androidのアプリを書いた記憶がある。(どうでもいいけど今見ると知り合いがたくさん参加してる)高校2年
<li><a href="http://blog.hack4.jp/2014/03/hack-for-town-in-aizu.html">Hack for Aizu</a></li>
雪がひどかった。電車が止まり人が集まらないというなかなか不思議な感じだった。回線が強くなかったのでデザリングを駆使した。<br />
当時の最新謎ガジェットに触れる事ができたのと、そばが食べれたので良かった。<br />
様々な地域の人が集まったが内輪な空気で皆わいわい開発できた。大学1年
<li><a href="http://health2con.jp/">Medical×Security Hackathon</a></li>
自分の立ち位置等いろいろふまえて特殊だった。
今まで参加した中では一番競技色強くオシャレな物だった。SecurityHackathonというジャンルはなかなかないし、面白い。夕食とコーヒーがおいしかった。3Dプリンタ、医療機材等貴重な機械に触れられた。
<li><a href="http://everevo.com/event/11567">外国人観光者を八王子に呼ぶ!アプリ開発ハッカソン</a></li>
八王子に行ってきた。内容はプロダクトのコンセプトや市場価値をどうやってつけるか?等マネタイズ関係の物だったので良い刺激になった。この時一人で参加して、会場でメンバーを作ったが、案外うまく進んだ。アイドルがいるHackathonというものに初めて出会った。
<li><a href="http://www.spajam.jp/">SPAJAM</a></li>
<div>
温泉に入りながら開発をするHackathon。千葉の田舎の方に行ってきた。無限(有限)にお菓子が出てくる。温泉に入り放題、食事がおいしい、ととても素晴らしいHackathonだった。さすが運営団体がMCFだけある。</div>
<div>
運営の目的がモバイル業界の活性化だったのでアイディア出しの所に力が入っていた。チーム参加なのもそういう事があるからなのだろう。</div>
<li><a href="http://peatix.com/event/52344/">Global Hack with Mashape(ドコモ主催)</a></li>
<div>
APIが潤沢、でも日本のデータがすくないという物だった。残念。</div>
<div>
Docomo主催だけ合って講演、設備等かなり豪華だった。</div>
<div>
APIを使うものという事でソフトウェア開発だと思ったら思いのほかハード開発をする人が多かった。</div>
<li><a href="http://jp.techcrunch.com/events/techcrunch-tokyo-2014/hackathon2014/">TechCrunch Tokyo Hackathon 2014</a></li>
規模が結構でかかった。API、ガジェットの数が多いし参加人数が160人以上。お台場の端で行われたが隣に大江戸温泉が合ってよかった。
TechCrunchなのでかなり熱く面白いHackathonだった。回線が良くなかったのが残念。EdisonだったりPepper君だったり今話題のハードから、朝日新聞の新聞データ、楽天の商品データなど膨大なデータに触れる形だった。来年も参加したい。</ul>
<div>
<br /></div>
<div>
<br /></div>
<div>
<h2>
<span style="font-size: x-large;">7.Hackathon参加のメリット</span></h2>
<div>
何故、自分からプチブラック体験会に参加するのかというと当然メリットがあるからである。なかったらどう見ても寿命縮めているし家でのんびりしていた方が身の為である。</div>
<div>
メリット</div>
<ul style="-webkit-text-stroke-width: 0px; color: black; font-family: 'Hiragino Kaku Gothic Pro'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<li>スポンサーのお菓子が食べ放題。夕食、朝食などが出る物もあるので良い</li>
<li>企業のAPIやハードを無料で触れるので面白い物がつくれる</li>
<li>異業種の人と仲良くなれる。<b>男女共に</b></li>
<li>暇つぶしになる。Hackathonを口実に周辺を観光しても良い</li>
<li>ひょっとしたら賞がもらえる。たまに凄い物がもらえる</li>
<li>Hackathon駆動開発によって進捗が進捗がでる。今のところ100%出てる</li>
</ul>
<div>
なにげに勉強会などに参加するより圧倒的に進捗でる。</div>
</div>
</div>
<div>
プロトタイプで良いのでsapmleを触る。</div>
<div>
限られた時間と言う状況なので完成度を捨てて動く物を作る。</div>
<div>
と言う事が進捗へつながるのでは。</div>
<div>
<b><span style="font-size: large;">Hackathon技術開拓</span></b>やりましょう!!。</div>
<div>
特にハード系はベンダーが大抵いるので始めるきっかけとしては十分。</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<h2>
<span style="font-size: x-large;">8.まとめ</span></h2>
</div>
<div>
<b>技術無いから参加しない -></b></div>
<div>
アイディア出しは誰でもできる。お茶汲みも誰でもできる。</div>
<div>
sampleの組み合わせでも問題無いのでPCもって参加すれば何とかなる</div>
<div>
実際は技術力はそんなに必要ではなくアイディアを実現できる程度の能力があれば良い</div>
<div>
<b>お金ない-></b></div>
<div>
交通費出るHackathonに参加すれば良い</div>
<div>
結果的に見れば食事に宿泊費にいろいろお得</div>
<div>
<b>人前で話せない-></b></div>
<div>
話せる人を連れて行くか、demo動画を撮る。</div>
<div>
まず、人前でうまく話せる人は半分ほどなので気にしない</div>
<div>
<br /></div>
<div>
とりあえず祭り感覚で参加すればお得。</div>
<div>
会津はなにげにHackathonが多いので3人程度で参加すれば面白いと思う。</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<div>
==============================</div>
次の人<br />
@C_C_panchiga<br />
よろしくお願いします。<br />
<div>
<div>
==============================</div>
</div>
</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/09858036699878356997noreply@blogger.com0tag:blogger.com,1999:blog-3008868861098968428.post-7135860224070103052014-12-08T01:05:00.000+09:002015-01-09T17:03:39.730+09:00Playground KLab との格闘記録<br />
こんばんは。<br />
<br />
Klabさんの素晴らしいゲームエンジン<a href="https://github.com/KLab/PlaygroundOSS">PlaygroundOSS</a>が個人的に難しいと話題に<br />
2014/12/7<br />
とりあえずsample表示ぐらいはしたかった。<br />
<br />
<br />
という事で現在の進捗<br />
<h2>
<span style="font-size: large;">0.研究環境&対象OS</span></h2>
<div>
<b>Mac OS X 10.9.5</b></div>
<div>
<b>Android Studio 1.0 RC1</b></div>
<div>
<b>Android NDK 10d</b></div>
<div>
=============</div>
<div>
<b>Nexus5</b></div>
<div>
<b>Android 5.0 Lollipop </b></div>
<div>
<br /></div>
<div>
ADTは今年のI/O的に積極的にさけた方が良いと思っているので</div>
<div>
早くAndroidStudio対応Docくだしあ><</div>
<div>
<br /></div>
<h2>
<b><span style="font-size: large;">1.いろいろインストール</span></b></h2>
<br />
<ul>
<li><a href="https://developer.android.com/tools/sdk/ndk/index.html">Android NDK</a> より <span style="background-color: white; color: #222222; font-family: Roboto, sans-serif; font-size: 14px; line-height: 19px;">Mac OS X 64-bit </span><a href="http://android-ndk-r10d-darwin-x86_64.bin/">android-ndk-r10d-darwin-x86_64.bin</a></li>
<li><a href="https://developer.android.com/sdk/installing/studio.html">developer.android.com</a> よりAndroid Studio (<a href="http://tools.android.com/recent">tools.android.com</a>で最新版は手に入る)</li>
<li>Path を通す</li>
</ul>
<br />
<div>
<span style="font-family: Courier New, Courier, monospace;">export ANDROID_NDK_ROOT</span><span style="font-family: 'Courier New', Courier, monospace;">="/{落とした場所}/android-ndk-r10d"</span></div>
<div>
<div class="p1">
<span style="font-family: 'Courier New', Courier, monospace;">PATH=$PATH:$ANDROID_NDK_ROOT</span></div>
<div class="p1">
<span style="font-family: inherit;"><br /></span></div>
<div class="p1">
<span style="font-family: inherit;">上の2行を.profileというファイル名で~/の中にかいておく。</span></div>
</div>
<div>
<span style="font-family: inherit;">公式DocではSDKのインストールをしていたがAndroidStudioを使うのでいりません。</span></div>
<div>
とりあえず</div>
<blockquote class="tr_bq">
<span style="background-color: white;">$ndk-build</span></blockquote>
<div>
と入力して「Android NDK: Could not find application project directory !」的な結果が帰ってきたら大丈夫です。</div>
<div>
<br /></div>
<div>
<h2>
<span style="font-size: x-large;">2.cloneする</span></h2>
とりあえずgitは入れておこう<br />
<blockquote class="tr_bq">
$git clone https://github.com/KLab/PlaygroundOSS.git</blockquote>
<h2>
</h2>
<h2>
<span style="font-size: x-large;">3.Buildする</span></h2>
<span style="font-weight: normal;"><span style="font-size: small;">Playgroundの中に入る</span></span><br />
<blockquote class="tr_bq">
$cd /{落とした場所}/PlaygroundOSS/Engine/porting/Android/GameEngine-android</blockquote>
<div>
permissionの設定</div>
<blockquote class="tr_bq">
$chmod +x ./build.py</blockquote>
build実行<br />
<blockquote class="tr_bq">
$./build.py --rebuild --project SampleProject</blockquote>
(イミワカンナイ感あるがSampleProjectでないと怒られる。イミワカンナイ)<br />
<h2>
<span style="font-size: x-large;">4.AndroidStudioで開く</span></h2>
<div>
AndroidStudio 起動 -> Import Project -><br />
/{落とした場所}/Engine/porting/Android/GameEngine-androidを選択</div>
<div>
<br /></div>
<div>
当然いい感じに開ける。</div>
<div>
とりあえず、もろもろ準備</div>
<div>
<div>
local.propertiesにsdkの場所が書いてあるはずなのでその下にndkの場所も追加する。</div>
<blockquote class="tr_bq">
ndk.dir=/{落とした場所}/android-ndk-r10dandroid-ndk-r10d</blockquote>
Gradeを走らせる。こける。<br />
<br />
箇所1</div>
<div>
<div>
修正前のコード<br />
<table class="highlight tab-size-8 js-file-line-container" style="background-color: white; border-collapse: collapse; border-spacing: 0px; box-sizing: border-box; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif, 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 13px; line-height: 18.2000007629395px; tab-size: 8;"><tbody style="box-sizing: border-box;">
<tr style="box-sizing: border-box;"></tr>
<tr style="box-sizing: border-box;"><td class="blob-code js-file-line" id="LC69" style="box-sizing: border-box; overflow: visible; padding: 0px 10px; position: relative; vertical-align: top;"></td></tr>
</tbody></table>
</div>
<blockquote class="tr_bq">
dependencies {<br />
classpath 'com.android.tools.build:gradle:0.6.+'<br />
}</blockquote>
<div>
修正後のコード<br />
<table class="highlight tab-size-8 js-file-line-container" style="background-color: white; border-collapse: collapse; border-spacing: 0px; box-sizing: border-box; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif, 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 13px; line-height: 18.2000007629395px; tab-size: 8;"><tbody style="box-sizing: border-box;">
<tr style="box-sizing: border-box;"></tr>
<tr style="box-sizing: border-box;"><td class="blob-code js-file-line" id="LC69" style="box-sizing: border-box; overflow: visible; padding: 0px 10px; position: relative; vertical-align: top;"></td></tr>
</tbody></table>
</div>
<blockquote class="tr_bq">
dependencies {<br />
classpath 'com.android.tools.build:gradle:0.14.4'<br />
}</blockquote>
<div>
箇所2</div>
修正前のコード<br />
<blockquote class="tr_bq">
compileSdkVersion 17<br />
buildToolsVersion "18.1.0"</blockquote>
</div>
<div>
修正後のコード<br />
<blockquote class="tr_bq">
compileSdkVersion 21<br />
buildToolsVersion "21.0.2"</blockquote>
</div>
<div>
箇所3<br />
修正前のコード</div>
<div>
<blockquote class="tr_bq">
tasks.withType(com.android.build.gradle.tasks.PackageApplication) {<br />
pkgTask -> pkgTask.jniDir new File(projectDir, 'libs')<br />
}</blockquote>
修正後のコード<br />
<blockquote class="tr_bq">
tasks.withType(com.android.build.gradle.tasks.PackageApplication) {<br />
pkgTask -><br />
pkgTask.jniFolders = new HashSet<File>()<br />
pkgTask.jniFolders.add new File(projectDir, 'libs')<br />
}</blockquote>
多分jniDirがないだかで怒られるはず。</div>
<div>
で、上の修正した後gradeを走らせると落ちる。落ちた。</div>
<div>
<span style="color: red;">/*今回ごり押しでやったので落ち着いたら別の方法を載せる予定*/</span></div>
<div>
なので落ちた部分をコメントアウトしてgradeはしらせて成功したあとコメントアウトを外してもう一回gradeを走らせた。</div>
<div>
コメントアウトした箇所は</div>
<div>
<blockquote class="tr_bq">
/*<br />
if(new File(projectDir, "jni").exists()){<br />
tasks.withType(Compiler) {<br />
compileTask -> compileTask.dependsOn ndkBuild<br />
}<br />
tasks.withType(com.android.build.gradle.tasks.PackageApplication) {<br />
pkgTask -><br />
pkgTask.jniFolders = new HashSet<File>()<br />
pkgTask.jniFolders.add new File(projectDir, 'libs')<br />
}<br />
clean.dependsOn 'ndkClean'<br />
clean.dependsOn 'libsClean'<br />
}<br />
*/</blockquote>
である。 多分Buildはできたはず。<br />
<br />
<div>
<pre style="border-radius: 3px; box-sizing: border-box; font-stretch: normal; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;"><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 3px; box-sizing: border-box;"><span style="font-size: x-large;">
</span></span><h2>
<span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 3px; box-sizing: border-box;"><span style="font-size: x-large;">5.Assetsの追加</span></span></h2>
<span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 3px; box-sizing: border-box;"><span style="font-size: x-large;">
</span><code><span style="color: #333333; font-family: Consolas, Liberation Mono, Menlo, Courier, monospace;"><span style="font-size: 14px; line-height: inherit;">$cd /PlaygroundOSS/Tutorial/01.SimpleItem/.publish/android/
$zip -r -0 /PlaygroundOSS/Engine/porting/Android/GameEngine-android/assets/AppAssets.zip ./*
$echo -n "1" > /Playground0SS/Engine/porting/Android/GameEngine-android/assets/version ./*</span></span></code></span></pre>
</div>
公式のDocのまま。echoの数字はバージョン番号で、変更が合ったら数字をかえよう。<br />
できた、AppAssets.zipとversionをAndroidStudio上でassetsというディレクトリを作って放り込む。階層はGameEngine-android直下にした。<br />
<h2>
</h2>
<h2>
<span style="font-size: x-large;"><br /></span><span style="font-size: x-large;">6.コードの修正</span><span style="font-size: x-large;"><br /></span></h2>
<span style="font-size: small;">やはりか、という感じでエラーが起きる。イミワカンナイ!ダレカタスケテー!</span></div>
</div>
<h3 class="r" style="margin: 0px; overflow: hidden; padding: 0px; text-overflow: ellipsis;">
<span style="background-color: transparent; color: #222222; font-family: arial, sans-serif; font-size: 18px; font-weight: normal; white-space: nowrap;"> </span><span style="font-weight: normal;"><span style="font-size: x-small;"><br /></span></span><blockquote>
<span style="font-weight: normal;"><span style="font-size: x-small;">Process: klb.android.GameEngine, PID: 31119</span></span><span style="font-weight: normal;"><span style="font-size: x-small;"> java.lang.RuntimeException: createContext failed: EGL_BAD_MATCH<br /> </span></span><span style="font-weight: normal;"><span style="font-size: x-small;"> at android.opengl.GLSurfaceView$EglHelper.throwEglException(GLSurfaceView.java:1192)<br /> </span></span><span style="font-weight: normal;"><span style="font-size: x-small;"> at android.opengl.GLSurfaceView$EglHelper.throwEglException(GLSurfaceView.java:1183)<br /> </span></span><span style="font-weight: normal;"><span style="font-size: x-small;"> at android.opengl.GLSurfaceView$EglHelper.start(GLSurfaceView.java:1033)<br /> </span></span><span style="font-weight: normal;"><span style="font-size: x-small;"> at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1400)<br /> </span></span><span style="font-weight: normal;"><span style="font-size: x-small;"> at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1239)</span></span> </blockquote>
<span style="font-weight: normal;"><br /><br />で。このエラーを解決するのに時間を無駄にしたのだが結論は<br />klb.android.GameEngine.GameGLSurfaceView内の54行目あたりにある</span><blockquote class="tr_bq">
<span style="font-weight: normal;">PFInterface pfif = PFInterface.getInstance();</span><span style="font-weight: normal;">int glver = pfif.getGLVersion();</span><span style="font-weight: normal;">setEGLContextClientVersion(glver);</span></blockquote>
で、glverが-1を返していた。<br />
setEGLContextClientVersion(2);のコメントアウトを外したら動いた。<br />
<br />
画面が黒い。Assetが表示されない<-今ココ<br />
<span style="font-weight: normal;"><h3 class="r" style="margin: 0px; overflow: hidden; padding: 0px; text-overflow: ellipsis;">
<span style="font-weight: normal;"><br /></span></h3>
<h3 class="r" style="margin: 0px; overflow: hidden; padding: 0px; text-overflow: ellipsis;">
<span style="font-weight: normal;"><br /></span></h3>
という訳で</span><span style="font-size: large;">ダレカタスケテー!</span></h3>
<h3 class="r" style="margin: 0px; overflow: hidden; padding: 0px; text-overflow: ellipsis;">
<span style="font-weight: normal;"><br /></span>
</h3>
Anonymoushttp://www.blogger.com/profile/09858036699878356997noreply@blogger.com0tag:blogger.com,1999:blog-3008868861098968428.post-28793902422661264612014-10-24T02:29:00.000+09:002014-11-10T13:43:43.230+09:00Androidアプリを作るときのLog表示のメモ
いつも同じクラスを使っているので。
<pre class="brush: java;">
import android.util.Log;
public class LogUtils {
public static String getTag(Object o){
return o.getClass().getSimpleName();
}
public static void putD(Object o,String msg){
Log.d(getTag(o),msg);
}
public static void putE(Exception e){
e.printStackTrace();
}
}
</pre>
つかいかた
<pre class="brush: java;">
LogUtils.putD(this,"test");
</pre>
結構便利
Anonymoushttp://www.blogger.com/profile/09858036699878356997noreply@blogger.com0tag:blogger.com,1999:blog-3008868861098968428.post-84308856882152523722014-10-15T08:49:00.000+09:002014-10-24T02:30:07.443+09:00Python FLASK でAPI(準備編)
PythonでREST API作りたくなったのでとりあえず、準備
<pre class='brush:python;'>
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import json
from functools import wraps
from flask import Flask, jsonify, request, url_for, abort, Response
app = Flask(__name__)
user = {'name': 'Mizuki',
'twitter':'@Mizuki_Sonoko',
'like':('Android','python','AWS'),
'location':'Aizu',
'school':'University of Aizu',
'comments':'I will add useless apis.',
'apis':()}
@app.route('/', methods=['GET'])
def index():
response = jsonify({'introduction': user})
response.status_code = 200
return response
</pre>
<pre class='brush:python'>
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import json
from functools import wraps
from flask import Flask, jsonify, request, url_for, abort, Response
app = Flask(__name__)
user = {'name': 'Mizuki',
'twitter':'@Mizuki_Sonoko',
'like':('Android','python','AWS'),
'location':'Aizu',
'school':'University of Aizu',
'comments':'I will add useless apis.',
'apis':()}
@app.route('/', methods=['GET'])
def index():
response = jsonify({'introduction': user})
response.status_code = 200
return response
</pre>
動いたAnonymoushttp://www.blogger.com/profile/09858036699878356997noreply@blogger.com0tag:blogger.com,1999:blog-3008868861098968428.post-54361640021362368722014-09-30T17:44:00.001+09:002014-10-01T01:49:46.304+09:00東京メトロアプリコンテスト用メモ<br />
<br />
以下のようなコンテストに出すアプリ用メモ<br />
<a href="http://tokyometro10th.jp/future/opendata/">東京メトロアプリコンテスト公式サイト</a>
<br />
<br />
<br />
<span style="font-size: large;">1.Volleyについて</span><br />
取り合えずVolleyとAsyncTaskでデータを取ってみようとするも、文字化け<br />
<br />
com.android.volley.toolbox.BasicNetwork<br />
のperformRequest関数内でレスポンスヘッダを取る場所に<br />
<br />
<pre class="brush: java;">responseHeaders = convertHeaders(httpResponse.getAllHeaders());
/* 追加ポイント*/
responseHeaders.put("Content-Type","application/json;charset=utf-8");
</pre>
という形で強引にUTF-8にした。<br />
<br />
Volleyは com.android.volley.toolbox.JsonObjectRequestを覗くと分かるように<br />
new JSONObject(jsonString)とorg.jsonを利用している。
<br />
今回、JSON-LDなので、急遽<a href="https://github.com/jsonld-java/jsonld-java">jsonld-java</a>を導入した。<br />
<br />
=======================<br />
<br />
<span style="color: blue;">結論としてVolleyを使うと逆に面倒な感じになるっぽいので</span><br />
<span style="color: blue;">HttpClientを使ってやることにした。</span><br />
<span style="color: blue;"><br /></span>
<span style="color: blue;"><br /></span>
<span style="color: blue;"><br /></span>
<span style="font-size: large;">2.jsonld-javaについて</span><br />
<a href="https://github.com/jsonld-java/jsonld-java">jsonld-java</a>←これ<br />
<br />
いろいろ面倒な感じではまったのでメモ<br />
普通にApacheのHttpClientを使う形だったのだが、httpcomponents-client-4.3.5<br />
だけを入れるとエラーが起こった。どうも内部で存在しないクラスを参照してるようだ。<br />
ぐぐったら4.1を使ってねとか言われたので謎だったが4.1を入れてみる。<br />
エラーが発生<br />
<br />
今度は別の問題が発生。moudameda<br />
<br />
多分ソースを自分でBuildすればいいんだろうなとおもいつつ、4.1と4.3を併用したら<br />
動いた。<br />
libs/<br />
・commons-codec-1.6 (from 4.3.5)<br />
・commons-logging-1.1.3 (from 4.3.5)<br />
・fluent-hc-4.3.5 (from 4.3.5)<br />
・httpclient-4.1 (from 4.1)<br />
・httpclient-cache-4.1 (from 4.1)<br />
・httpmine-4.3.5 (from 4.3.5)<br />
・jackson-annotation-2.5.0<br />
<div>
・jackson-core-2.5.0</div>
<div>
・jackson-databind-2.5.0</div>
<div>
※JSONLD-javaの内部でJacksonが使われている<br />
<br /></div>
<div>
あと</div>
<div>
jsonldjava.core.DocumentLoaderの getDefaultHttpClient()関数内で</div>
<div>
<div>
<br /></div>
<div>
final DefaultHttpClient client = new SystemDefaultHttpClient();</div>
</div>
<div>
<br /></div>
<div>
という文があるのだがSystemDefaultHttpClient()関数が</div>
<div>
見当たらないので</div>
<div>
<br /></div>
<div>
final DefaultHttpClient client = new DefaultHttpClient();</div>
<div>
<br /></div>
<div>
と書き換えたら普通に動いた。</div>
<div>
<br />
使ったライブラリの場所<br />
HttpClient <a href="http://archive.apache.org/dist/httpcomponents/httpclient/">archive.apache.org</a> <br />
JSON-LD <a href="https://github.com/jsonld-java/jsonld-java">jsonld-java</a><br />
Jackson <a href="https://oss.sonatype.org/content/repositories/snapshots/com/fasterxml/jackson/core/">oss.sonatype.org</a></div>
<div>
良く分からないので、リリース時には変える予定。</div>
Anonymoushttp://www.blogger.com/profile/09858036699878356997noreply@blogger.com0