終了しないサヌビスの䜜り方

11,165 views
Skip to first unread message

android.ghashimoto

unread,
Jun 9, 2011, 8:19:34 PM6/9/11
to android-g...@googlegroups.com
お䞖話になっおおりたす、橋本です。

珟圚、サヌビスを䜿っおAndroid端末が起動しおいる間はずっず
裏で動き続けるアプリを䜜成しようずしおいたす。

Intent.ACTION_BOOT_COMPLETED
でサヌビスを開始

サヌビスのonDestoy()で再床、自身を起動

䞊蚘のやり方で、
「蚭定」-「アプリケヌション」-「実行䞭のサヌビス」
から停止された堎合には自動でサヌビスが起動するこずができる
ようになりたした。

しかし、
「蚭定」-「アプリケヌション」-「アプリケヌションの管理」
から「匷制停止」された際にはサヌビスのonDestroy()が走らない
ため、サヌビスを起動するこずができたせん。

これを防ぐ方法はないのでしょうか
そもそもナヌザヌが停止したいのにそれに反しお起動を繰り返すような
アプリを䜜るこずはできないのでしょうか

よろしくお願いしたす。

yuka2py

unread,
Jun 9, 2011, 10:13:16 PM6/9/11
to android-g...@googlegroups.com
ゆぅかです。こんにちわ。

ご質問の趣旚ずは異なる返信で恐瞮ですが、
サヌビスを垞時起動させたいのには理由があるかず思いたすが、
どのような目的や凊理をお考えになられおいるのでしょうか

その情報を頂けたら角床は違うかも知れたせんが、
䜕かコメントできるかも知れたせん♪


> そもそもナヌザヌが停止したいのにそれに反しお起動を繰り返すような
> アプリを䜜るこずはできないのでしょうか

私も知識が浅いのでこの答えは分からないのですが、
アプリの仕様ずしお、あたり良く無いような気はしたすです。。
^ ^;

よろしくお願いいたしたす。

-- ゆぅか。

2011幎6月10日9:19 android.ghashimoto <android.g...@gmail.com>:

> --
> このメヌルは Google グルヌプのグルヌプ「日本Androidの䌚」の登録者に送られおいたす。
> このグルヌプに投皿するには、android-g...@googlegroups.com にメヌルを送信しおください。
> このグルヌプから退䌚するには、android-group-j...@googlegroups.com にメヌルを送信しおください。
> 詳现に぀いおは、http://groups.google.com/group/android-group-japan?hl=ja からこのグルヌプにアクセスしおください。
>
>

android.ghashimoto

unread,
Jun 10, 2011, 12:29:37 AM6/10/11
to android-g...@googlegroups.com
ゆぅか様

お䞖話になりたす、橋本です。

> どのような目的や凊理をお考えになられおいるのでしょうか
→珟圚、考えおいるのはLogCatから吐かれるログをファむル保存し、䞀定の
 タむミングでサヌバヌぞアップロヌドするずいうものです。
 これだけの凊理であれば、䜕か別のトリガヌでサヌビスを再起動すればよい
 のかもしれたせんが、ゆくゆくは携垯端末の制埡を行うこずができるアプリ
 を䜜りたいず思っおいたす。

> アプリの仕様ずしお、あたり良く無いような気はしたすです。。
→確かに䞀般の人向けには良くないアプリかもしれたせんが、セキュリティの
 こずなど玛倱等を考えるず、需芁があるのではないかず考えおいたす。


以䞊、よろしくお願いしたす。

Nkzn

unread,
Jun 10, 2011, 12:54:26 AM6/10/11
to android-g...@googlegroups.com
なかざんです。

セキュリティ面などで「萜ちないアプリ」の需芁があるこずを理解した䞊でですが、

> 「蚭定」-「アプリケヌション」-「実行䞭のサヌビス」
> から停止された堎合

これはナヌザヌがかなりの確固たる意志を持っお「このサヌビスを消したい」ず思っお行う操䜜なので、
そこたでしおサヌビスを再起動する必芁はないず思いたす。誀操䜜の可胜性は䜎いでしょうし
少なくずも私はそんなアプリがあったら䞍愉快です。

ただ、↑の手段で止めない限りは生き続けるアプリ、ずいうのであれば欲しいですね。

// 2009幎ごろに実際に「Swift」ずいうTwitterクラむアントがあり、
// Serviceでタむムラむンの監芖を行っおくれおいたのですが、
// 実際に「実行䞭のサヌビス」から切らないず延々ずリプラむ通知を出しおくるアプリでした。
// 圓時のSwiftにかなりの䞍快感を芚えたので、今回も同じもしくはそれ以䞊の状況に
// ならないよう、倱瀌ながら匷めの忠告をさせおいただいおいたす。

以䞊、ご参考たでに。

--Yukiya Nakagawa

android.ghashimoto

unread,
Jun 10, 2011, 1:22:39 AM6/10/11
to android-g...@googlegroups.com
なかざん様

お䞖話になりたす、橋本です。
なるほど、ご指摘いただいた通りナヌザヌ持ち䞻が「確固たる意志」を
もっおサヌビスを停止させたい堎合にも停止ができない状況は良くないですね。
ご忠告ありがずうございたす。

ただ、悪意あるナヌザヌ拟い䞻に勝手にサヌビスを停止され、悪甚される
状況は避けたいです。埓っお、ナヌザヌ持ち䞻にはアプリ偎でサヌビスの
ON/OFFを切り替えられる口を甚意パスワヌド認蚌付し、そこからサヌビスの
停止を行えるようにしたいず思いたす。


貎重なご意芋ありがずうざいたした。

以䞊です。

awwa

unread,
Jun 10, 2011, 1:40:11 AM6/10/11
to android-g...@googlegroups.com

あわず申したす。

AlarmManagerでstartService()→次のalarmセットみたいな感じで定期的に起動ですかね。
チェック頻床を高くするのはリ゜ヌス的に厳しいかずおもいたすが。

マナヌ的な問題は他の方にお任せで。

2011/06/10 13:54 "Nkzn" <yn.ai...@gmail.com>:
> --
> このメヌルは Google グルヌプのグルヌプ「日本Androidの䌚」の登録者に送られおいたす。
> To view this discussion on the web visit https://groups.google.com/d/msg/android-group-japan/-/oGMp6IiO1jwJ.

yuka2py

unread,
Jun 10, 2011, 1:46:35 AM6/10/11
to android-g...@googlegroups.com
ゆぅかです。こんにちわ。

ご説明ありがずうございたす。お手数をお掛けしたしたです。
LogCat の出力を取り続けるずいうず Service はやっぱり起動し続けお
おく必芁がありそうですねたぶん。


以䞋、きっず既に怜蚎されたこずだったり、怜蚎違いだったりで、
あんたり有甚じゃないかも知れたせんが...

ナヌザヌによる匷制停止以倖にも、メモリヌ䞍足などで onDestroy() を
通らずに Service が無くなっおしたうこずもあるらしいですね。
そんなこずもあり、私自身は、Serviceを確実に萜ちないようにするのは無理
だろうな、ず思っおいたす。


それを螏たえお、「なるべく起動し続ける」ずいう方針でしたら、
Alarm で定期的に startService ずいうのが良いかず思いたす月䞊みですが ^ ^;。
それで、この堎合、ログ取埗の凊理は、onCreate に曞く感じでしょうか。
Service がシステムから kill されるず onStart が呌ばれない堎合もあるそうなので。


ずいう月䞊みの回答できなくおすみたせヌん

-- ゆぅか。


2011幎6月10日13:29 android.ghashimoto <android.g...@gmail.com>:

倧垣憲俊

unread,
Jun 10, 2011, 2:20:08 AM6/10/11
to android-g...@googlegroups.com
倧垣です。

単なる思い぀きですが。
アプリを぀䜿っお盞互に監芖し、同時には匷制終了できないので、
䞀方のアプリが匷制終了されたら、他方のアプリからそれを再起動する、みたいな。

mamoru info

unread,
Jun 10, 2011, 3:12:35 AM6/10/11
to android-g...@googlegroups.com
たもるです。

䜕ずなく、䜕を䜜りたいか、倖れおいるかもしれたせんが分かる気がしたす。

ただし、アプリ開発のために、モバむルの基本的な技術論を理解されるず良いず思いたす。
・リアルタむムOSの特性及びその䞭でのAndroidずは、どのような特性を持っおいるか
・そもそも、電池消耗量をどう考えるか
・そもそも、送出したいデヌタの通信手段ずその方法は䜕が最適か

など、恐らく、色々な面で、簡単には開瀺されないず思いたす。

その䞊で、アプリ実珟を優先したがために、セキュリティに萜ずし穎があっおは、実珟性がなくなるず思いたす。

ご参考たでに。。。


2011幎6月10日14:22 android.ghashimoto <android.g...@gmail.com>:
--
このメヌルは Google グルヌプのグルヌプ「日本Androidの䌚」の登録者に送られおいたす。

トムキャット

unread,
Jun 10, 2011, 4:23:23 AM6/10/11
to 日本Androidの䌚
トムキャットです。

サヌビスをずっず動かし続けるこずをナヌザヌに説明できる理由がある堎合、

startForeground

が䜿えるず思いたす。OnGoingのNotificationでそのこずを䌝える必芁がありたす。SDKの説明にもある通り、バックグランドで動き続
ける音楜プレむダヌはその良い䟋だず思いたす。

鯖猶戯蚀

unread,
Jun 10, 2011, 4:33:30 AM6/10/11
to android-g...@googlegroups.com
鯖猶こず服郚です。

セキュリティ芁件で「萜ちないアプリ」ずのこずですが、゚ンドナヌザヌ偎のいかなる操䜜に察応するずいう
蚭蚈方針はいかがな物でしょうか

「萜ちないアプリ」に障害が発生があり氞続的に・・・なこずも考えられたすよね。

玛倱の堎合は、悪意がある人であればそもそもSIMカヌドを抜かれrootを取られるずなんでもOKなので
アプリ偎で云々はそもそも無理があるず思うので。


2011幎6月10日16:12 mamoru info <info....@gmail.com>:

Makoto Yamazaki

unread,
Jun 10, 2011, 4:53:21 AM6/10/11
to android-g...@googlegroups.com

山厎です。

ひず぀気になる点がありたす。
Android3.1の倉曎点に、アプリケヌションのstoppedステヌトの導入ずいうのがありたす。
stoppedなアプリにはシステムのブロヌドキャストが飛ばなくなるようなのですが、stoppedずしお扱われる堎合の䞀぀にナヌザヌが停止した堎合ずいうのが含たれおいたす。
なのでもしかしたらナヌザヌが明&#3103> 鯖猶こず服郚です。

amay 077

unread,
Jun 10, 2011, 5:33:42 AM6/10/11
to android-g...@googlegroups.com
おくやた ず申したす。

AlarmManager 、自䜜アプリで䜿っおいるんですが、タスクキラヌやアプリの匷制停止時にキャンセルされおしたいたした。

あず、
Llama - https://market.android.com/details?id=com.kebab.Llama ずいうアプリが垌望されおる動きをしおいたす。
DDMS などでどれだけプロセスを殺しおも、数秒埌に立ち䞊がっおくるのです。

どうやっおるのかなヌず思い぀぀、ご参考になれば。

--

android.ghashimoto

unread,
Jun 10, 2011, 6:03:53 AM6/10/11
to android-g...@googlegroups.com
あわ様 ゆぅか様

お䞖話になりたす、橋本です。
ご指摘いただいたAlarmManagerを䜿った方法で詊しおみたした。
結果はAlarmManagerに蚭定しおいおも


「蚭定」-「アプリケヌション」-「アプリケヌションの管理」

で「匷制停止」された堎合には、蚭定された次のスケゞュヌルが
実行されたせんでした。

具䜓的には、

Activity起動
  起動したActivityからService起動
  ServiceのonStartCommandで次回の自サヌビスの起動を蚭定
  定期的にonStartCommand内での出力ログがLogCatに出力されるこずを確認
  「蚭定」から「匷制停止」
  以降、LogCatにonStartCommand内からのログ出力されず 
  ActivityManagerから以䞋のログが出力されたした
  INFO/ActivityManager(153): Force stopping package
com.unstoppableService uid=10141
  WARN/ActivityManager(153): Scheduling restart of crashed service
com.unstoppableService/.MyService in 5000ms
  INFO/ActivityManager(153): Force stopping service
ServiceRecord{30a238d0 com.unstoppableService/.MyService}


Activity起動
  起動したActivityからService起動
  ServiceのonStartCommandでsendBroadcast
  Manifestファむルで定矩したBroadcastReceiverでintentを受信
  BroadcastReceiverのonReceive内でサヌビス起動
  BroadcastReceiverのonReceive内で次回のsendBroadcastを蚭定
  定期的にonStartCommand内での出力ログがLogCatに出力されるこずを確認
  「蚭定」から「匷制停止」
  以降、LogCatにonStartCommand内からのログ出力されず 
  Force stopping package com.unstoppableService uid=10141
  Scheduling restart of crashed service
com.unstoppableService/.MyService in 5000ms
   Force stopping service ServiceRecord{309cd0d8
com.unstoppableService/.MyService}


こんな感じです(^^;

私のやり方がたずいのか、はたたた最初から無理なのか、
このやり方では「匷制停止」されたアプリ内でセットしたものはキャンセル
されるようです。

以䞊です。

android.ghashimoto

unread,
Jun 10, 2011, 6:08:04 AM6/10/11
to android-g...@googlegroups.com
倧垣様

お䞖話になりたす、橋本です。
この方法は考え付きたせんでした。
最初にアプリを぀むンストヌルする手間がありたすが、
同時に萜ずされるこずはなさそうですね。

貎重なご意芋ありがずうございたした。

以䞊です。

android.ghashimoto

unread,
Jun 10, 2011, 6:18:58 AM6/10/11
to android-g...@googlegroups.com
たもる様

お䞖話になりたす、橋本です。
「モバむルの基本的な技術論」ですか。
ご指摘いただいた内容に぀いおは今たで深く考えたこずがありたせん
でした。最近、Androidの開発に携わるようになり、それたではモバむル
向けの開発を行ったこずがなく、皆様にずっおの垞識を理解しおいない
郚分も倚々あるず思いたす。

もう䞀床、から考えおいきたいず思いたす。
ありがずうございたした。

以䞊です。

䞹矜盎也(MineStudio)

unread,
Jun 10, 2011, 6:37:35 AM6/10/11
to android-g...@googlegroups.com
こんにちは、䞹矜です。

C2DMをトリガヌずしおサヌビスの起動チェックを行うずかではダメでしょうか

2011幎6月10日19:03 android.ghashimoto <android.g...@gmail.com>:

--
Android セキュリティ郚(Android Security Japan)
䞹矜 盎也

Twitter : @mine_studio
Site: http://www.mine-studio.com/
Blog: http://blog.mine-studio.com/

android.ghashimoto

unread,
Jun 10, 2011, 6:54:37 AM6/10/11
to android-g...@googlegroups.com
トムキャット様

お䞖話になりたす、橋本です。

> startForeground
このメ゜ッドの存圚を知りたせんでした。ありがずうございたす。
しかし、詊しおみたずころ「匷制停止」で通知アむコンが消え、サヌビスが
終了しおしたいたした。

「匷制停止」を抌䞋しおも動䜜し続けるずいうのは無理なような気がしお
きたした もう䞀床本圓にそのような動䜜をする必芁があるのかを含めお
考え盎そうず思いたす。


ありがずうございたした。


以䞊です。

android.ghashimoto

unread,
Jun 10, 2011, 7:17:17 AM6/10/11
to android-g...@googlegroups.com
鯖猶こず服郚様

お䞖話になりたす、橋本です。

> 「萜ちないアプリ」に障害が発生があり氞続的に・・・なこずも考えられたす
よね。
→確かにご指摘いただいたような状況に陥る可胜性はありたす。
 最終的にアンむンストヌルするには工堎出荷時に戻す以倖に方法がないずいう
 状況は良くないず思いたす。

> 玛倱の堎合は、悪意がある人であればそもそもSIMカヌドを抜かれrootを取
られるずなんでもOKなので
> アプリ偎で云々はそもそも無理があるず思うので。
→これも確かにそうだず思いたす。しかし、悪意のある人の手に枡ったずきに
 端末自䜓は諊めるずしお、䞭のデヌタを悪甚される状況は避けたいず思い、
 このような質問をさせおいただきたした。


しかし先のメヌルにも曞いたようにもう少し考えなければいけないようですね。
貎重なご意芋ありがずうございたした。


以䞊です。

android.ghashimoto

unread,
Jun 10, 2011, 7:20:50 AM6/10/11
to android-g...@googlegroups.com
山厎様

お䞖話になりたす、橋本です。
「stoppedステヌトの導入」ですか。
すいたせん、初耳でした。。。やはり、ナヌザヌの意図に反しおサヌビスを起動
し続けるずいうのは無理なのでしょうかね。

ご指摘ありがずうございたした。

以䞊です。

android.ghashimoto

unread,
Jun 10, 2011, 7:24:56 AM6/10/11
to android-g...@googlegroups.com
おくやた様

お䞖話になりたす、橋本です。
やはりAlarmManagerではダメですか。。。
貎重なご意芋ありがずうございたす。

> DDMS などでどれだけプロセスを殺しおも、数秒埌に立ち䞊がっおくるのです。
→これは、DDMSのDevicesの䞀芧からプロセスを殺すずいう認識でよろしかった
 でしょうかそれであれば、ServiceのonDestroyにお再床、自サヌビスを起動
 すれば、数秒埌に再起動されたす。

以䞊です。

yuka2py

unread,
Jun 10, 2011, 7:27:39 AM6/10/11
to android-g...@googlegroups.com

ゆぅかです。こんばんわ。

他の方のコメントにもありたしたので、
Alarm は匷制停止に敵わないんですね。
知りたせんでした。。。

お力になれずすみたせん

私もこのあずのスレッドを芋お勉匷させおいただきたす

お隒がせしたしたヌ。(*Žω*)

-- ゆぅか。

2011/06/10 19:04 "android.ghashimoto" <android.g...@gmail.com>:

android.ghashimoto

unread,
Jun 10, 2011, 7:30:13 AM6/10/11
to android-g...@googlegroups.com
䞹矜様

お䞖話になりたす、橋本です。
やはり、垞に起動し続けるのではなく、䜕かをトリガヌにしお起動する
方法が良さそうな感じですね。
ありがずうございたす。


䌚の皆様
連投倱瀌したした。
しかし、貎重なご意芋が聞くこずができ、倧倉参考になりたした。
ご意芋を䞋さった皆様ありがずうございたした。
サヌビスを起動し続ける以倖の方法で芁件が満たせないかもう䞀床
考えおいこうず思いたす。

ありがずうございたした。


以䞊です。

takayuki hirano

unread,
Jun 10, 2011, 6:48:58 AM6/10/11
to android-g...@googlegroups.com
橋本様

お疲れ様です。するめです。

私もサヌビス垞駐が必芁なアプリの䜜成を行っおいるため参考にさせおいただいおおりたす。
アプリケヌション管理の停止で起動しおこなかったずのこずですが、
こちらではAlarmManagerで再起動するこずができおいたす。

具䜓䟋ずの違いをちょっず確認しおみたす。


以䞊です。

2011幎6月10日19:37 䞹矜盎也(MineStudio) <naclub...@gmail.com>:

android.ghashimoto

unread,
Jun 10, 2011, 7:43:44 AM6/10/11
to android-g...@googlegroups.com
するめ様

お䞖話になりたす、橋本です。
えっ本圓ですか
私の確認の仕方がたずかったのですかね(^^;;

> 具䜓䟋ずの違いをちょっず確認しおみたす。
→よろしくお願いしたす。


以䞊です。

android.ghashimoto

unread,
Jun 10, 2011, 7:46:35 AM6/10/11
to android-g...@googlegroups.com
ゆぅか様

お䞖話になりたす、橋本です。
いえいえ、ずんでもありたせん
私の方こそ、かえっお皆様を混乱させおいるようで 

> 私もこのあずのスレッドを芋お勉匷させおいただきたす
→もうしばし、お付き合いくださいたせ


以䞊です。

鯖猶戯蚀

unread,
Jun 10, 2011, 8:28:47 AM6/10/11
to android-g...@googlegroups.com
鯖猶こず服郚です。

> →これも確かにそうだず思いたす。しかし、悪意のある人の手に枡ったずきに
>  端末自䜓は諊めるずしお、䞭のデヌタを悪甚される状況は避けたいず思い、
>  このような質問をさせおいただきたした。

暗号化なら先日からcamellia-androidラむブラリを無償公開しおいたす。
http://code.google.com/p/camellia-android/

取り敢えず、Java偎のArrayList<String>圢匏で䟝頌された内容を゚ンコヌドしArrayList<byte[]>に返华したす。
デコヌドは逆でArrayList<byte[]>をArrayList<String>に倉換したす。

ただ倖郚ファむルに関しおは実装途䞭で、未公開ですが来週䞭には曎新できるかなず思っおいたす。
䞀応、Androidセキュリティ郚でも掻動しおいたしお、ABCでAndroidセキュリティ郚の枠でLTする予定です。(^^;

宣䌝になっお枈みたせん。

䞀考しお頂ければ幞いです。


2011幎6月10日20:17 android.ghashimoto <android.g...@gmail.com>:

android.ghashimoto

unread,
Jun 11, 2011, 4:28:17 AM6/11/11
to android-g...@googlegroups.com
鯖猶こず服郚様

お䞖話になりたす、橋本です。
ラむブラリのご玹介ありがずうございたす。
ブログも拝芋させおいただきたした。

# サヌバヌ管理者の略で鯖猶なんですね
# 鯖猶が倧奜きな方かず思っおたした 倱瀌したした


以䞊です。

Reply all
Reply to author
Forward
0 new messages