JP5823826B2 - タスク起動時点推定システム、タスク起動時点推定方法およびプログラム - Google Patents

タスク起動時点推定システム、タスク起動時点推定方法およびプログラム Download PDF

Info

Publication number
JP5823826B2
JP5823826B2 JP2011244760A JP2011244760A JP5823826B2 JP 5823826 B2 JP5823826 B2 JP 5823826B2 JP 2011244760 A JP2011244760 A JP 2011244760A JP 2011244760 A JP2011244760 A JP 2011244760A JP 5823826 B2 JP5823826 B2 JP 5823826B2
Authority
JP
Japan
Prior art keywords
activation
list
task
time
point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2011244760A
Other languages
English (en)
Other versions
JP2013070353A (ja
Inventor
考司 松原
考司 松原
洋平 城口
洋平 城口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fuller
Original Assignee
Fuller
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuller filed Critical Fuller
Priority to JP2011244760A priority Critical patent/JP5823826B2/ja
Publication of JP2013070353A publication Critical patent/JP2013070353A/ja
Application granted granted Critical
Publication of JP5823826B2 publication Critical patent/JP5823826B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Telephone Function (AREA)

Description

この発明は、タスクの起動時点を推定するシステム、方法およびプログラムに関する。
グーグル社が提供するアンドロイド(登録商標)と称するプラットフォームを利用した携帯電話機、スマートフォン、タブレットコンピューター、情報処理機能を有するテレビなどのコンピューター(以下、アンドロイド端末という。)向けの多種多様なアプリケーションプログラム(以下、単にアプリと略記する。)がすでに数多く存在しており、これからも多くのアプリが開発されて利用可能となるであろう。アンドロイド端末の利用者は関心のあるいくつものアプリを自分の端末にインストールしておき、随時に必要なアプリを起動して活用している。
情報通信分野でビジネス活動をするものにとって、膨大な数のアンドロイド端末ユーザーがどのようなアプリに関心を示してどのように活用しているのかという情報は、たとえばテレビ放送業界における視聴率情報と同様に、きわめて有用なマーケティング情報となり得るものと認識され、そうした整理された情報に対する需要はきわめて大きい。たとえば、個々のアンドロイド端末ユーザーのアプリ活用情報に基づいて、個々のユーザーの関心事に適合した広告を配信するなど、多数のユーザーに関する個別のアプリ活用情報はさまざまなビジネスにとってきわめて有意義なものである。
特許第3317705号明細書
特許文献1では、一般ユーザーのパソコンにバックグランドで動作する情報採取プログラムを組み込み、この情報採取プログラムにより当該パソコンのユーザーによる利用状況を表す時系列データを記録する構成とし、多数のパソコンでそれぞれ記録された利用状況データを、通信網を介して中央処理ステーションに収集している。収集した各パソコンの利用状況データをデータベース管理システムにより整理することで有意義な情報を得ることができる。各パソコンで記録する利用状況データの中には、パソコンで実行されたアプリケーションプログラムの開始・終了を記録したデータが含まれる。
上記課題を解決するための本発明の主たる発明は、情報処理装置におけるタスクの起動時点を推定するシステムであって、少なくとも2つの測定時点について、前記測定時点までに起動された前記タスクについて、起動時点の新しい順に重複なく所定数以下の前記タスクを抽出して前記起動時点の順に並べた起動リストを記憶する起動リスト記憶部と、前記起動リスト記憶部から、第1の前記測定時点に対応する第1の前記起動リストおよび前記第1の測定時点よりも後の第2の前記測定時点に対応する第2の前記起動リストを読み出す起動リスト取得部と、前記第2の起動リストに含まれる前記タスクのうち、前記第2の起動リストにおける最古の前記タスクから当該タスクまでの全ての前記タスクが、前記第2の起動リストにおける先後関係と同じ先後関係で前記第1の起動リストに含まれるもののなかで、最新の前記タスクである最終起動タスクを特定する最終起動タスク特定部と、前記第2の起動リストにおいて前記最終起動タスクよりも新しい前記タスクの前記起動時点を、前記第1の測定時点から前記第2の測定時点までの間と推定する起動時点推定部と、を備えることとする。
また、本発明の起動時点推定システムは、前記情報処理装置において実行されるフレームワークにより提供される前記起動リストを取得するためのAPIを、所定の時間間隔でコールすることにより前記起動リストを取得し、取得した前記起動リストを現時点に対応付けて前記起動リスト記憶部に登録する起動リスト取得部をさらに備えるようにしてもよい。
また、本発明の起動時点推定システムでは、前記最終起動タスク特定部は、前記第2の起動リストの最古の前記タスクから最先の前記タスクに向けて順に、当該タスクである第1のタスクよりも1つ新しい第2の前記タスクが前記第1の起動リストにも含まれており、かつ、前記第2のタスクが前記第1の起動リストにおいても前記第1のタスクよりも新しい位置に含まれているかを判定していき、前記第2のタスクが前記第2の起動リストに含まれていない場合、または、前記第2のタスクが前記第1の起動リストにおいて前記第1のタスクよりも古い位置に含まれていた場合に、前記第1のタスクを前記最終起動タスクと特定するようにしてもよい。
また、本発明の起動時点推定システムでは、前記起動時点推定部は、前記第2の起動リストの最古の前記タスクが前記第1の起動リストに含まれていない場合は、前記第2の起動リストに含まれているすべての前記タスクの前記起動時点を前記第1の測定時点から前記第2の測定時点までの間と推定するようにしてもよい。
また、本発明の起動時点推定システムでは、前記起動時点推定部は、前記第2の起動リストの最新の前記タスクが前記最終起動タスクと特定された場合に、前記第1および第2の起動リストが一致しないときは、前記第2の起動リストに含まれているすべての前記タスクの前記起動時点を前記第1の測定時点から前記第2の測定時点までの間と推定するようにしてもよい。
また、本発明の起動時点推定システムでは、前記起動時点推定部は、前記第1の起動リストにおいて、前記第2の起動リストの最古の前記タスクおよび前記最終起動タスクの間に含まれている前記タスクの少なくともいずれかが、前記第2の起動リストにおいて前記最終起動タスクよりも新しい位置に含まれていない場合には、前記第2の起動リストに含まれているすべての前記タスクの前記起動時点を前記第1の測定時点から前記第2の測定時点までの間と推定するようにしてもよい。
また、本発明の起動時点推定システムでは、前記最終起動タスク特定部は、前記第1および第2の起動リストの複製である第1および第2の作業リストを生成し、前記第1および第2の作業リストが新しい順に前記第2の作業リストの長さ分一致するまで、前記第2の作業リストの最新の前記タスクを前記第1および第2の作業リストから削除していき、前記第1および第2の作業リストが新しい順に前記第2の作業リストの長さ分一致した場合に、前記第2の作業リストの最新の前記タスクを前記最終起動タスクと特定するようにしてもよい。
また、本発明の起動時点推定システムは、前記情報処理装置およびサーバーを含んで構成され、前記情報処理装置が、前記起動リスト記憶部、前記最終起動タスク特定部、および前記起動時点推定部を備え、前記情報処理装置はさらに、前記第1の測定時点から前記第2の測定時点までの期間を示す起動時点情報に対応付けて、当該期間に起動されたと推定された前記タスクを記憶する起動時点記憶部と、前記起動時点記憶部に記憶されている前記起動時点情報および前記タスクを前記サーバーに送信する起動時点送信部とを備え、前記サーバーは、前記起動時点情報および前記タスクを受信する起動時点受信部と、受信した前記起動時点情報およびタスクを対応付けて記憶する起動時点記憶部と、を備えるようにしてもよい。
また、本発明の起動時点推定システムは、前記情報処理装置と通信可能に接続され、前記情報処理装置から定期的に送信される、前記測定時点の付帯された前記起動リストを受信し、受信した前記起動リストを前記起動リスト記憶部に登録する起動リスト受信部を備えるようにしてもよい。
また、本発明の他の態様は、情報処理装置におけるタスクの起動時点を推定する方法であって、少なくとも2つの測定時点について、前記測定時点までに起動された前記タスクについて、起動時点の新しい順に重複なく所定数以下の前記タスクを抽出して前記起動時点の順に並べた起動リストを記憶するコンピューターが、前記起動リスト記憶部から、第1の前記測定時点に対応する第1の前記起動リストおよび前記第1の測定時点よりも後の第2の前記測定時点に対応する第2の前記起動リストを読み出し、前記第2の起動リストに含まれる前記タスクのうち、前記第2の起動リストにおける最古の前記タスクから当該タスクまでの全ての前記タスクが、前記第2の起動リストにおける先後関係と同じ先後関係で前記第1の起動リストに含まれるもののなかで、最新の前記タスクである最終起動タスクを特定し、前記第2の起動リストにおいて前記最終起動タスクよりも新しい前記タスクの前記起動時点を、前記第1の測定時点から前記第2の測定時点までの間と推定することとする。
また、本発明の他の態様は、情報処理装置におけるタスクの起動時点を推定するためのプログラムであって、少なくとも2つの測定時点について、前記測定時点までに起動された前記タスクについて、起動時点の新しい順に重複なく所定数以下の前記タスクを抽出して前記起動時点の順に並べた起動リストを記憶するコンピューターに、前記起動リスト記憶部から、第1の前記測定時点に対応する第1の前記起動リストおよび前記第1の測定時点よりも後の第2の前記測定時点に対応する第2の前記起動リストを読み出すステップと、前記第2の起動リストに含まれる前記タスクのうち、前記第2の起動リストにおける最古の前記タスクから当該タスクまでの全ての前記タスクが、前記第2の起動リストにおける先後関係と同じ先後関係で前記第1の起動リストに含まれるもののなかで、最新の前記タスクである最終起動タスクを特定するステップと、前記第2の起動リストにおいて前記最終起動タスクよりも新しい前記タスクの前記起動時点を、前記第1の測定時点から前記第2の測定時点までの間と推定するステップと、を実行させることとする。
その他本願が開示する課題やその解決方法については、発明の実施形態の欄及び図面により明らかにされる。
本発明によれば、情報処理装置において起動されたタスクの起動時点を推定することができる。
アンドロイド端末における起動アプリの時系列の変化と、起動アプリ通知APIのコールと、最新起動アプリリストの具体的な関係を示す図である。 起動アプリ調査システムの構成例を示す図である。 アンドロイド端末10のハードウェア構成例を示す図である。 アンドロイド端末10のソフトウェア構成例を示す図である。 起動リスト記憶部125の構成例を示す図である。 起動ログ記憶部126の構成例を示す図である。 サーバー20のハードウェア構成例を示す図である。 サーバー20のソフトウェア構成例を示す図である。 起動ログ記憶部212の構成例を示す図である。 この発明の第1実施形態による処理手順を示す図である。 この発明の第2実施形態による処理手順を示す図である。 第2実施形態による処理手順における最新起動アプリリストの状態を説明する図である。 この発明の第3実施形態による処理手順を示す図である。 第3実施形態による処理手順を説明するための図である。
本発明の一実施形態に係る起動アプリ調査システムは、アンドロイド端末において、いつどのタスクが実行されたのか、すなわちいつどのアプリが実行されたのかを調査するものである。
===「起動アプリ通知API」と「最新起動アプリリスト」===
この出願の発明者は、アンドロイドで提供される仮想機械(Virtual Machine;アンドロイドOSと呼ばれる。)上で動作するアプリとしての情報採取プログラムをアンドロイド端末に組み込んでおいて適時に動作させ、アンドロイドOSのAPI(Application Program Interface)を通じて起動アプリ情報を取得することで、当該アンドロイド端末においていつどのアプリが実行されたのかを表す情報(以下、アプリ起動時系列情報という。)を取得する仕組みを開発しようと考えた。
まず発明者は、上記の目的に利用可能なアンドロイドOSのAPIを調べた。アンドロイドOSのAPIには「getRecentTasks」と称される機能が定義されている。これは、アンドロイドOSが最近起動したいくつかのタスク(アンドロイドOSではアプリと同義である。)のリストを知らせてくれるAPI機能である。このAPI機能のことを、この出願においては、「起動アプリ通知API」と称することとする。また、「起動アプリ通知API」が出力するアプリ識別子のリストのことを、「最新起動アプリリスト」と称することとする。
===「起動アプリ通知API」のアルゴリズム===
起動アプリ通知APIは、以下の規則に従って、最新起動アプリリストを生成して当該APIをコールしたアプリ(情報採取プログラム)に出力する。
(a)直近に起動されたアプリの識別子がリストの先頭に配置され、それに続けて、1つ前に起動されたアプリ識別子、さらに1つ前に起動されたアプリ識別子、・・・の順番で配列され、リスト中のアプリ識別子の数は設定された上限数mを超えない。上限数mは、通常20個程度に設定されている。
(b)同一のアプリ識別子がリスト中に重複して存在することはない。上限数mを20個とすると、最近起動された20個のアプリ識別子の順列中に同一アプリ識別子が2個存在する場合、起動時期の新しい方のアプリ識別子を残し、古い方のアプリ識別子を20個の順列から除き、代わりに新しい順で21番目のアプリ識別子を加えて20個の順列を作成し、それを最新起動アプリリストとして出力する。なお、この21番目のアプリ識別子がそれより新しいアプリ識別子と重複する場合は、22番目のアプリ識別子が20個のリストの候補となる。
===「最新起動アプリリスト」の具体例===
図1の最上部に示しているのは、アンドロイド端末において、時間の経過に沿って、時点1でアプリAが起動され、時点2でアプリBが起動され、時点3でアプリCが起動され、・・・というアプリ起動の時系列の変遷である。以下においては、簡明な説明とすることを目的とし、上記の上限数mを8個として最新起動アプリリストの具体例を説明する。
図1において、時点5〜6間で起動アプリ通知APIがコールされると、最新起動アプリリストとして「E,D,C,B,A」が出力される。時点10〜11間でのコール2に対しては最新起動アプリリスト「J,I,H,G,F,E,D,C」が出力され、時点13〜14間のコール3に対しては最新起動アプリリスト「L,G,K,J,I,H,F,E」が出力され、時点14〜15間のコール4に対しては最新起動アプリリスト「H,L,G,K,J,I,F,E」が出力される。以下同様に、図1に示したコール5およびコール6に対する応答も含め、上述したアルゴリズムに従って作成された最新起動アプリリストが出力される。
===アプリ起動時系列情報を得る第1の方法===
アンドロイドでは、ユーザーが2つのアプリを連続的に起動する場合でも、最初に起動したアプリを停止した後でなければ次のアプリを起動することができないため、数秒の間隔が置かれる。
そこで、情報採取プログラムにより、たとえば1秒間隔で起動アプリ通知APIをコールし、1秒間隔で最新起動アプリリストを取得し、最新の取得リストの先頭(直近に起動されたアプリ)と1回前の取得リストの先頭とを1秒間隔で比較し続けることにより、1秒単位でどのアプリが起動されたのかを表す起動アプリ時系列情報を得ることができる。
===アプリ起動時系列情報を得る第2の方法===
たとえばアプリの起動時刻をマーケティングに用いようとする場合などでは、起動アプリの起動時点の精度は秒単位でなくてもよく、30秒単位や1分単位あるいは1時間単位であれば十分なこともある。
しかし、さきに図1を用いて具体的に説明したように、アンドロイドOSの起動アプリ通知APIのアルゴリズムでは、これをコールする間隔をある程度大きくすると、相前後する2回分の最新起動アプリリストを単純に対比するだけでは、正確な起動アプリ時系列情報を抽出することができなくなる可能性が高くなる。
そこで、本実施形態では、相前後する2回分の最新起動アプリリストを対比する方法を工夫することで、起動アプリ通知APIのコール間隔を大きくしても、2回のコールの間に実行されたアプリを高い精度で抽出することができるようにしている。
===本実施形態における処理方法===
本実施形態では、つぎの事項1〜5により特定されるコンピューター情報処理の方法を説明する。
1.第1〜第3プロセスを含んだコンピューター情報処理によりアンドロイド端末における起動アプリの時系列情報を調査する方法であること
2.第1プロセスでは、アンドロイド端末に実装された情報採取プログラムによりアンドロイドOSの起動アプリ通知APIを平均30秒以上の間隔をおいて繰り返しコールし、各コール時の最新起動アプリリストを取得し、当該リストをコール時の時間情報とともに記録すること
3.第2プロセスでは、n回目コール時の最新起動アプリリストR(n)と、(n−1)回目コール時の最新起動アプリリストR(n−1)とを対比し、リストR(n)中の最古のアプリ識別子ID1からi個目のアプリ識別子IDiまでの順列がリストR(n−1)と整合する整合順列であると判断すること
4.整合順列とは、リストR(n)におけるアプリ識別子ID1〜IDiのすべてがリストR(n−1)に存在し、かつ、アプリ識別子ID1〜IDiの配列順番がリストR(n−1)におけるアプリ識別子ID1〜IDiの相対的な配列順番と同じである順列であること
5.第3プロセスでは、前記数値iが設定値j以上である場合に、リストR(n)における(i+1)番目のアプリ識別子ID(i+1)から最新のアプリ識別子IDmまでの順列をn回目コール時から(n−1)回目コール時までの期間に起動された順列として記録すること
===システム構成===
図2は起動アプリ調査システムの構成例を示す図である。起動アプリ調査システムは、アンドロイド端末10と、アンドロイド端末10において起動されるアプリの起動時点を管理するサーバー20を含んで構成される。なお、アンドロイド端末10は複数存在していてもよい。アンドロイド端末10及びサーバー20は通信ネットワーク30を介して互いに通信可能に接続されている。通信ネットワーク30は、例えば公衆電話回線網、携帯電話回線網、無線通信網、イーサネットなどにより構築されるインターネット、LAN(Local Area Network)、VAN(Value Added Network)などである。第1実施形態では、通信ネットワーク30はインターネットを想定している。サーバー20は、例えばパーソナルコンピューター、ワークステーションなどのコンピューターである。なお、サーバー20は1台または複数台のコンピューターにより構成されるクラウドとして実現するようにしてもよい。
===アンドロイド端末10===
図3はアンドロイド端末10のハードウェア構成例を示す図である。アンドロイド端末10は、CPU101、メモリ102、記憶装置103、通信モジュール104、タッチパネルディスプレイ105、ボタン106、マイク107、スピーカー108を備える。記憶装置103は、システムプログラム11、情報採取プログラム12などのプログラムや各種のデータを記憶する、例えばフラッシュメモリ、ソリッドステートドライブ、ハードディスクドライブなどである。CPU101は記憶装置103に記憶されているプログラムをメモリ102に読み出して実行することにより各種の機能を実現する。通信モジュール104は、通信ネットワーク30に接続するためのモジュールであり、例えばイーサネット(登録商標)に接続するためのアダプタ、公衆電話回線網に接続するためのモデム、無線通信を行うための無線通信機などである。タッチパネルディスプレイ105、ボタン106、マイク107およびスピーカー108は、アンドロイド端末10のユーザーからデータの入力を受け付け、またユーザーに対してデータを出力する。
図4はアンドロイド端末10のソフトウェア構成例を示す図である。アンドロイド端末10は、アンドロイド(登録商標)111および情報採取部121を備える。CPU101がシステムプログラム11を実行することによりアンドロイド(登録商標)111が実現され、CPU101が情報採取プログラム12を実行することにより情報採取部121が実現される。もちろん、情報採取部121を実現するためのプログラムを共有ライブラリやフレームワークとして提供し、これらを情報採取以外の目的をもったユーザープログラムから呼び出すようにすることもできる。
情報採取部121は、起動アプリ通知APIを介してアンドロイド111から最新起動アプリリストを取得し、アプリの起動時点を推定し、推定したアプリの起動時点をサーバー20に送信する。情報採取部121は、最新起動アプリリスト取得部122、起動時点推定部123、起動ログ送信部124、起動リスト記憶部125、起動ログ記憶部126を備える。
起動リスト記憶部125は最新起動アプリリストを記憶する。図5は起動リスト記憶部125の構成例を示す図である。起動リスト記憶部125は、起動アプリ通知APIをコールした時点を示す取得時点に対応付けて、アンドロイド111から取得した最新起動アプリリストを記憶する。
最新起動アプリリスト取得部122は、アンドロイド(登録商標)111が提供する起動アプリ通知APIを介して最新起動アプリリストを取得する。最新起動アプリリスト取得部122は、定期的(たとえば30秒や1分、5分、1時間などの任意の間隔とすることができる。)に最新起動アプリリストを繰り返し取得していくものとする。最新起動アプリリスト取得部122は、取得した最新起動アプリリストを、取得した時点に対応付けて起動リスト記憶部125に登録する。なお、最新起動アプリリスト取得部122は、最新から2つの最新起動アプリリストのみを残して、古い最新起動アプリリストは起動リスト記憶部125から削除するようにしてもよい。
起動ログ記憶部126は、アプリの起動時点の推定値(起動推定時点)を含む情報(以下、起動ログという。)を記憶する。本実施形態では起動時点の推定誤差は、最新起動アプリリスト取得部122が最新起動アプリリストを取得する間隔(図6の例では、1分単位を想定している。)となるため、起動推定時点は2時点間の期間として特定される。図6は起動ログ記憶部126の構成例を示す図である。図6の例では各行が起動ログに対応する。起動ログには、2時点間の期間に対応付けて、その2時点間に起動されたアプリを示すアプリ識別子を、起動順(起動時点が遅い順)に並べたリスト(以下、起動順列という。)が記録される。
起動時点推定部123(本発明の最終起動タスク特定部および起動時点推定部に該当する。)は、最新起動アプリリストに基づいてアプリの起動時点を推定する。起動時点推定部123は、時点nに取得した最新起動アプリリストR(n)と、その1回前の時点n−1に取得した最新起動アプリリストR(n−1)とを比較し、R(n)に含まれるアプリ識別子のうち、R(n)の最古からそのアプリ識別子までのすべてのアプリ識別子がR(n)における先後関係と同じ先後関係でR(n−1)にも含まれているもののなかで、最新のアプリ識別子を、時点n−1までに起動されたアプリの中で最後に起動されたもの(以下、最終起動アプリという。)を示す最終起動アプリ識別子として特定する。起動時点推定部123は、R(n)において最終起動アプリ識別子よりも前(すなわち、新しい位置)に含まれるアプリ識別子に対応するアプリ(以下、新規起動アプリという。)の起動推定時点を、時点n−1から時点nまでの間と推定する。起動時点推定部123は、新規起動アプリを示すアプリ識別子と起動推定時点とを含む起動ログを起動ログ記憶部126に登録する。なお、起動時点推定部123は、最新起動アプリリストが取得されるごとに、現在時点と前回の時点との間を起動推定時点として、起動ログを登録する。
起動ログ送信部124は、アプリの起動推定時点をサーバー20に送信する。起動ログ送信部124は、所定の間隔(上記最新起動アプリリストを取得する間隔以上の間隔であるものとし、たとえば1時間や1日、1週間など任意の時間を指定することができる。)で起動ログ記憶部126に記憶されている起動ログを読み出し、読み出した起動ログと、当該アンドロイド端末10を示す端末識別子とをサーバー20に送信する。起動ログ送信部124は、サーバー20への送信処理が成功した場合には、送信した起動ログを起動ログ記憶部126から削除するようにしてもよい。
===サーバー20===
図7はサーバー20のハードウェア構成例を示す図である。サーバー20は、CPU201、メモリ202、記憶装置203、通信インタフェース204、入力装置205、出力装置206を備える。記憶装置203は、各種のデータやプログラムを記憶する、例えばハードディスクドライブやソリッドステートドライブ、フラッシュメモリなどである。CPU201は記憶装置203に記憶されているプログラムをメモリ202に読み出して実行することにより各種の機能を実現する。通信インタフェース204は、通信ネットワーク30に接続するためのインタフェースであり、例えば、イーサネット(登録商標)に接続するためのアダプタ、公衆電話回線網に接続するためのモデム、無線通信網に接続するための無線通信機などである。入力装置205は、データの入力を受け付ける、例えばキーボードやマウス、トラックボール、タッチパネル、マイクロフォンなどである。出力装置206は、データを出力する、例えばディスプレイやプリンタ、スピーカーなどである。サーバー20は複数の入力装置105及び出力装置106を備えるようにすることもできる。
図8はサーバー20のソフトウェア構成例を示す図である。サーバー20は起動ログ受信部211および起動ログ記憶部212を備える。
起動ログ記憶部212はアンドロイド端末10において起動されたアプリの起動推定時点を記憶する。図9は起動ログ記憶部212の構成例を示す図である。起動ログ記憶部212は、アンドロイド端末10を示す端末識別子に対応付けて起動ログが記憶される。
起動ログ受信部211はアンドロイド端末10から送信される起動ログおよび端末識別子を受信し、受信した端末識別子に対応付けて起動ログを起動ログ記憶部212に登録する。
===第1実施形態===
第1実施形態では、前記の第1プロセスとして、情報採取プログラムによりアンドロイドOSの起動アプリ通知APIを1分間隔で繰り返しコールし、各コール時の最新起動アプリリストを取得し、当該リストをコール時の時間情報とともに記録するものとする。つまり、前記情報採取プログラムが1分間隔で起動されて以下に詳述する処理を実行し、処理終了するとつぎに起動されるまでスリープ状態となる。
また第1実施形態では、アンドロイド端末10に実装された前記情報採取プログラムにより前記の第2プロセスおよび第3プロセスが実行され、第3プロセスで記録された情報が当該アンドロイド端末からインターネット上のサーバー20に送信されるものとする。
さきに説明したように、図1の最上部に示しているのは、あるユーザーが使用しているアンドロイド端末10において、時間の経過に沿って、時点1でアプリAが起動され、時点2でアプリBが起動され、時点3でアプリCが起動され、・・・というアプリ起動の時系列の変遷である。図1においては、起動アプリ通知APIのコール1〜6の間隔が一定ではなくランダムに変わっている。実施例1の以下の説明では、図1のコール1〜6の間隔が1分間隔であるものと見なすことにする。
図10は第1実施形態にかかる新規起動アプリの特定処理の流れを示す図である。
起動時点推定部123は、最新起動アプリリスト取得部122が時点nにおいて最新起動アプリリストR(n)を取得すると、時点n−1における最新起動アプリリストR(n−1)を起動リスト記憶部125から読み出し、リストR(n)の最古(すなわちリストの最後)のアプリ識別ID(1)がリストR(n−1)に含まれていない場合には(ステップ21:NO)、リストR(n)に含まれるすべてのアプリ識別子が新規起動アプリを示すものと判断する(ステップ29)。起動時点推定部123は、リストR(n)の古い順に2番目(最後から2番目)のアプリ識別子ID(2)が、リストR(n−1)に含まれていないか、またはリストR(n−1)において、ID(2)はID(1)よりも古い位置に含まれている場合にも(ステップ22:NO)、リストR(n)に含まれるすべてのアプリ識別子が新規起動アプリを示すものと特定する(ステップ29)。
ID(1)およびID(2)がリストR(n−1)に含まれており、かつ、リストR(n−1)においてID(2)がID(1)よりも新しければ(ステップ21:YES、ステップ22:YES)、起動時点推定部123は、変数iに3を設定し(ステップ23)、リストR(n)の古い順にi番目のアプリ識別子ID(i)がリストR(n−1)に含まれており、かつ、リストR(n−1)において、ID(i)がID(i−1)よりも新しい位置に含まれているか否かにより、ID(i)が新規起動アプリではないアプリ(以下、既起動アプリという。)を示すか否かを判定する(ステップ24)。起動時点推定部123は、ID(i)が既起動アプリを示すと判断した場合には(ステップ24:YES)、iがmに一致すれば(ステップ25:YES)、新規起動アプリは存在しないと判断し(ステップ28)、iがmより小さければ(ステップ25:NO)、iをインクリメントして(ステップ26)、ステップ24からの処理を繰り返す。
起動時点推定部123は、ID(i)が既起動アプリを示さないと判断した場合(ステップ24:NO)、リストR(n)において、古い順にi番目以後のアプリ識別子ID(i)〜ID(m)が新規起動アプリを示すものと判断する(ステップ27)。
===実施例1===
以下に説明する第1実施形態としては、さきの説明と同様に、起動アプリ通知APIをコールすることにより得られる最新起動アプリリストに含まれるアプリ識別子の個数の上限数mを8とし、また、前記発明特定事項5に記した設定数jを2としている。
以上のことを前提とする。図1の具体例では、コール2とコール3の期間において3個のアプリK→G→Lがこの順で起動されている。この発明に係る情報採取プログラムは、コール2に対する最新起動アプリリスト「J,I,H,G,F,E,D,C」と、コール3に対する最新起動アプリリスト「L,G,K,J,I,H,F,E」とを、図10のフローチャートに示す手順で処理し、この期間の新規起動アプリの順列「K→G→L」を抽出する。
まず図10のステップ21で、コール3リスト「L,G,K,J,I,H,F,E」の最古のアプリ識別子「E」がコール2リスト「J,I,H,G,F,E,D,C」に存在するか否かを調べる。存在するのでステップ22に進み、コール3リスト「L,G,K,J,I,H,F,E」の古い方から2番目のアプリ識別子「F」がコール2リスト中に存在し、かつ、コール2リストにおいて「F」が「E」より新しい側に存在するという条件を満足するか否かを調べる。条件を満足するので、ステップ23→24と進む。
つぎの処理では、コール3リスト「L,G,K,J,I,H,F,E」の古い方から3番目のアプリ識別子「H」がコール2リスト「J,I,H,G,F,E,D,C」中に存在し、かつ、コール2リストにおいて「H」が「F」より新しい側に存在するという条件を満足するか否かを調べる。
条件を満足するので、つぎに、コール3リスト「L,G,K,J,I,H,F,E」の古い方から4番目のアプリ識別子「I」がコール2リスト「J,I,H,G,F,E,D,C」中に存在し、かつ、コール2リストにおいて「I」が「H」より新しい側に存在するという条件を満足するか否かを調べる。
条件を満足するので、つぎに、コール3リスト「L,G,K,J,I,H,F,E」の古い方から5番目のアプリ識別子「J」がコール2リスト「J,I,H,G,F,E,D,C」中に存在し、かつ、コール2リストにおいて「J」が「I」より新しい側に存在するという条件を満足するか否かを調べる。
条件を満足するので、つぎに、コール3リスト「L,G,K,J,I,H,F,E」の古い方から6番目のアプリ識別子「K」がコール2リスト「J,I,H,G,F,E,D,C」中に存在し、かつ、コール2リストにおいて「K」が「J」より新しい側に存在するという条件を満足するか否かを調べる。
6番目のアプリ識別子「K」はコール2リスト「J,I,H,G,F,E,D,C」中に存在しない。この場合、コール3リスト「L,G,K,J,I,H,F,E」の古い方から6番目、7番目、8番目のアプリ識別子の順列「K→G→L」を、コール2〜3間で起動されたアプリの順列としてコール2〜3の時間情報とともに記録する。
以上のことを整理すると、コール3リスト「L,G,K,J,I,H,F,E」における古い方から5個のアプリ識別子「J,I,H,F,E」のすべてがコール2リスト「J,I,H,G,F,E,D,C」中に存在し、かつ、アプリ識別子「J,I,H,F,E」の配列順番がコール2リスト「J,I,H,G,F,E,D,C」におけるアプリ識別子「J,I,H,F,E」の相対的な配列順番と同じになっている(配列順番の前後関係に狂いがない)。
つまり、情報採取プログラムは、コール3リスト「L,G,K,J,I,H,F,E」における古い方から5個のアプリ識別子の順列「J,I,H,F,E」がコール2リスト「J,I,H,G,F,E,D,C」と整合する整合順列であると判断し、「5個」という数値が設定値j=2以上であることから、コール3リスト「L,G,K,J,I,H,F,E」における6番目から最新の3個のアプリ識別子を新規起動アプリ順列「K→G→L」として抽出する。
===発明の効果===
以上の説明において、コール3リスト「L,G,K,J,I,H,F,E」には新しい方から2番目に「G」が存在し、コール2リスト「J,I,H,G,F,E,D,C」には新しい方から4番目に「G」が存在している。この発明の方法によれば、両リスト中の「G」の存在に幻惑されることなく、新規起動アプリ順列「K→G→L」を正しく抽出することができる。
===実施例1の続き===
図1に示すように、コール3からコール4の期間では1個のアプり「H」が新規起動され、コール4リスト「H,L,G,K,J,I,F,E」の最新位置に「H」が存在し、コール3リスト「L,G,K,J,I,H,F,E」には古い方から3番目に「H」が存在している。この発明の方法によれば、上述したアルゴリズムにより両リストの「H」の存在に幻惑されることなく、新規起動アプリ「H」を正しく抽出することができる。
同様に、コール4からコール5の期間では4個のアプリ「M→N→G→H」が新規起動されており、このうち「G」と「H」はコール4リスト「H,L,G,K,J,I,F,E」に存在している。この発明の方法によれば、上述したアルゴリズムにより両リストの「G」と「H」の存在に幻惑されることなく、新規起動アプリ順列「M→N→G→H」を正しく抽出することができる。
===実施例1の補足===
図10のフローチャートでは、ステップ21でNOと判断された場合およびステップ22でNOと判断された場合は、最新起動アプリリストR(n)のアプリ識別子の順列のすべてを新機器道アプリ順列として抽出することにしているが、これは一例にすぎない。この場合に最新起動アプリリストR(n)に基づく新機起動アプリ順列の抽出判断を休止する(判断しない)こととしても良い。また、以上の説明では、m=8、j=2としたが、これは一例にすぎない。たとえば、mは20前後に設定されるのが普通なので、jを5〜10程度に設定することもある。
===その他の実施形態===
●実施形態(ア)
発明特定事項1〜5の発明において、アンドロイド端末に実装された前記情報採取プログラムにより第1プロセスで記録した情報が当該アンドロイド端末からインターネット上のサーバーに送信され、当該サーバーにおいて受信情報に基づき第2プロセスおよび第3プロセスが実行される形態。
●実施形態(イ)
前記サーバーは、第3プロセスで記録された情報と、この情報の源泉であるアンドロイド端末の識別情報とを対応づけてデータベース化する形態。
●実施形態(ウ)
アンドロイド端末の識別情報には当該アンドロイド端末のユーザー情報が含まれている形態。
●実施形態(エ)
起動アプリ通知APIのコール間隔は、アンドロイド端末とインターネットを介して通信する外部装置からの指示によって設定される形態。
●実施形態(オ)
起動アプリ通知APIのコール間隔は、前記情報採取プログラムにより動的に可変設定される形態。たとえば、あるコール間で抽出された新規起動アプリの個数が多いとコール間隔をより短くし、コール間で抽出される新規起動アプリ個数を抑制するように作用させるなど、第3プロセスで記録された情報に基づいてコール間隔を変化させる。時間帯を昼間と夜間とに設定しておき、夜間の時間帯にはコール間隔を短くするようにしてもよい。過去の起動順列から時間帯毎に起動されたアプリの数を算出し、アプリの起動された累積数や平均数が多いとコール間隔を短くするなど、過去に起動されたアプリの数に応じてコール間隔を変化させるようにしてもよい。
この発明の射程には、アンドロイド端末に実装されて請求項2に記載の方法を当該アンドロイド端末上で実行させる情報採取プログラムが含まれる。同様に、この発明の射程には、前記サーバーに実装され、請求項3に記載の方法における第2プロセスおよび第3プロセスを当該サーバー上で実行させるサーバープログラムが含まれる。
===第2実施形態===
図11は第2実施形態にかかる新規起動アプリの特定処理の流れを示す図である。
起動時点推定部123は、最新起動アプリリスト取得部122が時点nにおいて最新起動アプリリストR(n)を取得すると、時点n−1における最新起動アプリリストR(n−1)を起動リスト記憶部125から読み出し、リストR(n)の最古(すなわちリストの最後)のアプリ識別ID(1)がリストR(n−1)に含まれていない場合には(ステップ31:NO)、最終起動アプリ識別子はリストR(n)に含まれておらず、リストR(n)に含まれるすべてのアプリ識別子が新規起動アプリを示すものと判断する(ステップ43)。
起動時点推定部123は、変数iに2を設定し(ステップ32)、リストR(n)の古い順にi番目(最後からi番目)およびi−1番目のアプリ識別子ID(i)およびID(i−1)を抽出し、ID(i)がリストR(n−1)に含まれており、かつ、リストR(n−1)において、ID(i)はID(i−1)よりも新しい場合は(ステップ33:YES)、iをインクリメントし(ステップ34)、iがm以下であれば(ステップ35:NO)、ステップ33からの処理を繰り返す。
起動時点推定部123は、ID(i)がリストR(n−1)に含まれていないか、または、リストR(n−1)においてID(i)がID(i−1)よりも古い位置に含まれている場合には(ステップ33:NO)、リストR(n)の最古のアプリ識別子をa1とし(ステップ38)、リストR(n)の古い順にi−1番目のアプリ識別子をa2として(ステップ39)、リストR(n−1)においてa1からa2までの間に含まれるアプリ識別子のうち、リストR(n)においてa1からa2までの間に含まれていないものをスキップアプリIDとして抽出する(ステップ40)。
起動時点推定部123は、リストR(n)において、すべてのスキップアプリIDが古い順にi番目以後にあれば(ステップ41:YES)、i−1番目のアプリ識別子が最新起動アプリ識別子であり、リストR(n)のi番目以後のアプリ識別子が新規起動アプリを示すものと判断する(ステップ42)。
起動時点推定部123は、リストR(n)においてスキップアプリIDのいずれかが古い順にi番目以後になければ(ステップ41:NO)、ステップ43に進み、最終起動アプリ識別子はリストR(n)に含まれておらず、リストR(n)の全部が新規起動アプリであると決定する。
一方、起動時点推定部123は、iがmを超えた場合(ステップ35:YES)、リストR(n)とリストR(n−1)とが一致すれば(ステップ36:YES)、新規起動アプリは存在しないと判断する(ステップ37)。一致しなければ(ステップ36:NO)、ステップ43に進み、最終起動アプリ識別子はリストR(n)に含まれておらず、リストR(n)の全部が新規起動アプリと決定する。
なお、ステップ36において、リストR(n)の長さ(リスト(R(n)に含まれているアプリ識別子の数)がR(n−1)の長さよりも短い場合に、ステップ43に進み、リストR(n)およびR(n−1)の長さが一致した場合にステップ37に進むようにしてもよい。
===実施例2===
図12(1)に示すように、リストR(n)が「A,B,R,S,H」であり、リストR(n−1)が「R,A,S,B,T」である場合を想定する。ステップ31において、R(n)に含まれる最古のアプリ識別子「H」はR(n−1)に含まれていないので、ステップ43により、R(n)の全部が新規起動アプリと決定され、時点n−1から時点nまでの間に起動したアプリの起動順列として「H→S→R→B→A」が抽出される。
R(n)において最古のアプリ識別子がR(n−1)に含まれていないということは、時点n−1から時点nまでにm個以上のアプリが起動されたと考えられるので、少なくともR(n)に含まれるm個のアプリ識別子については新規起動アプリを示していると判断することができる。
一方、図12(2)に示すように、リストR(n)が「A,B,R,S,T」であり、リストR(n−1)が「R,A,S,B,T」である場合、最古のアプリ識別子「T」はR(n−1)にも含まれているので、ステップ31→32→33と進む。R(n)において古い順に2番目のアプリ識別子「S」は、R(n−1)において「T」よりも新しい位置に含まれているので、ステップ34→35→33と進み、3番目のアプリ識別子「R」についても、R(n−1)において「S」よりも新しい位置に含まれているので、ステップ34→35→33と進む。4番目のアプリ識別子「B」については、R(n−1)に含まれているものの、「R」よりも古い位置に含まれていることから、ステップ33→38→39→40→41と進む。
R(n−1)において「T」から「R」までの間に含まれ、R(n)において「T」から「R」までの間に含まれていないアプリ識別子は「B」「A」であり、これらは両方ともR(n)において4番目以後に含まれているので、ステップ41→42と進み、最終起動アプリは「R」と決定されて、「R」より後の「A,B」について、「B→A」が時点n−1から時点nまでの間に起動されたアプリの起動順列として抽出される。
これは、時点n−1までの間においてRが起動された後に、B→Aのアプリが起動されたところ、最新起動アプリリストには上述したアルゴリズム(b)により古い時点での「B」「A」についてのアプリ識別子が削除されることから、T〜Rの間からA,Bが削除されたものと考えられる。したがって、R(n)のi番目以後については時点n−1以後に起動されたものだとわかる。このように、アルゴリズム(b)により古い時点で起動されたことが削除されてしまうアンドロイドOSによる起動アプリ通知APIであっても、2時点でのリストを比較して、当該2時点間に起動されたアプリを正確に特定することができる。
図12(3)に示すように、リストR(n)が「F,B,D,E」であり、リストR(n−1)が「B,C,D,E」である場合、R(n)の最古のアプリ識別子「E」はR(n−1)に含まれているので、ステップ31→32→33と進む。R(n)において2番目に古いアプリ識別子「D」は、R(n−1)において「E」よりも新しい位置に含まれているので、ステップ34→35→33と進む。3番目に古いアプリ識別子「B」についても、R(n−1)において「D」よりも新しい位置に含まれているので、ステップ34→35→33と進む。4番目に古いアプリ識別子「F」は、R(n−1)に含まれていないので、ステップ33→38→39→40→41と進む。
R(n−1)で「E」から「B」までの間に含まれるアプリ識別子は「C」と「D」であり、このうちR(n)において「E」から「B」までの間に含まれていないアプリ識別子は「C」であるので、スキップアプリIDは「C」となる。R(n)において「C」は古い順に4番目以後に含まれていないため、ステップ41→43と進み、R(n)の全部が新規起動アプリと決定され、「E→D→B→F」が起動順列として抽出される。
図12(3)のように、スキップアプリIDの「C」がR(n)に含まれていない場合とは、例えば、時点n−1より後に「C」が起動されて最新起動アプリリストが「C,B,D,E」となり、その後、E,D,Bが起動されて、「B,D,E,C」となりさらにFが起動されて「F,B,D,E」となった場合である。このように、B,D,Eを含むm個以上のアプリが時点n−1以後に起動された場合にも、起動時点を正確に推定することができる。
図12(4)に示すように、リストR(n)が「B,C,D,E」であり、リストR(n−1)が「A,B,C,D,E」である場合、R(n)の最古のアプリ識別子「E」はR(n−1)に含まれているので、ステップ31→32→33と進む。R(n)において古い順に2番目〜4番目のアプリ識別子「D」「C」「B」についても同様にステップ31→32→33と進むことになり、iがmを超え、ステップ36に進む。
ここで、R(n)とR(n−1)は一致しないため、ステップ36→43と進み、R(n)はすべて新規起動アプリと決定され、「E→D→C→B」が起動順列として抽出される。
アンドロイド端末10が再起動されると、起動履歴はリセットされ、再起動後に起動されたアプリのみを含む最新起動アプリリストが取得されることになる。したがって、起動リスト記憶部125が不揮発性の記憶装置103に実装された場合、再起動直後には、図12(4)に示すようにR(n)に含まれるアプリ識別子の数がR(n−1)よりも少なくなることがある。このような場合でも、ステップ38〜41の処理により、最新起動アプリリストに含まれるすべてのアプリが新規起動アプリであることを判断することができる。
===第3実施形態===
図13は、第3実施形態に係る新規起動アプリの特定処理の流れを示す図である。
起動時点推定部123は、最新起動アプリリスト取得部122が時点nにおいて最新起動アプリリストR(n)を取得すると、時点n−1における最新起動アプリリストR(n−1)を起動リスト記憶部125から読み出し、リストR(n)をTR(n)とし(ステップ51)、リストR(n−1)をTR(n−1)とし(ステップ52)、TR(n)の先頭のアプリ識別子をtIDとする(ステップ53)。起動時点推定部123は、TR(n−1)に対して、TR(n)が前方一致するかどうかを判定する(ステップ54)。ここで前方一致すれば(ステップ54:YES)、tIDを最終起動アプリ識別子と決定し、tIDよりも新しいアプリ識別子が新規起動アプリであると判断する(ステップ59)。
起動時点推定部123は、前方一致しない場合(ステップ54:NO)、TR(n)からtIDを削除するとともに(ステップ55)、TR(n−1)からもtIDを削除する(ステップ56)。起動時点推定部123は、TR(n)又はTR(n−1)が空になれば(ステップ57:YES)、リストR(n)に含まれるすべてのアプリ識別子が新規起動アプリと判断する(ステップ58)。TR(n)およびTR(n−1)が空でなければ(ステップ57:NO)、ステップ53からの処理を繰り返す。
==実施例3==
図14は、リストR(n)が「F,C,A,B,D」であり、リストR(n−1)が「A,B,C,D,E」であり、これらがTR(n)およびTR(n−1)にコピーされた状態を示す図である。ステップ53においてtIDは「F」となり、TR(n)はTR(n−1)に対して前方一致しないため、ステップ54→55→56と進み、TR(n)から「F」が削除される。ここで、TR(n−1)に「F」は含まれないのでTR(n−1)は変化しない。この時点でTR(n)は「C,A,B,D」であり、TR(n−1)は「A,B,C,D,E」であり、それぞれ空ではないので、ステップ57→53と進む。
ステップ53においてtIDは「C」となる。ここでもTR(n)はTR(n−1)に対して前方一致しないので、ステップ54→55→56と進み、TR(n)およびTR(n−1)から「C」が削除される。この時点でTR(n)は「A,B,D」であり、TR(n−1)は「A,B,D,E」であり、それぞれ空ではないので、ステップ57→53と進む。
ステップ53においてtIDは「A」となる。ここでTR(n)はTR(n−1)と先頭から3つのアプリ識別子「A,B,D」が一致して前方一致することになるので、ステップ54→59と進み、「A」を最終起動アプリ識別子と決定し、元のR(n)において「A」よりも新しい「F,C」が時点n−1から時点nまでの間に起動したものと推定して、起動順列として「C→F」を抽出する。
このようにして、第2実施形態と同様に、アルゴリズム(b)により古い時点で起動されたことが削除されてしまうアンドロイドOSによる起動アプリ通知APIであっても、2時点でのリストを比較して、当該2時点間に起動されたアプリを正確に特定することができる。
以上、本実施形態について説明したが、上記実施形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。
例えば、サーバー20を省略して、起動アプリ調査システムをアンドロイド端末10のみで構成し、起動ログをサーバー20に送信しないようにしてもよいし、サーバー20に起動時点推定部123を設け、アンドロイド端末10の最新起動アプリリスト取得部122がサーバー20に最新起動アプリリストを送信して、サーバー20において起動時点を推定するようにしてもよい。
また、アンドロイド端末10は、アンドロイド(登録商標)以外のフレームワークを実行していてもよい。当該フレームワークは、上述したアルゴリズム(a)(b)に従って最新起動アプリリストを取得するためのAPIを提供していればよい。
また、1つのアプリが複数のタスクを実行することができてもよい。この場合、タスクの起動推定時点をそのタスクに対応するアプリの起動推定時点としてもよいし、1つのアプリに対応する複数のタスクの起動推定時点のうち最新のもののみ、あるいは最古のもののみをアプリの起動推定時点としてもよい。
また、本実施形態では、最新起動アプリリストにおいて最終起動アプリよりも後のアプリの起動推定時点は、起動アプリ通知APIを呼び出した2時点間の間の期間であるものとしたが、最終起動アプリよりも後のアプリの数に応じてこの期間を等分し、さらに起動推定時点を絞り込むようにしてもよい。この場合、時点n−1の時刻をa、時点nの時刻をb、最終起動アプリよりも後のアプリの数をpとして、アプリ1つあたりの時間tを、t=(b−a)÷pにより算出し、起動順列の古い順にi番目のアプリの起動推定時点はa+t×(i−1)からa+t×iまでの間と判定されることになる。たとえば、図14の例において、R(n−1)が「00:00」に取得され、R(n)が「00:02」に取得されていたとすると、tは、「00:00〜00:02」の2分を起動順列「C→F」中のアプリの数p=2で割った「00:01」となり、「C」の起動推定時点は「00:00〜00:01」、「F」の起動推定時点は「00:01〜00:02」と判定される。このようにして、さらに精度良く起動時点を推定することができる。
10 アンドロイド端末
111 アンドロイド
121 情報採取部
122 最新起動アプリリスト取得部
123 起動時点推定部
124 起動ログ送信部
125 起動リスト記憶部
126 起動ログ記憶部
20 サーバー
211 起動ログ受信部
212 起動ログ記憶部
30 通信ネットワーク

Claims (11)

  1. 情報処理装置におけるタスクの起動時点を推定するシステムであって、
    少なくとも2つの測定時点について、前記測定時点までに起動された前記タスクについて、起動時点の新しい順に重複なく所定数以下の前記タスクを抽出して前記起動時点の順に並べた起動リストを記憶する起動リスト記憶部と、
    前記起動リスト記憶部から、第1の前記測定時点に対応する第1の前記起動リストおよび前記第1の測定時点よりも後の第2の前記測定時点に対応する第2の前記起動リストを読み出す起動リスト取得部と、
    前記第2の起動リストに含まれる前記タスクのうち、前記第2の起動リストにおける最古の前記タスクからあるタスク(Z)までの全ての前記タスクが前記第2の起動リストにおける先後関係と同じ先後関係で前記第1の起動リストに含まれているという条件を満たす最新のタスク(Z)を、最終起動タスクとして特定する最終起動タスク特定部と、
    前記第2の起動リストにおいて前記最終起動タスクよりも新しい前記タスクの前記起動時点を、前記第1の測定時点から前記第2の測定時点までの間と推定する起動時点推定部と、
    を備えることを特徴とする起動時点推定システム。
  2. 請求項1に記載の起動時点推定システムであって、
    前記情報処理装置において実行されるフレームワークにより提供される前記起動リストを取得するためのAPIを、所定の時間間隔でコールすることにより前記起動リストを取得し、取得した前記起動リストを現時点に対応付けて前記起動リスト記憶部に登録する起動リスト取得部をさらに備えること、
    を特徴とする起動時点推定システム。
  3. 請求項1または2に記載の起動時点推定システムであって、
    前記最終起動タスク特定部は、前記第2の起動リストにおいて、最古のタスク(イ)が前記第2の起動リストに含まれているか否かを判定し、含まれている場合には、つぎに新しいタスク(ロ)が前記第1の起動リストにおいて前記タスク(イ)より新しい位置に含まれているという条件を満たすか否かを判定し、前記条件を満たす場合には、つぎに新しいタスク(ハ)が前記第1の起動リストにおいて前記タスク(ロ)より新しい位置に含まれているという条件を満たすか否かを判定する、という処理を順次新しい側に向けて実行し、前記条件を満たす前記第2の起動リストにおけるタスク(X)のつぎに新しいタスク(Y)が前記条件を満たさない場合に、前記タスク(X)を前記最終起動タスクと特定すること、
    を特徴とする起動時点推定システム。
  4. 請求項3に記載の起動時点推定システムであって、
    前記起動時点推定部は、前記第2の起動リストの最古の前記タスクが前記第1の起動リストに含まれていない場合は、前記第2の起動リストに含まれているすべての前記タスクの前記起動時点を前記第1の測定時点から前記第2の測定時点までの間と推定すること、
    を特徴とする起動時点推定システム。
  5. 請求項3または4に記載の起動時点推定システムであって、
    前記起動時点推定部は、前記第2の起動リストの最新の前記タスクが前記最終起動タスクと特定された場合に、前記第1および第2の起動リストが一致しないときは、前記第2の起動リストに含まれているすべての前記タスクの前記起動時点を前記第1の測定時点から前記第2の測定時点までの間と推定すること、
    を特徴とする起動時点推定システム。
  6. 請求項3ないし5のいずれか1項に記載の起動時点推定システムであって、
    前記起動時点推定部は、前記第1の起動リストにおいて、前記第2の起動リストの最古の前記タスクおよび前記最終起動タスクの間に含まれている前記タスクの少なくともいずれかが、前記第2の起動リストにおいて前記最終起動タスクよりも新しい位置に含まれていない場合には、前記第2の起動リストに含まれているすべての前記タスクの前記起動時点を前記第1の測定時点から前記第2の測定時点までの間と推定すること、
    を特徴とする起動時点推定システム。
  7. 請求項1に記載の起動時点推定システムであって、
    前記最終起動タスク特定部は、前記第1および第2の起動リストの複製である第1および第2の作業リストを生成し、前記第1および第2の作業リストが新しい順に前記第2の作業リストの長さ分一致するまで、前記第2の作業リストの最新の前記タスクを前記第1および第2の作業リストから削除していき、前記第1および第2の作業リストが新しい順に前記第2の作業リストの長さ分一致した場合に、前記第2の作業リストの最新の前記タスクを前記最終起動タスクと特定すること、
    を特徴とする起動時点推定システム。
  8. 請求項1ないし7のいずれか1項に記載の起動時点推定システムであって、
    前記情報処理装置およびサーバーを含んで構成され、
    前記情報処理装置が、前記起動リスト記憶部、前記最終起動タスク特定部、および前記起動時点推定部を備え、
    前記情報処理装置はさらに、前記第1の測定時点から前記第2の測定時点までの期間を示す起動時点情報に対応付けて、当該期間に起動されたと推定された前記タスクを記憶する起動時点記憶部と、前記起動時点記憶部に記憶されている前記起動時点情報および前記タスクを前記サーバーに送信する起動時点送信部とを備え、
    前記サーバーは、前記起動時点情報および前記タスクを受信する起動時点受信部と、受信した前記起動時点情報およびタスクを対応付けて記憶する起動時点記憶部と、を備えること、
    を特徴とする起動時点推定システム。
  9. 請求項1ないし7のいずれか1項に記載の起動時点推定システムであって、
    前記情報処理装置と通信可能に接続され、
    前記情報処理装置から定期的に送信される、前記測定時点の付帯された前記起動リストを受信し、受信した前記起動リストを前記起動リスト記憶部に登録する起動リスト受信部を備えること、
    を特徴とする起動時点推定システム。
  10. 情報処理装置におけるタスクの起動時点を推定する方法であって、
    少なくとも2つの測定時点について、前記測定時点までに起動された前記タスクについて、起動時点の新しい順に重複なく所定数以下の前記タスクを抽出して前記起動時点の順に並べた起動リストを記憶するコンピューターが、
    前記起動リスト記憶部から、第1の前記測定時点に対応する第1の前記起動リストおよび前記第1の測定時点よりも後の第2の前記測定時点に対応する第2の前記起動リストを読み出し、
    前記第2の起動リストに含まれる前記タスクのうち、前記第2の起動リストにおける最古の前記タスクからあるタスク(Z)までの全ての前記タスクが前記第2の起動リストにおける先後関係と同じ先後関係で前記第1の起動リストに含まれているという条件を満たす最新のタスク(Z)を、最終起動タスクとして特定し、
    前記第2の起動リストにおいて前記最終起動タスクよりも新しい前記タスクの前記起動時点を、前記第1の測定時点から前記第2の測定時点までの間と推定すること、
    を特徴とする起動時点推定方法。
  11. 情報処理装置におけるタスクの起動時点を推定するためのプログラムであって、
    少なくとも2つの測定時点について、前記測定時点までに起動された前記タスクについて、起動時点の新しい順に重複なく所定数以下の前記タスクを抽出して前記起動時点の順に並べた起動リストを記憶するコンピューターに、
    前記起動リスト記憶部から、第1の前記測定時点に対応する第1の前記起動リストおよび前記第1の測定時点よりも後の第2の前記測定時点に対応する第2の前記起動リストを読み出すステップと、
    前記第2の起動リストに含まれる前記タスクのうち、前記第2の起動リストにおける最古の前記タスクからあるタスク(Z)までの全ての前記タスクが前記第2の起動リストにおける先後関係と同じ先後関係で前記第1の起動リストに含まれているという条件を満たす最新のタスク(Z)を、最終起動タスクとして特定するステップと、
    前記第2の起動リストにおいて前記最終起動タスクよりも新しい前記タスクの前記起動時点を、前記第1の測定時点から前記第2の測定時点までの間と推定するステップと、
    を実行させるためのプログラム。
JP2011244760A 2011-09-09 2011-11-08 タスク起動時点推定システム、タスク起動時点推定方法およびプログラム Expired - Fee Related JP5823826B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011244760A JP5823826B2 (ja) 2011-09-09 2011-11-08 タスク起動時点推定システム、タスク起動時点推定方法およびプログラム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011197482 2011-09-09
JP2011197482 2011-09-09
JP2011244760A JP5823826B2 (ja) 2011-09-09 2011-11-08 タスク起動時点推定システム、タスク起動時点推定方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2013070353A JP2013070353A (ja) 2013-04-18
JP5823826B2 true JP5823826B2 (ja) 2015-11-25

Family

ID=48475502

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011244760A Expired - Fee Related JP5823826B2 (ja) 2011-09-09 2011-11-08 タスク起動時点推定システム、タスク起動時点推定方法およびプログラム

Country Status (1)

Country Link
JP (1) JP5823826B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104850423B (zh) * 2015-01-16 2017-12-26 中国矿业大学 识别android系统下应用程序启动阶段的方法
JP5727116B1 (ja) * 2015-03-06 2015-06-03 Fuller株式会社 アンドロイド端末において特定アプリがosから取得する情報をもとにユーザーが起動したアプリの時系列を検知するコンピューティング
JP6657834B2 (ja) * 2015-11-19 2020-03-04 日本電気株式会社 通信システム、通信分析方法および蓄積サーバ
US11310688B2 (en) * 2016-05-19 2022-04-19 Nec Corporation Information presenting device, information presenting method and recording medium

Also Published As

Publication number Publication date
JP2013070353A (ja) 2013-04-18

Similar Documents

Publication Publication Date Title
US11301729B2 (en) Systems and methods for inferential sharing of photos
US11983639B2 (en) Systems and methods for identifying process flows from log files and visualizing the flow
CN107533504A (zh) 用于软件分发的异常分析
JP5823826B2 (ja) タスク起動時点推定システム、タスク起動時点推定方法およびプログラム
CN107748790B (zh) 一种线上服务系统、数据加载方法、装置及设备
CN111597065B (zh) 用于采集设备信息的方法和装置
CN111597388B (zh) 基于分布式系统的样本采集方法、装置、设备及介质
CN108235303B (zh) 识别共享流量用户的方法、装置、设备及介质
CN112115200B (zh) 数据同步方法、装置、电子设备及可读存储介质
CN111008109A (zh) 一种监控数据处理方法、装置、电子设备及存储介质
WO2015106710A1 (en) Contact information processing method, apparatus, and system
WO2017107679A1 (zh) 一种历史信息展示方法及装置
CN109062799A (zh) 广告场景的回归测试方法、装置及系统
CN110609783B (zh) 用于识别异常行为用户的方法和装置
CN108874876B (zh) 一种消息推送方法、计算机可读存储介质及终端设备
CN110996142B (zh) 视频召回方法及装置、电子设备及存储介质
CN111344730B (zh) 内容管理系统及其操作方法
CN111240952A (zh) 日志采集方法和装置
CN111193804A (zh) 分布式存储方法及装置、网络节点及存储介质
CN110780944A (zh) 一种应用权限的启动方法、设备及机器可读存储介质
CN112988776B (zh) 文本解析规则的更新方法、装置、设备及可读存储介质
JP7098579B2 (ja) 情報処理装置及び方法並びにプログラム
CN104376021A (zh) 文件推荐系统及方法
CN114036074A (zh) 终端设备的测试方法和测试装置
JP5727116B1 (ja) アンドロイド端末において特定アプリがosから取得する情報をもとにユーザーが起動したアプリの時系列を検知するコンピューティング

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141020

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150723

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150804

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150911

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151006

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151008

R150 Certificate of patent or registration of utility model

Ref document number: 5823826

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees