サイト移転のお知らせ

しばらくブログお休みしていましたが、こちらに移転しました。よろしければこちらへどうぞ。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

gitでリモートのブランチをローカルに持ってくる

今更な感じもありますが、しょっちゅう間違えるので備忘録として。

ローカルのgitリポジトリにて
$ git branch -r
origin/HEAD -> origin/master
origin/gingerbread
origin/gingerbread-mr4-release
origin/gingerbread-release
origin/ics-factoryrom-2-release
origin/ics-mr0
origin/ics-mr0-release
origin/ics-mr1
origin/ics-mr1-release
origin/jb-dev
origin/jb-release
origin/master
origin/tools_r20


となっていて、jb-releaseを持ってきたい場合は

git checkout -b jb-release origin/jb-release

-b の後のjb-releaseはローカルに新たに作るブランチの名前なので任意でよいです。
これで、ローカルのjb-releaseブランチはリモートのorigin/jb-releaseブランチをトラッキングするようになります。

ちなみに、冒頭のgit branch -rはリモートのブランチをみるためのコマンドです。

それにしても、gingerbreadは長い名前がそのままブランチ名になっていたのに、最近はicsとかjbみたいに省略するんですね。アルファベット順で名前付けてるんだからいっそのことiとかjとか1文字にしてしまえばいいのに・・・
余計分かりにくいか(笑)

テーマ : プログラミング
ジャンル : コンピュータ

Androidで死なないServiceを実装してみた

Androidでサービスを使ったアプリを作った事がある人なら分かるかと思いますが、「サービスを死なないようにする」、これがなかなか難しいです。
Developerサイトに説明されているサービスにライフサイクルによれば、サービスが死ぬ前にonDestroy()がコールされるのですが、これがコールされずに突然プロセスごと消滅することが多々あります。

例えば、フォアグランドで動いているアプリが大量にメモりを消費するとき。システムはメモリを確保するためにバックグラウンドのサービスを瞬殺します。悪・即・斬です(笑)

また、軽い気持ちでインストールされてしまっているタスクキラーやメモリクリーン系のアプリが動いたとき。この時もサービスは悪・即・斬です(いや、悪ではないんですけどね)

その他、サービスがなにも仕事をしない状態で放置しながらlogcatのログを眺めていると、以下のようなログがでることがあります(jp.skr.imxs.servicetestがサービスのプロセスです) 。

I/ActivityManager( 1959): No longer want jp.skr.imxs.servicetest (pid 5354): hidden #16
W/ActivityManager( 1959): Scheduling restart of crashed service jp.skr.imxs.servicetest/.MainService in 5000ms

要は、「このサービスは必要ないから止めちゃうよ。で、5秒後に再度起動してあげるよ」とActivityManagerが気を利かせてくれているわけですね。つまり、この5秒の間はサービスが機能しなくなるわけです。

という状況なのでサービスを死なないようにする策はいろいろと考えられていますが、そのいくつかを実験してみました。

続きを読む

テーマ : プログラミング
ジャンル : コンピュータ

Serviceプログラミングの注意点

 AndroidアプリでServiceを実装するときの注意点を一つ紹介。

 Serviceを使ったプログラムの場合、以下のonStartCommandをオーバーライドすることになると思いますが、
public int onStartCommand (Intent intent, int flags, int startId)

第一引数のintentは、nullが渡される場合があります。チェックなしにintentにアクセスしないように注意しましょう。このことは、きちんとAndroidのリファレンスには書いてあります。
http://developer.android.com/reference/android/app/Service.html#START_STICKY

ちなみに、先日アップデートしたService Killerの不具合はこれです。。。すみません。

テーマ : プログラミング
ジャンル : コンピュータ

Android PACKAGE関連のbroadcast intentを試してみた

 Androidのreferenceを見るとPACKAGE関係のbroadcast intentがたくさんありますが、説明文だけではどんなときに発生するのかがよくわからないので、実験アプリを作って試してみました。

続きを読む

テーマ : プログラミング
ジャンル : コンピュータ

Manifestのprocess属性について

 AndroidのDevGuideを見ていて、のprocess属性が気になったので確認してみました。
 private to the application...とかの記述があったので、ひょっとしたらこの値によって、別のサービスからstopService()をコールしたときの結果が異なるのでは?と思ったのですが、結論は「関係なし」でした。

確認した詳細は以下。

続きを読む

テーマ : プログラミング
ジャンル : コンピュータ

サイト内検索
プロフィール

Author:imxs

Androidアプリ開発などを行っているimxsの開発者です。気になることを調べてメモって行きます。ほとんどの人にはどうでもいい内容でも、広い世の中一人くらいは同じ疑問を持った奇妙な人がいることを信じつつ。暖かい目で見守ってやってください。
imxsの開発者ブログは移転しました。よろしければこちらへどうぞ。

カテゴリ
最新記事
リンク
RSSリンクの表示
最新コメント
最新トラックバック
FC2カウンター
アクセスランキング
[ジャンルランキング]
携帯電話・PHS
144位
アクセスランキングを見る>>

[サブジャンルランキング]
Android(Google)
36位
アクセスランキングを見る>>
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。