若者フォローって事で

CliCkin2DaBeaT という音ゲーなアプリ解析。まずは AndroidManifest.xml からチェキ。
Activity は全部で三つな模様。エントリポイントは C2B になっている模様。onCreate メソドは以下か。

  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    UpdateChecker checker = new UpdateChecker();
    int latestVersion = checker.getLatestVersionCode();
    String packageName = C2B.class.getPackage().getName();
    int currentVersion = 0;
    try {
      currentVersion = getPackageManager().getPackageInfo(packageName, 0).versionCode;
    } catch (NameNotFoundException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    if (latestVersion > currentVersion){
      marketId = checker.marketId;
      displayUpdateMessage();
    } else {
      resetGame();
    }
  }

これ、殆どがパケジの更新に関するソレですな。これはこれで参考になるのですが、resetGame メソドが本体か。

色々見てたんですが

resetGame メソド始点だと色々微妙なんですが、逆回しで確認してみました。

  • loadC2B メソドから runC2B メソドが呼び出されている
  • loadC2B メソドは displayC2BFiles メソドで作られる AlertDialog の PositiveButton クリック時に呼び出される
  • displayC2BFiles メソドは
    • displayCreateLevelAlert メソドで作られる AlertDialog の NagativeButton クリック時に呼び出される
    • displayStartupMessage メソドで作られる AlertDialog の PositiveButton クリック時に呼び出される
  • displayStartupMessage メソドは resetGame メソドから呼び出される (ここが始点?
  • displayCreateLevelAlert メソドは
    • runC2B メソドから呼び出されている
    • displayCreateLevelAlert メソドで作られる AlertDialog の PositiveButton クリック時に呼び出される
    • displayCreateLevelAlert メソドで作られる AlertDialog の NagativeButton クリック時に呼び出される
      • 両方共に busyProcessing が true の場合限定

つー事で、loadC2B メソドなんですが、核心部分が以下。

  private void loadC2B(String fileUriString) {
    try {
      FileInputStream fis = new FileInputStream(fileUriString);
      DocumentBuilder docBuild;
      docBuild = DocumentBuilderFactory.newInstance().newDocumentBuilder();
      Document c2b = docBuild.parse(fis);
      runC2B(c2b);

Document って何でしょ。というか結局 runC2B メソドが核心な模様です。中身は別途確認、なんですが、C2B なソレって XML データみたい。
なんとなくパースして云々してるのは分かるんですが、どこでゲイムが始まるんでしょ。あ、resetGame の

  • VideoView#setOnPreparedListener メソド呼び出し
  • VideoView#setOnErrorListener メソド呼び出し
  • VideoView#setOnCompletionListener メソド呼び出し

なのか。でも、どこでタイミング合わせてたりとかするのか微妙。Target とか確認必要らしい。