2012年6月29日金曜日
[キーボードON/OFFモニタ]試用運転中
これ、意外といい感じになってきた。
電池もそんなに喰わない。
DeepSleepもちゃんと入るし。
ただ、ネックなのは下の2点
①「擬似的に」キーボードのON/OFFを判断している
②Viewのクラス名しか取れない
あくまで「擬似的に」なので、バックボタン等でキーボードを消した場合の判断が出来ない。
ただコレに関しては今のところそんなに不都合とは思わないかなぁ。
OpenWnnに実装した奴のほうが精度がいい(もちろんだけど)から、気持ち比較してしまう。
でも、まぁ許せる範囲。
問題は、こっち。
「クラス名」しか取得できない。
まぁ、人様のアプリの中の独自クラスのオブジェクトなんて取れるわけないから仕方ないんだけど、このアプリは今のフォーカスが入力項目にあるかどうかを判断=キーボード表示中としているから、現フォーカスが入力項目かどうかの判断が必須になってくる。
android標準の入力項目(以下)で作成されているアプリは問題ないんだけど、カスタムビュー作っちゃってると判断できない。
・android.widget.EditText
・android.widget.MultiAutoCompleteTextView
・android.widget.AutoCompleteTextView
・android.webkit.WebTextView
今、自分の端末でカスタムビューが確認できているのは以下
・SPモードメール
・G+
自分があんまりアプリ入れてないから参考にならないかもだけど、よく使いそうな奴らは試してみた。
絵文字出したり、ユーザ名を補完したりとかやっているのはカスタムビュー率高い。
コレをどうするかだよなぁ。
もう割り切って、動かないのがあったらコメ欄にアプリ名書いてもらうっていう状態で公開しちゃおうかなぁ。
まぁ、自分が使っている分にはぜんぜん問題ないので、来週頭にでも公開してみる。
2012年6月27日水曜日
[SwipeStarter]キーボード表示/非表示時のブロードキャストについて
すごいの思いついたからためしに作ってみた。
今調べてみたけど、まだこういったアプリは無いはず。
今日以降、類似アプリがアップされたらパクリねw
オレが一番最初~!
EditTextをモニタしてEditTextにフォーカスが来た場合IMEが表示されているものとして、先のブログで定義したブロードキャストを投げるっていうもの。
アプリ自体は以下リンクにアップして有ります。
https://github.com/ToraMamma/EditTextMonitor
上記リンクからAPKダウンロードしてインストール後、「端末の設定画面」→「ユーザ補助」→「EditTextMonitor」をチェック。
人柱結果報告 or 改善要望ある方は、メールで報告してください。
簡単に言うと、アクセシビリティサービスのフィードバックを元にキーボードの表示/非表示を判断するっていうものなんだけど、問題がいくつか。
①フォーカスがあたった際のViewオブジェクトが名前しか取れないため、カスタムView使われると判定できない。
→もうちょっと調査。
Twiccaでばっちり動くことを確認。
SPモード動かないことを確認。
②たぶん、電池ものっそい食べる気がする。
→今日から1週間とか使ってみて改善予定。
常用に耐えうる値をたたき出したらば、マーケットにあげようかな。
今のところ、結構いい感じの動きしてるw
お試しアレ!
2012年6月25日月曜日
[SwipeStarter]ICSのハードウェアキー
一応直してリリースした。
お待たせしました。(Root化をサボってたツケが。。)
OSバージョンアップに伴ってプロセスの取得方法が変更になってたみたい。
一応、NEXUSで確認したけど、大丈夫かなぁ。
あ、あとちょっと遅いかも。
高速版のコマンドが動かなかったので保留した。
要望がくれば直す(自分がICSじゃないからって)
でも、ちょっとまた仕事が忙しくなってきたので眠りにつこうかな。
バグ対応はするけど。
ドロン。
2012年6月22日金曜日
[SwipeStarter]やっとGalaxyNexusのroot化完了
たし蟹、ハードキーイベントが実行できないですね。
って、、、、いろいろと見てたけど、ぜんぜん動き違う。
これって、サービスからsuのプロセスでinputコマンド実行してるだけなんだけど、それがうまく反映されない。。
これがGalaxy S2のログ
DEBUG/su(18373): 10132 tora.mamma.swipestart.HardKeyEvent executing 0 exec input keyevent 82
DEBUG/su(18373): using shell /system/bin/sh : sh
INFO/SendKeyEvent(18376): 82
INFO/InputDispatcher(2751): Delivering key to current input target: action: 0, channel '40ecb958 sx4s9xdw.stoichome/sx4s9xdw.stoichome.StoicHomeActivity (server)'
こっちがNexusのログ
DEBUG/su(3063): 10065 tora.mamma.swipestart.HardKeyEvent executing 0 exec input keyevent 82
DEBUG/su(3063): using shell /system/bin/sh : sh
INFO/Process(3050): Sending signal. PID: 3050 SIG: 9
INFO/ActivityManager(213): Process tora.mamma.swipestart.HardKeyEvent (pid 3050) has died.
えっっ!
自分に投げてる??
コレはプロセスの問題かな。
来週だな、来週。
やってるよアピールはこの辺にして今日は帰ります。
よい週末を!
[WailtcancelHome]ごめんなさい!バグがあった!
ごめんなさい。
ウェイトキャンセルホームにバグがありました。
マーケットのコメントに「完全じゃないけど・・・」的なのが多かったので、何のことを言っているんだろうと思ったんです。
先日タレコミいただきまして、状況把握。
※この対応じゃなかったらごめんだけどw
ホームアプリの機能を利用中にホームボタンを押しても機能しない。
例)ホームのドロワー表示中にホームボタンでホームに戻らない。
コレバグです。
アクションの設定忘れ。
ごめんなさい。
ホームアプリはストイックな奴を使ってるので、ぜんぜん気づかなかった。
コレでいい感じになるはず!?
報告でした。
2012年6月21日木曜日
[SwipeStarter]IME表示時のなんちゃら
IME作ったけどショボイからボツって言うの、欲しいって人が何人かいるみたいだから公開します。
マーケットに上げるほどでもないんでココに↓
https://github.com/ToraMamma/OpenWnnKai
えーーーーーっと、ままOpenWnnですw
IME部分は何も弄ってません。
最新のSwipeStarter V2.89(まだマーケット更新していないけど(汗))では、コレの確認が出来るはず。
→今日も端末を忘れて確認できない為、明日アップしようかな。
このIMEの場合、IMEが表示されればSwipeStarterがOFFになってIMEが非表示になればIMEがONになるって言う動作をします。
出来ればこの実装を各IME作成者さまさま方に入れてもらえると、とっても嬉しいんだけど、IMEの表示・非表示のたびにブロードキャスト投げるので、コレを悪用されると、とっても鬱陶しいアプリが出来上がってしまうから無理かなぁw
あ、、でもそもそもブロードキャストを悪用すれば既存のままでも十分鬱陶しいのできるか。
さておき。
すべてのIMEにコレが実装されることを祈って、ソースコード書いておきます。
public class OpenWnn extends InputMethodService { ~略~ @Override public void onWindowShown() { Intent i = new Intent(); i.setAction("open.android.intent.action.DISP_KEYBOARD"); i.addCategory(Intent.CATEGORY_DEFAULT); sendBroadcast(i); super.onWindowShown(); } @Override public void onWindowHidden() { Intent i = new Intent(); i.setAction("open.android.intent.action.HIDE_KEYBOARD"); i.addCategory(Intent.CATEGORY_DEFAULT); sendBroadcast(i); super.onWindowHidden(); } }
祈ってはみたものの、IME表示状態を取得する必要があるのってオーバレイ系アプリだけの気がするから、まぁ、実装はされないんだろうね。
っていうか、このブログの認知度ww
まぁ気が向いたら、上のOpenWnnちょっと弄ろうかなぁとも思うけど、やり始めたらキリがなさそうなのでたぶん放置すると思います。
2012年6月20日水曜日
2012年6月19日火曜日
[SwipeStarter]IME表示時のマーカー制御
よく、キーボードを表示している時だけマーカーを消して欲しいっていう要望が来るんですけど、結果的に言えばコレは出来ません。
キーボード表示時とキーボード消去時のイベントが取れないから。
指定アプリのときはマーカーを動かなく(消すんじゃなく無効に)するっていう機能の延長でキーボード表示時をいろいろやってみたけど、結局ぱっとしなかったのでボツ。
→延長でって言うかIME制御やってる時に指定アプリを思いついたんですけど。
IMEアプリ作って表示時・消去時にサービスON/OFFっていうのを作ったけど、日本語の変換がしょぼすぎて使い物にならなかったのでボツ。
→SwipeStarterのマーカーON/OFFのためだけにショボイIMEを使う気になれなかった。
他のIMEを利用するって言う前提で、IME表示時にマーカーを消すって言うのは出来たけど、再表示が出来なくてボツ。
ボツボツボツボツ。
あーもう。
いやになる。
IME ON/OFF時のブロードキャスト用意してくれ。
オーバーレイ系アプリ以外、普段使い道無いんだろうけど。
っていうか、危険だね。
オーバーレイも十分危険だけどw
何がいいたいかというと、「オレだってIME表示時にマーカー消したいよ!!」って事。
以上。
2012年6月12日火曜日
ちょっと仕事忙しくなってきた。
Androidアプリもちょっと行き詰っちゃったし。
というわけではないんだけど、急に本職のほうのマイタスクが増えた。
アプリ開発に割ける時間が少なくなってしまう。
来週には、NEXUSをRoot化してハードキー何とかしようかな。
と目標だけ立ててみる。
自分の端末でやりたいことが概ね出来てきてしまったからモチベーション下がってるのかなぁ。
Androidに飽きてきたのかも知れない。
おもちゃ欲しくなってきたなぁ。
次はwindows Phoneか。
2012年6月7日木曜日
省電力について
省電力に関して言えば、意外と、本来有るべき「電池は使えば使っただけ減る」「使わなければ減らない」って言うところが出来ていない人が多いと思う。
→「設定が」とか「端末が」とかは有るにせよ、知らないところでバカスカ電力喰うアプリを何も考えず入れているって事。
「設定が」ってところは、
①Androidの設定のうち、電池を喰らう設定を把握する
②必要のない機能はOFFにする
これだけ。
「端末が」ってところは、
①端末の本来の力を知ること
たとえば、携帯何台か持ってないと無理かもだけど、初期化状態(必要最低限のアプリ)で同期系すべて止めてドンだけもつのかを知る。
その段階でガンガン減ってるなら、プリインアプリ疑う。
まず、この状態で満足いくところを見つける。
この状態まできたら、スタートラインです。おめでとう!
①モック状態から自分が必要な機能を追加していく。
メールとかね。
1個づつね。
そうすると、どこかのタイミングで急に待機電力が増えるアプリがあるわけ。
※待機ね、待機。動かしたら電池喰うのは当たり前なんだから。
そういうアプリは設定を見直すかアンインストールする。
こういうのってたぶんタスクキラー使ってもゾンビーみたいに生き返ってくるから、諦めたほうがいい(仮)。
スマフォってアプリをガンガン入れられるから、ドイツがボトルネックなのかが分かりにくい。
超めんどくさいけど、こうやって1から端末の状態を見直していくしかないんだよね。
と、めんどくさい方法から書いておきつつ、消費電力一覧アプリとか、CPU仕様率アプリだとかが、いっぱいあるからそれを使えばもっと早い。
今自分がやりたい事(省電力)の為のプロセスを理解してねって事。
中途半端な知識のお方に設定だけしてあげたら、その時は喜んで帰っていくけど、2~3日したらぶーぶー文句言ってくる。
設定見直すと、使わない同期ONになってたり、アプリアホみたいにインストールしてたり。。。
知らなかったじゃスマサネーヨ。教えたよ。知る気がないならガラケーに戻りなさい。
はい。愚痴りました。
※注意※コレを書きたかったわけではない。
ココまで自分の力でやると、「あっ、このアプリ入れたら電池消費激しくなった!」って分かるはずよ。
そういう人とは、うまい酒が飲めそうだ。
バッテリーの餅について
餅つき大会。
いろいろと書いておきながら、画像もないとアレなので、一応載せておこう。
昨日のお昼休みから充電はずして、今日の朝起きるまで通常通り利用。
端末は、こんな感じ。
Galaxy S2
・デフォロム
・カスタムカーネル
端末の設定は、こんな感じ。
・3G:常時OFF
・WIFI:常時ON(モバルー使いなので)
・GPS:常時OFF(自分の居場所を晒すような・・・決してやましいことがあるわけではない。)
・同期:自動同期ONでGoogleアカウント2つ(メール・カレンダー・電話帳)
携帯として必須なメールアプリは、こんな感じ。
・SPモード:docomoメールWifi受信
・デフォルトのGMAILアプリ:Gmail2アカウント分受信
利用内容は、こんな感じ。
・1時間に1回程度、数分間Twitterチェック
・Facebookもチェック
・電話かかってきた(お仕事系で2本ほど各数分間通話)
・帰宅前に帰るコール(SMS)数通のやり取り
・帰宅中RSS残件流し読み(10分くらい)
・1時くらいに就寝
・6時くらいに起床
Twitterとか確認しながら、「あっ!スクショ取るんだった!」とパシャリ。
それがこのスクショ。
うーん、緊急時を想定してあまり使わなかったけど、なかなかいいんじゃない。
2012年6月6日水曜日
[SwipeStarter]フォルダ内アイテムの並び替え
結論から言うと、行き詰った。
どこにどうコレを実装するんだという点で。
■どこに?
設定画面?
通常のフォルダ画面?
通常のフォルダ画面の場合、すでに長押しメニューあるから使えない。
となると、設定画面か。
設定画面で編集専用のフォルダを開かせるか。
って言うか、そもそもD&Dである必要があるのか?
そうとなればフォルダ画面から長押しに並び替え追加でいけるな。
※結局どうしようかまだ決まっていない。
■どう?
並びかえってどうしたほうがうれしいんだろう。
たとえば、
123456
の5を1と2の間に持っていった時次の2パターンが考えられる。
①入れ込みパターン
152346
②入れ替えパターン
153426
入れ込みパターンは個人的にはあんまりスキくないので、入れ替えパターンか。
設定なしパターン忘れてた。
①入れ込みパターン
1 2 3 4 5 6 設定なし 設定なし 設定なし
↓
1 3 4 5 6 設定なし 2 設定なし 設定なし
②入れ替えパターン
1 2 3 4 5 6 設定なし 設定なし 設定なし
↓
1 設定なし 3 4 5 6 設定なし 2 設定なし
でもやっぱり、一旦決めたアイコンは動かしたくないだろうから入れ替えパターンだよね。
※結局まだ悩んでる。
■ユースケースは?
並びかえってどういうときにやる?
①フォルダサイズを変更したとき
②設定してたアプリ削除した時(やらないか)
③気分
まぁ、考えられるのは①かなぁ。
フォルダサイズの横を替えると、増えた(減った)分だけずれちゃうからなぁ。
自分だったらこのときは並び替えしたいと思うかな。
たとえば、右上にカメラとか右下にメモとかからだが覚えてるからね。
となると、設定画面からでいいのか。
※どこにの問題再燃
■結論
冒頭の行き詰まりは解消されない。
もう少し悩んでみる。
UIの変更ってユーザには結構大きな問題のはずだから。
2012年6月5日火曜日
携帯電話について
いわゆるガラケー(昔はコレしかなかったからね)持ちながらiPhone使って、iPhone超便利ーってなったんだけど、このとき自分がものすごい設定マニアだという事に気づかされた。
普段仕事ではWindows使ってるんだけど、コレをいじくるのって設定マニアとかそういうことじゃなく、ただの便利さの追求みたいなものと思ってた。
iPhoneってものすごく便利だけどなんか自分色に染められないというか、限界があるというか。
もちろん牢屋は破ったけど、それでもなんだかしっくり来なかった。
その頃Xperia出て、「なんだこの使いにくいのは」ってなりつつも、設定が豊富で時間が経つのを忘れた。
いろんなアプリ入れて設定したなぁ。
でも、それに比例して既存アプリの不満点がバキバキに出てきた。
携帯電話に求める物って、人それぞれ違うと思うけど、自分の場合はこんな三本柱
①電波
②料金を安く
③電池のもち
電波に関してはどこも一緒ってわけじゃないからアレ。
料金は、ワイの最大限を駆使して頑張ってる。
電池のもちは、、、コレですよ。
すげー頑張ってるアプリはもちろん多いんだけど、自分が気に入ったアプリで省電力が出来ていないのがあると「ぎゃーーー」って言いたくなる。
コレが僕がAndroid開発を始めた理由です。
通勤でRSS関連とSNS関連。
他は大体消しちゃった。
ゲームもほとんどやらない(ゲーマーなのでちゃんとしたゲーム機でやる)し、音楽も別で聴いてる。
結構電池持つようになってきたと思う。
バッテリーロガーアプリで2日は持つ計算。
昔は、夜充電忘れて寝ちゃったら、朝電池切れなんてざらだったけど、今は切れたことない。
幸せ。
話しずれた。
ってか、何書こうとしてたか忘れた。
思い出すのもアレなので、これでやめた。
アプリのアイコンについて
仕事中に内職しているということもあって、おおっぴらに絵とか書いてられないんです。
なので、基本ペイントで手書き、もしくはフリーのアイコン拾ってきて加工見たいな事をしています。
もっと見た目がかっこいいアイコンとか出来たら良いなぁと思うんだけど、難しい。
透過が精一杯。
かといって、家でやる気も起きないしw
それに付随して、本当にずるいと思うけど、なるべく絵の無いアプリを作るように心がけていますw
一回家でちゃんと時間作ってビジュアルを重視したアプリ作ってみようかな。
たぶんやらないな。
知り合いのデザイナーにアイコン作ってくれよぉーとお願い中なんだけど。
あ、あと、いいわけみたいだけど、画像ファイルをぶち込むとアプリの容量でかくなるからね。
それはオレの画像の作り方がへたくそなだけかもしれないけどね。
今後はもう少し凝ったアイコンとか作るように頑張ろう。
※意外と「アイコンがダサくて~」とか「アイコンがイメージに合っていなくて~」とか言う意見があまり来ないので助かってます。
2012年6月4日月曜日
Androidアプリ開発について
Androidアプリを開発するにあたって、気をつけていることが3つあります。
①不便・不満を解消する
②省メモリ
③省電力
■不便・不満を解消する
コレが一番の開発開始理由になりますが、自分が携帯をいじくってて「あーもうココがこうだったらアレなのになぁ」ってところを解消するようなアプリを作ります。
コレが以外に厄介で、むやみやたらに開発を開始してしまうといわゆる「パクリアプリ」が出来てしまうからです。
なので、基本的には同一思想のアプリがすでに存在していないかを確認します。
存在していたら、それらのアプリを片っ端から試します。
常用に耐えうるアプリかどうかしっかり見極めます。
そんなこんなでもどうしても良い感じのアプリが存在しない場合、視点を変えてアプリを作成できないか検討します。
※コレも難しいところで、たとえば「SwipeStarter」がパクリだってひどいメールで罵倒された(即アーカイブしましたけど)ことがありますが、スワイプをパクリと認識されてしまうと某スワパより良いアプリって絶対出て来れないしねw
たとえば、ツイッタークライアント作るとした場合、今あるツイッターアプリ全部試すよ。
そのどれにも該当しない画期的ですばらしいアイデアが出たら自分で作る。
→実際には「今あるツイッターアプリ全部試すよ。」が無理に等しいので絶対僕は作らないと思いますw
こういうとき困るのが、機能としてはすごくすばらしいんだけど、省電力実装がショボイ場合。
困っちゃうよね。
■省メモリ
常駐するようなアプリを作成する際には、省メモリ化にものすごい力を入れます。
初代Xperiaちゃんで痛いほど実感したから。
都度起動のその場アプリの場合はOSに任せてます。
→手抜きとかじゃなくてそれが本来あるべき姿だから。(という言い訳)
■省電力
常駐するようなアプリを作成する際には、省電力にもものすごく力を入れます。
やっぱ、携帯(と名のつく物)なんだから、必要に迫られた時は、最低2日はNO充電ですごせるくらいじゃないと、使い物ならないよね。
もちろん、普段は常に充電ケーブルさしっぱなしw
いざという時の話ね。いざ。
じゃぁ何かって言うと、アプリ使えば(CPUが動けば)電池が減るのは当たり前なんだから、携帯を使っていない時は極力CPUが動かないように作るって事ね。
アプリの動作を知っていないと気に入らない性格のようで、常駐するようなアプリは大体手作りしちゃってる。
もちろん完全な「パクリアプリ」もあるので、公開して無いのもあるけど。
まぁ、こんなところに気をつけてアプリ作ってます。
ちょっとまじめに書いてしまった。
2012年6月1日金曜日
Androidアプリ開発における雑感
自分が作ったAndroidアプリが有名になって、いっぱいダウンロードされるのは嬉しいんだけど、いっぱいダウンロードされると、いっぱい要望が来る。
「あーそういう機能があると便利だよねー」って思うものは御知恵拝借で実装させてもらってるけど、そうでないのも多くなる。
だいたい2000ダウンロードを越えたあたりから酷くなってくる。
具体的にはアレだけど、まとめてココに書いちゃおう。
「お前の為に作ってるわけじゃない」
「少しは調べる・やってみるという事をした方が良い」
「外人は上から目線」
「広告料はすずめの涙」
「英語圏じゃないところから英語翻訳してメール送ってこられても、なんのこっちゃで読めない」
「オレ普通のサラリーマンだよ」
ふー少しはすっきりした。
このブログのページビュー程度なら愚痴ってもいいよねw
[クリボ]作った。
クリップボードアプリの「クリボ」「クリボフリー」を作った。
どんな物かというと、IME(キーボード)型のクリップボード。
そもそも、Androidの標準で貼り付けを選んだ際に、過去10件分の履歴出せよって話なんだけど、、、
いろんなクリップボードアプリ(ステータスバー常駐型とかマッシュルーム型とか)使ってきたけど、マッシュルーム型が本当に使いやすかった。
ただ、今の自分のデフォルトIMEがGoogle日本語入力なので、マッシュが使えない。。
そもそも、何でマッシュルームが便利だったかって言うと、マッシュルームから戻って「貼り付け」が自動だったから。
いろいろやってみたけど、なんかピンと来なかった。
そこで、作っちゃえと。
コンセプトとしては最低限のクリップボード機能があり、貼り付けがなるべく少ない手数で行えること。
考えました。
■ステータスバー常駐型クリップボード
①入力項目表示
②ステータスバー引き下げ
③常駐アプリ選択でクリップボード履歴アプリ起動
④クリップボード履歴アプリから貼り付けたいものを選択
⑤入力項目長押しでメニュー表示
⑥貼り付け選択
■一般的なクリップボードをランチャー起動
①入力項目表示
②ランチャーを起動
③ランチャーからクリップボード履歴アプリ起動
④クリップボード履歴アプリから貼り付けたいものを選択
⑤入力項目長押しでメニュー表示
⑥貼り付け選択
マッシュルームが使えないIMEだと、最低でも6手かかる。
※Swipe系ランチャなら1手減らせるか。
ちなみに、マッシュの場合
①入力項目表示
②IMEのマッシュルームボタンでマッシュルーム一覧表示
③一覧からクリップボード履歴マッシュ起動
④クリップボードから貼り付けたいものを選択すると、自動的に貼り付け
※クリップ用のマッシュ1個だけにすれば1手減らせるね。
すばらしい。
さて、ではどうやって手数を減らすか。
ネックは入力項目長押しで貼り付けで2手。
コレを解消する方法はIMEアプリしかない。
→入力項目への文字入力はIMEアプリでしか出来ない。絶対。
まずは、マーケットに、こんなアプリがすでにないかをチェック。
無い。
あーあ。やっぱ作るしかないか。。。
じゃ、IMEアプリ作っかいうことで作成開始。
■ベスト
①入力項目表示
②入力項目長押しで貼り付けを選択
③クリップボード履歴一覧表示
④選択した物を自動的に貼り付け
貼り付けメニューの中身は弄れない(事も無いけど)からボツ
■手数(想定)
①入力項目表示
②入力項目長押しでメニュー表示
③入力切替を選択
④「クリボ」選択
⑤貼り付けたいものを選択すると自動的に貼り付け
くっそあと1手。。。
まぁでも出来そうだ。
---- 作業中 ----
出来ました。
っていう経緯。
よかったら使ってみてね。
[クリボフリー]
https://play.google.com/store/apps/details?id=tora.mamma.clipboardime.free
[クリボ] 100円
https://play.google.com/store/apps/details?id=tora.mamma.clipboardime
有料版では、クリップボード履歴の他、定形文とマッシュルーム起動が追加されています。
登録:
投稿 (Atom)