2011年12月12日月曜日

僕と高専と貧乏と

実に8ヶ月ぶりにブログなんてものを書いております
長野高専電子情報工学科卒業生、京乃(けいの)です。

Androidアプリのネタを書こうと立ち上げ、
例のごとく数日坊主で放置されていたこのブログでしたが、
今日は Kosen Advent Calendar 2011 の13日目の記事を書かせて頂きます。
13日目。
なんだかブルーなスプリングに置き忘れ損ねた厨二心が疼きますねぇ!!


はい。


ちなみに一つ前は maccha さんの 繋がりから広がるもの でございました。
ご一読のほどよろしくお願いいたします。


さてさて、今回の僕のお話ですが、

あたし、このクリスマスって行事、嫌いなのよね
まず否定から入るのは僕の話法に反するのですが、たまには許して下さい。

特にまぁ、きっかけというほどのものは無いのです。
ただ、僕の実家というのはあまり裕福でないご家庭でしたので、
クリスマスプレゼントというものをサンタ()から貰った経験が殆どありません。
「もともと外国の行事だし、やってない家も結構あるんじゃね?」
なんてことを思ったまま、中学あたりでようやく気付いてアヘるまで
知らぬ存ぜぬ状態で生きていたのでグレたりこそしませんでしたが、
その過程で”妥協”というものを若くして知り得てしまったのは、
人生において3本の指に入る程の勿体なさだと自覚しています。
ちなみに歴代暫定1位は失恋の話ですが、つまらないのでしません。

というわけで、

貧乏のおかげで(?)知り得たこと
それが今回お話させていただくテーマです。
「いや別に貧乏じゃなくても解るだろフツー」っていう人のために
クエスチョンマークを挟ませていただいております。
しかし我ながら、師走に不景気この上ない題材ですね。もちろん今考えました。
これにプラス、高専のこのとも絡められたらいいなるつもりです。

まず最初に、

お金を稼ぐって大変です
・・・から始めようと思ったけど、これ当たり前だから飛ばすわー。

次。

見返りはきちんと頂くということ
高専生とか、それに限らずクリエイターの方々に多いイメージなのですが、
「あー、別にこのくらい、代金とかいいから」みたいな感覚で
物事を進めてはいないでしょうか?
かくいう僕も、最近まではそうだったように思うのですが、
これが非常に良くないと改めるようになりました。
”ロハでいい”というのは、見方を変えれば、
自分が行うことの責任を軽くしていることに他なりません。
なので、たとえ軽作業でも「今度飯おごってv」くらいは集っておくと吉です。
その方が交友も深まって一石二鳥だと思いませんか?

ところでロハってやっぱり死語ですか。

安物買いは損をするの真実
僕のモノ選びが下手なせいもあると思うのですが、
昔から、”安くてそれなりの物”を買って、満足した覚えがほとんどありません。
なにも”高くてハイスペックな物”を買え、というわけではないのですが、
重要なのは、自分が納得のいく仕様のものに、惜しまずお金を出すことです。
気に入ったものは当然すぐには飽きませんから、
結局のところ無駄がなくなる気がするだけなんですけどねぶっちゃけります。
妥協するくらいなら、頑張って貯めることを考えましょう。

でもカンファレンズはちょっと自重しrうわなにをするやmr

交際費と自分への投資は惜しまず遣うということ
まぁこれも、数々のギョーカイに名を連ねる高専生たちなら
十分すぎるほどに良い散財をしていることと思います。
でも、時々でいいから、思い出してあげてください。
・・・今までチャーハンに使った総額のこと。
結局のところ、物は我慢しても後でいくらでも買うことができますが、
出会いの時間と空間を手に入れることは、
どんなに望んでも後ではできないのです。
カンファを通して、その価値に一層気づくことができたと自負しています。

というわけで皆さん、 新春大東京 でお会いしましょう!

とCMを流してオチにしたいと思います。
あ、まだ登録してないや自分←


恥の多い文章を書いてきました
嫌いだったクリスマスへの日々を、心から楽しみにさせてくれる
"Kosen Advent Calendar 2011"の参加者の皆様及び
この駄文を読まれた皆々様に謝辞を申し上げ、
僕の順番を終えさせて頂きます。


次は飛燕参式さん(@schwlbe)の番です。
よろしくお願いしま〜す。

2011年4月15日金曜日

記事の追記の仕方を変えます

コメントで追記してちゃダメでしたね(滝汗

きちんと本文に載るように編集していくことにします。

2011年3月10日木曜日

アプリのタスク、終了できません!(CV青島

随所のAndroidアプリ開発ブログで、


moveTaskToBack(true);


と書いてやればアプリを終了できると書いてあるのだけれど、
これで実装しても、ユーザからは「アプリを終了できません」「常駐させないでください」
というクレームがバンバン飛んで来る。


残るはプロセスを切ってやるか、System.exit()してやるかなんだけど、
こっちも推奨されないコードは書きたくない。


で、やっとこ見つけた方法が、



ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
am.restartPackage(getPackageName());



で、自パッケージを殺してやることなんだけど、
2.1以降にrestartPackage()がラップしているkillBackgroundProcesses()の仕様が変わり、
プロセスがフォアグラウンドの時には終了することができないようになったらしいので、
期待できないことが解った。


(参考)http://frontallobe.kentauros.net/home/android

仕様上どうしようもないことを、どうユーザさんに解って貰えばいいのだろうか・・・

2011年3月2日水曜日

Subversiveを使ったバージョン管理をするwebサイト開発者(PHP)とAndroid開発者の為のeclipse設定手順

・Eclipse IDE for Java Developers を落としてきて解凍。Program filesとかに配置。

・workspaceフォルダを作成。パスが長いと後々面倒なので C\:workspace 推奨。

・Eclipse立ち上げる。workspaceを選べと言われるので、先ほど作ったworkspaceまでのパスを打つ。
立ち上げる度に毎回聞かれるのが面倒ならば、左下のチェックを入れておく。

・HelpのInstall New Softwareをクリックし、Work withの右端あたりにある下矢印を押して、
Helios - http://download.eclipse.org/releases/helios  ←これを選択。

・Callaborationを開いて、その中のSubversve SVN Team Providerにチェック。

・Nextを押して、もう一回Nextを押して、LicensesのAcceptにチェックしてFinish。

・eclipseの再起動を求められるので、Yesを押して再起動。

※この後、本来だったらSubversiveを使おうとすると自動的にConnectoresまで入るのだけれど、リンクエラーで入らない。
なので自分で入れる。(2011/01/07現在)

・先程と同じく、Help→Install New Softwareをクリック
今度はWork withの中に
http://community.polarion.com/projects/subversive/download/eclipse/2.0/helios-site/
コイツをコピペする。と、しばしの後に下のボックスにSubversive SVN Connectorsというのが現れるので、これを開いて
Subversive SVN Connectors と SVNKit 1.3.2 Implementation にチェック。同じようにインストール。

・あとは、OpenPerspective→OtherからSVN Repository Exploringを開き、リポジトリサーバを登録したりして使う。

・次にPHP。
また、Help → Install New Software → Helios - http://download.eclipse.org/releases/helios から、
Programming Langagesの中にあるPHP Development Tools (PDT) SDK Feature にチェックを入れてインストール。
これでPHPエディタとか入る。

・最後にAndroid。
ここを参照(ぉぃ http://www.javadrive.jp/android/install/

以上。

2011年2月15日火曜日

HOMEボタン押下と同じ処理をするには2

現在のタスクをバックグラウンドに持っていければいい、ということであれば、

moveTaskToBack(true);

を書いてやればいいだけだった。

2011年2月14日月曜日

HOMEボタン押下と同じ処理をするには

onKeyDown()の処理として、
HOME画面に抜けるようなことをするにはどうすればいいのか。


そもそも、HOMEキー押下でやっていることというのは、
HOME画面のインテントを発行しているだけなのである。
つまり、

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);

と書いてやればいい・・・・・・だけなら話は早かったのだけれど、
これだと、使用するHOMEアプリによっては、Permission Denialが発生する。
そこで、

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
      | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);

このフラグを付けてやれば、おそらくは安心。
手持ちの環境ではPermission Denialが発生しないので、
確認できていませんが(滝汗


参考ソース↓ (要所は"CATEGORY_HOME"で検索してやってください)

2011年2月8日火曜日

なにがなんでもstackの先頭から起動させる方法

開発している側から見れば、Android Appを終了させろと言われたら、
BACK_KEYを押しまくってHOME画面に戻ることや、
Task Manager的なAppを使って、要はprocessをKILLすることを考えるだろう。

が、Multi Taskに疎い多くのUserは、Applicationを終了させるには
HOME_KEYを押下すればいいものだと思っている。

このせいで、Appの再起動が必要なPreferenceの変更や、
起動時に何か処理をしたい、なんていう場合に
考えなければいけないpatternが山のように増える。


これらを打破するひとつの実装方法として、

・launcherからの起動時
・HOME_KEY押下でHOME画面に抜け、そこからHOME_KEYを長押しし、
Taskの切り替えで遷移する場合

の2patternに対し、何がなんでもActivity Stackの先頭から
起動させる、という仕様を考えてみる。


stackの先頭となるActivityに、Manifestから
android:clearTaskOnLaunch="true"
を設定してやれば、launcherからの起動時に
積まれたstackを全消去して起動することができる。

が、Taskの切り替えから遷移してきた場合はそうはいかない。
FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY
が飛んできているからだ。
これは、起動時に積まれているstackを拾ってきて
前回と同じ画面を表示しなさい、というIntentのFlagである。

本当は、HOMEキーで終了した際には
processごとKILLしててくれるような実装ができればいいのだけれど、
知られているとおり、HOME_KEY押下のeventが拾えない以上、
その仕様で作ることは難しい。

とりあえずActivityのstackについての情報を集めて
模索しているのだけれど、未だ不明。

何か解ったら追記します。


追記1:
FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY
の他に、
FLAG_ACTIVITY_NEW_TASK
も混ざって飛んできてるっぽい。
何かの鍵になるだろうか。
・・・そもそもどこでFlagsの中身調べればいいんだ?


解決:
簡単すぎてあきれ返ってしまった。はぁ。

topとなるActivityの設定を、
android:clearTaskOnLaunch="true"
じゃなくて
android:launchMode="singleTask"
にすればいいだけ。
これだけで万事OK。


ところで今回の記事。
検索のために、ウザいくらいにカタカナ英語を
英語表記にしてみたのだけれど、やはり読みづらいですね。